Is face recognition improving with more confirmed faces? Evidence?

Started by ubacher, March 06, 2020, 07:06:09 PM

Previous topic - Next topic

ubacher

When one identifies an unidentified face, Imatch searches for matches and displays these as unconfirmed.

As one confirms more and more faces, the face print improves and thus I would expect that the number
of unconfirmed faces (but miss-identified) would be reduced. This, according to my testing, does not happen.
The total number of faces (confirmed and unconfirmed) stated for the person does not change after the initial name assignment.
While this could happen in many cases I have not found that it ever changes.

Is this correct behaviour?

mastodon

The AI gets better with confirming, BUT it does not confirm automatically. You can see, that if you change a face tag during confirmation, the other tags might change, as AI learned the face better. As I understand, comfirmation is a manual process.

thrinn

QuoteAs I understand, comfirmation is a manual process
It depends on the Application > Face Recognition > Automatically confirm faces setting (see this help page.. But even if this is set to something other than "Never" there will be enough persons left that need to be manually confirmed.

I find it difficult to judge if confirming faces does always improve the recognition rate. It does improve, from my experience, as long as the confirmed faces are clearly "visible". But I wonder if confirming half-turned or partly concealed faces (hat, sun glasses) might in fact decrease the recognition rate? For example, after confirming a person A wearing a bicycle helmet and sun glasses (worst case scenario, I admit) I got a lot of false positives: Apparently, all persons wearing sun glasses were now "identified" as A.


Thorsten
Win 10 / 64, IMatch 2018, IMA

mastodon

I had pictures with sunglasses and bicycle helmet, and had this experience. But this is normal, it is learning. A sunglasses makes a face very unique, till AI learns another face with them.

Stefan

While I see sometimes improvements in the recognition rate, I also see the opposite over and over again.
I have now many hundred if not thousands of pictures manually corrected to the correct person annotation and e.g. hundreds of pictures of the same person like family members. But still after so many learning the recognition rate is quite poor, I would state below 20% success rate. And I have only around 50 persons named or "registered".
Example: I have hundreds of pictures of my wife in all kind of different scenarios of the years already confirmed for face recognition. So the recognition rate should be pretty high. Then I add another 50 shots of my wife which are portrait shots in a row, meaning those 50 pictures are almost identical, have high resolution, are noise free, almost front facing position, so should be best conditions for recognizing faces. I go to full screen viewer mode, start automatic face recognition for that picture. Wife is marked with another name, not the right one. So I correct the name. I jump to the next picture, run face detection, again the same wrong person is recognized again. So I correct again. I do this now for the next 30 pictures or so and no improvement. The AI insists that my wife is someone else.
Also weird is that in group photos of e.g. 10 people, I see the same name assigned to 8 people out of 10. Should be kind of unlikely to have the same name twice or more in one single photo.
So overall I am somewhat disappointed that after thousands of pictures with manually confirmed names and having only around 50 persons the success rate is extremely low, like 20% or so.

ubacher

@Stefan: I share your experience. I did not want to touch this, thinking it is better to tackle one
problem at a time. Basically I found so far cases of incredibly good face matching and then again cases of
incredibly bad ones. Seems wrong to encounter both.

@mastodon: I do not expect automatic confirmation - I expect the number of miss-identified faces to become less
as the number of confirmed faces increases. Currently the number of miss-identified faces stay constant.

Quote.... pictures with sunglasses and bicycle helmet

This will be an interesting thing to test: Do not confirm faces that are "weird" ( bicycle helmets, side views etc.) and see
if this will result in fewer miss-identified faces. I will give it a try.


Mario

1. IMatch learns a specific number of faces per person. Hence the instruction to first set/confirm some representative faces first.
Usually, learning 3 to 5 faces for a person is more than sufficient to get excellent recognition rates.
Learning hundreds of faces for the same person would actually lower recognizing rate and would produce more false results.
Try not to train 20 faces of your wife all wish sunglasses on and a hat and then wonder why IMatch does not recognize here without sunglasses and hat.

2. IMatch does only automatically confirm faces when the confidence is high or very high (depending on the settings you chose, which are explained above in a post).
Confirming the wrong face would block it from being re-assigned later, when the AI has been improved. So it is better to not confirm a correct face instead of confirming too many false falses.

Do not expect a 100% recognition rate. Even in clearly defined tests sets like the LFW recognition rates over 90 are considered excellent. IMatch
Your results may vary greatly, depending on the nature of your images.
There might by highly-specialized recognition systems in controlled environments (airports, malls) with controlled lighting and imaging that produce better results than the IMatch AI. But that's a special case.

You can also upload your images to Google, Microsoft, Adobe Sensei or Amazon AWS (after getting written permission from any person shown in your images!) and see if they recognize your faces better. But I would say that what is integrated in IMatch is as good as it gets. You may use other applications and they get better results for some of your images. And IMatch will produce better results for the other half of your images.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

ubacher

@Mario:
You say face recognition works as well as can be expected. Are you not discounting the possibility of
bugs in the integration of face recognition with Imatch - which could impact on the results?

Stefan

Quote from: Mario on March 07, 2020, 08:50:18 AM
Usually, learning 3 to 5 faces for a person is more than sufficient to get excellent recognition rates.
Then when does the learning actually happening? If an automatic annotation is wrong then I assign the correct name to it. And my assumption is that the system learns automatically from this correction. And how could I avoid that? And is there a way to reset the learning for one person (without removing the annotations) and then start training for that person again. How can I do that? Deleting a person would delete all annotations, right?
But then in general my understanding from AI is that more use cases helps to improve likelihood for recognition. And how to train the faces from baby age to grown up. 3 pictures are unlikely to cover those changes.
With anything above 50% recognition rate I would be already happy. E.g. I take a family group photo with 10 people, all persons trained in the system, but not a single one is correctly annotated, even though picture is bright, noise free, sharp. And for many persons in that photo there is not even a match in the top 10 suggestions (on the left side of the popup window). And that is not a special case, that is basically the normal case in my database. So I am talking about a recognition rate of maybe 10%.

Jingo

To add to this discussion - I wonder how the system handles age-based growth and if there is a "maximum" fingerprint count per person.  For example, since we are starting out with existing databases, I have over 20 years of images of family... from baby photos all way to adult of the same person.  I started with the oldest photos of the person when they were a baby and the face was trained and provides a decent rate of return when it can recognize there is a face in the image (some are missed even though the previous photo contains exactly the same info [ie: burst shot] and correctly found and identified a face). 

I then moved to the adult photos of this same person and identified them ... if I catalog say 1000 images of this person as a baby and then as an adult and then try and identify them when they are 5 years old... will the system not be able to store details at this point because it has "used up" its fingerprint count from the baby and adult images or does it just continue to grow and learn this person each time you scan and identify new "versions" of this person?

It really is an amazing technology to be included in the product for sure...

Mario

Quote from: Stefan on March 07, 2020, 03:38:40 PM
And my assumption is that the system learns automatically from this correction.
Yes.

QuoteAnd how could I avoid that?

You cannot 'avoid' learning.

QuoteAnd is there a way to reset the learning for one person (without removing the annotations)

No. I had planned to add this, or to add extra features to allow users to mark a specific face as a training case. But during the test phase this was not needed because recognition rate is excellent.

QuoteDeleting a person would delete all annotations, right?

No. It would un-assign the person from all annotations, making the annotations un-assigned again.

QuoteBut then in general my understanding from AI is that more use cases helps to improve likelihood for recognition.

No.

QuoteAnd how to train the faces from baby age to grown up. 3 pictures are unlikely to cover those changes.

Assign the person to 10 or 20 faces at individual ages to improve training.

QuoteWith anything above 50% recognition rate I would be already happy.

The typical recognition rate of the IMatch AI (based on 100,000 test images with over 1000 persons) is above 90%.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Mario

As explained in the help, train with 10, 20, 30 representative faces of a person.
If you train John only from baby images, IMatch will not recognize John when he s 60.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

DigPeter

Along with normal front views of an individual, I have faces in profile.  IMatch does not detect these, despite other profile images of the same individual previously having had names assigned to them.  Profile faces do not seem to trainable.

Mario

Feel free to send me some examples of untrainable faces. It is impossible analyze this in any way without sample files.
Send them to support email address and include a link back to this help topic so I know what's what.

In general, the IMatch AI is trained on frontal faces. Not on faces facing away from the camera or similar. This would be a too specific use case.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

DigPeter

See attached images.  I understand the limitations, but these are side views.  So far no side views have been detected, let alone recognised, even with 'full size' setting.  Other files in full face of similar size and quality are all detected on he default setting.

ADMIN NOTICE:

I have removed the attached images with persons.
It is illegal in many countries (including in Germany, where I live and where the server for this community is located) to post or upload images with identifiable persons without explicit permission of each person.

If you want to make sample images available to me for testing purposes, please send an email to support email address and include a link to this topic.

Stefan

Quote from: Mario on March 07, 2020, 05:24:07 PM
As explained in the help, train with 10, 20, 30 representative faces of a person.
If you train John only from baby images, IMatch will not recognize John when he s 60.
Thanks Mario for all the answers, but that actually causes a problem, if I have a toddler today I can start training only with those pictures and will run into problems in the upcoming years.
Probably I also did it then the wrong way, as I am new to IMatch and started importing chronologically my pictures with the ones from 20 years ago and had automatic face detection on. Then I imported year by year.
So probably I have messed up my database as the recognition rate is really extremely low.
According to your description a solution could be to start a new training for one person:
In people's view select one person, select all files, label them somehow with a unique label, e.g. red pin if that is not used elsewhere. Then delete that person. Now go to a view (e.g. collections view) to select all those files again (here red pin again; because they have disappeared in the people's view). Now select the best pictures to train the person again. Then hopefully you can confirm all faces at once in this selection with red pins.
Problem is only with unconfirmed faces, as in my case I still have tons of it and therefore the new person can appear there as well and pictures labeled with the red pin might also have unconfirmed faces. For that it would be nice to have a command Commands -> Image -> Face Annotations ... -> "Delete unconfirmed face annotations".

