Sweet

This landed in my mailbox today:

Hi Aditya Bhatt,

We have processed the evaluation for your project named Face Recognition in digiKam with KDE.

Congratulations, from our data it seems that you have successfully passed the Final Evaluations. Please contact your mentor to discuss the results of your evaluation and to plan your goals and development plan for the rest of the program

Greetings,
The Google Open Source Programs Team

This has been the one awesome year, from getting selected for GSoC to working with KDE and digiKam, getting paid to work on what I like to do, finally passing the final evaluations, going to a sprint in France next week, and also getting some/all exams waived in the beginning of next month. Awesome 😀

Looking forward to working more with digiKam, I have a lot of things I want to implement…

[digiKam GSoC] Face Tags progress

The GSoC deadline is coming soon, so here’s what I’ve done so far:

Face detection is now almost fully integrated into digiKam, you can scan photographs in all of your albums by clicking the “Scan for faces” button in the new People Sidebar on the left.

Scanning your albums for people
Scanning your albums for people

The scanner uses the same progress dialog as the already-existing image fingerprint generator for the fuzzy searches uses. It has resume support, of course.

You can configure your detection and recognition accuracy :

Tune speed, accuracy, etc.
Tune speed, accuracy, etc.

The new People Sidebar has a rescan button and a filtered tag tree view that only shows tags below the “People” tag. So yes, we’re using normal digiKam tags to organize people, and not some separate marking.

By default, images with detected faces go into the “Unknown” tag. Once you tag all people in the an image, the “Unknown” tag is unassigned for it.

In a recent change, People Tagging now supports grouping people into categories. You could, for example, make a new sub tag of “People” named “Family”, and drag-move all family members names to it. Later, whenever a family member is tagged, the tag below “Family” will be assigned to him/her, instead of creating a new tag below the “People” tag. No, you can’t have two people with the same name (as of now).

People Sidebar
People Sidebar

Clicking on a person name in the tag tree will show you all photos that have that person in them. We also have a normal tag sidebar on the right (not shown here), using which you can select any two or more persons to see photos with all of these in them. Of course, this is standard tag behavior.

And here’s the region tagging in the image preview:

Face region tagging
Face region tagging

Most of the region tagging widget’s code is lifted straight from the nepomuk-peopletag widget and the rectangle-region tagging class is now exported by libkface. It isn’t awesome, has a few glitches, but it works. Will be improved later.

Dismiss a face (or non-face 😉 ) by clicking on the red cross, and approve a name by pressing the tick mark, upon which the tag is immediately applied. If a face is not detected (happens), you can add your own face region tag.

The iconview-based tagging is to be done later this week . There were some deep changes required in digiKam model-view code which my co-mentor Marcel is working on. Once these changes are done, it should be easy to have faces as icons in the iconview, with a text entry widget below each face thumbnail, etc. The face recognition code is already there in the FaceIface interface I’ve written in digiKam, but will be used only with the iconview.

I probably could have done things faster, but real life gets in the way. My new semester started half a month ago, so my work pace isn’t exactly what I’d like. I’ll blog about work as soon as I finish the recognition.

Also, we’re releasing digiKam 2.0 on Christmas, this December. The current release is 1.3.0. The plan is to release 1.4.0 and probably 1.5.0 as bugfix/incremental releases. There will be a 2.0 beta about a month before it’s release. 2.0 will have all the 3 huge GSoC projects merged in. So that gives me a lot of time to fix things, improve/change the recognition algorithm, etc.

Anyway,

I’m going to : :D

Gilles is organizing the event in his home city, Aix en Provence, near the famous city of Marseille in France, so kudos to him.

I’ll be discussing parts of my project like usability issues, fixing my crappy GUI code, and will do some bugfixes. And finishing off possibly unfinished parts of my project.

Looking forward to meeting with the great team, and a big thank-you to Claudia and the e.V for sponsoring everything!