iSkyline (Skyline Detection)
2009
Master Semester Project
Project: 00178
Nowadays, there is more to the act of taking a photograph than just recording a picture. Additional processing becomes commonplace, such as image stabilization during the shot, red-eye removal, and face recognition to automatically store the pictures of familiar faces in personalized albums (iPhoto).
The iPhone3G comes equipped with a camera, a GPS localization device, an accelerometer, memory, interactive input, and processing capabilities. We propose to use all of them together. The envisioned scenario is as follows: 1) a picture of a mountainous landscape is taken thanks to the built-in camera; 2) the accelerometer is used to make the horizon horizontal; 3) the localization is acquired thanks to the GPS device; 4) based on the rendering of a pre-loaded depth-elevation model, the skyline of the current location is compared and aligned to the skyline of the picture just taken (this provides the orientation of the shot, which is needed since the iPhone lacks a compass); 5) the user can now finger the mountains visible in the picture, and informations such as their name, height, and other particularities are overlaid.
As the scope of this project is ambitious, we expect that components such as restoring the horizontality of the picture, skyline detection from the picture, rendering of the depth model using OpenGL ES, registration of the detected versus rendered skylines, and integration of these components, will be distributed over several students. In particular, the scope of the present project is the detection of a skyline from the picture taken.
The goal here is to build a function phi(theta) that maps a given azimuth angle theta to an elevation angle phi; the corresponding direction should point to an element of the skyline. Additionally, a function c(theta) should return the degree of confidence of this mapping. These two functions will be obtained by image processing; more precisely, by fitting a snake onto the picture of the skyline. The snake will be a one-dimensional curve described by a (possibly non-cardinal) spline. The student will design the criterion that needs to be optimized. Considerations may incorporate image gradients and piecewise smoothness of the skyline. Taking advantage of color information is expected to be helpful. Once developed, a prototype of the design will be coded in Java first, to quickly acquire an understanding of its appropriateness. Then, the solution will be implemented on the iPhone simulator in ObjectiveC.
To simplify the task, the student will first concentrate on "easy" images where the influence of meteorology is limited (cloudless sky, neither direct view of the sun nor lens flares, mountains without snow caps, atmosphere mostly devoid of Rayleigh scattering, absence of strong shadows, no vignetting, no disturbing foreground, no plane contrails). As the project progresses, a few of these complications may be reintroduced. To help obtaining a variety of conditions for the same scene, the student can tap into the large database of images available from panorama.epfl.ch.
The iPhone3G comes equipped with a camera, a GPS localization device, an accelerometer, memory, interactive input, and processing capabilities. We propose to use all of them together. The envisioned scenario is as follows: 1) a picture of a mountainous landscape is taken thanks to the built-in camera; 2) the accelerometer is used to make the horizon horizontal; 3) the localization is acquired thanks to the GPS device; 4) based on the rendering of a pre-loaded depth-elevation model, the skyline of the current location is compared and aligned to the skyline of the picture just taken (this provides the orientation of the shot, which is needed since the iPhone lacks a compass); 5) the user can now finger the mountains visible in the picture, and informations such as their name, height, and other particularities are overlaid.
As the scope of this project is ambitious, we expect that components such as restoring the horizontality of the picture, skyline detection from the picture, rendering of the depth model using OpenGL ES, registration of the detected versus rendered skylines, and integration of these components, will be distributed over several students. In particular, the scope of the present project is the detection of a skyline from the picture taken.
The goal here is to build a function phi(theta) that maps a given azimuth angle theta to an elevation angle phi; the corresponding direction should point to an element of the skyline. Additionally, a function c(theta) should return the degree of confidence of this mapping. These two functions will be obtained by image processing; more precisely, by fitting a snake onto the picture of the skyline. The snake will be a one-dimensional curve described by a (possibly non-cardinal) spline. The student will design the criterion that needs to be optimized. Considerations may incorporate image gradients and piecewise smoothness of the skyline. Taking advantage of color information is expected to be helpful. Once developed, a prototype of the design will be coded in Java first, to quickly acquire an understanding of its appropriateness. Then, the solution will be implemented on the iPhone simulator in ObjectiveC.
To simplify the task, the student will first concentrate on "easy" images where the influence of meteorology is limited (cloudless sky, neither direct view of the sun nor lens flares, mountains without snow caps, atmosphere mostly devoid of Rayleigh scattering, absence of strong shadows, no vignetting, no disturbing foreground, no plane contrails). As the project progresses, a few of these complications may be reintroduced. To help obtaining a variety of conditions for the same scene, the student can tap into the large database of images available from panorama.epfl.ch.
- Supervisors
- Philippe Thévenaz, philippe.thevenaz@epfl.ch, 021 693 51 61, BM 4.137
- Michael Unser, michael.unser@epfl.ch, 021 693 51 75, BM 4.136