Information Technology Reference
In-Depth Information
establish the location of the centre of the face. The location of the nostrils is used to
calculate a centre-of-face reference line which is perpendicular to the baseline.
Nostril detection is similar to iris detection. It would be possible to use a third
nested Haar cascade if we had a training set of nostril shapes. Again, it would be
possible to use a Hough transform to detect the roughly-elliptical nostril shapes. We
adopted a geometric approach similar to the method used for iris detection. This
works very well, as the nostrils appear clearly as two dark blobs in the thresholded
image. The detailed algorithm is as follows:
5 averaging filter to remove noise and improve blob detection 9 .
2. A gradient is calculated over the image and used to estimate the direction of
illumination. Typically, illumination is from one side, meaning that one side of
the nose is illuminated and the other side is in shadow. The highest gradient on
the blurred image is shown in figure 10.
3. Local histogram equalisation is performed independently on both sides of the
nose (see figure 11). This compensates for unequal lighting.
4. Threshold image at 0
1. Use a 5
×
.
25
×
max
(
image
)
.
5. Erode thresholded image with a 3
3 structuring element (see figure 12)
6. Find the two blobs closest to the estimated tip of the nose 10 .
7. Use region selection to find the maximum and minimum points within the nostril
blobs (see figure 13).
8. return nostril boundary points
×
Once the nostril points have been detected, it is possible to calculate the centre face
reference line. A point is calculated as the midpoint of the two nostrils, and a line
perpendicular to the baseline is drawn through this point (see figure 14). The point
where the baseline and centre face line intersect is used as the reference point for
key feature measurements.
3.3.4
Ear-Tip Detection
The third set of features that we use for the facial feature vector are ear-tips. Unlike
irises and nostrils, which can be detected as blobs on the front of the face, ear-tips
can be detected as a corner along the edge of the face.
If a suitable set of training data was available, it would be possible to detect ears
using a nested Haar cascade as we do for eyes and nose. However, this introduces
the same problems as profile detection, in that it is difficult to train a Haar cas-
cade to detect edges reliably in the presence of textured backgrounds. This could be
compensated for using skin detection as previously discussed.
As we have already located the eyes, we use this as a cue to detect the location
of the ears. As the Haar cascade face detector sometimes returns a bounding box
which has cropped the ears, we expand the detection area to compensate for this.
9
Later experimentation with a larger test set showed that the averaging filter did not improve
detection accuracy, so this step was removed from the C++ implementation.
10
Initially our algorithm was thrown off by reflected light from Adrian's nose-ring but we
were able to compensate for this!
 
Search WWH ::




Custom Search