Facial Feature Clusters

The idea of this study is to automatically cluster something like pose based on the location of the facial features. For each face, a feature vector was created in the following way:
  1. Subtract the center point of the head box from the feature positions.
  2. Scale the feature points by height of the head box.
  3. Concatenate scaled and translated feature positions into a new vector
  4. Flip the feature positions horizontally by swapping the x- and y- positions of eye and mouth features.

Then, we applied the mixture of Gaussians algorithm to find 20 clusters. Finally, we inspect which faces are in which cluster. Because of we included horizontally symmetric features in the training data, not all clusters contain actual data points.

This approach has an interesting side effect, which is to cluster together very different head poses that have similar appearances, i.e. the eyes, nose, and mouth are in similar poisitions, even though the head is in a very different pose. This may be desirable for training a face detector, because it can focus on features like eyes and mouth.

The goal of this clustering is to improve the algorithm for choosing face boxes based on feature positions, so that the training images are maximally similar to eachother. This is expected to improve the ease of training a cascade.

Cluster 1

Cluster 2

Cluster 3

Cluster 4

Cluster 5

Cluster 6

Cluster 7

Cluster 8

Cluster 9

Cluster 10

Cluster 11

Cluster 12

Cluster 13

Cluster 14

Cluster 15

Cluster 16

Cluster 17

Cluster 18

Cluster 19

Cluster 20