In this paper, we present a neural network-based algorithm to detect frontal views of faces in gray-scale images. The algorithms and training methods are general, and can be applied to other views of faces, as well as to similar object and pattern recognition problems.
Training a neural network for the face detection task is challenging because of the difficulty in characterizing prototypical ``non-face'' images. Unlike face recognition, in which the classes to be discriminated are different faces, the two classes to be discriminated in face detection are ``images containing faces'' and ``images not containing faces''. It is easy to get a representative sample of images which contain faces, but it is much harder to get a representative sample of those which do not. The size of the training set for the second class can grow very quickly.
We avoid the problem of using a huge training set for non-faces by selectively adding images to the training set as training progresses . This ``bootstrap'' method reduces the size of the training set needed. Detailed descriptions of this training method, along with the network architecture are given in Section 2. In Section 3, the performance of the system is examined. We find that the system is able to detect 90.5% of the faces over a test set of 130 images, with an acceptable number of false positives. Section 4 briefly discusses some techniques that can be used to make the system run faster, and Section 5 compares this system with similar systems. Conclusions and directions for future research are presented in Section 6.