Computational Photography Denoising

Similar documents
Image Pyramids and Applications

Image Restoration Using DNN

Storage Efficient NL-Means Burst Denoising for Programmable Cameras

DCT image denoising: a simple and effective image denoising algorithm

Collaborative Sparsity and Compressive MRI

Structure-adaptive Image Denoising with 3D Collaborative Filtering

Markov Random Fields and Gibbs Sampling for Image Denoising

IMAGE RESTORATION VIA EFFICIENT GAUSSIAN MIXTURE MODEL LEARNING

Dense Image-based Motion Estimation Algorithms & Optical Flow

Optimal Denoising of Natural Images and their Multiscale Geometry and Density

Image Deblurring Using Adaptive Sparse Domain Selection and Adaptive Regularization

IMAGE DE-NOISING IN WAVELET DOMAIN

MULTIVIEW 3D VIDEO DENOISING IN SLIDING 3D DCT DOMAIN

One Network to Solve Them All Solving Linear Inverse Problems using Deep Projection Models

IMAGE DENOISING TO ESTIMATE THE GRADIENT HISTOGRAM PRESERVATION USING VARIOUS ALGORITHMS

MULTIFRAME RAW-DATA DENOISING BASED ON BLOCK-MATCHING AND 3-D D FILTERING FOR LOW-LIGHT LIGHT IMAGING AND STABILIZATION

Introduction to Computer Graphics. Image Processing (1) June 8, 2017 Kenshi Takayama

Templates, Image Pyramids, and Filter Banks

Detecting Salient Contours Using Orientation Energy Distribution. Part I: Thresholding Based on. Response Distribution

Adaptive Edge-guided Block-matching and 3D filtering (BM3D) Image Denoising Algorithm

Statistical image models

IMAGE DENOISING USING NL-MEANS VIA SMOOTH PATCH ORDERING

Computer Vision I - Filtering and Feature detection

Locally Adaptive Regression Kernels with (many) Applications

Neural Networks for Machine Learning. Lecture 15a From Principal Components Analysis to Autoencoders

Detecting Burnscar from Hyperspectral Imagery via Sparse Representation with Low-Rank Interference

Locally Adaptive Regression Kernels with (many) Applications

Peripheral drift illusion

CHAPTER 9 INPAINTING USING SPARSE REPRESENTATION AND INVERSE DCT

Filters (cont.) CS 554 Computer Vision Pinar Duygulu Bilkent University

Implementation of the Non-Local Bayes (NL-Bayes) Image Denoising Algorithm

Midterm Examination CS 534: Computational Photography

Adaptive Kernel Regression for Image Processing and Reconstruction

What do we mean by recognition?

Day 3 Lecture 1. Unsupervised Learning

Generalized Tree-Based Wavelet Transform and Applications to Patch-Based Image Processing

Image Denoising Based on Hybrid Fourier and Neighborhood Wavelet Coefficients Jun Cheng, Songli Lei

Image correspondences and structure from motion

Image denoising with patch based PCA: local versus global

A New Orthogonalization of Locality Preserving Projection and Applications

Comparison between Motion Analysis and Stereo

Improved Non-Local Means Algorithm Based on Dimensionality Reduction

Image pyramids and their applications Bill Freeman and Fredo Durand Feb. 28, 2006

CS 4495 Computer Vision Motion and Optic Flow

Applications of Image Filters

Computer Vision I - Basics of Image Processing Part 1

Course Evaluations. h"p:// 4 Random Individuals will win an ATI Radeon tm HD2900XT

Image Analysis & Retrieval. CS/EE 5590 Special Topics (Class Ids: 44873, 44874) Fall 2016, M/W Lec 18.

BM3D Image Denoising using Learning-based Adaptive Hard Thresholding

A Fast Non-Local Image Denoising Algorithm

Verification: is that a lamp? What do we mean by recognition? Recognition. Recognition

Sparsity and image processing

Computer Vision I - Algorithms and Applications: Basics of Image Processing

Patch-Based Color Image Denoising using efficient Pixel-Wise Weighting Techniques

