Monday, April 14, 2008

Image Editing

Pérez, P., Gangnet, M., and Blake, A. 2003. Poisson image editing. Proc. ACM SIGGRAPH, 313-318.

Chen, J., Paris, S., and Durand, F. 2007. Real-time edge-aware image processing with the bilateral grid. Proc. ACM SIGGRAPH, 103.


Stuart Heinrich said...

Poisson image editing:
Seems to be pretty basic stuff...estimate a field of values from a field of derivatives and boundary values. Still, it works.

The authors speculate about the Photoshop spot healing method. Although this method is "secret" as a user, I can say it is not nearly advanced.

The spot healing technique seems to basically replace the masked region by a random offset from the color image. It definitely doesn't do any intelligent equation solving.

This means that to use it effectively, you need to repetetively pick many small patches and replace them one by one. This works very well for a uniform background. It works very poorly if the background has distinct features.

See comparison I made here:

I was a bit confused how they did color remapping in the article

Stuart Heinrich said...

"Weiss [2006] maintains local image histograms, which unfortunately limits this approach to box spatial kernels instead of the smooth Gaussian kernel"

This statement is incorrect. I have implemented a gaussian kernel local histogram this semester...

Real-time Edge-Aware Image Processing with the Bilateral Grid

They note that the nonlinear bilinear filter can be made into a regular convolution by adding an extra dimension. Then they implement this on the GPU at a lower resolution for enhanced speed compared to CPU.

Clearly this degrades solution quality due to the downsampling, as well as the bucketing of color values into a coarse grid. Furthermore, they have not shown any evidence that this method would be faster than a simple direct implementation of the bilinear filter. In fact, one would expect that increasing the dimensionality would incur a significant reduction in performance.

From personal experience, I know for a fact that the bilinear filter can be implemented in real time using a 2 pass method on the GPU without bucketing or downsampling, using over 100 samples per pixel which is enough for a 10x10 Gaussian window at least..and downsampling could be used too. Therefore I find their entire paper highly suspect...

Sorry, I'm negative, but this is how I see it. Still, an interesting read!

Unknown said...

Poisson Image Editing:

I think their insertion does a good job of image mixing, but it seems they need some work on brightness/color adjustment. I'm especially talking about the bear in Fig. 3. It seems to brighten the whole selection to make the water the same color, but then the bear looks washed out.

Fig 6 I do not see this halo they speak of in (a). (d) I *think* is trying to show how the blue ink would look mixed with the orange wall. This, while accurate in some cases, would not in others. Even in this case it depends on the marker.

Perhaps they chose poor examples, but I found Fig 9 and the guy in Fig 10 to both be very unimpressive. For Fig 9 what would be the goal of texture flattening other than getting that cell shaded cartoon look? I ask because there's plenty of other ways to do that. The guy in Fig 10, while a little brighter, looks really poor. Why not just do a normal brightness adjustment on a selected area within something like GIMP?