Bug 365669

Summary: Face Recognition improvement suggestion
Product: [Applications] digikam Reporter: Evert Vorster <evorster>
Component: Faces-RecognitionAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist CC: 1127553236, caulier.gilles
Priority: NOR    
Version: 5.1.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 7.0.0
Sentry Crash Report:

Description Evert Vorster 2016-07-14 12:13:09 UTC
The accuracy of the face recognition is pretty bad. ( I got an approximate 10% hit ratio ) 
The automatic recognizer then also puts away the images into the categories where it thinks they belong... I'm not saying I'm popular or anything, but in ten year's of photographs I have met and photograped quite a number of people, and correcting the autotags with such a horrible hit ratio can be quite painful. 

So, why not have the face recognition algorythm run whenever the tagger dialog is activated on a window/icon? Then it would be possible to give the user the top three guesses as to whose face it is that is being displayed, as well as a free form text entry to make new tags, or search for existing tags.

Reproducible: Always
Comment 1 caulier.gilles 2017-02-25 11:47:38 UTC
*** Bug 376901 has been marked as a duplicate of this bug. ***
Comment 2 caulier.gilles 2017-02-25 11:50:51 UTC
The face recognition is based on a dedicated algorithm plugged in faceEngine class from digiKam core.

A new one can be add without to introduce a dysfunction. In GUI we can make it selectable.

This is the goal of GSoC 2017 idea :

https://community.kde.org/GSoC/2017/Ideas#Project_4_:_digiKam_Face_Management_improvements

Gilles Caulier
Comment 3 caulier.gilles 2017-02-25 11:52:26 UTC
This file is also an entry  to process in GSoC 2017 :

https://bugs.kde.org/show_bug.cgi?id=291514

Gilles Caulier
Comment 4 caulier.gilles 2017-02-25 11:53:11 UTC
Another one entry to process while GSoC 2017 :

https://bugs.kde.org/show_bug.cgi?id=316897

Gilles Caulier
Comment 5 caulier.gilles 2017-02-25 11:55:09 UTC
Yingjie Liu,

Please review enties from bugzilla that i start to list in this file for GSoC 2017. Create a private proposal in Google Doc and share with me in private. I will forward to other developers.

Gilles Caulier
Comment 6 Evert Vorster 2017-03-03 05:25:22 UTC
Hi there, Gilles. 

 I think my suggestion here was more to have a sort of training mode for the face recognition software. Normally it tries to detect and recognize all the faces as quick as possible.
Unfortunately, this causes many faces to be wrongly detected and it is a pain to fix. 
 
I was thinking of a "training" or "manual" mode where the face tagger would go through your photos and stop as soon as it detects a face. The UI can then show the face, along with an configurable amount of guesses as to whose face it is in the picture. The user can then select the correct face, or add a new tag if the name is not on the list. Then it can carry on to the next face. 
In this way the software tries to help, and may speed up face tagging, but it won't be incorrectly tagging faces, and so won't learn the wrong faces.

This alternative workflow would reduce the wrong detections quite a bit. Once the face tagger guesses correct every time, then one can put it into automatic mode. 

-Evert-
Comment 7 caulier.gilles 2018-01-04 22:59:55 UTC
Git commit 300aa8b31de59661c0f66179abbb50b9f6580d76 by Gilles Caulier.
Committed on 04/01/2018 at 22:51.
Pushed by cgilles into branch 'development/6.0.0'.

turn off option to select the recognition algorithm for faces management.
The default one is DNN always used is Deep learning using Neural Network.
The selection combo box still visible but disabled, in case of users feedback look wrong.
Remove unsused code.

M  +16   -71   utilities/facemanagement/facescandialog.cpp
M  +3    -3    utilities/facemanagement/facescandialog.h
M  +7    -6    utilities/facemanagement/facescansettings.h
M  +1    -1    utilities/maintenance/facesdetector.cpp
M  +3    -3    utilities/maintenance/facesdetector.h
M  +1    -0    utilities/maintenance/maintenancesettings.cpp
M  +3    -3    utilities/maintenance/maintenancesettings.h

https://commits.kde.org/digikam/300aa8b31de59661c0f66179abbb50b9f6580d76
Comment 8 caulier.gilles 2019-12-23 07:48:59 UTC
7.0.0 use now OpenCV neural network deep learning module for detection and recognition.