This is what my program looks like now! The first 3 work well, with the 4th (IPCams) being worked on as I type. I’m going to look for processing 10 at most, to start with. I’m also needing some sort of pretty feedback for the Open Folder, as I currently have feedback via a qDebug() , which is very much against user interactive good practices.
I’ve my work cut out for me!
If you click on Open Video file, you get a QT file dialog. Select the video you want to process. For example……
Or if you want Webcam data processed, click on the webcam. Make sure to have a webcam plugged in. Else, crash. Yeah, I know.
I’ll be adding in file management for figuring out who people are, and more bells and whistles.
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!