Hello GSoC and Hello Planet!

Hello Everyone!

This is my first post on Planet KDE – so I’ll start with a brief intro of myself:

I’m Aditya Bhatt (adityab on IRC), and I’m an 18-year old, second-year (almost third-year) undergrad student, living in Ahmedabad, India. I’ve been selected to work on digiKam in GSoC 2010. I’ll be enabling digiKam to automatically tag people in photographs by facial recognition. This feature request has been around since a looong time ( 5 years ?). Bugzilla reveals that this is the #1 voted bug in digiKam, and #26 overall for KDE. It’s time this gets done πŸ™‚ For anyone who’s interested, my GSoC proposal is here.

I’ve been using Linux and FOSS in general since about 1999. I think I used a rudimentary form of KDE back then πŸ™‚ I’ve been a longtime KDE user since many years now, and was beginning to feel the urge to give back to the community. I love taking photos whenever I’m with my family, so digiKam was a natural choice to start with.

GSoC is a wonderful opportunity for students as it acts as a kick-start for many to start contributing to open-source. I couldn’t apply for GSoC last year because I wasn’t 18 back then, and my knowledge was also pretty limited. Over the year, I started playing with the awesome Qt API, and also ventured into the KDE API, so that I could start committing real stuff.

Being a second-year student, I’m self-taught in Image Processing and Pattern Recognition. I love those fields because of my liking for Math and AI.

About two months ago (I think), I started hacking on libface, a cross-platform library for face detection and recognition. libface was started by Alex Jironkin (my mentor). It is one of the very few( 2-3 ?) open-source libs for facial recognition. Alex, Marcel, Gilles, and the rest of the digiKam team helped me to improve my proposal.

As a result, I got selected in GSoC. Since my Indian state of Gujarat is a dry state, there was no beer and we had to do with a nice Pepsi party πŸ™‚ A really awesome thing worth noting is that 3 (yes, three) people from my (small) university got selected in GSoC this year, and that too for KDE! The other two: Nikhil Marathe (nsm), who’s in my batch, has already been working with the Kwin team to implement tiling, and he’ll be integrating UPnP support into KDE; Sai Dinesh (saidinesh5) is a year senior to me in the university, and will be working on mobile phone stuff for KDE – something that involves SyncML and Akonadi.

It was awesome to know that KDE got 50 slots this year, with 11 Indians amongst them! I got to know while celebrating on the channel #kde-in.

Integrating libface into digiKam would mean that digiKam would automatically know who’s in which photo and tag their faces, and that makes searching for stuff a lot easier, especially after nepomuk interfaces good with digiKam. Imagine searching in dolphin for the name of your best friend – the search results would show her photos. Or you can search for photos of your mom and dad together πŸ™‚ A nice possibility is that akonadi integration could enable linking your addressbook contacts with photographs – automatically-generated avatar pics for people in your addressbook. You might not need to use facebook’s tagging mechanism is you could upload auto-tagged photos via digiKam (I don’t know for sure if the KIPI plugin for exporting to facebook also exports tags, though).

After adding one more algorithm (fisherfaces) to libface, I’ll be making a tagging widget for pictures. There’s already something in nepomuk playground, and I think I’ll be using that as a starting point. After that, I’ll link libface , digiKam, and the widget together. Some more work must also be done with respect to the tagging style used by digiKam. As of now, digiKam can only tag entire photos with keywords, not regions. Storing tags as metadata needs to be worked upon, without breaking backwards-compatibility.

Lots of hacking to do, yay!

12 thoughts on “Hello GSoC and Hello Planet!

  1. Congratulations πŸ™‚ The idea of face recognition in digiKam is very exciting.

    It’s also good, as you said, to see so many projects going to India. It looks like one of the big growth areas for computer science and the apparent level of enthusiasm for KDE and our software is great.

    1. I think that if the KIPI picasa exporter can convert digiKam tags to picasa-friendly tags, then it should not be a problem. I haven’t investigated if this is so (yet). And you can always choose to not enable picasaweb’s face detection and instead use the digiKam-generated tags if you wish.

  2. Being a huge fan of digikam, I can’t stand to express to you all my gratitude for such a good project!!

    Keep up the good work!

    1. No, we’re not going to use KIPI.

      The work is to be divided into 3 parts:
      1. libface, which does all the biometric work.
      2. The tagging widget, which I think I shall implement as a separate lib/class. I’ve heard that the mandriva folk used to package the nepomuk-peopletag thingy. I’m going to tweak that and make it more polished. Unfortunately, it does not even compile at the moment, and seems to have been abandoned. Fortunately, most of the code in it doesn’t need to be modified.
      3. Integrate it into digiKam – this involves a lot of metadata-related work.

      I think it should be pretty easy to use the tagging widget in gwenview too. But I don’t think it’s a good idea to have face recognition in gwenview – it’ll slow down things unnecessarily. It’d be enough to only be able to interact with tags in gwenview.

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s