Stefan

Quote from: Mario on March 07, 2020, 06:31:18 PM
In general, the IMatch AI is trained on frontal faces. Not on faces facing away from the camera or similar. This would be a too specific use case.
But according to your description AI would be triggered anyhow once I do a manual annotation of a side face which might then decrease the recognition rate.
So overall it seems that the AI is not really made for annotating persons in all pictures as it will lead to bad recognition rate (as I experienced). So pictures with persons that wear sunglasses or look to the side or age over time seem to cause a lot of trouble.
But my intention for the annotations is to "label" all files with the persons in it so that I can filter later on for all pictures with that person. But if the manual annotations with sunglasses and side views causes so much trouble then somehow the purpose of the annotations is not that useful anymore.
So I think we would need a function like "confirm but don't train" and "add annotation without learning" to not destroy the good recognition rate.

Mario

Quoteif I have a toddler today I can start training only with those pictures and will run into problems in the upcoming years.

At the rate IMatch and AI technology evolves, I would not see this as a problem. In a couple of years, IMatch and AI will be very different.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Quote from: Mario on March 07, 2020, 08:15:29 PM
Quoteif I have a toddler today I can start training only with those pictures and will run into problems in the upcoming years.

At the rate IMatch and AI technology evolves, I would not see this as a problem. In a couple of years, IMatch and AI will be very different.

