Apperance-based Face Detection in Grey Scale Images
Synopsis
This a chanllenging while interesting project!
In this project, your task is to design an effective face detecting program in matlab. Face detection is a long-existing and
very-active research fields. For a general description of face detection topic, you can check Face Detection Home Page , or Face Recognition Home Page (this topic share a lot with face
detection).
- Design & implementation a good apperance-based face detecting program, and compete with other students' implementations.
- Understand the numerical computing methods/ideas that prevails these algorithms, gain skills/experiences in serious
research/implementation work.
In this sections, we just brief some basic face detection algorithms as examples. Please refer to corresponding references
for details. Also you are encourage to investigate & implement more advanced algorithms.
Basically, face detection algorithms consist of at least two parts: feature extraction & classification. The purpose of
feature extraction is preprocessing the image data to get better reprensentation of data, as to facilitate better
classification results. Also, many classification schemes exist, each has its peculiar strength & weakness.
Feature extraction (FE) methods, for example:
- Principle Component Analysis (PCA), a frenquently used statistical technique for optimal lossy compression of data under
least squre sense, provide orthogonal basis vector-space to represent original data.
- Linear Discriminant Analysis (LDA), which maximize the (between-class variance)/(within-class variance)
- Independant Component Analysis (ICA), an emerging method which provide independant (but not-necessarily orthogonal)
sourses to represent original data.
- Other feature extraction methods, i.e., No-negative matrix factorization(NMF), Locally Linear Embedding method (LLE),
etc.
Classification (Cl) methods, for example:
- K Nearest Neighbor (K-NN) method, and typically 1-NN while K=1
- Support Vector Machine (SVM), a novel method for classification while minimizing the "structure risk".
- Neural Network methods.
- Statistical Clustering + likelihood score, as one kind of statistical parametric classification method
- Other statistical methods, i.e., Hidden Markov Model (HMM) or Mixture Factor Analyzers (MFA), etc..
Basically, you can choose your combination of FE+Cl:
for example, PCA + LDA + K-NN.
Note that typically you are expecting to choose FE methods from the first 3 items (i.e., PCA, LDA, ICA); choose Cl methods from
the first 2 items (K-NN, SVM), based on our experience & assumption that they could be easier to understand/implement.
Still you are free to choose more advanced(?) methods, like those listed as other methods above.
Data and some basic codes
Data and some basic matlab codes are provided. Also you
can download the OSU SVM Classifier Matlab Toolbox
- The codes includes basic image I/O, So don't worry too much if you didn't take C306 before. Also codes for simple PCA
analysis and probablistic clustering algorithm are available. They are just straightforward implementations, with no
guarantee for efficiency. You are responsible for refine/rewrite them to get out of your own version of efficient face
detector.
- The provided training data is composed of two parts: face data and non-face data. Your program could learn offline from
the training data, and you can get a feeling of its performance by running on the testing data provided.
- the traing Data is for real face detection application, so very big in size. If you just have limited amount of
disk/memory, you can just use a portion of them.
- The training data is cropped face images with fixed size (19x19 pixels). Currently only front view provided.
- Currently only several simple test images are provided. Later, for easy of comparison, we will have a test dataset.For
now, you can test on the provided and your own image data, to have an idea of the performance of your program on real images.
Suggested steps and deliverables
- To get better output, you maybe need to play with the training data. For example, to divide the face orientation into 3
parts: frontal view, left view and right view; and train one model on images with similar view. After training, you get 3
models, each for one specific face orientation. In testing stage, the algorithm could be further divided into two steps for
given image window: a) decide which model to use; then b) decide if current image window contains face or not using given
model. You are encouraged to figure out your own scheme for better performance.
- 1-4 people form into one project group, and each person is responsible for one portion.
- The final output should consist of a) a write-up with clear&detailed information about the algorithms used, theories and
practical implementations of these algorithms, simulations and results, conclusion, future extension and references. b) Your
codes with user friendly GUI & Help files, with some examples to show how it works.
Marking scheme
- The project will be marked based on the performance of your group's outcome, also we will take into account your own
contribution.
- Good Performance. A testing database will be built, including a collection of images with variant contents:
simple/complex background, w/o faces, different face size & face orientations, etc. This testing set will evaluate your
algorithm's performance. Higher scores will be those softwares with higher detection rate while retain smaller amount of
false alarms.
- clearly insightful explaination of why your implemented algorithms work/fail.
- Extra credits will be given to thoese that successfully implement/utilize such methods as NMF, LLE, Clustering, HMM and
MFA as mentioned above. Also, implemention/utilization of other more advanced methods are welcome.
- Extra credits will be given to novel ideas (new algorithms, tricks to improve the detection rate).
References
- CMU Neural Network Face Detector Online Demo
-
Pentland, A., Moghaddam, B., Starner, T., "View-Based
and Modular Eigenspaces for Face Recognition", In Proceedings
of IEEE Conference on Computer Vision and Pattern Recognition,
1994.
-
Peter Belhumeur, Joćo Hespanha, David Kriegman. "
Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection. "
Special Theme Issue on Face and Gesture Recognition of the IEEE Trans. on Pattern Analysis and Machine Intelligence,
19(7):711-720, July 1997.
-
W. Zhao, A. Krishnaswamy, R. Chellappa, D.L. Swets, J. Weng, "Discriminant Analysis of Principal Components for Face
Recognition", in Face Recognition: From Theory to Applications, H. Wechsler, P.J. Phillips, V. Bruce, F. Fogelman
Soulie, T.S. Huang (Eds.). Springer-Verlag, pp. 73-85, 1998
-
Analysis of PCA-Based and Fisher
Discriminant-Based Image Recognition Algorithms , Master Thesis, Colostate Univ.2000
- more to come..
Contacts: Each project will have an instructor assigned
Last update:
Mon, Feb 11, 2002 @ 20:12:00 MST