OpenCV based facial recognition and tracker
C++ QMake
Permalink
Failed to load latest commit information.
LICENSE.md Readme and license Mar 1, 2015
README Update code, fixing issues and making things more readable Aug 16, 2015
config.cpp Update code, fixing issues and making things more readable Aug 16, 2015
config.h Files added to count instance of users and how many Mar 11, 2015
config.ui Config partially done, autodetects cameras and resolutions Mar 10, 2015
configure-gears.png Config partially done, autodetects cameras and resolutions Mar 10, 2015
dirpics.png Added opening folder of images for face processing. Mar 4, 2015
haarcascade_eye_tree_eyeglasses.xml Initial release - Facial recognition and tracking Mar 1, 2015
internet-cloud-icon.jpg Making new logic for the IPcamera grabber. Classify that! Mar 4, 2015
josh1.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh10.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh11.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh2.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh3.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh4.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh5.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh6.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh7.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh8.png Incorporated media files as resource, simpler handling Mar 5, 2015
josh9.png Incorporated media files as resource, simpler handling Mar 5, 2015
lbpcascade_frontalface.xml Initial release - Facial recognition and tracking Mar 1, 2015
main.cpp Initial release - Facial recognition and tracking Mar 1, 2015
mainwindow.cpp Update code, fixing issues and making things more readable Aug 16, 2015
mainwindow.h Update code, fixing issues and making things more readable Aug 16, 2015
mainwindow.ui Config partially done, autodetects cameras and resolutions Mar 10, 2015
resources.qrc Files added to count instance of users and how many Mar 11, 2015
uWho.pro Update code, fixing issues and making things more readable Aug 16, 2015
uWho.pro.user Update code, fixing issues and making things more readable Aug 16, 2015
videofile.png Beginning of rudimentary QT gui Mar 3, 2015
webcam.png Beginning of rudimentary QT gui Mar 3, 2015
webget.cpp Update code, fixing issues and making things more readable Aug 16, 2015
webget.h Update code, fixing issues and making things more readable Aug 16, 2015
webget.ui Update code, fixing issues and making things more readable Aug 16, 2015

README

Updates: 16 Aug 2015
OpenCV version to 3.0.0, using Contrib and main branch. Uses newer OpeCV function calls, not well documented.
Modularizing code so the subroutines can be changed easily
Purging ugly rand() code still. Webcam subroutine is current.
General cleaning

Todo: 
Clean up other subroutines
Merge changes that modularize code
General feature adds.


Updates:

Can open webcam for face processing.
Can open video file for face processing.
Can open directory of images for face processing.
Cleaned up code some. Solved a few crashy areas.

Todo:
Sequentalize tracking instead of ugly std::rand()%30000 .
Add another file to write that includes face ID to an entered name.
Limits to how many samples of the same person's face.
Add a tracker that adds to a file (Face ID, time) on webcam streams
Add a IPcam module that pulls frames online at set intervals. 

uWho is a Facial tracking program. I made this to suit the need to find unique faces and to count uniques.

We are running Makevention in Bloomington, IN as part of the hackerspace Bloominglabs. Relying on someone to fill out a paper chit to track how many people showed up, I implemented a unique face finder by way of faceRecognizer class in OpenCV.

The face ML algo stores the face.xml in the same directory the program is written.

You'll need OpenCV compiled for your machine. Then go into the uWho.pro file in Qt Creator and change your paths appropriately. When you run the program, it will immediately start classifiying new faces. I included a few of my faces to start the seed for the faceRecognizer class.

The console will output the face# attributed to that face, along with an estimation of how close that face is.

On the video, the number in the upper right of a face is the face number in the video (can handle arbitrary amount of faces per image). The number in the upper right of image is face ID. The face ID is generated randomly on a new face.