But -the problem may already be there is for those that ALREADY have 20 years of photos in the DB.. and started out at year 1 with 2000 images of a baby to train the AI and the software is then unable to automatically recognize photos when that person is 5 or 15 or 20....  I suppose a better solution is to spread the fingerprint across all the years.. which is where the "delete person fingerprint" would be helpful.

axel.hennig

Quote from: Jingo on March 07, 2020, 08:26:33 PM
But -the problem may already be there is for those that ALREADY have 20 years of photos in the DB.. and started out at year 1 with 2000 images of a baby to train the AI and the software is then unable to automatically recognize photos when that person is 5 or 15 or 20....  I suppose a better solution is to spread the fingerprint across all the years.. which is where the "delete person fingerprint" would be helpful.

Totally with you Jingo. Right now I also don't know how to handle this in my DB. And what I do not really understand is:

Quote from: Mario on March 07, 2020, 05:22:03 PM
QuoteBut then in general my understanding from AI is that more use cases helps to improve likelihood for recognition.

No.

Further explanation...

ubacher

My frustration is that I have cases where the recognition is extremely good and then
I have others where it almost seems it picks random faces as matches. That makes me think
that there is something fishy.


Jingo

For us coding geeks  - there are many good (yet technical) articles about the Dlib library and how to use resnet models and shape predictor data sets to train a db to recognize faces... it is amazing where we are and what may come next...

