Artifact-free Ghost Removal algorithms? Yes, please!

It's been a while since I pointed out some interesting white papers. Time to catch up.

Let's start out with the centerpiece of last blog post: Ghost Removal. How does that work under the hood, and why is Photoshop CS5 so much better at it?

As general rule of thumb: However tempting, you should not get into the habit to leave Ghost Removal checked “just in case”. That’s because this option will tell a software to use as little information from as few source images as possible. It will operate under the assumption that blending pixel values from different exposures is a bad thing. Instead it will try to establish a single exposure as the dominant source of information, and use the rest of the exposures as supplemental sources only. The result is more noise and less color fidelity, most noticeable in the extreme ends of the dynamic range. For that reason, ghost removal should only be used when an exorcism is really necessary.

But when we really have a ghost at hand, then the things that set good ghost removal apart from lousy ghost removal, are these:
  • How well can it detect a moving object?
  • How successful is it in masking the moving part out of all the other images?
  • How much information can it still use from the non-ghosted, clean areas?
Photoshop CS5 excels in these key areas, and that's why it delivers so well. If you care about the exact formulas used in Photoshop's algorithm, have a peek at the HDR tech bible / 2nd revision. But it's definitely inspired by this very readable paper:

Highslide JS

Artifact-free High Dynamic Range Imaging

by Orazio Gallo and some folks from Nokia Research.

All examples in this post are taken from this paper. What they do is to cleverly isolate the treatment only to the ghosted areas, otherwise they just proceed with averaging as many good pixels as possible.

The funky colormap on the right shows how many source images actually contribute to the final HDR image, for each area. As you see, the algorithm gathers plenty of detail on the ground, but uses one image less for the spot where people walk through.

The result comes out pretty clean.

Highslide JS

Gallo's paper explains how they do it. Read it!
Read it twice and very thoroughly if you're an HDR software developer, please!

PS: Hui, another one of those long blog posts. Tipped by David in the Forum. Thanks!
Guess it would be easier if I'd just post a pretty image every now and then, like everybody else does. But I promised you hard facts in the title of this blog, and so I'll just stay on course...

Next Page