Skip to content

Uses the Raspberry Pi camera to detect motion and identify the person in view.

License

Notifications You must be signed in to change notification settings

jackbrucesimpson/Pidentity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pidentity

Uses the Raspberry Pi 2 camera to detect motion and identify the person in view.

Features

  • Running average motion detection (to take changes in daylight into account)
  • Searches and extracts faces using Haar Cascades (sped up with multiprocessing)
  • Face training and recognition programs using machine learning
  • Text-to-speech greeting when person is identified

raspberry pi 2 setup

Workflow

There are 3 programs involved in this workflow which acquires faces, trains a model on the faces and then identifies people and speaks to them.

Program Purpose
acquire_faces.py Detects motion and then tries to use Haar Cascades to identify faces. If faces are found, they are then saved as .png files. You will want to run this program in many different lighting conditions and with the faces different distances from the camera so you can build a large training dataset which is representative.
train_faces.py Uses the face training dataset to train a model to recognise different people.
identify_faces.py Similar to the "acquire_faces.py" program, except that instead of saving the faces, the program will try to use the trained model to identify the face and speak to the person.

Data

  • The trained Haar Cascade face is in the "haar" directory
  • Faces I have extracted and trained the program with are in "faces.tar.gz" and should be extracted before use. [To be added later]

Requirements

  • Python 2.7
  • espeak
  • OpenCV 2.4
  • picamera
  • NumPy
  • scikit-learn

About

Uses the Raspberry Pi camera to detect motion and identify the person in view.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages