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

            Bug ID: 435184
           Summary: How can I integrate an object detection plugin written
                    in Python?
           Product: digikam
           Version: unspecified
          Platform: Other
                OS: Other
            Status: REPORTED
          Severity: wishlist
          Priority: NOR
         Component: general
          Assignee: digikam-bugs-n...@kde.org
          Reporter: oliv...@protonmail.com
  Target Milestone: ---

I'd like to contribute to DigiKam with an object detection feature, with the
following particularities:
- detect objects in images
- detect objects in videos (maybe later associate them with a timeframe / frame
so that the user can skip through the video at points where a specific object
is visible. But that needs some extra UI work too)

Unfortunately, I don't know C++ but I am somewhat competent with Python.
Looking at the provided documentation (https://www.digikam.org/api/) I can't
understand how / if it is possible to integrate a Python plugin into DigiKam. 

### My ideas regarding the implementation ###

## No DigiKam integration - a separate Python process
- started separated from the DigiKam
- read from digikam.db all the imported photo / video files (Images table)
- iterate through them and apply the object detection service
- aggregate all detected objects and, for each object type, insert a tag in the
database Tags table. All generated tags would be under a root tag called
'objects 'for example
- based on the (image -> detected object) created at step 2, associate each
Image table entry id with the Tags entry id, in the ImageTags table
- start / restart DigiKam to refresh the DB changes

This way, the same tag based system can be used for searching media files based
on the objects they contain.

## DigiKam integrated

Similar to the 'People' section related to the Facial Recognition feature. I'm
imagining an 'Object' section with 1 buttons for:
- detect objects (based on a pre-tained model) (synonym to the 'Detect Faces')
   - be able to click yes / no if objects were detected correctly or not which
would enrich the accuracy of the model(same as in Facial Recognition)

This would imply an integrated Python service that could be started and work
inside DigiKam.


Feature platforms: Ubuntu 20.04 / Windows 10


Questions:
- is it possible to integrate something likes this (not talking about the UI
now), fully written in Python, in the DigiKam ecosystem
- if yes, could anyone give me some guidelines of how can this be specifically
done?

A big thank you to all the contributors of this awesome project. I would gladly
step in too.

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

Reply via email to