For the study module “Advanced Real Time Systems” in my current master’s degree programm named High Integrity Systems, the task was to work on a project which is closely related to real time systems.
A fellow student of mine, Christian von Harscher, and I decided to work on a current toppic of computer sciences: Face Recognition and wether it is usable in real time applications or not. We took the (at that time) current OpenCV distribution and did a benchmark wether OpenCV’s face detector and face recognizer is real time cappable. In detail we did a benchmark on the LBPH (local binary pattern histograms) face recognizer which is shipped with OpenCV 2.4.
For successfully performing the task it was necessary to develop an application which first detects a face from a stream, learns the face (the name of the person), and later recognizes it and writes the learned name to the face. The video stream was provided by a simple USB webcam so that the faces could be learned from that stream and could then be recognized in the same context. All this we have implemented using Python and the OpenCV 2.4 libraries.
The final outcome was that the LBPH face recognizer included with OpenCV 2.4 is indeed usable in real time applications. Finally the project was presented to the other students and to the Professor, it was graded with 1.3 (which is very close to very good).