IMAGE denoising is a well-known, ill-posed problem in

Bias-Variance Trade-off (cont d) + Image Representations

Filtering Images in the Spatial Domain Chapter 3b G&W. Ross Whitaker (modified by Guido Gerig) School of Computing University of Utah

CS4733 Class Notes, Computer Vision

Does everyone have an override code?

THE NOISE CLINIC : A UNIVERSAL BLIND DENOISING ALGORITHM

SUPPLEMENTARY MATERIAL

EE795: Computer Vision and Intelligent Systems

Combinatorial Selection and Least Absolute Shrinkage via The CLASH Operator

PLENTY of denoising methods exist, originating from various

Randomized sampling strategies

Bilevel Sparse Coding

Measurements and Bits: Compressed Sensing meets Information Theory. Dror Baron ECE Department Rice University dsp.rice.edu/cs

Motion Tracking and Event Understanding in Video Sequences

Data Compression. The Encoder and PCA

Feature Tracking and Optical Flow

Feature Tracking and Optical Flow

ME/CS 132: Introduction to Vision-based Robot Navigation! Low-level Image Processing" Larry Matthies"

ECE 8201: Low-dimensional Signal Models for High-dimensional Data Analysis

CS448f: Image Processing For Photography and Vision. Fast Filtering

Sampling and Monte-Carlo Integration

Advanced phase retrieval: maximum likelihood technique with sparse regularization of phase and amplitude

Ninio, J. and Stevens, K. A. (2000) Variations on the Hermann grid: an extinction illusion. Perception, 29,

Last week. Multi-Frame Structure from Motion: Multi-View Stereo. Unknown camera viewpoints

Tracking Computer Vision Spring 2018, Lecture 24

Artificial Neural Networks Unsupervised learning: SOM

Inverse Problems and Machine Learning

An Improved Approach For Mixed Noise Removal In Color Images

Block Matching and 3D Filtering for Image Denoising

An Optimized Pixel-Wise Weighting Approach For Patch-Based Image Denoising

JOINT IMAGE SHARPENING AND DENOISING BY 3D TRANSFORM-DOMAIN COLLABORATIVE FILTERING

Denoising an Image by Denoising its Components in a Moving Frame

Bayesian Spherical Wavelet Shrinkage: Applications to Shape Analysis

Image Denoising using Locally Learned Dictionaries

Introduction to Image Super-resolution. Presenter: Kevin Su

CS4670: Computer Vision

Iterative CT Reconstruction Using Curvelet-Based Regularization

Structural Similarity Optimized Wiener Filter: A Way to Fight Image Noise

Recognition, SVD, and PCA

Multi-stable Perception. Necker Cube

Range Imaging Through Triangulation. Range Imaging Through Triangulation. Range Imaging Through Triangulation. Range Imaging Through Triangulation

An Approach for Reduction of Rain Streaks from a Single Image

CHAPTER 6. 6 Huffman Coding Based Image Compression Using Complex Wavelet Transform. 6.3 Wavelet Transform based compression technique 106

Computer Vision 2. SS 18 Dr. Benjamin Guthier Professur für Bildverarbeitung. Computer Vision 2 Dr. Benjamin Guthier

Redundant Data Elimination for Image Compression and Internet Transmission using MATLAB

Image Processing. Traitement d images. Yuliya Tarabalka Tel.

Transcription:

Computational Photography Denoising Jongmin Baek CS 478 Lecture Feb 13, 2012

Announcements Term project proposal Due Wednesday Proposal presentation Next Wednesday Send us your slides (Keynote, PowerPoint, etc) 4 minutes per group Assignment #2 grading Sign up at Rm. 360.

Overview Noise model Image priors Self-similarity Sparsity Algorithms Non-local Means BM3D

Noise Every observation incurs some uncertainty. Ground truth Observation

Noise Every observation incurs some uncertainty. ISO 1600

Source of Noise Photon shot noise Read noise Thermal noise Pixel non-uniformity Processing artifacts (demosaicking, JPEG)...

