This project is a flexible Java framework for face detection and face recognition technologies, that is based on different plugin and filter types. A suitable graphical interface can be used to set up pipelines for detection and recognition by combining these plugins and filters. Moreover an integrated photo browser allows users to apply the face detection and recognition process on personal images.
Modules included in the current release of faint:
- OpenCV-Haarclassifier-Detection - JNI adapter to Intel's OpenCV implementation of the Viola-Jones detection algorithm.
- Betaface.com-Detection - Web Service adapter to detection functions of Betaface.com.
- Skin-Color-Filter - Makes use of an 8Kb hue-saturation lookup table, based on training images provided by Michael Jones.
- Eigenface-Recognition - A pure Java-based implementation of the Eigenfaces approach.
- Simple-Context-Filter - Recognition filter avoiding duplicate occurrences of a person on a single photo.
The detected and recognized faces are stored in a local database, which can be modified manually from inside the application. In addition all face annotations can also be stored directly into the image files in Adobe XMP-Format on demand.
Initially developed in the context of a Bachelor Thesis at the University of Oldenburg, faint has been integrated into several projects maintained by the OFFIS Institute for Information Technology. To attract a broader audience, the source code has been released under GNU General Public License (GPL) in October 2007.
The demo videos below show the main features of the faint framework. There is no audio commentary, but most of the presented processes are quite self-explanatory.
|Video 1||5:57 Min||38 Mb||Video 1 introduces the photo browser, followed by a demonstration of the OpenCV- and the Betaface.com-Detection plugin.|
|Video 2||2:44 Min||37 Mb||Video 2 demonstrates the skin color filter and the possibilities of manual user intervention in the detection process.|
|Video 3||4:42 Min||18 Mb||Video 3 shows configuration and use of the Eigenface-Recognition-Plugin as well as the face database and the manual annotation of faces.|
All video files were recorded with Camtasia Studio and require a Flash player.
To make use of the framework's capabilities in your own applications, it is possible to simply use the JAR file referenced above as a Java library.
The full source code is available from a Subversion repository (SVN) at the project's SourceForge site. If you intend to develop detection or recognition plugins or filters, please have a look at the interfaces package. A module configuration file is used to identify all plugins and filters at startup time. For more information feel free to contact the author via SourceForge.
The faint-framework and all listed modules were developed by Malte Mathiszig in the context of his Bachelor Thesis at the University of Oldenburg and the OFFIS Institute for Information Technology in 2006/2007. Special thanks to Philipp Sandhaus, Susanne Boll, Oleksandr Kazakov and Michael Jones for making the development of this project possible!