Design and Implementation of an FPGA-Based Face Detection System (2012)

I developed a method to find human skin in images using a color filter. The filtered image is then filtered by a second filter to detect the face in other parts of the body. The color filter was designed by testing about 1100 images of different skin colors. Then the mathematical model of the skin color is derived from the common color space. The system has been implemented in MATLAB. In this project, we tried to implement a simple face detector that could be work on an FPGA. The algorithm is in 4 parts. First of all getting image from the input. Then filter the image with a color filter. In the next step, we have so much smaller area of the image that could be filtered by a face-parts filter. In the end, the selected parts will be shown as faces. To find the color space of all faces colors, we tried about1100 sample pictures of faces. Then we found an average color which for a simple example could be the average color of a circle at the center of the face. Then all these color samples mapped into RGB space. In this space, the range of the face color with different skin colors has been determined. Then to make the skin color filter simpler to implement, the RGB changed to HSV space. Then we apply a mask that would filter all the pixels in the image and the output would be skin colors.
Color Samples in RGB
Color Samples in HSV