uWho – Face recognition and tracking program

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”.

Picture of my program, uWho showing faces being found and classifiedKey: 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!

Me, being classified:face_detection_2


Tags: , , , , , , ,

12 responses to “uWho – Face recognition and tracking program”

  1. Grumpy Young Man (@GrumbleTweeter) says :

    Oh dear, the first steps towards Person of Interest (IMDB http://www.imdb.com/title/tt1839578) becoming reality!

  2. John says :


    I am trying to reproduce it but after 3 days of struggling, Im about to give up. Can you provide a tutorial on how to install opencv. qt creator and your project in such a way that it works straight on? (using Windows).

    I keep having all kind of include errors…

    I am unsure about which versions to use (eg opecv is already on 3.0, but did you still use 2.x?), and so on.


    • jwcrawley says :

      Hrm.. On Windows? I haven’t worked with or tested it on Windows at all, but I see no real reason why it wouldn’t work.

      I just tested on another Linux (ubuntu 14.04) installing the whole toolchain. Download the latest stable OpenCV http://opencv.org/downloads.html, the appropriate dev libraries for compiling OpenCV, apt-get install qtcreator, and download uWho.

      OpenCV 3.0 beta was giving me some weird compile errors. The stable version never has.

      Windows OpenCV instructions: http://docs.opencv.org/doc/tutorials/introduction/windows_install/windows_install.html
      Windows QT installers: http://www.qt.io/download-open-source/#section-2

      Once you get the toolchain up, then you have to edit the path in uWho.pro to where OpenCV is. Once you compile the program, you must copy the josh* images and the cascade files to the executable directory. Then it will work.

      All the best,

      • John Hanson says :

        Its probably a QT issue with paths…

        I have in uWho.pro:
        INCLUDEPATH += C:\opencv\build\include\
        LIBS += -LC:\opencv\build\x64\vc10\lib

        And I get errors like:
        D:\projects\uWho-master\config.h:5: error: C1083: Cannot open include file: ‘opencv2/core/core.hpp’: No such file or directory

        And several more the same….

        My OpenCV is in c:\opencv, so includes are here: c:\opencv\build\include\opencv and c:\opencv\build\include\opencv2

        It seems like QT does not use the includepath in uWho.pro…. and suggestion?

      • John Hanson says :

        A few steps further….

        – It seems that I need to manually delete makefiles before a change in the .pro file results in a rebuild. So tht explains why my correct path settings didn’t work. Now it does….

        – Then I got library not found while linking errors… After each LIBS += line in the .pro file a \ is needed for it to work.

        Now I still got 42 unresolved external symbols to fix….. almost there I think.

  3. sleepyfatguy says :

    This tool could be fantastic for volunteers in disasters and emergencies!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: