Image Denoising using Dark Frames

Similar documents
Photographing Long Scenes with Multiviewpoint

Deconvolution , , Computational Photography Fall 2018, Lecture 12

Deconvolution , , Computational Photography Fall 2017, Lecture 17

CoE4TN4 Image Processing. Chapter 3: Intensity Transformation and Spatial Filtering

Multi Viewpoint Panoramas

The ultimate camera. Computational Photography. Creating the ultimate camera. The ultimate camera. What does it do?

A Study of Slanted-Edge MTF Stability and Repeatability

Admin Deblurring & Deconvolution Different types of blur

Technical Note How to Compensate Lateral Chromatic Aberration

Recent Advances in Image Deblurring. Seungyong Lee (Collaboration w/ Sunghyun Cho)

Computer Graphics Fundamentals

DEPENDENCE OF THE PARAMETERS OF DIGITAL IMAGE NOISE MODEL ON ISO NUMBER, TEMPERATURE AND SHUTTER TIME.

Target detection in side-scan sonar images: expert fusion reduces false alarms

Image analysis. CS/CME/BIOPHYS/BMI 279 Fall 2015 Ron Dror

Fast Inverse Halftoning

On the Recovery of Depth from a Single Defocused Image

Lenses, exposure, and (de)focus

Using the Advanced Sharpen Transformation

Physics 2310 Lab #5: Thin Lenses and Concave Mirrors Dr. Michael Pierce (Univ. of Wyoming)

Midterm Examination CS 534: Computational Photography

Light-Field Database Creation and Depth Estimation

Image Capture and Problems

Reikan FoCal Aperture Sharpness Test Report

A Learning-Based Approach to Reduce JPEG Artifacts in Image Matting

One Week to Better Photography

Topaz Labs DeNoise 3 Review By Dennis Goulet. The Problem

A Recognition of License Plate Images from Fast Moving Vehicles Using Blur Kernel Estimation

Image Filtering. Median Filtering

Reikan FoCal Aperture Sharpness Test Report

Intro to Digital SLR and ILC Photography Week 1 The Camera Body

On spatial resolution

High Dynamic Range Imaging

Image Deblurring with Blurred/Noisy Image Pairs

Aperture. The lens opening that allows more, or less light onto the sensor formed by a diaphragm inside the actual lens.

Colour correction for panoramic imaging

Reikan FoCal Aperture Sharpness Test Report

Reikan FoCal Aperture Sharpness Test Report

CAMERA BASICS. Stops of light

T I P S F O R I M P R O V I N G I M A G E Q U A L I T Y O N O Z O F O O T A G E

Super resolution with Epitomes

To Denoise or Deblur: Parameter Optimization for Imaging Systems

Demosaicing and Denoising on Simulated Light Field Images

CTE BASIC DIGITAL PHOTOGRAPHY STUDY GUIDE

Chapter 2-Digital Components

Digital Image Processing

Color Constancy Using Standard Deviation of Color Channels

HIGH DYNAMIC RANGE MAP ESTIMATION VIA FULLY CONNECTED RANDOM FIELDS WITH STOCHASTIC CLIQUES

Chapter 4 MASK Encryption: Results with Image Analysis

Applications of Flash and No-Flash Image Pairs in Mobile Phone Photography

Motion illusion, rotating snakes

37 Game Theory. Bebe b1 b2 b3. a Abe a a A Two-Person Zero-Sum Game

Correction of Clipped Pixels in Color Images

Image Processing Lecture 4

Multispectral Image Dense Matching

CS534 Introduction to Computer Vision. Linear Filters. Ahmed Elgammal Dept. of Computer Science Rutgers University

MIT CSAIL Advances in Computer Vision Fall Problem Set 6: Anaglyph Camera Obscura

>>> from numpy import random as r >>> I = r.rand(256,256);

Bias errors in PIV: the pixel locking effect revisited.

More image filtering , , Computational Photography Fall 2017, Lecture 4

Image Processing by Bilateral Filtering Method

Image Enhancement in spatial domain. Digital Image Processing GW Chapter 3 from Section (pag 110) Part 2: Filtering in spatial domain

Fast Blur Removal for Wearable QR Code Scanners (supplemental material)

Photography Basics. Exposure

Introduction to 2-D Copy Work

Lane Detection in Automotive

Photomatix Light 1.0 User Manual

Edge Preserving Image Coding For High Resolution Image Representation

Vehicle Detection using Images from Traffic Security Camera

Preparing Remote Sensing Data for Natural Resources Mapping (image enhancement, rectifications )

Applying mathematics to digital image processing using a spreadsheet

Performance Comparison of Mean, Median and Wiener Filter in MRI Image De-noising

Recovering highlight detail in over exposed NEF images

Guided Image Filtering for Image Enhancement

Reikan FoCal Aperture Sharpness Test Report

Princeton ELE 201, Spring 2014 Laboratory No. 2 Shazam

DIGITAL IMAGE PROCESSING Quiz exercises preparation for the midterm exam

Kalman Filtering, Factor Graphs and Electrical Networks

Cvision 2. António J. R. Neves João Paulo Silva Cunha. Bernardo Cunha. IEETA / Universidade de Aveiro

Technical Guide Technical Guide

8.2 IMAGE PROCESSING VERSUS IMAGE ANALYSIS Image processing: The collection of routines and

Correcting Over-Exposure in Photographs

Anti-shaking Algorithm for the Mobile Phone Camera in Dim Light Conditions

Image Denoising Using Statistical and Non Statistical Method

Hyperspectral Image Denoising using Superpixels of Mean Band

Intro to Digital Compositions: Week One Physical Design

Computer Graphics (CS/ECE 545) Lecture 7: Morphology (Part 2) & Regions in Binary Images (Part 1)

by Don Dement DPCA 3 Dec 2012

Displacement Measurement of Burr Arch-Truss Under Dynamic Loading Based on Image Processing Technology

Restoration for Weakly Blurred and Strongly Noisy Images

Communications over Sparse Channels:

Face Detection System on Ada boost Algorithm Using Haar Classifiers

Image Denoising using Filters with Varying Window Sizes: A Study

Image Filtering in Spatial domain. Computer Vision Jia-Bin Huang, Virginia Tech

Image acquisition. In both cases, the digital sensing element is one of the following: Line array Area array. Single sensor

Defocus Map Estimation from a Single Image

CSE 564: Scientific Visualization

-f/d-b '') o, q&r{laniels, Advisor. 20rt. lmage Processing of Petrographic and SEM lmages. By James Gonsiewski. The Ohio State University

Lane Detection in Automotive

What is a "Good Image"?

Postprocessing of nonuniform MRI

Transcription:

Image Denoising using Dark Frames Rahul Garg December 18, 2009 1 Introduction In digital images there are multiple sources of noise. Typically, the noise increases on increasing ths ISO but some noise is still observable at lower ISOs as well, especially in underexposed regions of the image. Also, it is often the case that there are patterns in noise specific to the camera being used. While it s true that on increasing the ISO, random noise dominates; fixed pattern noise is more observable at lower ISOs. While there exists a large body of work that models noise as independent and Guassian at every pixel, it is not completely true, especially at lower ISOs. Camera noise can be observed in isolation by capturing dark frames, i.e., by taking images with shutter closed or lens cap on. A naive method to remove noise is to simply subtract the dark frame from a captured image [2]. One can improve upon it by capturing a number of dark frames, taking their average and then subtracting it from the captured image. However, in this work we aim to model the noise statistics better and couple it with natural image statistics to perform denoising. Image denoising is a hot area of research in image processing community. However, the focus of majority of work has been to model natural image statistics while assuming Gaussian per pixel independent noise [3]. Here, we take a complimentary approach where we primarily focus on learning and modeling noise. 2 Overview We assume that in the image formation process, noise is additive (Figure 1a). The captured image Y is generated by adding together latent (denoised) image X and latent noise N, i.e., Y = X + N The corresponding graphical model is shown in Figure 1b. Note that the graphical model assumes only pairwise interactions between the pixels in the latent noise and the latent image. From the graphical model, one can write (a) Figure 1: 1a shows image formation model. X is the latent image, N is the latent noise, which add to give the captured image Y. 1b shows the corresponding graphical model. P(X,Y,N) = 1 (φ(n i,n j )) (φ(x i,x j )) (φ(x i,y i,n i )) Z i where the first two products are over all pairs of adjacent pixels (in noise image and original image respectively) and the third product runs over all pixels involving triplets of noise, image and captured data. However, under our additive model φ(x i,y i,n i ) is non zero only if y i = x i + n i. Under that assumption, one can write the above model in simplified equivalent form: P(X,Y,N) = 1 Z (φ(n i,n j )) (φ(y i n i,y j n j )) Given Y, we want to infer X and N that maximize the above probablity, or equivalently minimize the negative log of above probability. Hence the solution is given by arg min N ( log(φ(n i,n j )) (b) log(φ(y i n i,y j n j ))) or, one can write it as arg min ψ(ni,n j )) + ψ(y i n i,y j n j ) N where ψ(n i,n j ) and ψ(y i n i,y j n j ) are arbitrary functions. Note that while the first term captures 1

