Digikam/GSoC2019: Difference between revisions

From KDE Community Wiki
(firs)
 
Line 1: Line 1:
==== Project: AI Face Recognition with OpenCV DNN module ====
==== Project: AI Face Recognition with OpenCV DNN module ====== <!--T:7-->


'''Brief Explanation''': With GoSC 2016, we proposed a project to implement an AI extension to the [https://cgit.kde.org/digikam.git/tree/core/libs/facesengine/recognition digiKam core face recognition]. The project used the Dlib C++ API, but we were not satisfied by the results, as the algorithm gave poor performance. This choice also introduced a huge backport of low level codes which we don't want to maintain. So, even though the project proposed a somewhat suitable solution to provide an AI face recognition processor based on deep-learning, this one was not really powerful and functional enough. For now, this section of code about Dlib DNN extension is disabled in digiKam core.
'''Brief Explanation''': With GoSC 2016, we proposed a project to implement an AI extension to the [https://cgit.kde.org/digikam.git/tree/core/libs/facesengine/recognition digiKam core face recognition]. The project used the Dlib C++ API, but we were not satisfied by the results, as the algorithm gave poor performance. This choice also introduced a huge backport of low level codes which we don't want to maintain. So, even though the project proposed a somewhat suitable solution to provide an AI face recognition processor based on deep-learning, this one was not really powerful and functional enough. For now, this section of code about Dlib DNN extension is disabled in digiKam core.
Line 14: Line 14:
'''Mentors''': Maik Qualmann and Gilles Caulier
'''Mentors''': Maik Qualmann and Gilles Caulier
----
----
==== Project: Faces Management workflow improvements ====
==== Project: Faces Management workflow improvements ====



Revision as of 21:13, 12 February 2019

Project: AI Face Recognition with OpenCV DNN module ==

Brief Explanation: With GoSC 2016, we proposed a project to implement an AI extension to the digiKam core face recognition. The project used the Dlib C++ API, but we were not satisfied by the results, as the algorithm gave poor performance. This choice also introduced a huge backport of low level codes which we don't want to maintain. So, even though the project proposed a somewhat suitable solution to provide an AI face recognition processor based on deep-learning, this one was not really powerful and functional enough. For now, this section of code about Dlib DNN extension is disabled in digiKam core.

As digiKam core already depends on OpenCV library to perform complex image processing, and as OpenCV >= 3.3 release provide a new OpenCV DNN (Deep Neural Network) module, the goal now is to port the current digiKam core face recognition DNN extension to new OpenCV API and write all unit tests to validate the algorithm usability, efficiency, and performance, while learning and recognizing faces automatically.

Expected Results:

Provide a suitable Face recognition based on DNN OpenCV API, with unit test, and documentation.

Knowledge Prerequisite:

  • C, C++, Qt, OpenCV, digiKam

Mentors: Maik Qualmann and Gilles Caulier


Project: Faces Management workflow improvements

Brief Explanation: digiKam provide a Faces detection algorithm which work mostly in 80% of use cases. It detect faces position in image automatically and register these information in database. Event if a lots of tasks can be done in background by digiKam, the end-users needs to adjust, re-organize, rename, delete Face tags in database through the user interface.

Since many year, a lots of improvements have been identified by digiKam users community to improve the face tags management workflow in graphical use interface. See this list of bugzilla entries for details

Note: Face Recognition is another part of Faces management, but this project is concerned by algorithms used while recognition.

Expected Results:

Provide a better Face Tags management workflow in user interface, with unit test, and documentation.

Knowledge Prerequisite:

  • C, C++, Qt, User interface, digiKam

Mentors: Gilles Caulier


Project: Zoomable and Resizable Brush for Healing Clone Tool

Brief Explanation: With GoSC 2016, we have proposed a project to implement an Healing Clone tool for digiKam image editor to be able to remove unwanted artifacts from images. The student has implemented the basis without a zoomable canvas and without the resizable brush support. Due to this lack of features, the tools cannot be used in production by end-users.

This section of code about healing clone tool is currently disabled in digiKam core.

The goal of this project is to implement the missing feature for the Healing Clone tool in image editor, including the unit-tests and the documentation.

Expected Results:

Provide a suitable Healing clone tool for image editor, with unit tests, and documentation.

Knowledge Prerequisite:

  • C, C++, Qt, digiKam

Mentors: Mohamed Anwer and Gilles Caulier


Project: Factoring all Export Tools with new Export API

Brief Explanation: With GoSC 2018, we proposed a project to implement a huge factorization and improvements with all digiKam export to web service tools. Our student fixed plenty of code using OAuth version 2 authentification, has simplified classes, and started to write a new API to factorize all these tools, including a common Wizard dialog. Even if the export tools implementation are now better, they do not use the new API and always run as a stand alone session in digiKam core. Due to this fact, the Web Service tools are not yet usable in digiKam Batch Queue Manager as single step runnable at end of a queue processing. So the section of code about factored export tools API is currently disabled in digiKam core. This year, the project will be to fix that.

Expected Results:

Start to use every the new export tools API, use the new Wizard dialog, factoring codes everywhere, and introduce all export tools to BQM. Write unit tests, and documentation.

Knowledge Prerequisite:

  • C, C++, Qt, digiKam

Mentors: Maik Qualmann and Gilles Caulier