Contacts
- Toni Buades
toni.buades[AT]uib.es - Yifei Lou
yflou[AT]math.ucla.edu - Jean-Michel Morel
morel[AT]cmla.ens-cachan.fr - Zhongwei Tang
tangfrch[AT]gmail.com
References
- Toni Buades, Yifei Lou, J.M. Morel and Zhongwei Tang, "A Note on multi-image denoising",
In the proceeding of the International Workshop on Local and Non-Local Approximation (LNLA) in Image Processing, 2009.
pdf, talk slides
Overview
Taking photographs under low light conditions with a hand-held camera is problematic. A long exposure time can cause motion blur due to the camera shaking and a short exposure time gives a noisy image. We consider the new technical possibility offered by cameras that take image bursts. Each image of the burst is sharp but noisy. In this preliminary investigation, we explore a strategy to efficiently denoise multi-images or video. The proposed algorithm is a complex image processing chain involving accurate registration, video equalization, noise estimation and the use of state-of-the-art denoising methods. Yet, we show that this complex chain may become risk free thanks to a key feature: the noise model can be estimated accurately from the image burst. Preliminary tests will be presented. On the technical side, the method can already be used to estimate a non parametric camera noise model from any image burst.
Datasets
painting MuseOrsay largeFrameLabCam.tgz MuseOrsay largeFrameLabCam.zip
3D scene with motion booksDiffLightsMouse.tgz booksDiffLightsMouse.zip
Algorithm
Registration of Image Sequence
- Input is the image sequence V = {V0, · · · ,VN}.
- Compute SIFT points on V0 and the rest Vj.
- Keep SIFT matching points among all the frames, denoted as CommonSIFTpoints.
- Apply multiple ORSA on the set of CommonSIFTpoints to get the most meaningful 4 points.
- For each j > 0, compute the homography between Vj and V0 using 4 points and register Vj to V0.
Noise Estimation
We use the sequence of registered images to estimate the signal-dependent noise curve.
In a burst of images, if one pixel is well-registered, its values along time give samples to estimate the noise model.
- The histogram of the mean of each pixel along time is constructed with n uniform bins.
- Inside each bin, the median value of the standard deviations is computed, thus yielding a curve of mean versus standard deviation.
How to deal with the wrongly registered pixels?
- Exclude the edge points on which interpolation error occurs during registration. This can be done by Canny edge detector.
- Exclude the pixels whose standard deviation is large than a threshold.
- Exclude the bins that contain very few items.
Video equalization beforehand by Midway
Hybrid Denoising Scheme
Suppose we have two denoising results
- uA = averaging after registration
- uBM3D = any state-of-art denoising method (BM3D is used here)
Thanks to the noise estimation, it is possible to make (soft) decision on which method to denoise at certain pixel.
uH = W x uBM3D + (1 − W) x uA where W is a weight function, depending on the expected standard deviation and the empirical standard deviation, such as
the expected standard deviation from the noise curve,
the empirical standard deviation of the real samples.
Details
SIFT
- Scale-space extrema detection
Scale is identified at each point by searching for extrema in the scale-space of the image via a difference-of-Gaussian convolution. - Keypoint localization
Keypoints are selected based on the stability of fitting a 3-D quadratic function (via Taylor expansion). - Orientation assignment
The rotation w.r.t a canonical reference frame is computed based on local image gradients. - Keypoint descriptor
A vector composed of local image gradients is built, not sensitive to similarity transformations and changes in illumination.
Modified ORSA
Given a set S of the common points and the matching points in the j-th image, denoted as Sj. Set ε = +∞.
Repeat until the number of trials does not exceed N :
- Pick up 4 random points from S.
- For each image Vj,
- compute the homography using these 4 points and the corresponding ones in Sj.
- find the most meaningful subset of S with respect to S under this homography, save the meaningfulness parameter as εj.
- Compute the joint meaningfulness ε0 = Σ εj.
- If ε0 < ε, then ε = ε0, and save the meaningful subset for each pair of images as Tj and the 4 points, P4.
Return ε0 Tj and P4.
Experiments
Examples list of processed images.
Synthetic Data
Comments: block-matching schemes remove the textures that look like noise, which are well-preserved by averaging.
| Noise Curves are expected to be square root function | ||
|---|---|---|
|
|
|
Paintings
| One particular frame | Noise curve |
|---|---|
|
|
| one particular frame after color-balancing | ||
|---|---|---|
|
|
|
| Video NLM after registration | ||
|
|
|
| Video BM3D after registration | ||
|
|
|
| Average after registration | ||
|
|
|
| Hybrid scheme | ||
|
|
|
3D Scene
| One particular frame | Noise curve |
|---|---|
|
|
| one particular frame | ||
|---|---|---|
|
|
|
| Video BM3D after registration | ||
|
|
|
| Average after registration | ||
|
|
|
| Hybrid scheme | ||
|
|
|
3D Scene with Moving Object
| Three frames from the raw data | ||
|---|---|---|
|
|
|
| After SIFT and MidWay | ||
|
|
|
| Noise curve before MidWay | Noise curve after MidWay |
|---|---|
|
|
| one particular frame after color-balancing | ||
|---|---|---|
|
|
|
| Video NLM after registration | ||
|
|
|
| Video BM3D after registration | ||
|
|
|
| Average after registration | ||
|
|
|
| Hybrid scheme | ||
|
|
|
Noise Curves
| one of input images | average after SIFT | Noise curve |
|---|---|---|
|
|
|
| one of input images | average after SIFT | Noise curve |
|---|---|---|
|
|
|
Conclusion
Pros
- Directly obtaining a noise model from a burst.
- Camera shaking is well approximated by homography.
- Denoising performance is predictable as square root of N, where N is the number of the images in a burst
- Images are averaged along time, thus noises are always independent.
- It works with JPEG, and can be extended to raw data
Cons
- no ground-breaking improvement over BM3D
- Complexity: N times of SIFT + 1 BM3D
- memory
Future Work
- denoise each frame in video
- involve 3D depth estimation
- replace SIFT by fast local registration
- beat ground-truth averaging


















































































