The final stage of the pipeline uses extracted
FacialFeature
s to perform face recognition
(determining who’s face it is) or classification (determining some
characteristic of the face; for example male/female,
glasses/no-glasses, etc). All recognisers/classifiers are instances
of FaceRecogniser
. There are a couple of default
implementations, but the most common is the
AnnotatorFaceRecogniser
which can use any form of
IncrementalAnnotator
to perform the actual
classification. There are also specific recognisers for the Eigen
Face and Fisher Faces algorithms that can be constructed with
internal recognisers (usually a
AnnotatorFaceRecogniser
) that perform specific
machine learning operations. All FaceRecogniser
s
are capable of serialising and deserialising their internal state to
disk. All recognisers are also capable of incremental learning
(i.e. new examples can be added at any point).
Currently, there are implementations of
IncrementalAnnotator
that implement common
machine-learning algorithms including k-nearest-neighbours and
naive-bayes. Batch annotators (BatchAnnotator
s),
such as a Support Vector Machine annotator can also be used by using
an adaptor to convert the BatchAnnotator
into an
IncrementalAnnotator
(for example a
InstanceCachingIncrementalBatchAnnotator
).
The face detection and recognition components can be managed
separately, however, the FaceRecognitionEngine
class can be used to simplify usage.