Guy Brown's Undergraduate Projects 2010-2011

GJB-1: A stereo camera rig for kite aerial photography

Suitable for Aerospace students only

Co-supervisor from Aerospace: Dr Robert Howell

Kites provide a cost-effective way of lofting a camera in order to take aerial photographs, and indeed kite aerial photography (KAP) has been actively used since the 1880's. Modern digital compact cameras are small and light, which opens up the possibility of raising two spatially separated cameras in order to record stereo aerial images. Aside from their use to make 3D stereograms, stereo image pairs can also be used for stereophotogrammetry (i.e., constructing a 3D surface from the image pair) which has useful applications in archeology and surveying.

This project will develop a stereo camera rig which will be suspended under a kite via the kite string. The key tasks in the project are:

  • Design of a rig for holding the two cameras under the kite, suspended from the kite string by a so-called Picavet suspension. Because the cameras must be separated on a long bar some aerodynamic design must be undertaken to ensure that the rig is stable during flight (rotational stability is likely to be a particular problem).
  • Testing the stability of the camera rig in a wind tunnel and also during real kite flights (using an accelerometer or gyro sensor to record data from the rig during flight).
  • Implementation of software for controlling the cameras (prefocusing and interval exposure) on an Arduino microcontroller, which will be attached to the rig. The Canon Hack Developers Kit (CHDK) will be used to interface the microcontroller with the cameras.
  • Implementation of software in the Java programming language for constructing 3D red-blue anaglyphs from stereo image pairs, which can then be viewed using coloured 3D glasses.
  • Depending on the interests and ability of the student, more advanced topics could also be addressed such as photogrammetry and wireless control of the camera rig.

Resources required

  • Aerosopace will supply materials for constructing the camera rig.
  • Computer Science will provide cameras, an Arduino microcontroller, accelerometer/gyro sensor and the use of a kite for testing.

Skills required

  • Competent Java programmer
  • Experience of aerodynamic design
  • Some experience of digital electronics and embedded systems design would be an advantage but is not essential

Initial reading and useful links

See me for copies of papers on stereo photography.


GJB-2: A comparison of tone mapping algorithms for high dynamic range digital photography

High dynamic range (HDR) techniques allow a scene with a very large brightness range to be recorded in a digital camera by combining information from a sequence of different exposures. However, in order to view a HDR image on a conventional screen, or print it on paper, it is necessary to compress the dynamic range using a "tone mapping" algorithm. Many different algorithms for tone mapping have been suggested, which vary in their naturalism, computational cost and tendency to produce artifacts such as halos. This project will implement a number of different tone mapping algorithms in the MATLAB programming language and carry out quantitative and subjective testing to assess their effectiveness.

Resources required

  • MATLAB

Skills required

  • Some experience of MATLAB programming is an advantage
  • Good maths

Initial reading and useful links


GJB-3: Images with interactive focus

This project will develop an application (preferably on a touchscreen device such as the iPhone or an Android phone) which will display images with interactive focus. A camera rig will be developed using the Canon Hack Developers Kit (CHDK) to take a sequence of images of a subject with slightly varying focus points. This image data will then be processed into a form suitable for display in an interactive application, which will allow the user to focus on a particular point in the image by moving their finger. Local statistics of the image sequence will be used to identify the regions of each image that are most in focus.

Resources required

  • CHDK
  • Either Java running on a desktop PC or, preferably, an iPhone (Mac required to run iPhone developer tools) or Android phone

Skills required

  • Good programming skills
  • An interest in photography would be an advantage
  • Reasonable maths needed for sharpess calculation and image interpolation

Initial reading and useful links


GJB-4: A software microprocessor for teaching computer architecture

Student: Stuart Scott

This project will develop a software simulation of a microprocessor, to be used for teaching computer architecture. Students will be able to program the software microprocessor in a simple assembly language, and view the state of the computer (memory and register contents, instruction pipeline etc) during execution of the program.

Resources required

  • Java

Skills required

  • Good programming skills

Initial reading and useful links

  • A. Clements (2006) Principles of computer hardware. Oxford University Press

GJB-5: An iPhone application for photo captioning

Student: Zsolt Bitvai

Advisor: Ahmet Aker

The amount of images tagged with geospatial metadata (geo-tagged) on the web is growing rapidly, facilitated by the availability of GPS equipped mobile phones. For instance, the number of photos with geospatial metadata in Flickr reached 100 million in the two and a half years since Flickr started providing a geo-tagging service.

However, the majority of these images are indexed with GPS coordinates only which are of limited use in image search. The GPS coordinates are mainly adopted in map-based browsing in the photo sharing Web sites. It is not available for the user to search within the GPS photo collection by general text queries unless the photos are manually annotated with additional textual information.

Ahmet Aker, a PhD student in the NLP research group, has developed a system for automatic image captioning or caption enhancement starting with only a set of place names pertaining to an image. The place names are retrieved automatically using the GPS information only. The technique applies only to images of static features of the built or natural landscape (e.g. buildings, mountains, etc.) and not to images of objects which move about in such landscapes (e.g. people, cars, clouds, etc.). His system is based on extractive multi-document summarization techniques, where the documents to be summarized are web-documents retrieved using the place names associated with an image.

Currently users can upload geo-tagged images to his system, which runs as a web application, and obtain a short description about the place shown in the image. Descriptions related to a location shown in an image have many potential applications. It could, for instance, help users gain quick access to the information they seek about a place of interest just by taking (with his/her phone) its picture. Such textual information could also, for instance, used by a tourist who seeks further interesting places to visit nearby.

However, currently the user has to upload every taken image with his/her phone manually to the system (i.e. take the image, go to our web application, upload the image, obtain the description, go to e.g. to Facebook, upload the image to Facebook, upload the description to Facebook) which is time consuming and does not represent a real time application. What is needed is an application that does all the steps automatically for the user after he/her presses the button.

1. The aim of this project is to develop a mobile phone application that communicates with Aker's captioning system and social networking sites such as Facebook and performs automatically all the activities the user has to do currently.

2. Furthermore, the application should act as a tourist guide to the user. Based on the user's GPS coordinates the application should be able to suggest the user nearby interesting places to visit. The information about nearby information could be obtained based on existing queries (the image with the GPS coordinates) sent to our captioning system. In addition to this a social network of users could contribute to the list of nearby places. As pointed in step 1 the application should be able to communicate with e.g. Facebook a highly popular social networking site. After the application uploads an image to Facebook it could contact all the people or friends in the user's Facebook contact list and asked them to do sightseeing with him/her. The people in the contact list will then see the images and their descriptions, do a virtual sightseeing with the user and also suggest the user some nearby places to go if they know some.

Resources required

  • Java running on a mobile platform (Android phone) or iPhone (Mac required for iPhone developer tools)

Skills required

  • Excellent programming skills

Initial reading and useful links


Last updated on 1st April 2010