https://bugs.kde.org/show_bug.cgi?id=475488

            Bug ID: 475488
           Summary: In face detection, an option to suppress low quality
                    faces as detected might improve recognition training
                    and results
    Classification: Applications
           Product: digikam
           Version: 8.1.0
          Platform: Ubuntu
                OS: Linux
            Status: REPORTED
          Severity: wishlist
          Priority: NOR
         Component: Faces-Detection
          Assignee: digikam-bugs-n...@kde.org
          Reporter: ges...@blackrosetech.com
  Target Milestone: ---

SUMMARY
***

This is similar to the purpose or value of Bug #425263. I don't feel it is
entirely duplicative, but would certainly understand if it were marked as such. 

Many people report unsatisfactory results with face recognition, and I'd have
to agree with that assessment, at least if the benchmark is set by various
commercial face recognition algorithms and stand-alone solutions.

An issue I note that seems likely to be complicating the problem is the
extraordinary accuracy of the YOLO v3 face detection algorithm.  It finds faces
only a few pixels across with a total dynamic range of only a few percent.  I
have to squint to be sure, but it is usually right: that's a face. Not sure how
you saw that person lurking in the shadows, but props.

This, however, creates a workflow problem.  In a modest collection of personal
holiday snaps, only 114,481 in mine, I end up with 23,075 unknown and 2,217
unconfirmed, maybe 1% of which are useful.  This creates a bit of a suboptimal
work flow.  Further, I must admit I've frequently added very low quality,
barely recognizable faces to a tag set when I do recognize the person (as
noted, YOLO v3 is impressive).

I believe this creates a situation where the database is working harder than
most of us need it to and where we are tempted to pollute the training data
with low quality images. 

I believe this could be corrected by providing an adjustable filter to suppress
low quality images by some criterion, including perhaps pixel count, presence
of two eyes (if there's a hook for that), and by contrast ratio across the
face.  This would generally eliminate massive crowd detection complications,
reduce the garbage input polluting the face recognition engine, and might
improve the overall experience and default results.

Setting a pixels between the eyes limit is a standard feature for commercial
intelligence facial recognition systems to avoid false positives to reduce the
frequency of executing false positives.

In settings perhaps a UI and back end to enable:
Minimum pixels between the eyes
10 [######### 80 ########          ] 100
Minimum face contrast brightness range
10 [######### 128 #                          ] 255
☑ Two eyes must be visible*
☑ At least one eye and mouth visible*
☑ Cat recognition optimizations*

* I have no idea what features the face recognition engine detects and if
there's any way to tune them

I feel like contrast is better than min/max brightness, though most
surveillance systems usually suppress on min brightness as that's a fairly well
understood proxy for image quality.

***


STEPS TO REPRODUCE
1.  Run face detect
2.  Get mountains of spooky accurate face detections
3.  Try to figure out who all those ghostly apparitions really are

OBSERVED RESULT

Lots of noisy images of what really are faces, but yow... that's amazing.

EXPECTED RESULT

Clear faces only: I took a picture of Bob, I see Bob, didn't know Alice was
back there, let alone Eve in the shadows, I'm OK with tagging the picture with
their names manually, but FR should just bother with Bob.

SOFTWARE/OS VERSIONS
DK rev: 5d0a5e499b5cc5b9c7aa917575d1fb14e0105687
Linux/KDE Plasma: 22.04
(available in About System)
KDE Plasma Version: 5.24.7
KDE Frameworks Version: 5.98.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION

Ya'll awesome, thanks for a great tool.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to