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.