Wednesday 19 December 2012

Pre-Christmas Update

Initial Feedback

From my first presentation to the department, I received some feedback on my specification. Key outcomes include:
  • Retaining focus on the key areas, so that I can complete these well rather than doing lots of areas not so well
  • Based on the above, it especially true with the 2 potential directions that this project could take. Therefore the intelligent resizing methods will only be looked at if there is a lack of challenge and depth   to the feature finding, and only then will I look at intelligent resizing
  • A metric for measuring and judging the quality of the results. This can be based on rules programmed into the solution as well as possibly using crowd sourcing techniques
  • Evaluation. Based on the metric, but how can I explain and show whether the system is selecting the best images.

OpenCV and Face Recognition Libraries

To aid the image processing side of the project, I have decided to work with the OpenCV library. OpenCV uses the BSD license and so it's OK to use. Previous use of OpenCV in C++ and C++ in general means it should be quite easy to pick up again and the fact that it works cross platform maximises the project's potential usage. I will primarily be working on Windows, but will be testing on Linux as well.

After a little research I have found 2 libraries for face recognition in OpenCV.

FaceRecogniser Class

This class is actually included with the latest version of OpenCV 2.4, so it will make it far easier to get started with recognising faces within images. The library comes with 3 algorithms depending on how you wish to recognise the faces:
  • Eigenfaces
  • Fisherfaces
  • Local binary patterns histograms.

More info:
FaceRecognizer Tutorial

FaceDetection

The FaceDetection library is older- it uses OpenCV 1 and warns that there may be compatibility issues with later versions. A link to a 'new' version of a similar library that works with OpenCV 2 is provided that uses the 'cascade' classifier.

More info:
FaceDetection Examples

Dissertation

By the end of January I plan to have made substantial progress on my dissertation. Since I will have completed all of my background reading of papers and articles on the area of image processing and computational photography, I will be able to write the technical background section. This will also reinforce my knowledge in the area and it may reveal some potential issues I may come across later in the implementation, and so it will leave me enough time to find a solution.
In having to explain the basis of the project in the written form, I will have a definite objective as well as making sure all viewpoints are covered.

In short:
  • Introduction
  • Supporting technologies
  • Contextual background- explanation and motivation for the underlying problem
  • Technical background- information on related work so that the reader can understand the aim.

Sunday 18 November 2012

Introduction


Photographers can spend a lot of time sorting through photos, trying to find the best photo of a particular group, so that everyone is looking, no one is blinking, all heads are visible etc.
My aim is to automate this by the means of computational photography, so that the time spent on this laborious but necessary step is reduced. I aim to detect features within the image that make up good and bad aspects of a photo and classify based on these features.
I myself have spent hours going backwards and forwards through a set of photos, struggling to decide which photos I like the best. Since at the end of the day, these photos may go into a gallery where the people in the photos can buy them, thus they will be more likely to buy the photos if they are given the best selection available.
An extension to this is to integrate face recognition into the gallery, so that the user is only shown photos which they are in.
Furthermore I aim to look at intelligent resizing methods to adjust the composition of images to obey the rule of thirds, automatically correct rotation etc. so that they look more pleasing.

Objectives

  • Determine features that can classify good and bad parts of an image
  • Collect data set of around 500 images 
  • Work out a metric for each feature as to how well it classifies images
  • Test on new, unknown images and real world testing
  • Refine features from testing
  • Create facial recognition gallery
  • Investigate intelligent resizing.