Conference Monitoring Project based on Image Recognition that uses Rust Language and AWS Rekognition service to get the level of image similarity.

Overview

Conference Monitoring System based on Image Recognition in Rust

This is a Conference Monitoring Project based on Image Recognition that uses Rust Language and AWS Rekognition service to get the level of image similarity. The project can be run on the Raspberry Pi by cross compiling the existing project, details of which are given in the Readme. This project is in the form of Web-Services.

Project Use-Case

As this project is based on Image Recognition, so here:

  • Each attendee's image will be stored in the database at the time of registration for a Conference.
  • At the time of the conference, all the images are compared with the clicked image of the conference.
  • If a registered attendee is present in the conference then its status will update to Present else status will remain Absent and a mail is sent to attendee's email address by specifying the absent status.

We thrive for the best and want you to contribute towards a better Project. See CONTRIBUTING.md for giving your valuable feedbacks and contributions.

Setting up your environment

Rustup.rs

Building this project requires rustup, version 1.8.0 or more recent. If you have an older version, run rustup self update.

To install on Windows, download and run rustup-init.exe then follow the onscreen instructions.

To install on other systems, run:

curl https://sh.rustup.rs -sSf | sh

This will also download the current stable version of Rust, which this project won’t use. To skip that step, run instead:

curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none

MongoDB

Download MongoDB

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
sudo apt-get install -y mongodb-org

Start MongoDB

sudo service mongod start

For more information on MongoDB, refer to the MongoDB Manual MONGODB MANUAL

Exporting variables

REGION is required by AWS which should match your Bucket's region. You are required to add the same region in which you have your Bucket.

export Region=$YOUR_REGION

BUCKET_NAME is the bucket that stores all the clicked images.

export Clicked_Image_Bucket=$BUCKET_NAME

CLICKED_IMAGE_PATH is the path to the clicked image that is taken by the camera of Raspberry Pi.

export Clicked_Image_Path=$CLICKED_IMAGE_PATH

IP_ADDRESS:PORT_NO refers to the socket where the MongoDB runs.

export Host=$IP_ADDRESS:PORT_NO

RUST_LOG is required for loggers.

export RUST_LOG=$Project_Name=Log_Level

Building

Normal Build

git clone https://github.com/Knoldus/conf_count
cd conf_count
cargo build

The binary would be saved in /target/debug/conf_count

Cross-compilation build for Raspberry Pi

Run cargo build --target=armv7-unknown-linux-gnueabihf to get a cross compiled binary in /target/armv7-unknown-linux-gnueabihf/debug/conf_count

Running the binary

./conf_count

Then follow the instructions in the application.

You might also like...
ChatGPT-Code-Review is a Rust application that uses the OpenAI GPT-3.5 language model to review code

ChatGPT-Code-Review is a Rust application that uses the OpenAI GPT-3.5 language model to review code. It accepts a local path to a folder containing code, and generates a review for each file in the folder and its subdirectories.

Library uses file-based mmap to store key-values

Library uses file-based mmap to store key-values This is a Rust version of MMKV. By default, this lib uses CRC8 to check data integrity. If include fe

General Rust Actix Applications and AWS Programming Utilities

RUST Actix-Web Microservice Our Rust Beginners Kit for Application Development A collection of sample code using the actix rust framework to A) Develo

A tree-sitter based AST difftool to get meaningful semantic diffs
A tree-sitter based AST difftool to get meaningful semantic diffs

diffsitter Disclaimer diffsitter is very much a work in progress and nowhere close to production ready (yet). Contributions are always welcome! Summar

Horus is an open source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual machine, and the Rust programming language.
Horus is an open source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual machine, and the Rust programming language.

Horus Horus is an open-source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual mach

A web-based streaming service with improved privacy, performance, and simplicity.

Majiix Majiix is a web-based open-source streaming service. The backend that handles the core streaming logic is written in Rust and makes use of cutt

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project.

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project. With just a few primary configurations, such as project name, you can get started quickly.

Save image from your clipboard πŸ“‹ as an image file directly from your command line! πŸ”₯

Clpy πŸ“‹ Save copied image from clipboard as an image file directly from your command line! Note It works only on windows as of now. I'll be adding sup

A general-purpose, transactional, relational database that uses Datalog and focuses on graph data and algorithms

cozo A general-purpose, transactional, relational database that uses Datalog for query and focuses on graph data and algorithms. Features Relational d

Owner
Pankaj Chaudhary
Polkadot/Substrate | Rust. Github: https://github.com/panalog
Pankaj Chaudhary
Pet project to get acquainted with Rust, and mess around with symbolic expressions.

Symba Pet project to get acquainted with Rust, and to mess around with symbolic expressions, hence the name 'Symba'. Example: use asg::{deftree, r

Ranjeeth Mahankali 3 Nov 23, 2023
By mirroring traffic to and from your machine, mirrord surrounds your local service with a mirror image of its cloud environment.

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both Visual Studio Code extension and

MetalBear 2.1k Jan 3, 2023
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

Aldrin Zigmund Cortez Velasco 18 Oct 24, 2022
MinMon - an opinionated minimal monitoring and alarming tool

MinMon - an opinionated minimal monitoring and alarming tool (for Linux) This tool is just a single binary and a config file. No database, no GUI, no

Florian Wickert 177 Jan 5, 2023
Socket Monitor: A prettier and simpler alternative to netstat or ss for socket monitoring with the ability to scan for malicious IP addresses.

?? Somo A prettier alternative to netstat or ss for socket monitoring. ⬇️ Installation: 1. Install cargo: From crates.io. 2. Install the somo crate: c

Theodor Peifer 13 Jun 6, 2023
Rust Imaging Library's Python binding: A performant and high-level image processing library for Python written in Rust

ril-py Rust Imaging Library for Python: Python bindings for ril, a performant and high-level image processing library written in Rust. What's this? Th

Cryptex 13 Dec 6, 2022
Bracket QOS - a Quality of Service/Experience server system writtin in Rust. Derived from the excellent LibreQOS Project.

Bracket QOS - Open Source Edition This project is based on the excellent LibreQOS project. It is hoped that this can be useful for the upstream projec

Herbert 12 Dec 2, 2022
Simple system monitoring app that runs on terminal. Made purely with Rust.

What is it? RCTOP is a simple WIP system monitoring app that runs purely on terminal and doesn't feature GUI. One can compare it to htop, but more str

Niko Huuskonen 7 Oct 14, 2022
A tool to control the fan speed by monitoring the temperature of CPU via IPMI.

ipmi-fan-control A tool to control the fan speed by monitoring the temperature of CPU via IPMI. Why Our Dell R730 server's iDRAC is not works as expec

yinheli 9 Dec 29, 2022
A CLI screentime monitoring tool. Shows how much time are you using certain apps.

A screentime monitoring tool, shows how much time are you really using certain apps. It work nicely with i3status or py3status on I3 window manager fo

Piotr Czajka 6 Dec 8, 2022