Image Formation Model Observation Scene Additive Noise = + J I Nσ

Aside: Why Gaussian? Too many noise sources to model individually. Sum of random variables tend to a Gaussian distribution. Denoising algorithms exist for other models.

Problem Observation Scene Noise J I N = + Given J, compute I (and N.) More unknowns than constraints!

Image Priors Images are not just random collection of intensity values. High correlations among nearby pixels Denoise by averaging with nearby pixels?

Gaussian Filter Gaussian of stdev 5 Noise is gone, but so is detail.

Image Priors Images are not just random collection of intensity values. High correlations among nearby pixels Denoise by averaging with nearby pixels? Denoise by averaging with nearby pixels of similar color?

Bilateral Filter Bilateral filter with σx=σy=10, σr=0.2 Better, but still not great when noise is high.

Image Priors Images are not just random collection of intensity values. Denoise by averaging with nearby pixels? Denoise by averaging with nearby pixels of similar color? Denoise by averaging with nearby pixels of similar texture?

Non-Local Means Buades et al., 2005 (CVPR) Natural images have repetitive textures. Pixels with similar textures will probably have similar values. More discriminative than bilateral filtering.

How-to: NL-Means It turns out this can be ensconced in the Gaussian filtering framework. v (x) = y v(y) f( p(x) - p(y) ) Here p(x) is the image patch centered at x, in a vectorized form.

How-to: NL-Means v (x) = y v(y) f( p(x) - p(y) ) For every x, Compute vector p(x). For every neighbor y, Compute vector p(y). Only look at 21x21 window around x 7x7 patch around pixel, so 49-dim vector Calculate the weight exp( - p(x)-p(y) 2 / 2σ 2 ) Do the weighted sum.

How-to: NL-Means v (x) = y v(y) f( p(x) - p(y) ) Slow part Calculate, for every pair (x,y), p(x)-p(y) 2 Sum of squared difference between two patches.

Calculating SSD Ax Ay i j Ax(i,j) - Ay(i,j) 2 = i j Ax 2 (i,j) + i j Ay 2 (i,j) Easy with integral image - 2 i j Ax(i,j)Ay(i,j) Same as Ax Ay

NL-Means with FFT v (x) = y v(y) f( p(x) - p(y) ) Compute the integral image of v2. For every x, Compute A x. Compute -1 { {Ax} {v} } For every neighbor y, Simulates Ax Ay for all y Calculate the weight exp( - p(x)-p(y) 2 / 2σ 2 ) Do the weighted sum.

NL-Means with FFT Runtime N = # of pixels, M = dim. of p-space Naive O(N 2 M) With FFT O(N 2 logn)

NL-Means with FFT when neighbor search is restricted to N Runtime N = # of pixels, M = dim. of p-space Naive O(N N M) With FFT O(N (N +M) log (N +M))

NL-Means Filter Why does it work better than bilateral?

Even Faster NL-Means Last time, we discussed how to make Gaussian filters very, very fast. Applicable here as well?

Challenges v (x) = y v(y) f( p(x) - p(y) ) p is very high-dimensional. Time complexity of our filtering algorithms scale with dimensionality of p. Can we lower the dimensionality of p?

Patch Space v (x) = y v(y) f( p(x) - p(y) ) Not all values in the p-space are equally plausible. There are subspaces that are much more likely. PCA to reduce dimensionality?

PCA on Patches v (x) = y v(y) f( p(x) - p(y) ) Generate the p-vectors for all pixels. High dimensional! (e.g. 147 if 7x7 patch on 3-channel img) Perform PCA to identify commonly occurring subspaces. Perhaps find ~6 principle components. Project the p-vectors onto this subspace. Voilà.

PCA on Patches Six principal components from the cat image

PCA on Patches PCA performs denoising! PCA throws away non-principal components Makes patches closer together.

NL-Means Filter

NL-Means: Analysis Find similar patches and average them. Should we do something besides averaging?

Wavelet Shrinkage Hypothesis There exists a transform T such that applying T to patches will admit a sparse representation. This is useful in compression. DCT in JPEG encoding. PCA in NL-Means dimensionality reduction.

