[digiKam-users] face recognition

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[digiKam-users] face recognition

fch22
Hi all

trying to experiment the face recognition from DK6B2, and I see now
there are 4 different algorithms. What are the differences ?

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

Reply | Threaded
Open this post in threaded view
|

Re: face recognition

Gilles Caulier-4


Le dim. 11 nov. 2018 à 11:22, frederic chaume <[hidden email]> 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.


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


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).


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

Reply | Threaded
Open this post in threaded view
|

Re: face recognition

fch22

Gilles

thanks a lot for this clarification.

IA in DK ! I look forward to see more on this!  if he can do all this for us , but I beleive that's the purpose :-)

did you look also to my second point:

also a problem I have (not new in DK6), after a search, 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 ?

I have also another error: the tag "unconfirmed" is no more visible (I have removed it) , but not able to re-create it as it still exist. How to make it visible again?
regards
Frederic

Le 12/11/2018 à 07:37, Gilles Caulier a écrit :


Le dim. 11 nov. 2018 à 11:22, frederic chaume <[hidden email]> 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.


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


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).


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