GSoC/2019/StatusReports/IgorAntropov: Difference between revisions
Created page with " ==[DigiKam]: Faces Management workflow improvements == Face detection and recognition is a powerful tool in DigiKam. It lets users to simplify process of tagging people on th..." |
No edit summary |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==[DigiKam]: Faces Management workflow improvements == | ==[DigiKam]: Faces Management workflow improvements == | ||
Face detection and recognition is a powerful tool in DigiKam. It lets users | Face detection and recognition is a powerful tool in DigiKam. It lets users simplifies the | ||
process of tagging people on their photos. These tags can be | |||
used for managing, sorting and | used for managing, sorting and other operations with photos. | ||
Unfortunately, | Unfortunately, as for now DigiKam has some problems with user experience and user interface. | ||
interface. | |||
'''Mentors:''' Maik Qualmann, Gilles Caulier, Stefan Müller, Marc Palaus | '''Mentors:''' Maik Qualmann, Gilles Caulier, Stefan Müller, Marc Palaus | ||
https://userbase.kde.org/images.userbase/3/39/DigiKam_faceTags.png | |||
== Project goals == | == Project goals == | ||
Line 16: | Line 17: | ||
==Work report == | ==Work report == | ||
===Community | ===Community Bonding Period=== | ||
During the community bounding period I got familiar with the code of the previous workflow. In addition, I found a better way to separate tags and face tags. | During the community bounding period I got familiar with the code of the previous workflow. In addition, I found a better way to separate normal tags and face tags. | ||
===Coding Period - May 27th to June 28th=== | ===Coding Period - May 27th to June 28th=== | ||
During these weeks I started to separate face tags and common tags: | During these weeks I started to separate face tags and common tags: | ||
* | * Removed normal tags from all face tags tree-views | ||
* | * Removed face tags from normal tags views and manager | ||
* | * Added filter for face tags and removed face tags from tag filter | ||
* | * Removed possibility to promote tags to face tags and visa verse | ||
Line 37: | Line 38: | ||
===Coding Period - June 28th to July 26th=== | ===Coding Period - June 28th to July 26th=== | ||
During second evaluation period I continue on separating face tags and common tags: | |||
* Removed edit and delete options from Unknown and Unconfirmed face tags from contex menu and from menu bar | |||
* Removed face tags from Recently Used Tags context menu | |||
* Removed the way to make face tags into normal tags | |||
* Removed /People/ top level node from views | |||
Also some GUI improvements on auto detected persons: | |||
* Added green border to Unconfirmed faces | |||
* Added announcing auto detected persons | |||
https://community.kde.org/images.community/5/54/DigiKam_faceTags_2eval.jpg | |||
Future work: | |||
* Ensure compatibility between digiKam face tags metadata and other programs metadata | |||
* Add a possibility to sort people tree view in custom way | |||
===Coding Period - July 26th to August 19th=== | |||
This period was dedicated to analysing differences between how digikam uses tags and face tags metadata and other softwares. The main problem is that tags can be only normal or face in digiKam. This results in couple inaccurate situations: | |||
* When normal tag is a parent of the face tag, that face tag would not be shown in a face tag tree | |||
* When face tag is a parent of the normal tag, that normal tag would not be shown in a tag tree | |||
* When there are normal tags and face tags with the same names. | |||
All of that can be fixed with following changes: | |||
* Change how digikam treats face tags entirely and change tree structure into flat list | |||
or | |||
* Copy full branch with face tag under _digiKam_spiceil_facetag_ and hide this tag from GUI and metadata writing | |||
In addition to that, I made GUI improvement: | |||
* Added drag-and-drop event to assign or re-assign face tags | |||
https://community.kde.org/images.community/0/07/DigiKam_faceTags_3eval.png | |||
=== Results === | |||
The result of this project was a set of UI and UX improvements, as well as investigating the situation with the complete separation of tags and facetags. The following changes will be merged into master branch after the aKademy 2019: | |||
* [https://invent.kde.org/kde/digikam/compare/498dcc2cac95eb425f496c5c9dfb67f2a0074d5c...54e2dc9e56a6560c50f99f43100124623df81c84 Added face thumbnails] | |||
* [https://invent.kde.org/kde/digikam/commit/f898baa17bc7826c29ea65cea1561b09bf436955 Unknown and unconfirmed face tags will always stay on the top] | |||
* [https://invent.kde.org/kde/digikam/commit/3ff93214f7ef68e9822ef0625e95c7a5f86c19a9 People top tag hidden] | |||
* [https://invent.kde.org/kde/digikam/commit/e7e647e1f186bb684f9fe1ac65d0d50a1a83a734 Removed edit and delete from Unknown and Unconfirmed face tags] | |||
* [https://invent.kde.org/kde/digikam/commit/ed4e0999307673cf17bab76e529e0bdf16ff2f99 Added Green border to Unconfirmed faces] | |||
* [https://invent.kde.org/kde/digikam/commit/3bd7da4c0204fbaa93b6b23466196cc7933972a6 Added announcing auto detected persons] | |||
* [https://invent.kde.org/kde/digikam/commit/404f495dc18b1de59b0d9d08b555cc04428dca70 Added the possibility to drag-and-drop face tags onto faces] | |||
The complete separation of tags and facetags is put on hold. Following commits will be merged after more work: | |||
* [https://invent.kde.org/kde/digikam/commit/a4cb8e7c8826d447628b3576ee529941c0475ff5 Removed possibility to create face tag outside from People] | |||
* [https://invent.kde.org/kde/digikam/commit/20d9ebc94f6d6aa78cf094fa1fdba750cc3b8d87 Removed face tags from normal tags lists] | |||
* [https://invent.kde.org/kde/digikam/commit/fe23587f5507dcafa2c4fe227cd4e8b144ce93c4 Removed the way to promote and demote face tags into normal tags] | |||
* [https://invent.kde.org/kde/digikam/commit/d71b6669e275f6fffc84c247ddc302e696f6705f Added face tags filter] | |||
* [https://invent.kde.org/kde/digikam/commit/f530a71bc00cb53292df391d39d75c42df65cc5c Removed another way to demote face tags into normal tags] | |||
* [https://invent.kde.org/kde/digikam/commit/e9bc7616b53358819b05d0af987ab6eeb9311fb4 Removed face tags from Recently Used Tags context menu] | |||
There are some solutions in digikam architecture that don't allow full implementation of the separation tags and face tags while maintaining digikam compatibility with other softwares for now. That is why the separation of the tags and face tags temporally disabled to allow to focus on the other features/bugs. | |||
=== Future work === | |||
* Separate tags and facetags. This will need some architecture changes. It is possible to remove the inheritance of facetags and leave the plain list. Or copy full branch with face tag under _digiKam_spiceil_facetag_ and hide this tag from GUI and metadata writing. | |||
* Add grouping of the new similar faces | |||
* Change color of the Unconfirmed border according to similarity value | |||
* Change behavior of the reject button on Unconfirmed faces | |||
== Links == | == Links == | ||
[https://invent.kde.org/kde/digikam/commits/gsoc19-faces-workflow Project branch] | [https://invent.kde.org/kde/digikam/commits/gsoc19-faces-workflow Project branch] | ||
[https://summerofcode.withgoogle.com/projects/5445968730783744/ | [https://summerofcode.withgoogle.com/projects/5445968730783744/ GSoC project] | ||
== Contacts == | == Contacts == |
Latest revision as of 10:08, 2 September 2019
[DigiKam]: Faces Management workflow improvements
Face detection and recognition is a powerful tool in DigiKam. It lets users simplifies the process of tagging people on their photos. These tags can be used for managing, sorting and other operations with photos. Unfortunately, as for now DigiKam has some problems with user experience and user interface.
Mentors: Maik Qualmann, Gilles Caulier, Stefan Müller, Marc Palaus
Project goals
- Separate tags and face names
- Remove /People/ top face tag from metadata
- Improve drop-down list when selecting face names
- Other GUI improvements
Work report
Community Bonding Period
During the community bounding period I got familiar with the code of the previous workflow. In addition, I found a better way to separate normal tags and face tags.
Coding Period - May 27th to June 28th
During these weeks I started to separate face tags and common tags:
- Removed normal tags from all face tags tree-views
- Removed face tags from normal tags views and manager
- Added filter for face tags and removed face tags from tag filter
- Removed possibility to promote tags to face tags and visa verse
In addition to that, I made couple of GUI improvements:
- Now face tag thumbnail is showing correct face rectangle, not a full picture
- Unknown and Unconfirmed face tags albums now placed on top of the list
Current plans:
- Remove /People/ top level node from all views
- Do not write /People/ top node in metadata and keep it for internal logic purpose
Coding Period - June 28th to July 26th
During second evaluation period I continue on separating face tags and common tags:
- Removed edit and delete options from Unknown and Unconfirmed face tags from contex menu and from menu bar
- Removed face tags from Recently Used Tags context menu
- Removed the way to make face tags into normal tags
- Removed /People/ top level node from views
Also some GUI improvements on auto detected persons:
- Added green border to Unconfirmed faces
- Added announcing auto detected persons
Future work:
- Ensure compatibility between digiKam face tags metadata and other programs metadata
- Add a possibility to sort people tree view in custom way
Coding Period - July 26th to August 19th
This period was dedicated to analysing differences between how digikam uses tags and face tags metadata and other softwares. The main problem is that tags can be only normal or face in digiKam. This results in couple inaccurate situations:
- When normal tag is a parent of the face tag, that face tag would not be shown in a face tag tree
- When face tag is a parent of the normal tag, that normal tag would not be shown in a tag tree
- When there are normal tags and face tags with the same names.
All of that can be fixed with following changes:
- Change how digikam treats face tags entirely and change tree structure into flat list
or
- Copy full branch with face tag under _digiKam_spiceil_facetag_ and hide this tag from GUI and metadata writing
In addition to that, I made GUI improvement:
- Added drag-and-drop event to assign or re-assign face tags
Results
The result of this project was a set of UI and UX improvements, as well as investigating the situation with the complete separation of tags and facetags. The following changes will be merged into master branch after the aKademy 2019:
- Added face thumbnails
- Unknown and unconfirmed face tags will always stay on the top
- People top tag hidden
- Removed edit and delete from Unknown and Unconfirmed face tags
- Added Green border to Unconfirmed faces
- Added announcing auto detected persons
- Added the possibility to drag-and-drop face tags onto faces
The complete separation of tags and facetags is put on hold. Following commits will be merged after more work:
- Removed possibility to create face tag outside from People
- Removed face tags from normal tags lists
- Removed the way to promote and demote face tags into normal tags
- Added face tags filter
- Removed another way to demote face tags into normal tags
- Removed face tags from Recently Used Tags context menu
There are some solutions in digikam architecture that don't allow full implementation of the separation tags and face tags while maintaining digikam compatibility with other softwares for now. That is why the separation of the tags and face tags temporally disabled to allow to focus on the other features/bugs.
Future work
- Separate tags and facetags. This will need some architecture changes. It is possible to remove the inheritance of facetags and leave the plain list. Or copy full branch with face tag under _digiKam_spiceil_facetag_ and hide this tag from GUI and metadata writing.
- Add grouping of the new similar faces
- Change color of the Unconfirmed border according to similarity value
- Change behavior of the reject button on Unconfirmed faces
Links
Contacts
E-mail: [email protected]
Telegram: @antropovi
Github: link