This is my scenario: I have a daughter which grew up during the years, and for that reason the recognize engine often fails. Is it possible to replace the YOLO engine from the v3 to a more recent one like the v8.1? Thank you so much!
Any news about the possibility to add it?
(In reply to Antonio Petricca from comment #0) > This is my scenario: I have a daughter which grew up during the years, and > for that reason the recognize engine often fails. > > Is it possible to replace the YOLO engine from the v3 to a more recent one > like the v8.1? > > Thank you so much! My understanding is that YOLO is only the face or object detection. The face recognition is done by another module.
(In reply to Craig from comment #2) > (In reply to Antonio Petricca from comment #0) > > This is my scenario: I have a daughter which grew up during the years, and > > for that reason the recognize engine often fails. > > > > Is it possible to replace the YOLO engine from the v3 to a more recent one > > like the v8.1? > > > > Thank you so much! > > My understanding is that YOLO is only the face or object detection. The face > recognition is done by another module. Do you taht module? Can it be improved?
Newer yolo probably more faster detection ? https://learnopencv.com/performance-comparison-of-yolo-models/
(In reply to Petr Schonmann from comment #4) > Newer yolo probably more faster detection ? > https://learnopencv.com/performance-comparison-of-yolo-models/ Are there some information about how to contribute to the code development? I would try to check if I am able to integrate it?
Created attachment 170472 [details] attachment-343701-0.html Yes, I used search engine ... https://www.digikam.org/contribute/ Dne čt 13. 6. 2024 16:16 uživatel Antonio Petricca <bugzilla_noreply@kde.org> napsal: > https://bugs.kde.org/show_bug.cgi?id=485029 > > --- Comment #5 from Antonio Petricca <antonio.petricca@gmail.com> --- > (In reply to Petr Schonmann from comment #4) > > Newer yolo probably more faster detection ? > > https://learnopencv.com/performance-comparison-of-yolo-models/ > > Are there some information about how to contribute to the code > development? I > would try to check if I am able to integrate it? > > -- > You are receiving this mail because: > You are on the CC list for the bug.
Hi Antonio, We uses the gitlab/KDE repository. So the workflow to contribute in source code is based on gitlab merge request. https://invent.kde.org/graphics/digikam/-/merge_requests So, you need to fork the project, patch the code, and create the MR in gitlab. The code relevant to the Face workflow is located at 2 places : - the engine based on OpenCV : https://invent.kde.org/graphics/digikam/-/tree/master/core/libs/facesengine?ref_type=heads - the face management classes and GUI : https://invent.kde.org/graphics/digikam/-/tree/master/core/utilities/facemanagement?ref_type=heads The deep-learning data model files are store outside the code in a dedicated server hosted by the KDE project : https://files.kde.org/digikam/facesengine/ Best Regards Gilles Caulier
Yolo Model files are loaded here : https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/facesengine/detection/opencv-dnn/dnnfacedetectoryolo.cpp?ref_type=heads#L49 Files are previously downloaded from the KDE server at start up, there is a dialog asking to process this task. Files are stored in the .local dire from your home directory: gilles@ku2310arm64:~/.local/share/digikam/facesengine$ pwd /home/gilles/.local/share/digikam/facesengine gilles@ku2310arm64:~/.local/share/digikam/facesengine$ ls classification_classes_ILSVRC2012.txt shapepredictor.dat coco.names weights_inceptionv3_299.pb deploy.prototxt yolov3-face.cfg openface_nn4.small2.v1.t7 yolov3-wider_16000.weights res10_300x300_ssd_iter_140000_fp16.caffemodel yolov5n_batch_16_s320.onnx resnet50.onnx yolov5x_batch_16_s320.onnx Gilles Caulier
The downloading process at startup is managed by this class : https://invent.kde.org/graphics/digikam/-/blob/master/core/utilities/setup/downloader/filesdownloader.cpp?ref_type=heads#L435 Voilà you have all main pointers to the code to update the Yolo model in digiKam. Best regards Gilles Caulier
Michael, What's about this file since YuNet have been introduced with better performances? Gilles
I like the YOLO models for general object detection and identification (classification). I plan on looking at the new YOLO models along with updated taxonomies for better auto-tagging of images when I'm finished with the face engine rewrite. Object detection and classification has advanced significantly since the existing YOLO and ResNet models were introduced to digiKam. Facial detection and recognition models have diverged from general object detection to become more specialized as they are only trying to solve a single problem. For YuNet, the question is "is this a face", and for SFace the question is "what are the feature dimensions". As always, please send me your thoughts and comments. Any help is always appreciated. Cheers, Mike
Hi Antonio, YOLO does face detection. To say that differently, YOLO finds the faces in an image. YOLO does not try to determine who the face matches. In previous versions of digiKam, we used OpenFace for face matching. In digiKam v8.5.0 we are switching to SFace, which is faster and much more accurate. While implementing SFace in digiKam, I tested several pictures of my son, who is 13 years old. Starting with a single current image, I was able to match current images, and images from a few years ago. Once the images from a few years ago were tagged with my son's name, I ran face recognition again. This time it matched pictures even older. I approved those face suggestions and re-ran the process several more times. Each time it found older and older images of my son, and with very few false matches. I also ran the test in the opposite direction. I tagged a single picture of him when he was only a few moths old. Again, the system found pictures of him from that time, and newer pictures. By running the process several times, the system was able to detect most of the images of my son from when he was a baby to the present. I hope this helps explain how the new system works. Gilles, I think we can close this since SFace recognition is proven to be significantly more accurate than OpenFace. Cheers, Mike
Thank you so much for your explanation. Another question for you: when the 8.5 will be available for download?
Hi, 8.5.0 is already available for testing as pre-release bundles at this place: https://files.kde.org/digikam/ But do not use yet in production, as it's not finalized, and bug can still here. The final 8.5.0 will arrive when all tests will be done, perhaps in few weeks... Best Gilles Caulier
(In reply to Michael Miller from comment #12) > Hi Antonio, > YOLO does face detection. To say that differently, YOLO finds the faces in > an image. YOLO does not try to determine who the face matches. In previous > versions of digiKam, we used OpenFace for face matching. In digiKam v8.5.0 > we are switching to SFace, which is faster and much more accurate. > > While implementing SFace in digiKam, I tested several pictures of my son, > who is 13 years old. Starting with a single current image, I was able to > match current images, and images from a few years ago. Once the images from > a few years ago were tagged with my son's name, I ran face recognition > again. This time it matched pictures even older. I approved those face > suggestions and re-ran the process several more times. Each time it found > older and older images of my son, and with very few false matches. > > I also ran the test in the opposite direction. I tagged a single picture of > him when he was only a few moths old. Again, the system found pictures of > him from that time, and newer pictures. By running the process several > times, the system was able to detect most of the images of my son from when > he was a baby to the present. > > I hope this helps explain how the new system works. > > Gilles, > I think we can close this since SFace recognition is proven to be > significantly more accurate than OpenFace. > > Cheers, > Mike Thank you for this explanation. I look forward to using 8.5.