Jump to...
project #2
project #3
final project
assignments
|
project #1: High Dynamic Range Imaging
Assigned: 2007/3/7
Due: 2007/3/27 11:59am
voting,
artifacts,
winning artifacts
Project description
High dynamic range (HDR) images have much larger dynamic ranges than
traditional images' 256 levels. In addition, they correspond linearly to
physical irradiance values of the scene. Hence, they are useful for
many graphics and vision applications. In this assignment, you are
asked to finish the following tasks to assemble an HDR image in a group
of two.
1. Taking photographs.
Take a series of photographs for a scene under different exposures.
(As discussed in the class, changing shutter speeds is probably the best
way to change exposures for this application.)
For that, you need a digital camera that allows you to set exposures.
You can use your own camera or borrow a Canon PowerShot G7 from us.
If you need to borrow G7, please
sign up here.
It is suggested that you use a tripod when you take pictures. Again, you can use
your own or borrow one from TAs by signing up at the above page.
One thing to note is that you should avoid touching your camera during
this process so that all pictures are well registered.
For Canon cameras, there are programs allowing you to set exposures and
release shutter remotely, for example, Breeze system's
PSRemote.
Another (better) solution would be to use
AHDRIA
for some models from Canon.
Cameras of other brands might have a similar solution for remote capturing,
but you have to discover on your own. You are welcome to write down your
findings for that matter in your report.
When you borrow G7 from us, you can borrow a laptop with PSRemote installed
from us as well.
If you decide to manually change exposures, it would help if you align
your images before proceeding to the next step.
Photomatix has a free version
for HDR creation and image alignment,
Photomatix Basic.
Its professional version
can be used for alignment as well.
I strongly recommend that you use it for alignment.
RASCAL also has a utility called imageAlignment for aligning images.
You can either download from
their website or
here.
You are also welcome to write a program for alignment as bonuses. A good
candidate is the median threshold bitmap
we discussed in the class.
2. Write a program to assemble an HDR image.
Write a program to take these captured images as inputs and
output an HDR image and,
optionally, the response curve of the camera.
We provide a C++ image class called
gil
which supports I/O for many image formats for both unsigned-char images and
float-point images. We recommend that you output your radiance map
as a Radiance RGBE image (.hdr).
As discussed in the class, there are several ways for assembling
a radiance map.
- Paul Debevec's method. Please refer to
Debevec's SIGGRAPH 1997 paper.
Mkhdr and
HDRShop use this algorithm.
The details of this algorithm has been discussed in class.
The most difficult part probably is to solve the resulted over-determined
linear system. You can use
these packages,
GSL,
Boost,
LAPACK,
LAPACK++,
ATLAS,
or write your own solver.
You can refer to Chapter 2 of
Numerical Recipes
if you want to write your own linear solver.
If you want to test your program before taking pictures of your own,
you can download test images from
here or
here.
-
On the other hand, to avoid the trouble with camera's nonlinear mapping, you
can recover a radiance map directly from CCD snapshots.
To use this method, remember to have your camera save images in raw format
during capturing. You can then use
dcraw to convert
raw images into 16-bit ppm images. Dcraw can decode raw formats for 248
cameras including most of Canon, Nikon and Kodak's.
Since the recorded pixels are linear to irradiance, you can just recover the
slope of the recorded pixel values under different exposures and use it as
the irradiance value.
Notice that, to recover colors, you have to perform demosaicking on the
recovered radiance map.
3. Develop your radiance map using tone mapping.
Finally, load your radiance map into
HDRShop and use Reinhard's tone
mapping algorithm to develop your radiance map into a usual image.
This HDRShop plugin implements Reinhard's algorithm for HDRShop.
Optionally, you are welcome to write other tone mapping algorithms,
preferably in HDRShop plugin format. You can refer to
this page
to learn how to write a plugin for HDRShop.
Implementing tone mapping will be counted as a bonus since it is not required.
Here are several other options for tone mapping:
Photomatix (algorithm unknown),
logview
and tmo (24 algorithms implemented).
The following two tone mapping programs are for Linux only:
Fast Bilateral Filtering and
PFStmo (seven algorithms implemented).
Bells and whistles
Students will get extra points if they implement any of the following
extensions. Please note that the basic requirement for this project
is pretty simple. It is strongly recommended that you implement at
least one of these extensions.
- Image alignment methods for HDR imaging. A good suggestion is Ward's
MTB algorithm.
- Other HDR creation methods such as Mitsunaga and Nayar's algorithm. Please refer to their CVPR 1999 paper,
Radiometric Self Calibration. The main difference with Debevec's method
is that this method assumes that the response curves are high-order polynomials.
RASCAL
uses this method.
Another popular method is Robertson's method.
It is more robust.
- Tone mapping. Any tone mapping algorithms other than Reinhard's are
counted as bonuses. Refer to the
reading list
for more tone mapping algorithms.
You are welcome to do any other extensions or develop algorithm related
to high dynamic range images. The bonus depends on how useful and difficult
these extensions are.
Submission
You have to turn in your complete source, the executable, the original
pictures you have taken, a recovered HDR image, a tone-mapped image,
instruction to run your program and a report in html format
(including all resources).
The report could contain a description of this project, what you have
learned from this project, description of the algorithm you implemented,
implementation details, results (either good or bad), and what extensions
you have implemented.
You also have to submit your favorite artifact
generated by the program you have implemented (not the reference
software).
For the artifacts for this project, submit the tone-mapped image.
All class participates will vote for the top three artifacts.
The creators for these artifacts will get extra bonus points.
Please submit your homework by sending a mail to
.
We recommend that you send only a link to your report in the mail.
Everything you want to submit should be linked from your report,
and be put in the same directory or its sub-directories.
After receiving your mail, we will fetch your homework by some automatic
tool (ex: wget).
If you change anything after you sent your mail, you should send the (new)
link again.
However, you can also send an archived file, instead of a link, as an
attachment. But it may fail for many reasons. You should check with
me if you don't receive any reply after 24 hr.
If you have any questions, please contact your TA.
Reference software
- Photomatix:
a high-quality commercial program to create HDR images and tone mapping.
It has a free version with basic operations.
- HDRShop:
a program to create, view and manipulate HDR images.
- AHDRIA & AHDRIC:
a program to automatically create HDR images including camera support.
- RASCAL:
a HDR creation program with image alignment capability.
References
-
Paul E. Debevec, Jitendra Malik,
Recovering High Dynamic Range Radiance Maps from Photographs,
SIGGRAPH 1997.
-
Tomoo Mitsunaga, Shree Nayar,
Radiometric Self Calibration,
CVPR 1999.
-
Greg Ward,
Fast Robust Image Registration for Compositing High Dynamic
Range Photographs from Hand-Held Exposures,
jgt 2003.
-
Ramanath, Snyder, Bilbro, and Sander.
Demosaicking Methods for Bayer Color Arrays,
Journal of Electronic Imaging, 11(3), pp306-315.
-
A Thorough Survey on Demosaicking
-
Jack Tumblin, Greg Turk,
LCIS: A Boundary Hierarchy for Detail-Preserving Contrast Reduction,
SIGGRAPH 1999.
-
Raanan Fattal, Dani Lischinski, Michael Werman,
Gradient Domain High Dynamic Range Compression,
SIGGRAPH 2002.
-
Fredo Durand, Julie Dorsey,
Fast Bilateral Filtering for the Display of High Dynamic Range Images,
SIGGRAPH 2002.
-
Erik Reinhard, Michael Stark, Peter Shirley, Jim Ferwerda,
Photographics Tone Reproduction for Digital Images,
SIGGRAPH 2002.
-
Michael Ashikhmin,
A Tone Mapping Algorithm for High Contrast Images,
EGWR 2002.
-
F. Drago, K. Myszkowski, T. Annen, N. Chiba,
Adaptive Logarithmic Mapping for Displaying High Contrast Scenes,
Eurographics 2003.
-
Hwann-Tzong Chen, Tyng-Luh Liu, Tien-Lung Chang,
Tone Reproduction: A Perspective from Luminance-Driven Perceptual Grouping,
CVPR 2005.
- Other HDR related links
|