Comment 61 for bug 507511

Revision history for this message
In , claudio (claudio-noguera) wrote :

I definitely think this should be implemented. To me there are three steps for developing this:

1. Prepare the database so that it can save where the face is in a picture. It could also be extended to enable region tagging (like facebook or flickr have).
2. Implement face detection.
3. Implement face recognition.

The advantage of this approach is that each of the three steps will be seen as an improvement by the final user. Another advantage is that the whole face detection thing will be easier to implement if it can be divided in incremental steps.

An this is briefly how I think each of the steps could be solved:
1 --> add a "position" field to the imagetags table in the database, it would be empty if it is a global tag.
2 --> train a boosting model based on several haar features. Once trained, digikam should just calculate the haar features and apply the model. This is fast, and notice that no classifier training is done in the computer's machine. Picasa does this. The facedetect example in the openCV library uses too little features, that's why it doesn't work properly (there are too many false positives).
3 --> I think this is a clustering problem, but I have never tried to solve it. I guess it is an easier problem than face detection.

I have some experience in machine learning and computer vision, unfortunately no experience in C++ developing. Anyway, I'd like to help in getting this implemented.