This is an older article but is decent at explaining how things might be running "under the IM hood": http://blog.dlib.net/2014/02/dlib-186-released-make-your-own-object.html

Here is a better article that explains how to use a pre-trained network to build datasets that can identify faces... this one is for video and photos... after reading it, you can understand a bit more how things may be working here... besides - it is so much nerdy fun!!    https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/

sinus

Quote from: Jingo on March 07, 2020, 08:26:33 PM
But -the problem may already be there is for those that ALREADY have 20 years of photos in the DB..

True for me.
But to be honest, I would believe, that most users has "tagged" the important people (family and so on) already.
With categories or keywords or headline or tagged with something to find them quickly.
And as toddler and with sunglasses and with profile and so on.

I did this, even with the correct age at the time of the photo is taken.
Now why should I use any AI (IMatch or google or ...) to search for people?
Specially if it COULD make problems?

I see it a bit the same like translation a text with google or deepL or another automatic translator.
The number of "correct translating" seems high with 95% or so and is astonishing.
Looks great.
But if you want translate an important text, you will have to check the AI translatation sentence for sentence or better let it do by a human, what is able to do it correct.

That is why I use the AI from IMatch not at the moment, though it seems to be interesting and nerdy (Jingo-slang  ;D)
But honestly, if I have 500 images from a person already named, why should I do the work for "testing" this with IMatch and then confirm and have a rectangle around the head?

I did some test with a new DB and it looked good, what IMatch did. But as I pointed out, in my case, why should I do the work again, what I did over the years, only to find maybe some images what I missed?

If I would start with a new DB, I would use the AI of IMatch, I think, but now I wait a bit and dive maybe a bit into articles, what Mario and Jingo posted here.

My 2cents, but dont´t get me wrong, I think, this IMatch AI is cool and will be better and better with every new version, but at the moment I do not use it.


Best wishes from Switzerland! :-)
Markus

Jingo

I agree with you and may need to rethink the face recognition on my DB... perhaps I should be just using it moving forward and not tag anyone from the past...  If I have to review every photo in the viewer to confirm faces (rather than just seeing bounding boxes around a face on thumbnails in a contact sheet) - I might as well just review and assign keywords with that person and just use the AI for faces moving forward.  This ensures that the AI is better trained for new images ... it will also assign the standard keyword.  I guess I wouldnt' be able to use the Person Panel to see images from that person then because it wouldn't have a complete picture... unless we are eventually able to assign images to the Person by the keyword... even without a bounding box in the image.  Hmmm... lots to consider!

ianhak

I have been trying out face recognition over the last few days and have run into similar problems noted above.

There seems to be many wrong assignments which means if I want photos of A and B, I get a lot of random people. The only way to overcome this is confirm each assignment, but that means there are too many assigned photos for that person, plus a lot of work. As I add new photos, the unassigned faces will sometimes change so end up chasing my tail.

Also, I have found the system has great trouble identifying one of my grandchildren, eventhough he has quite a destinctive face.

There is some confusion in the help documentation as in one place it says 3 to 5 photos are all you need to assign, then later on it says this "Try to confirm as many faces as possible. This greatly improves the performance when IMatch searches the database for unassigned/unconfirmed faces." This confused me.

If the system only identifies good, straight on faces, that means it misses many photos where the person in question has a hat on, or turned sideways or is partly hidden. How do we tell the system that we want to know that the photo contains that person?

I think the system is a good first step of identifying the different people in your databases. You can use keywords or categories to group the photos found for that person, then move onto more conventional ways of picking out the photos that were missed. It is not a silver bullet.

Mario

Quote from: ianhak on March 08, 2020, 04:20:19 PM
I have been trying out face recognition over the last few days and have run into similar problems noted above.
If the system only identifies good, straight on faces, that means it misses many photos where the person in question has a hat on, or turned sideways or is partly hidden. How do we tell the system that we want to know that the photo contains that person?
(...)

Note, it doesn't. IMatch is actually quite good at the extremely complex task of identifying faces if they are averted from the camera, angled or partially occluded.
But there are limits. Not even the systems used by the police which rely on dedicated hardware and lighting can identify every person 100%. 80% is considered a success, in the wild.

