Steps
The steps to perform the skin detection are:
- Detect the face
- Profile the face
- Find probability that other pixels are skin based on face
- Threshold probability to obtain skin mask
Note, before the initial image enters the skin detection a bilateral filter is applied on it to reduce noise but preserve edges
Face Detection Using Classifier
- Face detection is done using a HAAR cascade classifier
- This returns the size and location of the face
Profiling Skin
- The face is profiled in the YCrCb colour space
- To profile the face, the face detection area is shrunk and a smaller rectangle including only skin is obtained
- The rectangle is fed into a histogram
- The initial image is compared to the histogram to generate a back projection
Converting Back Projection to a Binary Image
- The back projection is compared to a threshold and a binary skin mask is generated
- Eroding/dilation are often applied in this step, but do not seem to be necessary with this type of skin detection
Limitations
- Bright spectral lighting may cause failures
- If hands intersect face, they will mesh with face contour
Future Work
- Discrimination of different people based on their skin colour is poorly done
- People with very similar skin tones are detected as the same person
- This could potentially be corrected by tightening up tolerances and the bin count of the histogram