Difference between revisions of "Image Analysis and Synthesis"
(New page: == Proposals for Projects == To be published in few hours) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == Proposals for Projects == | + | == 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: [mailto:vincenzo.caglioti@polimi.it 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: [mailto:vincenzo.caglioti@polimi.it 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: [mailto:vincenzo.caglioti@polimi.it 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 [http://www.leet.it/home/giusti/teaching/ias/Boracchi.pdf description with figures (PDF)] | ||
+ | |||
+ | Contact: [mailto:giacomo.boracchi@polimi.it dott. Boracchi] | ||
+ | |||
+ | === Projects about sport event analysis === | ||
+ | Several projects are available about ball detection and tracking in sport events. | ||
+ | |||
+ | See [http://www.leet.it/home/giusti/teaching/ias/Sport.pdf description with figures (PDF)] | ||
+ | |||
+ | Contact: [mailto:giacomo.boracchi@polimi.it dott. Boracchi], [mailto:alessandro.giusti@polimi.it ing. Giusti] or [mailto:pierluigi.taddei@polimi.it ing. Taddei] | ||
+ | |||
+ | === Low cost tablet input device using the WII remote === | ||
+ | See [http://www.leet.it/home/giusti/teaching/ias/Input.pdf description with figures (PDF)] | ||
+ | |||
+ | Contact: [mailto:pierluigi.taddei@polimi.it 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 [http://www.leet.it/home/giusti/teaching/ias/Gait.pdf figure (PDF)] | ||
+ | |||
+ | Contact: [mailto:alessandro.giusti@polimi.it ing. Giusti] | ||
+ | |||
+ | === Using the GPU for Image Processing Tasks === | ||
+ | [http://en.wikipedia.org/wiki/CUDA 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: [mailto:alessandro.giusti@polimi.it 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: [mailto:alessandro.giusti@polimi.it ing. Giusti] | ||
+ | |||
+ | === A Manipulable Input Device === | ||
+ | We have developed a [http://www.springerlink.com/content/e76108281v3u116r/fulltext.pdf manipulable input device for space curves]; several projects are available as improvements to that system. | ||
+ | |||
+ | [http://www.leet.it/home/giusti/teaching/ias/Canal.pdf More details (PDF)] | ||
+ | |||
+ | Contact: [mailto:alessandro.giusti@polimi.it ing. Giusti] |
Latest revision as of 09:59, 4 September 2009
Contents
- 1 General Rules and Information for Course Projects
- 2 Proposals for Course Projects
- 2.1 Stereo-based gaze analysis
- 2.2 Visual odometry with general cameras
- 2.3 Visual analysis of moving glass
- 2.4 Projects about denoising and deblurring
- 2.5 Projects about sport event analysis
- 2.6 Low cost tablet input device using the WII remote
- 2.7 Low level video analysis for detecting walking people
- 2.8 Using the GPU for Image Processing Tasks
- 2.9 Speedline generation from video
- 2.10 A Manipulable Input Device
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.
Contact: ing. Giusti