As I said above in several replies, feel free to send me some sample images to support email address , with a link back to this thread and a description of what is what.

Note that I'm currently fighting an avalanche of emails (over 120 open, and counting) and it may take a week or two for me to look in this.
But IMatch and AI technology are improving rapidly, so ...
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Stefan

Hi Mario, I get now more and more the impression, the more face annotations I add the more the success rate is shrinking. Probably naturally most of the assigned faces belong to my family but I have the impression that the recognition rate of family members goes towards zero the more faces I add. And the problem is worse because they are not only the top pick in the name list but their names don't even appear in the top ten list of name suggestions (when being in the full screen viewer and editing the face frames in the popup) anymore.
So it looks like the more face annotations I add to my wife and to my kids the more they are excluded from being recognized later on. And according to your suggestion I avoid adding "bad" faces with sunglasses or e.g. tiny faces or from the side and add only the good, high resolution, front facing one. But still, it's getting worse (at least that's my impression).
What strikes me is that sometimes (only occasionally) I see a cross-match, meaning a picture of a wife and a husband and the wife gets the name of the husband as suggestion and vice versa. Or my kids get the names of their friends (which they had photos together with before) and the friends get the names of my kids.
That could be a coincidence but see here my wild guess: when there are several people in an image and several annotations are made, could it be that one annotation does actually not train that assigned person but the other person in that picture ... and vice versa. That would explain a cross-match and would explain that my family is basically not recognized at all any more because they appear in a lot of pictures with friends and relatives and each "recognition" would in this case exclude them more and more???

I can confirm if I start with a fresh person and train just a few initial faces, the recognition rate is pretty good. But the more I add to that person the worse it gets.
I used the face recognition of Lightroom6. It was ok, not perfect, but worked to my expectation being somewhat of a help with maybe a recognition rate of probably more than 50%. But with IMatch the most trained people, namely my family, gets a devastating recognition rate of close to 0 percent in the meantime ... after having more than 1000 face annotations/files assigned to them ... while in the beginning the recognition looked somewhat better.
My impression is really that some weird bug is still in the face recognition and maybe it is some wrong mixing and assigning of faces and learning ... as my best guess from what I see as suggested face annotations.

Mario

The face detection and recognition has been tested for months, on databases with 50,000 to 700,000 images and 500 to 5,000 faces.
IMatch learns 5, 10, 20 or so faces per person. Then the crucial face vectors of the face are known and trained. These do not change under different lighting and not much when the person ages or changes hair color. There is no known 'bug' and no dependency between then number of faces (of a person) in the database.

I said it above and many times. Send me sample images which exhibit this behavior. Show me which faces you have linked to the person first. This may give some hints for analyzing why the AI is not working as well for you as it works for others.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

hluxem

QuoteShow me which faces you have linked to the person first.

I have not really trained/linked faces to the AI as far as I'm aware of. After the import of my database all face annotations were imported and people created accordingly. I just assumed that the AI picked the face regions to link the persons on its own. Is that correct?

Heiner

Stefan

What I was saying is that not the AI might be wrong but that there might be a mismatch of triggering the AI with the wrong faces of other persons.
I hoped that would be just an easier check as I am not really willing to share any family photos. Is there a way find out which images I used first for the training because I also can't recall which images I used first?
But what is still confusing to me is that on one hand you say that AI learns 20 faces per person but on the other hand you also stated that with each annotation of that person the AI continues learning. So my family members have many hundreds if not thousands of confirmed annotations. Are the first 20 images so fixed for the AI that the 21st to the 1000th have no influence? My impression is that after maybe 200 hundred of confirmed faces for one person the recognition rate was not great but at least worked sometimes like 20%. Now I am at maybe the 1000th confirmation for one person and the recognition rate is getting closer to 0%. And between 200 and 1000 I paid more attention to add only the "good" faces.
Even though the AI focus a lot on the very first images, I would expect an AI should improve the recognition over time, even if it had a start with "bad" faces. In that case it might not quickly adapt, I understand, but after adding another 1000 faces it should adapt to a kind of average face of that person and should give lower and lower likelihood to the bad faces of the beginning.

So probably the best I can do to support is, once I start with a new person to observe it better and pay better attention to which images I used first, what the recognition rate is exactly at the beginning and how it turns out later on, if there were only single persons in one image or several persons.

ubacher

