GSoC/2019/StatusReports/ThanhTrungDinh: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2019‎ | StatusReports
No edit summary
No edit summary
Line 9: Line 9:
* '''Improve face detection''': ''implementation to be investigated''
* '''Improve face detection''': ''implementation to be investigated''
** detect faces across various scales (e.g. big, small, etc.), with occlusion (e.g. sunglasses, scarf, mask etc.), with different orientations (e.g. up, down, left, right, side-face etc.)  
** detect faces across various scales (e.g. big, small, etc.), with occlusion (e.g. sunglasses, scarf, mask etc.), with different orientations (e.g. up, down, left, right, side-face etc.)  


'''Mentors''' : Maik Qualmann, Gilles Caulier, Stefan Müller
'''Mentors''' : Maik Qualmann, Gilles Caulier, Stefan Müller
== Work report ==
=== Bonding period (May 6 to May 27) ===
=== Coding period : Phase one  (May 28 to June 23) ===


== Important Links ==
== Important Links ==


=== Proposal Link ===
=== Proposal ===
[https://drive.google.com/open?id=1PeWZIeR3JcgrN5QqbpkYSH8bcZsblMRJ Project Proposal]
[https://drive.google.com/open?id=1PeWZIeR3JcgrN5QqbpkYSH8bcZsblMRJ Project Proposal]


Line 27: Line 21:


=== Contribution ===
=== Contribution ===
== Work report ==
=== Bonding period (May 6 to May 27) ===
Generally, I familiarized myself with current Deep Learning (DL) based approach for face recognition in digiKam. I picked up the work of Yingjie Liu (the student working on that topic in 2017), investigated his codes, read his proposal, his blog posts and status report in order to understand clearly what he did and what he left. His work led me to FaceNet paper and a C++ implementation of the OpenFace face recognition library. They seemed very potential to my work. In addition, Liu also indicated the results of unit tests on his DL implementation. However, those tests were conducted externally, without using any digiKam preprocessing feature.
For the rest of the bonding period, I decided to read carefully FaceNet paper and also investigated other neural network models in order to select the right model to implement when coding period begins. I also started coding test program, so that I could evaluate more exactly the benchmark of current DL implementation for face recognition in digiKam.
My plan for next 2 weeks of coding period is:
* Finish neural network model selection
* Finish test codes
* Start to port current DL implementation to OpenCV DNN module
=== Coding period : Phase one  (May 28 to June 23) ===
== Blog Posts ==


== Contacts ==
== Contacts ==

Revision as of 20:50, 23 June 2019

digiKam AI Face Recognition with OpenCV DNN module

digiKam is KDE desktop application for photos management. For a long time, digiKam team has put a lot of efforts to develop face engine, a feature allowing to scan user photos and suggest face tags automatically basing on pre-tagged faces by users. However, that functionality is currently deactivated in digiKam, as it is slow while not adequately accurate. Thus, this project aims to improve the performance and accuracy of facial recognition in digiKam by exploiting state-of-the-art neural network models in AI and machine learning, combining with highly-optimized OpenCV DNN module.

The project includes 2 main parts:

  • Improve face recognition: implementation with OpenCV DNN module
    • reduce processing time while keeping high accuracy
    • classify unknown faces into classes of similar faces
  • Improve face detection: implementation to be investigated
    • detect faces across various scales (e.g. big, small, etc.), with occlusion (e.g. sunglasses, scarf, mask etc.), with different orientations (e.g. up, down, left, right, side-face etc.)

Mentors : Maik Qualmann, Gilles Caulier, Stefan Müller

Important Links

Proposal

Project Proposal

Git dev branch

gsoc19-face-recognition

Contribution

Work report

Bonding period (May 6 to May 27)

Generally, I familiarized myself with current Deep Learning (DL) based approach for face recognition in digiKam. I picked up the work of Yingjie Liu (the student working on that topic in 2017), investigated his codes, read his proposal, his blog posts and status report in order to understand clearly what he did and what he left. His work led me to FaceNet paper and a C++ implementation of the OpenFace face recognition library. They seemed very potential to my work. In addition, Liu also indicated the results of unit tests on his DL implementation. However, those tests were conducted externally, without using any digiKam preprocessing feature.

For the rest of the bonding period, I decided to read carefully FaceNet paper and also investigated other neural network models in order to select the right model to implement when coding period begins. I also started coding test program, so that I could evaluate more exactly the benchmark of current DL implementation for face recognition in digiKam.

My plan for next 2 weeks of coding period is:

  • Finish neural network model selection
  • Finish test codes
  • Start to port current DL implementation to OpenCV DNN module

Coding period : Phase one (May 28 to June 23)

Blog Posts

Contacts

Email: [email protected]

Github: TrungDinhT