Face Detection and Smile Classifier - Results
Patrick Wong, Eric Chan Lam Choi, Gregory Peaker
Overall Results
Here we show the results of our work. Click the above links to read about the techniques used to achieve the results.
Face Detection
Overall, after a test run with 20-30 test images, we’ve found that our algorithm can detect faces in an image with 82% accuracy. Some images returned false positives having detected other objects of similar color as the skin as faces. Others missed a few faces here and there because some of the faces were too small compared to every other face in the image (this can be fixed if we implemented a dynamically sized block to scan the image instead of a static one calculated by the average face size). The results are promising, and we can safely use this face detection algorithm for the smile detection task.
Smile Classifier
We created our classifiers using our training dataset, and ran it against our test dataset. The most accurate classifier was the Naïve Bayes classifier which classified 77 out of 88 images correctly, while the least reliable was the decision tree with only 71 correctly classified faces. In the middle was the neural network with 74 classified correctly. Below is the graph showing their accuracies:
From our testing data, we find that the most influential attributes for all the classifiers is the upper lip curvature, and the percentage of white in the lips portion of the picture. Of course, they are not the sole contributors to the classification, as the below figure for the distribution of ‘yes’ smiles relative to the upper lip curvature and percentage of whites show:
This is not surprising since a cursory look through the images does indeed show a strong correlation between the two attributes and whether the person is smiling or not. It is evident, however, that the percentage of white was not as strong as there were more negative outputs overlapping with the positive ones.
We were quite surprised at the performance of the Bayes classifier as we thought traditionally neural networks performed best when it came to facial analysis problems. However, neural networks depend on a large dataset, which we did not have, so it could have factored into its inferior performance. Conversely, a smaller dataset is more effective when classified with Naïve Bayes.