@Stefan: Your experience matches mine quite closely.

QuoteWhat I was saying is that not the AI might be wrong but that there might be a mismatch of triggering the AI with the wrong faces of other persons.

That was my thinking when I suggested that there might be some bugs in the integration of face recognition with IM.

Tveloso

I wonder if what I described as the "polluting" of face fingerprints by Mobile Phone Photos that are migrated to IMatch2020 (those that contain Face Regions, but lack a Face Tag), as discussed here:

  https://www.photools.com/community/index.php?topic=9850.msg69542#msg69542

...might actually be a symptom of the "cross-match" that Stefan described here?:
Quote from: Stefan on March 08, 2020, 11:22:16 PM
...That could be a coincidence but see here my wild guess: when there are several people in an image and several annotations are made, could it be that one annotation does actually not train that assigned person but the other person in that picture ... and vice versa. That would explain a cross-match and would explain that my family is basically not recognized at all any more because they appear in a lot of pictures with friends and relatives and each "recognition" would in this case exclude them more and more???

It's my understanding that when the existing Face Annotations are migrated to IMatch2020, there is no recognition done, and the user-entered Tags are just used to create the persons (and those annotations are converted to a confirmed state).  If that's the case, then 100% of the Annotations created from Mobile Phone Photos in my database, that did not have a Face Tag (as discussed in my post above), should have remained that way in IMatch2020 (i.e. with the question mark).  But the majority of them were "connected to" the newly created persons (seemingly at random).  This could suggest that the same "cross-match" issue that Stefan guessed at, might be happening during the Migration as well?

If so, then maybe creating a test IMatch2019 Database that has both "tagged" and "untagged" Face Annotations, and migrating that database, might be a good way to "catch" that happening (i.e. if the  "untagged" Face Annotations become "tagged" as someone during the migration - as was my experience)?...
--Tony

busbahnhof

I also experienced both: Very good recognition (even with Karneval masks on) and I also had the case where I confirmed a face in a RAW file and in the according JPG file, IMatch couldn't assign the person to the face I confirmed moments ago. Even after waiting for minutes, this was not done. I remember when I started with confirming, this worked better back then than now after having 16000 pictures with confirmed faces (haven't found the counter for confirmed faces yet). I hope it is getting better with more confirmed faces.

plastikman

I would like to understand the principle of confirming/training.

When I add a bunch of pictures and run face recognition, annotation boundary boxes are drawn with a question mark ("unidentified"). I can then click in the text box and link them up with a person. Now the box is green with a green name as in confirmed.

Face recognition then starts analyzing more pictures and now many show up with the boundary box with a name and a check mark ("v") to confirm.

There is also an option in the right-click contextual menu with "confirm persons".

@Mario when you say training 20-30 faces is enough, what do you mean? My understanding is that confirming faces links them to a person. If I only do 20-30 and then stop, it might then list the correct names under pictures but these are unconfirmed and cannot be tagged with a keyword and therefore cannot be filtered out with categories etc.

So from my understanding, I would want a boundary box around every person in my library that I care about and have it confirmed. But does this mean I am training with 1000+ images? Also, when a face is half covered by a scarf, a plant or an object I would still want to confirm that face to a person but I think this might also reduce the quality of recognition. But where do you draw the line? Sometimes just moving the boundary box a 1% to top, left, right or bottom already generates 2-4 different names since the recognition will run again.

My ideal situation is that I add 10k images to library and all people are matched, confirmed and tagged automatically so they can be easily filtered out (e.g., show all photos 3 stars and higher of person X). Of course it won't work 100% but I am eager to learn how to get the best result. So where do you face tag with boundary box and where do you use regular tags (on a photo with that person in it in different positions, angles, darkness levels, high iso fuzzy detail levels etc.)

Mario

5 to 20 faces is enough for face recognition to identify persons.
You train faces by assigning a person to a face or by confirming an assignment suggested by IMatch.

Training is just a side-effect of you confirming persons.
Keywords and categories associated with a person are only applied when you confirm the person. Or when IMatch automatically confirms a person because the confidence is above a selected threshold (Edit > Preferences > Application).

You can also let IMatch automatically cluster similar faces together via the the People Organizer
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

plastikman

