Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lauszus/facerecognitionlib
Library for calculating Eigenfaces and Fisherfaces in C++
https://github.com/lauszus/facerecognitionlib
eigenfaces face-recognition fisherfaces
Last synced: 24 days ago
JSON representation
Library for calculating Eigenfaces and Fisherfaces in C++
- Host: GitHub
- URL: https://github.com/lauszus/facerecognitionlib
- Owner: Lauszus
- License: gpl-2.0
- Created: 2016-10-15T14:42:03.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-07-10T16:49:32.000Z (over 7 years ago)
- Last Synced: 2023-10-20T21:10:20.540Z (about 1 year ago)
- Topics: eigenfaces, face-recognition, fisherfaces
- Language: C++
- Homepage:
- Size: 10 MB
- Stars: 67
- Watchers: 10
- Forks: 61
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Face Recognition Library
#### Developed by Kristian Lauszus, 2016The code is released under the GNU General Public License.
_________This library can be used in order to calculate [Eigenfaces](http://www.face-rec.org/algorithms/PCA/jcn.pdf) and [Fisherfaces](https://cseweb.ucsd.edu/classes/wi14/cse152-a/fisherface-pami97.pdf) in C++.
This Eigenfaces are calculated efficiently as described in the [paper](http://www.face-rec.org/algorithms/PCA/jcn.pdf) by M. Turk and A. Pentland.
The [Eigenfaces.m](Eigenfaces.m) Matlab script was used for development and was then ported to C++.
If you want to convert the PGM image run the [convert_pgm.sh](convert_pgm.sh) script.
## Documentation
Some information can be found in the [Eigenfaces_Report.pdf](Eigenfaces_Report.pdf).
The [final project report](Final_Project_Report.pdf) describing Fisherfaces and the [Android application](#android-application) is available as well.
A short blog post can be found at the following link: .
The source is documentated using [Doxygen](http://www.stack.nl/~dimitri/doxygen). The documentation can be found at the following link: .
## AT&T Facedatabase
When using the code with the [AT&T Facedatabase](http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html) the output looks like this:
#### Eigenfaces:
#### Fisherfaces:
Notice how the Eigenfaces is only slightly worse compared to Fisherfaces.
## Yale Face Database
However when using the [Yale Face Database](http://vision.ucsd.edu/content/yale-face-database) the difference is significant:
#### Eigenfaces:
#### Fisherfaces:
This clearly shows the weakness of Eigenfaces, as it only maximizes the scatter between classes and thus end up matching all images with light coming from the left side.
Note you need to prepare the Yale Face Database by running the [convert_yalefaces.sh](convert_yalefaces.sh) script first.
## Android application
This library was used for an [Android application](https://github.com/Lauszus/FaceRecognitionApp). Some screenshots can be seen below:
## Build instructions
In order to build the C++ code and run the script you need to install [Eigen3](http://eigen.tuxfamily.org) and [ImageMagick](http://www.imagemagick.org):
Mac:
```bash
brew install eigen imagemagick
```Ubuntu:
```bash
sudo apt-get install libeigen3-dev imagemagick
```The [RedSVD](https://github.com/ntessore/redsvd-h) library is included as a submodule.
For more information send me an email at .