Face Detection: almost unrecognized persons -> fix found?

Started by abgestumpft, April 14, 2020, 01:47:54 PM

Previous topic - Next topic

abgestumpft

Hi,

In the last weeks I had problems with several Persons (especially my too daughters and myself) having a very bad detection rate by face recognition. Then I deleted all trained faces for my daughters and myself (assuming this would start from 0 -> I already did this a week ago in older iMatch version without much success)
Yesterday I did a small Foto Shoot (with Flash, front facing faces), I trained some of the faces and still the hitrate was very bad (like < 5%) - and images were really looking similar!

Now with the new Face Manager I stumbled across this in the docu:
https://www.photools.com/help/imatch/#people-face-manager.htm

"Show rejected faces   All rejected faces ('Not this person') for this person.
The IMatch AI will not assign the person again to this face and also considers similar faces to the rejected face as less likely matches for the person."

When checking the rejected faces for my daughters I found not many (like 3 or 4 of them), but my daughters were added to each other (meaning Daughter 1 had a reject Face of daughter 2, and daughter 2 had a reject face of daughter 1).

Now I have also deleted all the Rejected Faces for my daughters and run a face recognition on 102 images I took yesterday on a walk outside. After training one Face for each daughter (remember I just started from scratch and only had some of the Photo shoot trained), this resulted in a hitrate of 100% -> yes 100%

So my conclusion is:
the rejected person can have a big impact on face recognition (usually you reject similar looking faces since those are suggested by AI). Maybe the "rejected Faces" influence is also too strong at the moment...

For now I will try to avoid rejecting people and see how the detection now behaves in future...
If you have problems with hitrate of some persons it is worth having a look on the rejected faces of this person!


Mario

Interesting.

The general idea is when you reject a face F for a person P that faces similar to F should not be used when the IMatch AI automatically assigns persons to faces.
Else you would have to reject very so often that rejecting would become more or less useless.

All this is very fuzzy, as so often with AI-related technologies. There is no binary "same face" / "not same face". It's all expressed in numbers and confidence values.
And you mention that you work with faces from your daughters. Which probably look very similar, as far as the AI is concerned. Especially if they are still quite young and their facial features are not as strongly defined as for adults.

I have checked the similarity value and confidence interval I use to tell if a face should be considered as rejected for a person.
The numbers look OK for me. Changing them could cause much less faces considered as rejected, which could raise the number of false assignments for the entire user base. Very tricky.

Can you send me samples of the faces you were trying to match and which failed. And the faces you had rejected?
Maybe if I can see the numbers the AI is calculating I can improve the reject handling for automatic assignments.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

abgestumpft

QuoteI have checked the similarity value and confidence interval I use to tell if a face should be considered as rejected for a person.
The numbers look OK for me. Changing them could cause much less faces considered as rejected, which could raise the number of false assignments for the entire user base. Very tricky.
Yes, and the thing is: if it's fine for 99% then it's OK.
For me most of the people are also working fine, except the most used ones ;-)

QuoteCan you send me samples of the faces you were trying to match and which failed. And the faces you had rejected?
Maybe if I can see the numbers the AI is calculating I can improve the reject handling for automatic assignments.
I have already uploaded them to the dropbox and will send you the linke via eMail shortly...

Tveloso

Quote from: abgestumpft on April 14, 2020, 01:47:54 PM
So my conclusion is:
the rejected person can have a big impact on face recognition (usually you reject similar looking faces since those are suggested by AI). Maybe the "rejected Faces" influence is also too strong at the moment...

For now I will try to avoid rejecting people and see how the detection now behaves in future...
If you have problems with hitrate of some persons it is worth having a look on the rejected faces of this person!

Excellent!

So this explains the "people not being recognized" issue (i.e. the hit rate for family members dropping) that has been discussed a number of times here.

If rejecting only returned the face to the pool of unknown persons for the AI to re-process, without also training the AI to not continue to suggest that face for the incorrect person, then this kind of defeats the purpose...or as Mario says:

Quote from: Mario on April 14, 2020, 02:01:01 PM
...rejecting would become more or less useless.

...but it does also seem that having the Rejected Faces might be contributing to the reduced recognition rate.  Very tricky indeed, what the solution should be...

I found though that deleting a rejected face for a person, results in that Face Annotation in the original image becoming a Manual Face Annotation (with a small circle at the top), and an Unknown Person as well...(even if the Face Annotation had been subsequently Confirmed as someone else). 

That is, given a Face Annotation for Person-A, that the AI incorrectly suggested might be Person-B, and which the user then Rejected for Person-B (so the face is now among the rejected faces for Person-B)...and later that Annotation is assigned to (and Confirmed as) Person-A by the user...if in Face Manager, that Face is Deleted from the list of Rejected Faces of Person-B, it is also then "removed" as a Confirmed Face for Person-A as well, and becomes a Manual Annotation.

So it's actually necessary to toggle the Rejected state of the Rejected Faces for a person in Face Manager, and save changes, in order to remove a Person's Rejected Faces, without impacting any subsequent assignments of those Face Annotations.

I can confirm that doing this does seem to increase the recognition rate for People for whom it had been reduced over time...
--Tony

abgestumpft

Quote from: Tveloso on April 15, 2020, 06:33:33 AM
I found though that deleting a rejected face for a person, results in that Face Annotation in the original image becoming a Manual Face Annotation (with a small circle at the top), and an Unknown Person as well...(even if the Face Annotation had been subsequently Confirmed as someone else). 

Yes, you are right, I should have more precise. What I meant by "delete all rejected faces" is what you wrote:
Go to Face Manager -> "Show Rejected Faces"
Select all Faces there
"R" to remove the rejected flag
"Save changes"
This will then remove the faces from the "Rejected Faces" = untrain them from AI, but leave the existing face annotations in place

This is now what I did for most of the person and during my testing yesterday evening the hitrate was really good.