Wavelet Shrinkage Take a patch in the image. Apply Haar wavelet transform

Haar Wavelet Transform 1 0 2 4 1 3 1 0 0.5 3 2 0.5 1.75 1.25 1.5 Average pairs. Duplicate to upsample

Haar Wavelet Transform 1 1 1 1 1 1 0 0 1 1 1 0 1 0.5 0.5 Average pairs. Duplicate to upsample

Haar Wavelet Transform 1 1 1 1 1 1 0 0 1 1 1 0 1 0.5 Differences 0 0 0 0 0 1 0.5 Average pairs. Duplicate to upsample 0.5

Haar Wavelet Transform 1 1 1 1 1 1 0 0 1 1 1 0 1 0.5 Differences 0 0 0 0 0 1 0.75 0.5 Average pairs. Duplicate to upsample 0.5

Haar Wavelet Transform Input 1 1 1 1 1 1 0 0 Output 0 0 0 0 0 1 0.5 0.75 Note that the coefficients are sparse!

Haar Wavelet Transform Input 1 1 1 1 1 1 0 0 Output 0 0 0 0 0 1 0.5 0.75 Noisy Input 1.03 0.94 1.00 0.95 1.04 0.98 0.00 0.02 Noisy Output 0.09 0.05 0.06-0.02 0.01 1.00 0.47 0.745 The coefficients are no longer sparse!

Wavelet Shrinkage For every image patch, Perform 2D Haar wavelet transform. Perform a soft thresholding: Pull each coefficient towards zero (by some amount Δ.) The patch is now more natural Invert transform to recover patch.

Wavelet Shrinkage Process 8x8 patches Huh? Partitioning the image creates artifacts.

Wavelet Shrinkage Process all (overlapping) patches and blend them.

Summary Non-Local Means Exploit the inter-patch correlations. Wavelet Shrinkage Exploit the intra-patch correlations. Can we perhaps do both?

BM3D Dabov et al., 2006 (IEEE TIP) Block-Matching 3D Perform wavelet thresholding. Also combine multiple patches. Widely recognized as the state-of-the-art denoising technique.

BM3D Dabov et al., 2006 (IEEE TIP) Step 1. For each patch, find similar patches.

BM3D Dabov et al., 2006 (IEEE TIP) Step 2. Group the similar patches into a stack.

BM3D Dabov et al., 2006 (IEEE TIP) Step 3. Perform a 3D Haar wavelet transform.

BM3D Dabov et al., 2006 (IEEE TIP) Step 4. Apply shrinkage (or hard thresholding.)

BM3D Dabov et al., 2006 (IEEE TIP) Step 5. Apply inverse Haar wavelet transform.

BM3D Dabov et al., 2006 (IEEE TIP) Step 6. Combine the patches to form image *. Each patch is a given weight inversely proportional to the # of nonzero entries in wavelet domain.

BM3D Dabov et al., 2006 (IEEE TIP) Step 6. (Optional) Do it again. Instead of thresholding, apply Wiener filter. (Attenuate each coefficient by some scale factor.)

BM3D Dabov et al., 2006 (IEEE TIP)

BM3D Dabov et al., 2006 (IEEE TIP) Works even with really bad noise

Summary Non-Local Means Exploit the inter-patch correlations. Wavelet Shrinkage Exploit the intra-patch correlations. BM3D Exploit both.

Parting Thoughts In computational photography, we are not limited to taking a single photograph and denoising it! Flash-no-flash pair denoising Blurry-noisy pair denoising Stack denoising...

Parting Thoughts The ideas here can be applied elsewhere. Deblurring Sharpening Super-resolution...

Filler Slide How would you denoise video using one of these algorithms? How would you denoise a 3D mesh using one of these algorithms?

Questions?

Reminder Term project proposal Due Wednesday Proposal presentation Next Wednesday Send us your slides (Keynote, PowerPoint, etc) 4 minutes per group Assignment #2 grading Sign up at Rm. 360.