the statistics of noise, the second term depends on the statistics of natural images. Lets look at each of them separately. 1. Noise statistics The naive technique of subtracting dark frames suggests that certain pixels are likely to have more noise than other pixels. Given a number of dark frames, one can calculate the probablility distribution over noise for each pixel, i.e., one can calculate P i (n i ). Given this, one simple choice of ψ(n i,n j ) is ψ(n i,n j ) = log(p i (n i )) log(p j (n j )) Figure 2: An example dark frame with intensity boosted 50 times. However, noise in adjacent pixels tends to be correlated. Hence, one can also add another term to the above function that encourages adjacent pixels to have similar noise. ψ(n i,n j ) = log(p i (n i )) log(p j (n j ))+f (n i,n j ) For e.g. a very simple choice for f (n i,n j ) could be n i n j. However, ideally one would like to calculate a separate f for every pair of adjacent pixels, i.e., learn the distribution P (n i,n j ) for every pair of adjacent pixels i and j. This would also require a large amount of training data. 2. Image statistics Gradients in natural image are believed to have a sparse distribution (A heavy tailed Gaussian to be precise [7]). Hence, a common prior imposed on natural image gradients is the sparsity prior. Motivated by that, we use the following simple function ψ(y i n i,y j n j ) = λ (y i n i ) (y j n j ) where λ contains the relative importance being given to the image statistics vs. the noise statistics. In the actual implementation, the above is made robust by putting an upper threshold on the function. 3 Implementation Details 3.1 Generating Statistics I used a Canon Rebel XTi camera which is known to exhibit significant banding noise. 168 dark frames were captured in raw format and were converted to 16 bit TIFFs. An ISO setting of 400 was used which is high Figure 3: Average noise in red channel of dark frames (boosted 50 times). enough to exhibit some banding noise yet low enough to avoid random sensor noise. Aperture was set to f8.0 to make sure that it is not near either of the extreme ends where lenses typically show abnormal behaviour. An example dark frame (with intensity boosted 50 times to make the noise visible) is shown in Figure 2. Similar settings were used for capturing an actual image used as a test image for denoising results (Figure 4). Then for every pixel, a frequency histogram over noise values was computed. Noise values upto 2550 were considerer (in 16 bit format) and were scaled down by a factor of 255 to reduce them to 8 bit format. More precisely P i (n i ) was computed as number of dark frames with value n i at the i th pixel divided by the total number of dark frames. Since the noise has been scaled down to 8 bits, n i {0,1,2,...,9}. Also, the average noise for red channel is shown in Figure 3 showing that significant vertical banding exists for this particular camera. The bands are still prominent after averaging over 168 frames hint that these bands tend to occur at specific places. Statistics were computed independently for the three 2

