[digiKam-users] face recognition

Gilles Caulier caulier.gilles at gmail.com
Mon Nov 12 06:37:15 GMT 2018


Le dim. 11 nov. 2018 à 11:22, frederic chaume <frederic.chaume at gmail.com> a
écrit :

> Hi all
>
> trying to experiment the face recognition from DK6B2, and I see now
> there are 4 different algorithms. What are the differences ?
>
>
This is 4 different algorithms to process face fingerprints while faces
recognition.

This is not the face detection processing, which is another one.

Detection is one step, recognition is another one.
The 3 first one recognition algorithm are standard method more and less
efficient to process recognition :

LPB : the original method and the first one implemented in DK.

https://en.wikipedia.org/wiki/Local_binary_patterns

EigenFace : This algorithm was never finalized in DK when FR have been
implemented in DK. It's not finalized and given for testing and compare
with LPB

https://en.wikipedia.org/wiki/Eigenface

FisherFace : This algorithm is an improvement of EigenFace. It's not fully
implemented and given to compare with LPB (it do not store data in database
has i remember).

http://note.sonots.com/SciSoftware/FaceRecognition.html

LPB, EighenFace, and Fisherface use OpenCV library implementation as well.
So the performance are relevant of OpenCV code. In DK, we have a template
implementation of recognition engine which can be extended through virtual
methods, as plenty of algorithm variant exists to perform face recognition.

Between LPB, EigenFace and FisherFace, LPB is the most faster. The
recognition efficience is mostly the same (good recognition vs false
results).
Eigen and Fisher run more slowly than LPB.

These algorithms need at least 6 faces already tagged by end users with the
same person to recognize to start to give suitable results, but if more
reference are given, it must be better. Typically you provide samples to
use to process future comparison using face histogram stored in database.
You can only provide real face sample to compare. You cannot teach about
false positive results. The teach process still basic.

The last one is more tedious and promising but it's so far not optimized.
It's an IA algorithm using deep learning based on DLib. You teach face to
the neural network and it store data in database. The result are good if
you teach many faces to the IA. The result are good, but the speed no. It's
slow and require more end user action to work. So this one need a lots of
improvement for the future and cannot be used as well actually. This IA can
teach for false positive detected as flower seen as a face for ex. So the
teach process is more complete, but require more data storage in database.

IA and deep learning are the future and look promising. It's also a very
interesting project to implement (from a student viewpoint), as IA start to
be used everywhere in computer science. So i'm sure that we will found new
students to work on it later, as it still a lots of work to do on it.

So the only one to use for the moment is LPB.

Best

Gilles Caulier



> also a problem I have (not new in DK6), after asearch, when I'm looking
> to the unconfirmed, I see different proposals, and when the proposal is
> incorrect, if I enter the correct name, then it seems to become the
> standart proposal for most of the remaining unconfirmed.
>
> is there something I'm doing wrong ?
>
>
> thanks for your help
>
>
> regards
>
> frederic
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-users/attachments/20181112/aaf91b99/attachment.html>


More information about the Digikam-users mailing list