Final Year Project
Last updated on June 7, 2007 - 18:32
A Comparative Anlysis of Image Inpainting Techniques
Abstract:
Image inpainting is the process of seamlessly filling in holes in an image so as to preserve its overall continuity. Digital inpainting is a relatively young research area of computer vision, yet a large variety of techniques have been proposed since the concept was first introduced. This project looks at three separate algorithms, each portraying a different set of characteristics. The algorithms analysed are Bertalmio et al's image inpainting algorithm, a modified version of Efros and Leung's texture synthesis method and an edge-based technique founded on Rareş et al's image restoration algorithm. Extensive experiments were conducted to compare the results of the different algorithms using both a qualitative and quantitative approach.
The following is a quick overview of the three algorithms:
Bertalmio et al's Diffusion Based Algorithm - attempts to continue both the geometric and photometric data that arrives at the border of an occlusion into the missing area itself. This is done using an iterative approach where each successive image (based on the original input image) improves upon the previous image until we get the fully inpainted results.
Efros and Leung's Texture Synthesis Algorithm - uses a copy paste method that fills in the occluded area pixel by pixel. This is done by creating a template for each missing pixel based on the data around it and then searching the surrounding area to find a match within a certain threshold. Once a selection of potential matches has been found it randomly selects one to fill in the missing pixel.
Rareş et al's Edge Based Algorithm - attempts to reconstruct the structure in the occlusion by identifying edges that hit the missing area. Once the edges are found, the best connection of those edges is calculated based upon a number of different factors. This divides the occlusion into separate areas which are then individually inpainted using an inpainting method such as the ones described earlier.
It would be nice to have a program which shows the algorithms working in real time, however due to time constraints while implementing the algorithms and writing my report I am unable to provide this. Most of the development was done with good software engineering concepts in mind and the algorithms are easily interchangeable, however the testing was done in such a way that for each image (or batches of images) the code needed to be recompiled. This probably wasn't the best way to do things, however it was done because I didn't have enough time to change it. I may eventually get around to implementing a program that shows off the three algorithms in real time, but don't have any plans for it in the near future. Also if there is enough demand for the source code for the different algorithms, I may eventually put it up here.
Downloads:
A Comparative Anlysis of Image Inpainting Techniques Report (7.34 mb)