channels. MATLAB was used to implement this part of the project and the computed statistics (frequency histograms) were written down to text files. 3.2 Running Inference From Section 2, the function which we aim to minimize for infering the MAP solution is given by ( log(p i (n i )) log(p j (n j )) + f ij (n i,n j )) +λ (y i n i ) (y j n j ) Figure 4: Test image to test denoising. It was mentioned in Section 3.1 how P i (n i ) s are learnt. However, even 168 dark frames are not enough to learn f ij (n i,n j ) reliably (Assuming that the noise lies in the range {0,9}, one requires to compute a frequency distribution over 100 values, suggesting that we need much more than 168 frames to come up with reliable estimates). It was also mentioned in Section 2 that a simple choice could be to set f ij (n i,n j ) = n i n j. However, I feel that it s not a good choice as f ij appears to be highly dependent on the location of the pixels. For e.g., the presence of vertical banding suggests that the correlation is stronger in vertical direction that in horizontal direction. One may get away by learning correlation in horizontal and vertical direction separately. But again, since the bands occur at specific locations, the vertical correlation itself varies with columns. Would learning vertical correlation for each column (same across the complete length of column) and similar horizontal correlation constant along the complete row work? For now, I chose to drop the correlation term altogether and the function which I hence minimize is ( log(p(n i )) log(p(n j ))+λ (y i n i ) (y j n j ) As mentioned before, an image was captured using the same settings. The RAW image was converted to an 8 bit bitmap using linear scaling (It would be computationally inefficient to run inference on 16 bit images as noise value would range from 1 to 2550, which reduces to 1 to 10 in case of 8 bit images). For running the max-product loopy belief propagation I used the code made available online by Szeliski et. al. [4] which is optimized for grid graphs used commonly in images. The code provides several methods to do inference (LBP [5], Graph cuts [1], Tree Reweighted Message Passing (TRW) [6], etc.). While certain methods like Graph Cuts which rely on the objective function being submodular are not applicable in this case (a) Figure 5: A crop of of bottom right corner of the image shown in Figure 4. Contrast and brightness has been increased in the second image to make the noise visible. as the objective function here may be non-submodular, I used a variant of the max-product LBP from the library. 4 Results Figure 4 shows the image used for denoising purposes. In fact, I used only the bottom right corner of the image which is significantly underexposed (Figure 5a) and one can see noise on increasing the contrast (Figure 5b). Figure 6 shows the recovered noise as λ is increased. Note that if λ = 0.0, the inference is equivalent to having the most likely noise at each pixel. In that sense, it is closer to subtracting the average noise from the image. As λ is increased, one can see the banding pattern in the noise starts disappearing as the image statistic term dominates and pulls the noise away from the noise statistic. In fact, for high enough λ, one starts to see image structures appearing in noise indicating that the denosing is over smoothing the image at this point. Figure 7 shows crops of denoised image (The magnitude of noise is still too small to be seen, hence enlarged crops are shown and contrast has been further increased). While results with λ = 0.5 and λ = 1.0 (b) 3

(a) Lambda = 0.0 (b) Lambda = 0.5 (d) Lambda = 2.0 (c) Lambda = 1.0 (e) Lambda = 4.0 Figure 6: A crop of of bottom right corner of the image shown in Figure 4. Contrast and brightness has been increased in the second image to make the noise visible. (a) Original image (b) Lambda = 0.0 (c) Lambda = 0.5 (d) Lambda = 1.0 (e) Lambda = 2.0 (f) Lambda = 4.0 Figure 7: Denoised results with varying λ (zoomed in crop, contrast has been further increased to make the difference visible). Results with λ = 0.5 and λ = 1.0 are significantly better than those with λ = 0.0 (look at the red noise on blue bacground). However, increasing λ beyond that leads to observable smoothing of the output image. 4

are better than those with λ = 0.0, one starts to see noticable smoothing of image on increasing λ beyond that. 4.1 Running Time Running loopy belief propagation takes on average 10 seconds for each channel for a 0.6 megapixel image. Hence it takes a total of 30 seconds for processing all channels but it can be easily parallelized as the processing of three channels is independent. However, the statistics files are also quite large ( 300 MB) and it takes a while to parse them. But that time can be easily cut down by storing the statistics in a format easier to parse than plain text. 5 Conclusion and Future Work While it was encouraging to see some pattern in noise which goes against the commonly made assumption of independent Gaussian noise, the magnitude of noise is still too small to see in any appreciable difference in most images under normal circumstances (without stretching the contrast to extreme limits). Also, it seems that testing on ISO 100 is probably worthwhile where the banding noise would dominate even more. But in general case, image noise would be sum of banding (patterned) noise augmented with random noise. Hence while simply removing the banding noise does not make much of difference, augmenting it with other denoising algorithms that remove random noise as well should result in a better performance. The parameter λ, even though helpful, is bound to lead to some loss of sharpness of the image. Ideally, one would not want to make any assumption about statistics of the underlying image. However, we need some way to use the captured data, i.e., the evidence (For e.g. in our case, if we set λ = 0, inference is independent of Y which implies that it ll lead to the same solution for every image). I am not sure how exactly to go about it. One approach could be an interactive one, where the user specifies smooth regions of image so that some noise values can be grounded. With this evidence, one can hopefully infer the rest of noise values solely using the noise statistics. However, we might need to capture statistics over a larger neighborhood than simply pairwise interactions consequentially implying much larger training data. There is another interesting aspect of this approach. Inference based denoising algorithms often directly used image intensities as labels implying that there are 256 possible labels for each pixel. However, if we use noise values as labels then we end up with a much smaller label set (10 in this case). Hence, there might be significant efficiency gains to be had from this approach. On the other hand, the objective function here is nonsubmodular disallowing certain fast algorithms like Graph Cuts. References [1] Y. Boykov, O. Veksler, and R. Zabih. Fast approximate energy minimization via graph cuts. PAMI, 23(11):1222 1239, Nov 2001. [2] http://en.wikipedia.org/wiki/dark frame subtraction. [3] Stefan Roth and Michael J. Black. Fields of experts: A framework for learning image priors. In Proc. CVPR, pages 860 867, Washington, DC, USA, 2005. IEEE Computer Society. [4] Richard Szeliski, Ramin Zabih, Daniel Scharstein, Olga Veksler, Vladimir Kolmogorov, Aseem Agarwala, Marshall Tappen, and Carsten Rother. A comparative study of energy minimization methods for markov random fields with smoothness-based priors. PAMI, 30(6):1068 1080, 2008. [5] M.F. Tappen and W.T. Freeman. Comparison of graph cuts with belief propagation for stereo, using identical mrf parameters. In Proc. ICCV, pages 900 906 vol.2, Oct. 2003. [6] M.J. Wainwright, T.S. Jaakkola, and A.S. Willsky. Map estimation via agreement on trees: message-passing and linear programming. Information Theory, IEEE Transactions on, 51(11):3697 3717, Nov. 2005. [7] Y. Weiss and W.T. Freeman. What makes a good model of natural images? In Proc. CVPR, pages 1 8, June 2007. 5