Digikam is a photograph collection manager able to collect, organize and send pictures to some major web gallery services, like Picasa Web or Flickr. Face recognition is useful for it's purpose as it makes tagging people on photos really easy and painless. People with thousands of photos in their library would get much of the work needed to catalog them done by digikam right in the process of acquisition from media.
The scope of this project is to implement in digikam a face recognition component (using Principal component analysis - PCA) which automatically tags faces when new photos are inserted. This is one of the highest priority feature request: wish 146288.
This component should be able to keep a little database of known faces and apply the related tags for them. When a face is not recognized in those present in the database, the face should however be selected and tagged manually by the user.
The goal will be reached by achieving several milestones:
Milestone 1: implement region tagging as described in bug 146337
Milestone 2: face detection using image template matching technique
For this purpose OpenCV's face detection might be a choice. A good article about template matching is [COLE]
Milestone 3: face recognition using PCA
To reach such goal OpenCV should be considered.
Milestone 4: creation of a face database.
All the faces already present in the user library must be detected with [2] and then normalized and stored in the database with associated information received from user's prompt. Duplicate face detection must be also implemented.
Milestone 5: tagging.
When a photograph is inserted in digikam and a face is detected, the program automatically tries to recognize that face and show to the user a frame on to it with the correct associated tag. If the face is only detected, the user will be prompted for tag insertion. Once the face is tagged it is added to the face database in digikam.
A use-case diagram of the features to be added to digikam is shown below:


