I just got done with my initial test, using an experimental faceRecognizer library in OpenCV. This program is uWho (Github Link)
The program works pretty well. It’s simple, as it opens up a OpenCV window, displaying video content immediately. The QT side is sparse, and does nothing… yet. I’m looking at possibly adding a way to control threshold as well as person count.
This person count isn’t just counting faces, but tries to identify who someone is from previous frames. If you are unknown, your likeness is added to the
collectiv(Ω>0 is futile) existing database of faces and further trained on you. If you are known, your face is added as more training data from your previous face data.
As an example, here is uWho classifying the faces on a google image search for “faces”.
Key: Each face has 2 numbers: The upper left is the index of the face found by faceClassifier. The number in the upper right, if displayed, is what the machine learning algorithm detects as a unique face. This face is then given a random number initially.
I made this for a convention we are hosting in Bloomington, Indiana called Makevention(Link to upcoming convention). We needed a way to count how many uniques we have show up. This way seems to be the best. However we still need to discuss this in our next meetings to see if this solution is appropriate. If so, how do we publicly disclose it and all the other privacy issues. We’re not Facebook(2), we’re a hackerspace! We get it!
Regarding badness: My program only profiles and saves the unique data from a face, locally. It’s saved in the project directory as face.xml . This program does nothing online. I am seeking the ‘do no evil’ idea. Facebook and its like already have this that they use against users. My goal is this can be used in a multitude of areas. If you have a building and a club, you can watch when people enter/leave. It’s also good for conventions, given you tell people!