Digikam/GSoC2012/FaceRecognition

From KDE Community Wiki
Revision as of 09:53, 24 February 2012 by Alexjironkin (talk | contribs) (Updated the page with the WHERE TO GO NEXT list and general updated look.)

DESIGN PHASE

Ideas list

  • use SQLite instead XMLs
  • different way of merging multiple faces together. Currently, in the interests of saving space, as new faces are added to a particular person, rather than keeping them all separate they are merged together using eigen projections.It is good bcause it does save space, loading time and memory in general it tends to lose precision. So a differentmethod of merging would great addition, or perhaps an altogether different approach.
  • New algorithm for face recognition. Currently Eigenfaces is the working algorithm, however it is coloury and rotation variant. This obviously has an adverse effect on quality of recognition. Fisherfacesis much more tollerant to rotation and colour changes. Hidden Markov Model based approach is another possible way of doing it. There used to be good helper function in OpenCV, however they reside in legacy headers and sadly a lot of documentation has been lost so revere engineering will be required from source. Ultimately an entirely new approach would be equally interesting to consider e.g. recognition based neural maps(network). Ideally the projectis not to invent a new method, but rather implement already existing one from the literature.
  • ... (waiting for the end of the exam session)

Where should I start?

You might be asking yourself what should I do next? Where should I begin? The ideal student would be the one that knows what they are trying to do and don't need to have their "hand held" at every step of the way. Asking question is great and we will try to be as helpful as we can be. There are some simple things you can do:

  • Open Google Scholar and search for "face recognition" this will give you some general papers and more specific implementations of face recognition. You should have access to the papers, if not let me know and I will try to get the paper you want.
  • Choose one method that you think is most appropriate, having 1 or 2 reasons for choosing it would be good.
  • Get the HEAD copies of digikam (git) and libface (svn), libface is much smaller and probably the easiest thing to start playing around with. Try things, see what works what doesn't. Don't be afraid to break some code, you can always go back and checkout the HEAD once again.
  • Ask if you are really stuck and have no idea on where to go.


TODO list

  • collect and specify all possible ideas
  • design database schema