Quote from: Mario on March 11, 2020, 09:53:59 AM
Training is just a side-effect of you confirming persons.
Keywords and categories associated with a person are only applied when you confirm the person. Or when IMatch automatically confirms a person because the confidence is above a selected threshold (Edit > Preferences > Application).

If let's say after you assign and thus confirm 500 faces, you add a category or some additional keywords. I suppose they are not automatically assigned? Is there any simple way way to trigger this after assignment e.g., reconfirm an already confirmed person in the right-click contextual menu?

Mario

Quoteyou add a category or some additional keywords.

You add category or some additional keywords where? To a person?

Did you read the corresponding help topic, which covers this. People
And there is even a popup message in the Person Editor when you change keywords...!
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

Quote from: Stefan on March 08, 2020, 11:22:16 PM
Hi Mario, I get now more and more the impression, the more face annotations I add the more the success rate is shrinking...I have the impression that the recognition rate of family members goes towards zero the more faces I add.
...
So it looks like the more face annotations I add to my wife and to my kids the more they are excluded from being recognized later on.

I'm having this issue as well with a handful of people.  My wife and my daughter are now "never" recognized as themselves.

Yet, with other people, the recognition is uncannily accurate...for example:

  • The son of a family friend has been recognized 100% of the time - once, he had both hands in his mouth, and his tongue sticking out, and IMatch still recognized and assigned him (already confirmed even).
  • A person, for whom most of the pictures I have, show him with a heavy beard, and a little bit of middle-aged spread, was still successfully recognized in a picture where he was a lean, clean-shaven teen-ager.
There are a number of other examples like that. 

But there is also a handful of folks, that are not being recognized at all anymore.

Quote from: Stefan on March 08, 2020, 11:22:16 PM
...their names don't even appear in the top ten list of name suggestions (when being in the full screen viewer and editing the face frames in the popup) anymore.

I noticed this as well. 

If I click on a Confirmed (non-manual) Annotation, of a person that does not have this problem, and press F2 to open the Person Selector, their (already assigned) name appears in the #1 position in the list at the left (in addition to appearing as the Assigned Name in a larger font at the top of the dialog).

But with a person that has the "no longer recognized" issue, when I open the Person Selector for any of their Confirmed Annotations, their name does not appear at all, on the "suggestions list" at the left.

There is no basis in fact for me saying this, but I have a sense, that it's not so much related to having accumulated a large number of Confirmed Faces for the person, just that, whatever the underlying issue is that creates this condition, has a greater chance of happening with those people that we have lots of photos of.

I also notice that whenever I have worked with those faces, a Database Diagnostics seems to always find new instances of warnings like:

    "Missing keywords for entity...Fixed."
    "Face...has no annotation object. Face removed."
    "No annotation container...File removed from index."

...and I suspect that those warnings might be related to some "underlying issue" that's causing this (and that it's maybe not really a face recognition issue?).

Even though it's probably pre-mature to open a bug report for this (since this is all still very fuzzy), I'm going to open one, just to have it out there for Mario.  And hopefully other folks can spot something more tangible and reproducible around this issue.
--Tony

Mario

Did you check the trained faces for that person?
Too many or the wrong faces trained?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

Yes, I have gone though all my person records, and removed all but a handful of the trained faces...(keeping only the very best faces, and/or representative faces for the person at different ages).

For two of the "problem people", I also removed all Trained faces, and then added new-ones, by selecting good images, and then deleting the existing Annotations (which in many cases had been imported from XMP Regions, and not created by IMatch), and let IMatch re-recognize the person, and generate new Annotations, to create new Trained Faces for the person.

I also considered deleting the person record, and creating a new one, then repeat the "add Trained Faces" procedure from above.  But I hesitate to do that, because I now have quite a few manually added Annotations for these people (which will not get re-attached to the new Person record, because they're not actually proper faces - or are very averted, or obscured...so I'd have to repeat my manual assignments if I do that). 

But of course that will be much easier once IMatch 2020.4.2 is out, so if this issue persists, I can give that a try there...
--Tony

Mario

I have not yet experienced a case where a person suddenly fails to be recognized at all.
Removing all trained faces removes the data IMatch uses to recognize the person. When you train new faces, this will recover automatically.

When you run the "Find faces for selected persons" from the People View, IMatch uses the current trained faces and scans all unconfirmed / unlinked faces again.
Does this bring in new faces for this person?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook