Best practices for face recognition?

Started by sybersitizen, August 09, 2024, 06:13:49 PM

Previous topic - Next topic

sybersitizen

One of my main reasons for using IMatch as a DAM is to have a method to search images for specific people. So far, I've only explored this with a very small subset of the roughly 80,000 files in my database - maybe just a few percent of the files. Even within that subset, I've already created well over 100 recognized 'People' for the individuals we know. Projecting that, I'm guessing I could easily end up with hundreds of people known to us in my list.

Another complication is that I happen to have a lot of photos showing people who will always be unknown to us. I don't need to register them as 'People', but they are of course detected during the detection process.

I'll eventually have to run the process on the entire database. I anticipate that I'll then have an enormous number of 'Unknown Persons' in my list and everyone already in my list will also have a large number of unconfirmed faces that I'll have to deal with. Before I do this, I'm interested in comments from those here who have done it with a large number of files.

Is it best to run the additional detection in small groups and work through the database gradually rather than doing everything at once?

What do you consider to be a manageable number of registered 'People'?

Is there a downside to having a huge number of 'Unconfirmed' and 'Unknown' persons in the list waiting to be either assigned or removed at a later time?

Have you found the face recognition system to be sufficiently accurate with a large database or has it required a lot of manual correction?

Thanks for any feedback.

Mario


QuoteAnother complication is that I happen to have a lot of photos showing people who will always be unknown to us. I don't need to register them as 'People', but they are of course detected during the detection process.

IMatch 2025 (the next major release) has a option that allows you to exclude persons from automatic assignment to faces.
Tip: In the mean time, to prevent a person from being assigned, remove all trained faces in the Face Manager.


QuoteIs there a downside to having a huge number of 'Unconfirmed' and 'Unknown' persons in the list waiting to be either assigned or removed at a later time?
Every time a person is assigned to a face, IMatch checks each unassigned face to see if the person matches. This means the more unassigned faces you have, the longer this will take. IMatch will show a notification when you have too many unconfirmed faces. This is also describes in the People help topic.

Create as many people as you need. It's similar to keywords. Some users don't use keywords at all. Some users have very deep taxonomies and assign 5, 10 or more keywords to files. Some users don't use events. Other users have hundreds of events.
Different tastes, different needs.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

sybersitizen

Quote from: Mario on August 09, 2024, 07:11:43 PMEvery time a person is assigned to a face, IMatch checks each unassigned face to see if the person matches. This means the more unassigned faces you have, the longer this will take. IMatch will show a notification when you have too many unconfirmed faces. This is also describes in the People help topic.

Okay. I haven't seen that in the Help pages. I did notice one spot in the section about 'Ignored' on this page (see the screen shot below) where it looks like the word does should be does not: https://www.photools.com/help/imatch/people.htm

QuoteCreate as many people as you need.

Sure. I just wondered if having hundreds of registered People vs. 100 or so has an impact on the process of  further expanding the list or doing other people-related things in IMatch.

Mario

I have fixed the typo in the help, thanks.

According to IMatch telemetry (make sure you participate), the average number of persons per database is 166.
The maximum number of persons is about 12,000 (I guess that's stretching things a bit).

When designing a feature like "People" for IMatch, I make some assumptions about how many "items" IMatch users will typically handle. It makes no sense to design for extremes, because this would complicate and prolong development and basically ruin everything for everyone, except for the one or handful of users who need to deal with extremes.

IMatch comfortable handles databases with one million managed files on a fairly modern PC with SSD storage for the database. I know there are users with 3 million or even 6 million managed files. I don't know who they are since telemetry is anonymous, but I would really ask them how IMatch performs.

For people, I made the assumption that users would manage a couple of hundred persons, tops. So I designed things to be usable with 1,000 people. I've tested with 3,000 people, when I recall correctly.

There was one bug report when some operation in the People View became really slow once 1,000 persons where reached. But I've fixed that in the following version. Since then, no performance complains about the People View.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

ubacher

I have a very similar problem with using "people". I too have very many people unknown to me.
I can not ignore them though because in the future I might have a need to search for a particular person
(for which I will then have been given a name and a sample image).

To get rid of the "Too many unassigned faces" warning I set these unassigned faces to ignore - but this will mean that I will have to rerun face recognition the next time I need it.
I think turning face recognition off unless I need it would be the right approach.

A downside of having many unassigned faces is probably a higher rate of false recognition when searching for
a person.

So in other words: For me a search option similar to "visually similar images" but instead matching a face would be ideal.

Mario


Quotebut this will mean that I will have to rerun face recognition the next time I need it. 
No. The face has beet detected already. You only tell IMatch not to try to assign a person to the face with "ignore".
Un-ignore and IMatch will again try to assign a person.

Quotebut instead matching a face would be ideal.
What would that even do?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

sybersitizen

#6
Quote from: Mario on August 10, 2024, 09:34:36 AMAccording to IMatch telemetry (make sure you participate), the average number of persons per database is 166.
The maximum number of persons is about 12,000 (I guess that's stretching things a bit).
Wow!

QuoteFor people, I made the assumption that users would manage a couple of hundred persons, tops. So I designed things to be usable with 1,000 people.

I don't think I'll end up with more than a few hundred persons, so that should more than cover my needs. I'm taking the approach of gradually running face detection on small subsets of files and doing the confirmations and cleanup each time before moving to the next subset, so I'll probably never see the too many unconfirmed faces warning.

Mario


QuoteI don't think I'll end up with more than a few hundred persons, so that should more than cover my needs. I'm taking the approach of gradually running face detection on small subsets of files and doing the confirmations and cleanup each time before moving to the next subset, so I'll probably never see the too many unconfirmed faces warning.
Good approach.
Use families and groups to organize people, which makes even a couple of hundred persons easy to handle.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

sybersitizen

Oh, one more thing ...

In the Face Manager, I understand the difference between Delete, which removes the annotation, and Ignore, which leaves the annotation but doesn't attempt to do anything with it.

If I have annotations that have been ignored, how do I find them at a later time to either register them or delete them?

Mario

#9
Ignoring a face is a bit of a final thing.You tell IMatch to ignore a face and it is no longer considered for anything.
You usually don't go back later and "un-ignore" faces.

If you use that often, you can utilize the variable {File.Faces.Ignored} which returns yes or no for each face in an image.
Use it for a data-driven category or the Variables filter.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

sybersitizen

Thanks. Seems to indicate that one might as well ignore the Ignore option and just Delete.  8)

Mario

#11
QuoteThanks. Seems to indicate that one might as well ignore the Ignore option and just Delete.
This depends. That's why IMatch offers ignore and delete. Different users have different needs.
If you want to retain the information that there is a face in that spot, e.g. because you work with Face Arrangement, you usually just ignore the face. If you delete it, the information that there is a face is lost.

If you use ignore, you can later filter easily enough to see files with one or more ignored faces.
The variable makes this possible. See this example:

Image2.jpg

The filter looks at the faces in the scope and hows the combinations (depending on the number of faces in the images).
The entries containing at least one Yes contain ignored faces. Tick the box in the row to see them in the File Window.

And if you change the variable to

{File.Faces.Ignored|contains:Yes,Yes,No}

you see only two rows: One for yes and one for no. Check the entry for Yes to see all files with ignored faces.

IMatch magic  ;)

I'd wish I was as good as marketing as I'm at programming. IMatch is still an underdog after all these years.
Since I've spent a lot of time answering all your questions, do me a favor in return: let others know about IMatch. Post online how good it is. YouTube. Facebook. X. Insta. Photography forums. Every bit helps.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook