All Projects → satinder147 → Attendance Using Face

satinder147 / Attendance Using Face

Licence: mit
Face-recognition using Siamese network

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Attendance Using Face

Libfaceid
libfaceid is a research framework for prototyping of face recognition solutions. It seamlessly integrates multiple detection, recognition and liveness models w/ speech synthesis and speech recognition.
Stars: ✭ 354 (+103.45%)
Mutual labels:  opencv, face-detection, face-recognition, dlib
Awesome Face Detection
Compare with various detectors - s3fd, dlib, ocv, ocv-dnn, mtcnn-pytorch, face_recognition
Stars: ✭ 106 (-39.08%)
Mutual labels:  opencv, face-detection, face-recognition, dlib
Get Me Through
A Free, Offline, Real-Time, Open-source web-app to assist organisers of any event in allowing only authorised/invited people using Face-Recognition Technology or QR Code.
Stars: ✭ 255 (+46.55%)
Mutual labels:  mongodb, face-detection, face-recognition, dlib
Facemoji
😆 A voice chatbot that can imitate your expression. OpenCV+Dlib+Live2D+Moments Recorder+Turing Robot+Iflytek IAT+Iflytek TTS
Stars: ✭ 320 (+83.91%)
Mutual labels:  opencv, face-detection, dlib
Recogcis
Face detection & recognition AR app using the mlmodel to recognize company employees.
Stars: ✭ 28 (-83.91%)
Mutual labels:  vision, face-recognition, face-detection
Imagedetect
✂️ Detect and crop faces, barcodes and texts in image with iOS 11 Vision api.
Stars: ✭ 286 (+64.37%)
Mutual labels:  face-detection, face-recognition, vision
Facecropper
✂️ Crop faces, inside of your image, with iOS 11 Vision api.
Stars: ✭ 479 (+175.29%)
Mutual labels:  face-detection, face-recognition, vision
Php Opencv
PHP extensions for OpenCV
Stars: ✭ 524 (+201.15%)
Mutual labels:  opencv, face-detection, face-recognition
Human Detection And Tracking
Human-detection-and-Tracking
Stars: ✭ 753 (+332.76%)
Mutual labels:  opencv, face-detection, face-recognition
Facer
Simple (🤞) face averaging (🙂) in Python (🐍)
Stars: ✭ 49 (-71.84%)
Mutual labels:  opencv, face-detection, dlib
Android Hpe
Android native application to perform head pose estimation using images coming from the front camera.
Stars: ✭ 46 (-73.56%)
Mutual labels:  opencv, face-detection, dlib
Opencv Face Filters
Snapchat-like Face Filters in OpenCV
Stars: ✭ 51 (-70.69%)
Mutual labels:  opencv, face-detection, face-recognition
facenet-darknet-inference
Face recognition using facenet
Stars: ✭ 29 (-83.33%)
Mutual labels:  face-recognition, face-detection, dlib
T System
the moving objects tracking system via two axis camera motion (and as optionally n joint robotic arm) for raspberry pi distributions
Stars: ✭ 17 (-90.23%)
Mutual labels:  face-recognition, face-detection, dlib
Add Christmas Hat
Add Christmas hat on one's head based on OpneCV and Dlib
Stars: ✭ 251 (+44.25%)
Mutual labels:  opencv, face-detection, dlib
Face recognition py
基于OpenCV的视频人脸识别
Stars: ✭ 215 (+23.56%)
Mutual labels:  opencv, face-recognition, dlib
Opencv Course
Learn OpenCV in 4 Hours - Code used in my Python and OpenCV course on freeCodeCamp.
Stars: ✭ 185 (+6.32%)
Mutual labels:  opencv, face-detection, face-recognition
Marvel
Marvel - Face Recognition With Android & OpenCV
Stars: ✭ 199 (+14.37%)
Mutual labels:  opencv, face-detection, face-recognition
Predict Facial Attractiveness
Using OpenCV and Dlib to predict facial attractiveness.
Stars: ✭ 41 (-76.44%)
Mutual labels:  opencv, face-detection, dlib
Robovision
AI and machine leaning-based computer vision for a robot
Stars: ✭ 126 (-27.59%)
Mutual labels:  opencv, face-detection, face-recognition

