Make rendering of Ignored Manual Faces the same as Ignored True Faces

Started by Tveloso, March 13, 2025, 07:31:27 PM

Previous topic - Next topic

Tveloso

When we have a "real" Face Annotation:

    .......... 
    :        : 
    :        : 
    :        : 
    :        : 
    :........: 
  ......|.......
  :    Name    :
  :............:

...and we ignore it, IMatch removes the "guessed at" Person Assignment, and (more prominently) adds "an X" into the middle of the Annotation:

    ..........
    :  \  /  :
    :   \/   :
    :   /\   :
    :  /  \  :
    :........:

I'm not absolutely certain of this, but am pretty sure that (in IMatch 2023) that used to be true for Manual Face Annotations as well.  If we were to ignore a manual Face Annotation:

    ....O.....
    :        :
    :        :
    :        :
    :        :
    :........:
     ...|...
     :  ?  :
     :.....:

...it would then look like this:

    ....O.....
    :  \  /  :
    :   \/   :
    :   /\   :
    :  /  \  :
    :........:

...but now (in IMatch 2025), it winds up looking like this:

    ....O.....
    :        :
    :        :
    :        :
    :        :
    :........:

The Ignored indication is now only represented by the absence of the "label Box" beneath the Annotation.

So if we have one Real Face, and one Manual Face, right next to each other:

    ..........       ....O.....
    :        :       :        :
    :        :       :        :
    :        :       :        :
    :        :       :        :
    :........:       :........:
  ......|.......      ...|... 
  :    Name    :      :  ?  : 
  :............:      :.....: 

...and we ignore them both, they wind up looking like this:

    ..........       ....O.....
    :  \  /  :       :        :
    :   \/   :       :        :
    :   /\   :       :        :
    :  /  \  :       :        :
    :........:       :........:

...and we can be led to believe that the Manual Face is not ignored.

It would be nice if the Manual Face still/also had "the X" in it.

I know it sounds silly to take the time to draw a Manual Face Annotation, only to then ignore it.  But I like to be able to represent that there are others besides the "Named Persons" pictured in the Photo.  If, among those Faces that are the "subject" of the photo, there are other faces that IMatch did not detect (of people I don't know), but I regard them as "prominent enough" in the Photo, I'll add a manual Annotation for them, then ignore it.  And I copy these Ignored Manual Faces from one file to the next, in a sequence of files showing the same persons.

Then later on, I can do things like this:

Make a distinction between the number of "IMatch People" a File contains, and the "Total People"
Number of "IMatch People"  . . : {File.Persons.Tag|count:true;numformat:int,02}
Number of "Total People" . . . : {File.Faces.OID|count:true;numformat:int,02}

Indicate whether the file includes "strangers":
{File.Faces.Ignored|contains:Yes,Includes Strangers,}

...in combination with the People Filter.
--Tony

Mario

You create a manual face annotation by hand just to then ignore it? Why?

Tveloso

I know it's a bit silly to do that, but I like to make the distinction between the number of "IMatch People" a File contains, and the "Total People" it actually contains:
Number of "IMatch People"  . . : {File.Persons.Tag|count:true;numformat:int,02}
Number of "Total People" . . . : {File.Faces.OID|count:true;numformat:int,02}

I do that only when the strangers' Faces are prominent enough in the photo, and there are not too many of them.  In other cases (especially for large crowds), I will instead actually delete any "real" faces that IMatch has detected in the crowd, and then add Keyword WHO|People|Crowd to the file.
--Tony

Mario

I have implemented this for the next release.
It was just not assumed that a user would ever see the need to create a manual face annotation and then ignore it. You are probably the only user out there who does this.

Tveloso

Thank you so very much Mario...(for taking the time to implement something to support the silly habits of one user).
--Tony

Mario

It was quick to do, just moving it outside of a condition cascade. If this would have been hours of work, I would not have done it.