Image Analysis and Synthesis

From AIRWiki
Jump to: navigation, search

General Rules and Information for Course Projects

Most projects can be done by groups of more than one student: evaluation will obviously consider whether the result comes from a single student or a group of students. In the latter case, a bigger work is expected; the group will provide a single submission.

Moreover, most projects can be assigned to multiple groups. Obviously, each group must provide a different submission.

As projects differ in nature, evaluation of projects will not be directly related to the obtained results. Some projects are more practical, others more theoretical; some projects propose simple problems, others more difficult problems. In general, we will evaluate your understanding of the topic and your effort to solve the given problem, possibly by following more than one approach. If you do not obtain good results but you understand and clearly explain why, that's OK.

Submission and registration

Unless where noted otherwise, submission consists in the following:

  • The code you produced, well commented and with the necessary documentation for using, extending and understanding it. The code should be easily runnable.
  • A short writeup describing in detail the problem, your solution, the results you obtained (with images and examples) and in general everything you did.
  • An extract in HTML form, containing just a simple description of the project, approach and results.

Any approach you tried and turned out not to work, and any problems you encountered and their solutions is not wasted time and it must be included in the writeup.

The writeup and the related code must be sent to the project advisor by email at least one week before the exam date; this is not strict if you interact with the advisor during the development; the advisor may ask for improvements and/or require further details. In order to register the final grade, you must be registered to the exam via poliself.

You may update the advisor by regularly posting partial results and your current directions in the thread. This way, the advisor may provide useful suggestions and guide your work.

Larger projects

In many cases, your project work may be extended in order to include the project work for the Advanced Topics course in the second semester. You should ask for this by sending an email to the professor.

Moreover, some students may want to do a bigger project to be joined to "Laboratorio di Intelligenza Artificiale e Robotica". In these cases, you must contact the professor by email prior to starting the work, as there may be some additional projects of interest which are not listed here.

Project assignment

A person from each group should send an email to the project advisor. Most projects may be assigned to two or even three groups at the same time: in such cases, we will probably suggest different parts and extensions of the problem for each group to focus on.

Custom projects

If you have a specific interest on a topic, we may discuss a custom project. In this case, email the professor. If you have any previous experience or works on the topic, you must notify us so that we decide an appropriately-sized extension! Read: we will not accept recycled projects.

Proposals for Course Projects

Stereo-based gaze analysis

An essential component of a human-computer interface based on the direction along which a person looks is a visual gaze analysis module: this module uses two stereo images of a face and determines (i) the position and orientation of the segment joining the two eyes (ii) the gaze (the direction where the eyes are pointing). The development of the project is articulated along several activities:

  • stereo camera calibration
  • eye-oriented feature extraction and correspondence determination
  • triangulation of the two eyes from their images
  • analysis of the apparent contours of the eyes in order to estimate the gaze direction.

Contact: prof. Caglioti

Visual odometry with general cameras

Visual odometry for mobile robots may benefit from the use of catadioptric, panoramic cameras, owing to the broader viewing field. The development of a visual odometry system is the purpose of this project. This system is constituted by several components:

  • a motion estimation component
  • a ground-plane reconstruction component
  • a motion+reconstruction refinement module, using data from several observed displacements.

Contact: prof. Caglioti

Visual analysis of moving glass

In several industrial applications, the extraction of information about the transportation of glass parts by a transportation belt is required. A visual system able to analyze the shape and motion of glass parts translating on a transportation belts is the purpose of this project. Viewing glass is difficult: the idea to overcome such difficulties consists in the use of a grid pattern, and to visually analyze the reflection of the grid pattern on the glass surface. Using a calibrated camera, the grid geometry and position, and the speed of the transportation belt, the glass surface and trajectory can be reconstructed.

Contact: prof. Caglioti

Projects about denoising and deblurring

Several projects are available on image processing topics:

  • Motion Estimation from a Single Blurred Image
  • Blurred Image Analysis, Restoration and Segmentation
  • Low-light Image Restoration

See description with figures (PDF)

Contact: dott. Boracchi

Projects about sport event analysis

Several projects are available about ball detection and tracking in sport events.

See description with figures (PDF)

Contact: dott. Boracchi, ing. Giusti or ing. Taddei

Low cost tablet input device using the WII remote

See description with figures (PDF)

Contact: ing. Taddei

Low level video analysis for detecting walking people

Many different techniques are available in order to detect a walking person; in this project you are required to investigate a simple technique which uses low level information, directly recovered from the pixels of the video. Several tasks are available, and the project may focus on few of them.

  • Create an high-quality dataset of videos of walking people. The provided dataset should be composed of at least 15-20 short videos (10-20 seconds each), depicting people from different viewing angles and distances. Some (or all) of the videos may be recovered from datasets already available on the internet. Some uncompressed videos should also be present. Some additional videos should also represent different moving objects, such as cars or something else.
  • Extract the foreground of each frame, i.e. recover a binary image which is 1 at the foreground, 0 elsewhere. You may experiment with simple or more advanced background subtraction methods found in literature.
  • Evaluate how well the previous step works with the videos in the dataset, also describing the effects of compression, contrast between person and background, shadows...
  • Study how the sequence of foreground masks may help you in detecting a walking person (for example, discriminating it from a different object). Try the following steps:
    • For every pixel, compute the largest number of consecutive frames where such pixel is foreground.
    • Look for peculiarities in the image previously obtained: you may see local maxima at the positions where the feet are on the ground.
    • Try to detect such local maxima; recover the timestamp for each. Can you create a chain of "steps"?
    • If you detected a possible chain of steps, try to validate it: how regular are they (in space and time)?
    • Devise other methods in order to validate this.

See figure (PDF)

Contact: ing. Giusti

Using the GPU for Image Processing Tasks

CUDA and similar architectures are being increasingly used in image processing and computer vision in order to dramatically improve algorithm performance. Several possible different projects on this topic may be:

  • a detailed survey of the state of the art in using CUDA for computer vision, encompassing techniques and applications. This may optionally be integrated with short experiments with already available software.
  • describe if and how a specific image processing technique may be implemented in a CUDA system, e.g. morphological processing, image filtering, robust fitting... This should also be implemented and tested in practice, and optionally a library may be created for performing that simple operation from matlab or opencv. A "toy" application using such library may also be provided.
  • design a very simple computer vision application or consider an existing one, and investigate how it could be made faster by using CUDA.

Contact: ing. Giusti

Speedline generation from video

Speedlines are a pictorial representation of motion in a single image (just like in comics). The project requires to work with a very simple algorithm already implemented in matlab, which creates an image with speedlines when fed with a video, and returns very interesting results.

Several project options are:

  • improve the current algorithm, by implementing some additional processing of the speedlines before they are drawn;
  • experiment with techniques for drawing the speedlines in a visually pleasing manner, possibly in a vectorial format for later manual editing;
  • re-implement the algorithm in C, C++ or any other meaningful language of your choice, with the goal of realtime operation;
  • implement an high-level system which employs the current algorithm, i.e. for a video surveillance application;

A paper with many figures describing the current algorithm and its applications is available upon request.

Contact: ing. Giusti

A Manipulable Input Device

We have developed a manipulable input device for space curves; several projects are available as improvements to that system.

More details (PDF)

Contact: ing. Giusti