Face_recognition_attendance_system

The Basic Approach

This is my attempt to make a Face recognition system for classroom or office attendance. The system is based on a special type of cnn architecture known as a siamese network. Such a network is trained to generate a very accurate and almost unique 128 vector given that the images of face which a are fed to the network are properly aligned and cropped.
Then another dense neural network is trained taking input these embeddings. The second neural network is only for classification purposes. Then the person who is identified by the system, his/her attendance in the system is incremented by 1.
When the system is closed, a excel file consisting of attendance of all the students is generated.

maxresdefault taken from DeepLearning.ai.
You can watch these videos. Professor Andrew Ng gives an excellent explanation to these networks.

Embedding Generator

I have download the pretrained facenet model from nyoki-mtl githubu
This network is pretrained on a pretty large dataset, and produces a unique 128 dimensional vector for a particular face given the images fed to it are cropped to only the face region and are alligned. The input size of image for this netowrk is 160X160X3

Face Detection

Face detection is acheived by using haar cascades of opencv. Face detection haarcascade is used to detect the face and this detected region is fed to the embedding generator.

The second neural net

The second neural network has a dense architecture and is used for classification. The second neural network take input the 128 dimensional vector and ouputs the probability of the face to be one of the student.The architecture of the second neural network is screenshot from 2018-09-26 17-57-00

Updation of attendance

The database used is mongodb. Pymongo is used to add, delete records and also increment the attendance of the particular student. mongodb

csv file generation

After the application is closed, an excel file is generated. This excel file contains the attendance of all the student.

Requiremnents

Installing the requirements

  1. Start your terminal of cmd depending on your os.

  2. If you have a NVidia GPU then make sure you have the prerequisites for Tensorflow GPU installation (Refer to official site). Then use this commmand

    pip install -r requirements_gpu.txt

  3. In case you do not have a GPU then use this command

pip install -r requirements_cpu.txt

Apart from all this you also have to install mongodb in your system.

Want to run it on your own

1)Install all the requirements

2)Make a folder named "people" without quotes

3)Now run Generating_training_data.py, when this runs enter the name of the person followed by a index beginning from zero for example, if I want to generate data for "ravi", I will write "ravi0" and for the next name write "secondname1", just make sure the index given to everybody is in increasing order. Now put all this folders into the people folder

screenshot from 2018-09-26 18-00-10

4)Now in trainer.py change the number of classes according to number of folder and then run trainer.py

5)The model will be trained.

6)Now create a database using mongodb. Enter all the names with their attendance. This can be acheived by
a)create a data base named "new"
b)create a collection named "pa"
c)add the enteries. For eg db.pa.insert({"name":"satinder","attendance":0})

screenshot from 2018-09-26 18-02-31

7)Now open recognizer.py and change the dictionary "a" and people according to your data. The key of array "a" is the index of the people and the data is a indicating variable which is used to indicate that in a particular session, if the person attendance has been taken.

8)Dictionary "people" is self explanatory.

9)Run recognizer.py to recognize people. Their attendance will be registered in the mongodb database.

Results

screenshot from 2018-09-26 17-51-03

Updated attendance in the database

screenshot from 2018-09-26 17-51-17

Liked it

If you liked it you will surely like my other repos as well. You can also have a look at my youtube channel "reactor science". If you have any doubts you can contact me on my facebook page "reactor science"

References

1)Deep learning with python by Francois Chollet
2)keras.io
3)Deeplearning.ai by coursera(prof Andrew Ng)
4)CS231n by stanford
5)Pyimagesearch.com(Adrian Rosenberg)
6)Brandon Amos(github:https://github.com/bamos)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].