330 likes | 535 Views
Face Detection Using Neural Network. By Kamaljeet Verma (05305905) Akshay Ukey (05305045). Problem Definition. Identify and locate human faces in an image regardless of their: Position Scale Orientation Illumination. Motivation. A challenging problem faced by Computer-Vision community.
E N D
Face Detection Using Neural Network By Kamaljeet Verma (05305905) Akshay Ukey (05305045)
Problem Definition • Identify and locate human faces in an image regardless of their: • Position • Scale • Orientation • Illumination
Motivation • A challenging problem faced by Computer-Vision community. • Face is a highly non-rigid object. • Main step before Face Recognition. • First step in many surveillance systems. • Example applications: • Automated security systems • Intelligence information • Robotics
Face Pattern Space • Consider 19 x 19 thumbnail face pattern. • Possible combinations of gray values is 256361 = 22888 • Number of galaxies in the Universe ≈ 235 • Extremely high dimensional space.
Difficulties in Face Detection • Facial Expressions • Smiling, frowning, etc. • Presence or absence of structuralcomponents • Beard, moustache, glasses, etc. • Pose • Frontal, upside down • Position • Location of the face in the image.
Difficulties in Face Detection • Scale • Size of the face in the image can vary. • Orientation • Face appearance directly vary for different rotations about the camera’s optical axis • Illumination • Images taken in different lighting conditions adds to the variation in face pictures.
Example Images from CMU dataset
Current Research • Representation of a typical face in the computer. • Search Strategy • Increasing the speed of the process of system. • Achieving accuracy. • Combining detection results.
Appearance based method • Models • Learned from a set of training images. • Training set • Captures the representative variability of facial appearance.
Build Training Set • Proper mix of positive and negative examples. • Positive Examples • Having as much variation as possible. • Manually resize each into a standard size(e.g.:19 x 19) • Negative examples • Images not containing face • Large image subspace • Bootstrapping
Representation • Raster scanned image represented by a vector of intensity values. • Block-based • Process each image as if divided into blocks. • Blocks may be overlapping or non-overlapping
Pre-processing • Masking • Minimize background noise in face image • Illumination Gradient Correction • To minimize heavy shadows due to lighting angles. • Histogram Equalization • To compensate for difference in illumination brightness, skin colours, camera responses, etc.
Masking • Remove near-boundary pixels with 19 x 19 binary mask. • For avoiding unwanted background structure from face image. • Effectively reduces the 19 x 19 pixel window vector space.
Illumination Correction • Take an image of 21 x 21 pixels. • Divide it into 7 x 7 blocks. • For each block compute minimum intensity pixel giving 3x3 minimal brightness plane. • Resize the plane to 21 x 21. • Subtract this plane from original image.
Histogram Equalization • Equalize intensity values. • Expand range of intensities in the window.
Classifiers • Different classifiers can be used. • Classifiers • Neural Network • Principal Component Analysis • Support Vector Machines • Naives Bayes Classifier
Neural Network - Introduction • A modeling technique • Based on the observed behavior of biological neurons. • Used to mimic the functioning of brain. • Features • Ability to adapt to new environments. • Made up of large number of processing units. • High processing speed. • Used to solve many complex problems.
Components of a Neural Network • Four Main Components • Processing Units (pj) • Each pj has a certain activation level • Weighted Interconnections • Determine how the activation of one unit leads to input for another unit. • An activation rule • Used to produce output signals. • A learning rule • Specifies how to adjust the weights for a given input/output pair.
The Perceptron Model • A perceptron is a computing element with input lines having associated weights and the cell having a threshold value. • Model motivated by the biological neuron. Output (y) Threshold (θ) w1 wn Weights w2 . . . x1 x2 x3 Inputs
NN in Face Detection? • Neural Nets can classify data into a given set of classes. • Face Detection Classes • Face class • Non Face class • Face Detection Input and Output • The shade of GRAY of each pixel is presented to the neuron in parallel. • E.g. for a 10 X 10 pixel image, there will be 100 input lines x1 to x100, with respective weights w1 to w100. • The output y will represent the presence or absence of a face.
NN based Face Detector (Rowley) • Two Stages: • It applies a neural network-based filter to an image. • It arbitrates the filter outputs. • Filter • examines image at several scales. • Detects locations containing faces. • Arbitrator • Merges detections from individual filters • Eliminates overlapping detections.
Stage 1. NN based Filter • 20 X 20 window is extracted from input image. • Preprocessing • Applied to the 20 X 20 window. • Attempts to equalize the intensity values across the values. • Steps • Illumination Correction • Histogram Equalization
Stage One • Neural Network • Input is the 20 x 20 preprocessed window. • Input Layer • Consists of 400 pixel intensity values. • Hidden Layer • Consists of 3 types of hidden neurons • 4 which look at 10 x 10 pixel subregions • 16 which look at 5 x 5 pixel subregions • 6 which look at overlapping 20 x 5 pixel subregions. • Output Layer • Single neuron having real value in the range [-1,1] • Indicates if the window contains a face or not.
Stage One • Training • Neural network is trained using standard backpropagation algorithm. • Done on face examples gathered from face databases at CMU and Harvard. • Face examples easy to find. • Non face examples • Very large space • Collecting small “representative” set is difficult. • Bootstrapping technique can be used.
Stage One • Bootstrapping • Start with a set of non-face examples in the training set • Train the neural network with the current training set. • Run the learned face detector on a sequence of random images. • Collect all the non-face patterns wrongly classified as faces. • Add these non-face patterns to the training set. • Go to step 2 or stop if satisfied.
Stage One Scaling Scale down the image by a factor of 1.2 and run the algorithm again. (Process continued until image size is too small). Scan an input image and run the algorithm.
Stage Two: Arbitration • Merging overlapping detections within one network. • Use multiple networks • initialize them to different initial weights. • Run the algorithm. • Different sets of negative examples will result. • Arbitrate among their outputs. • Eg. Signal face detection only when all the networks agree that there is a face.
Experimental Results False Miss False Detect The algorithm can detect between 78.9% and 90.5% of faces in a set of 130 test images, with an acceptable number of false detections.
Conclusion • The neural network approach has better performance in comparison to other approaches. • The technique reduces the processing time by not using fully connected network. • The approach is heavily dependent on the training set selected.
References • H. Rowley, S. Baluja, and T. Kanade, Neural Network-based Face Detection, Proc. of IEEE Conf. on CVPR, 1996. • H. Rowley, S. Baluja, and T. Kanade, Neural Network-based Face Detection. IEEE Trans. Pattern Anal. Mach. Intelligence, 1998. • K.K Sung, and T Poggio. Example-based learning for view-based human face detection. IEEE Trans. Pattern Anal. Mach. Intelligence, 1998. • Recent Advances in Face Detection, IEEE ICPR 2004 Tutorial, Cambridge, United Kingdom, August 22, 2004.