Removing Occlusions from Images Using Texture Synthesis Techniques

By Jon Rowlett

  1. TexEx System (Application)
  2. Views (MFC support code)
  3. improc (Image Processing library) 

This research applies the same non-parametric, non-repeating MRF texture model used by Efros and Leung to region segmentation (region growing), instead of texture synthesis.  Even though it handles only orthographic projections of texture and does not handle shadows or any other changes in illumination,  this technique produces some decent results.

Source Image

Black pixels are the occlusions.  Notice it treated some texture pixels in shadow as occlusions, but rejected the blue in the bathmat. A histogram method would accept the blue in the mat, because the same color blue is in the tiles.

Source Image

Recovered alpha mat for the occlusion.  White pixels are the occlusions.

Given a seed region of texture, this technique grows that region to either accept or reject pixels, base on an error threshold.  Against the pixel being tested, it computes an SSD for a discrete window around that pixel with a window around each pixel in the seed region.  The minimum SSD is the window that closest matches the window around the test pixel.  If this minimum is below a certain threshold, the pixel is accepted as texture, otherwise it is rejected.  Different results can be obtained by tweaking the error threshold and changing the window size.  A larger window size will produce more dramatic changes in error, but it increases the pixels accepted  or rejected erroneously.  Read my paper for a complete explanation.

The method attempts to refine the edges, but this did not work too well.  It also attempts to anti-alias the edge-pixels, but this did not work, because no good edges were recovered from the refinement phase.