|
I've taken a look at the digikam database design. I want to be able to save a tag position within the picture; positions just need to be rectangles - no fancy shapes needed - so I need to store two opposite corners, that is four integer fields (or one text field). This kind of information is needed for face recognition.
Option 1: There's an imagetags table with fields imageid, tagid which have to be unique. That's a problem because someone may want to use a tag more than once in the same picture (if region tagging is available, of course). So I can't just add the four position fields to the imagetags table... or can I?
Advantage of this approach --> regional tagging would be enabled for every possible tag. Option 2: Make the face tag a special kind of tag. That way two new tables would be needed:
- faces: faceid, tagid (could be null) - imagefaces: imageid, faceid, x1, y1, x2, y2 The second option is better suited to the face recognition problem: 1. A face detection algorithm would fill the faces table giving 0 to the faceid field in the imagefaces table.
2. Once faces are detected, some clustering technique is needed to look for different faces, so it would assign a positive value to face id. It then would ask the user to assing tags to faces. What database approach is better? -- Claudio _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
|
On Tuesday 30 June 2009 01:22:38 Claudio Noguera wrote:
> > What database approach is better? Whatever approach it should be general solution to allow also annotation of images, not only for faces but for interesting details, etc. m. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
|
In reply to this post by Bugzilla from claudio.noguera@gmail.com
> Option 2: > Make the face tag a special kind of tag. That way two new tables would be > needed: > - faces: faceid, tagid (could be null) > - imagefaces: imageid, faceid, x1, y1, x2, y2 > > The second option is better suited to the face recognition problem: > 1. A face detection algorithm would fill the faces table giving 0 to the > faceid field in the imagefaces table. > 2. Once faces are detected, some clustering technique is needed to look for > different faces, so it would assign a positive value to face id. It then > would ask the user to assing tags to faces. > > > What database approach is better? Remember that we need to preserve backwards compatibility as long as possible. We do not backwards compatible changes from time to time, the last one was 0.9 -> 0.10, and there are quite a few wishes for the tags table that would require a major overhaul, but we will not do this for 1.0. There is no compatibility problem with adding tables - option 2. I would not require your change to accomodate to all possible changes in the album/tags tables, when the time comes we can integrate it in the schema updating. Marcel _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
| Free forum by Nabble | Edit this page |
