Computational Photography

Similar documents
Computer Vision Lecture 3

Templates, Image Pyramids, and Filter Banks

Lecture 04 Image Filtering

The Frequency Domain, without tears. Many slides borrowed from Steve Seitz

Taking derivative by convolution

ECE Digital Image Processing and Introduction to Computer Vision. Outline

Review Smoothing Spatial Filters Sharpening Spatial Filters. Spatial Filtering. Dr. Praveen Sankaran. Department of ECE NIT Calicut.

Fast Local Laplacian Filters: Theory and Applications

Image Noise: Detection, Measurement and Removal Techniques. Zhifei Zhang

CSE 473/573 Computer Vision and Image Processing (CVIP)

TRACKING and DETECTION in COMPUTER VISION Filtering and edge detection

Gradient-domain image processing

CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt.

CS 3710: Visual Recognition Describing Images with Features. Adriana Kovashka Department of Computer Science January 8, 2015

Colorado School of Mines Image and Multidimensional Signal Processing

Computer Vision Lecture 3

Lecture 7: Edge Detection

Lecture 3: Linear Filters

CITS 4402 Computer Vision

Introduction to Nonlinear Image Processing

Lecture 3: Linear Filters

Local enhancement. Local Enhancement. Local histogram equalized. Histogram equalized. Local Contrast Enhancement. Fig 3.23: Another example

Subsampling and image pyramids

Announcements. Filtering. Image Filtering. Linear Filters. Example: Smoothing by Averaging. Homework 2 is due Apr 26, 11:59 PM Reading:

I Chen Lin, Assistant Professor Dept. of CS, National Chiao Tung University. Computer Vision: 4. Filtering

Recap of Monday. Linear filtering. Be aware of details for filter size, extrapolation, cropping

Slow mo guys Saccades.

Lecture 8: Interest Point Detection. Saad J Bedros

Local Enhancement. Local enhancement

Image Filtering. Slides, adapted from. Steve Seitz and Rick Szeliski, U.Washington

ECE Digital Image Processing and Introduction to Computer Vision

Vlad Estivill-Castro (2016) Robots for People --- A project for intelligent integrated systems

Linear Diffusion. E9 242 STIP- R. Venkatesh Babu IISc

Lecture 8: Interest Point Detection. Saad J Bedros

Edge Detection. Introduction to Computer Vision. Useful Mathematics Funcs. The bad news

Edges and Scale. Image Features. Detecting edges. Origin of Edges. Solution: smooth first. Effects of noise

Digital Image Processing. Lecture 6 (Enhancement) Bu-Ali Sina University Computer Engineering Dep. Fall 2009

Reading. 3. Image processing. Pixel movement. Image processing Y R I G Q

Today s lecture. Local neighbourhood processing. The convolution. Removing uncorrelated noise from an image The Fourier transform

Super-Resolution. Shai Avidan Tel-Aviv University

Screen-space processing Further Graphics

Thinking in Frequency

Stability of Recursive Gaussian Filtering for Piecewise Linear Bilateral Filtering

Frequency Filtering CSC 767

Image Enhancement: Methods. Digital Image Processing. No Explicit definition. Spatial Domain: Frequency Domain:

Blob Detection CSC 767

Introduction to Computer Vision. 2D Linear Systems

Outline. Convolution. Filtering

Review for Exam 1. Erik G. Learned-Miller Department of Computer Science University of Massachusetts, Amherst Amherst, MA

Image preprocessing in spatial domain

Histogram Processing

Single Exposure Enhancement and Reconstruction. Some slides are from: J. Kosecka, Y. Chuang, A. Efros, C. B. Owen, W. Freeman

Why does a lower resolution image still make sense to us? What do we lose? Image:

LPA-ICI Applications in Image Processing

IMAGE ENHANCEMENT II (CONVOLUTION)

Efficient Beltrami Filtering of Color Images via Vector Extrapolation

Nonlinear diffusion filtering on extended neighborhood

Introduction to Computer Vision

Feature extraction: Corners and blobs

SOS Boosting of Image Denoising Algorithms

Detectors part II Descriptors

Edge Detection in Computer Vision Systems

The Frequency Domain. Many slides borrowed from Steve Seitz

Edge Detection PSY 5018H: Math Models Hum Behavior, Prof. Paul Schrater, Spring 2005

SIFT keypoint detection. D. Lowe, Distinctive image features from scale-invariant keypoints, IJCV 60 (2), pp , 2004.

Blobs & Scale Invariance

Perception III: Filtering, Edges, and Point-features

MATHEMATICAL MODEL OF IMAGE DEGRADATION. = s

Empirical Mean and Variance!

Corners, Blobs & Descriptors. With slides from S. Lazebnik & S. Seitz, D. Lowe, A. Efros

Edge Detection. Computer Vision P. Schrater Spring 2003

6.869 Advances in Computer Vision. Bill Freeman, Antonio Torralba and Phillip Isola MIT Oct. 3, 2018

Digital Image Processing: Sharpening Filtering in Spatial Domain CSC Biomedical Imaging and Analysis Dr. Kazunori Okada

Basics on 2-D 2 D Random Signal

Image enhancement by non-local reverse heat equation

Generalized Laplacian as Focus Measure

Linear Operators and Fourier Transform

Properties of detectors Edge detectors Harris DoG Properties of descriptors SIFT HOG Shape context

Harris Corner Detector

Fast and Robust Pyramid-based Image Processing MATHIEU AUBRY, SYLVAIN PARIS, SAMUEL W. HASINOFF, JAN KAUTZ, and FR DO DURAND

Machine vision, spring 2018 Summary 4

Laplacian Filters. Sobel Filters. Laplacian Filters. Laplacian Filters. Laplacian Filters. Laplacian Filters

Partial Differential Equations and Image Processing. Eshed Ohn-Bar

Medical Image Analysis

Image processing and nonparametric regression

ITK Filters. Thresholding Edge Detection Gradients Second Order Derivatives Neighborhood Filters Smoothing Filters Distance Map Image Transforms

Single-Image-Based Rain and Snow Removal Using Multi-guided Filter

Intensity Transformations and Spatial Filtering: WHICH ONE LOOKS BETTER? Intensity Transformations and Spatial Filtering: WHICH ONE LOOKS BETTER?

Spatially adaptive alpha-rooting in BM3D sharpening

Medical Image Analysis

A Localized Linearized ROF Model for Surface Denoising

Image Stitching II. Linda Shapiro CSE 455

Lecture Outline. Basics of Spatial Filtering Smoothing Spatial Filters. Sharpening Spatial Filters

A TWO STAGE DYNAMIC TRILATERAL FILTER REMOVING IMPULSE PLUS GAUSSIAN NOISE

Machine vision. Summary # 4. The mask for Laplacian is given

Filtering, Frequency, and Edges

Prof. Mohd Zaid Abdullah Room No:

Extract useful building blocks: blobs. the same image like for the corners

The Frequency Domain : Computational Photography Alexei Efros, CMU, Fall Many slides borrowed from Steve Seitz

Transcription:

Computational Photography Si Lu Spring 208 http://web.cecs.pdx.edu/~lusi/cs50/cs50_computati onal_photography.htm 04/0/208

Last Time o Digital Camera History of Camera Controlling Camera o Photography Concepts

Today o Filters and its applications noisy image naïve denoising Gaussian blur better denoising edge-preserving filter Slide credit: Sylvain Paris and Frédo Durand

Slide credit: D. Hoiem The raster image (pixel matrix)

The raster image (pixel matrix) 0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99 0.95 0.89 0.82 0.89 0.56 0.3 0.75 0.92 0.8 0.95 0.9 0.89 0.72 0.5 0.55 0.5 0.42 0.57 0.4 0.49 0.9 0.92 0.96 0.95 0.88 0.94 0.56 0.46 0.9 0.87 0.90 0.97 0.95 0.7 0.8 0.8 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85 0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.6 0.45 0.33 0.86 0.84 0.74 0.58 0.5 0.39 0.73 0.92 0.9 0.49 0.74 0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93 0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.7 0.90 0.99 0.79 0.73 0.90 0.67 0.33 0.6 0.69 0.79 0.73 0.93 0.97 0.9 0.94 0.89 0.49 0.4 0.78 0.78 0.77 0.89 0.99 0.93 Slide credit: D. Hoiem

Perception of Intensity Slide credit: C. Dyer

Perception of Intensity Slide credit: C. Dyer

Color Image R G B Slide credit: D. Hoiem

Image Filtering o Image filtering: compute function of local neighborhood at each pixel position o One type of Local operator, Neighborhood operator, Window operator o Useful for: Enhancing images o Noise reduction, smooth, resize, increase contrast, etc. Extracting information from images o Texture, edges, distinctive points, etc. Detecting patterns o Template matching, e.g., eye template Slide credit: C. Dyer Source: D. Hoiem

Blurring in the Real World Camera shake = * Source: Fergus, et al. Removing Camera Shake from a Single Photograph, SIGGRAPH 2006 Bokeh: Blur in out-of-focus regions of image Slide credit: C. Dyer Source: http://lullaby.homepage.dk/diy-camera/bokeh.html

Image Correlation Filtering o Select a filter g g is called a filter, mask, kernel, or template o Center filter g at each pixel in image f o Multiply weights by corresponding pixels o Set resulting value in output image h o Linear filtering is sum of dot product at each pixel position o Filtering operation called cross-correlation, and denoted h = f g Slide credit: C. Dyer

Example: Box Filter g[, ] Slide credit: David Lowe

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 0 90 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] g[ k, l] k, l f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 30 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 30 30 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 30 30 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 0 0 0 0 0 0 0? 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Image Filtering g[, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 30 30 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 90 90 90 90 0 0 0 0 0 90 0 90 90 90 0 0? 0 0 0 90 90 90 90 90 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

g[ Image Filtering, ] f [.,.] h[.,.] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 30 30 30 20 0 0 0 0 90 90 90 90 90 0 0 0 20 40 60 60 60 40 20 0 0 0 90 90 90 90 90 0 0 0 30 60 90 90 90 60 30 0 0 0 90 90 90 90 90 0 0 0 30 50 80 80 90 60 30 0 0 0 90 0 90 90 90 0 0 0 30 50 80 80 90 60 30 0 0 0 90 90 90 90 90 0 0 0 20 30 50 50 60 40 20 0 0 0 0 0 0 0 0 0 0 0 20 30 30 30 30 20 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h[ m, n] k, l g[ k, l] f [ m k, n l] Credit: S. Seitz

Box Filter What does it do? Replaces each pixel with an average of its neighborhood g[, ] Achieves smoothing effect (i.e., removes sharp features) Weaknesses: Blocky results Axis-aligned streaks Slide credit: David Lowe

Smoothing with Box Filter Slide credit: C. Dyer

Properties of Smoothing Filters o Smoothing Values all positive Sum to constant regions same as input Amount of smoothing proportional to mask size Removes high-frequency components low-pass filter Slide credit: C. Dyer

Gaussian Filtering o Weight contributions of neighboring pixels by nearness 0.003 0.03 0.022 0.03 0.003 0.03 0.059 0.097 0.059 0.03 0.022 0.097 0.59 0.097 0.022 0.03 0.059 0.097 0.059 0.03 0.003 0.03 0.022 0.03 0.003 5 x 5, = o Constant factor at front makes volume sum to o Convolve each row of image with D kernel to produce new image then convolve each column of new image with same D kernel to yield output image Slide credit: Christopher Rasmussen

Smoothing with a Gaussian o Smoothing with a box actually doesn t compare at all well with a defocused lens o Most obvious difference is that a single point of light viewed in a defocused lens looks like a fuzzy blob; but the averaging process would give a little square o Gaussian is isotropic (i.e., rotationally symmetric) o A Gaussian gives a good model of a fuzzy blob o It closely models many physical processes (the sum of many small effects) Slide by D.A. Forsyth

What does Blurring take away? Slide credit: C. Dyer original

What does Blurring take away? Slide credit: C. Dyer smoothed (5x5 Gaussian)

Smoothing with Gaussian Filter

Smoothing with Box Filter

input Slide by S. Paris

box average Slide by S. Paris

Gaussian blur Slide by S. Paris

Gaussian Filters o What parameters matter here? o Standard deviation,, of Gaussian: determines extent of smoothing σ = 2 with 30 x 30 kernel σ = 5 with 30 x 30 kernel Source: D. Hoiem

Slide credit: C. Dyer

Smoothing with a Gaussian Parameter σ is the scale / width / spread of the Gaussian kernel, and controls the amount of smoothing Slide credit: C. Dyer for sigma=:3:0 h = fspecial('gaussian, hsize, sigma); out = imfilter(im, h); imshow(out); pause; end

Gaussian filters = pixel = 5 pixels = 0 pixels = 30 pixels Slide credit: C. Dyer

Gaussian Filters o What parameters matter here? o Size of kernel or mask σ = 5 with 0 x 0 kernel σ = 5 with 30 x 30 kernel Slide credit: C. Dyer

How big should the filter be? o Gaussian function has infinite support but need a finite-size kernel o Values at edges should be near 0 o 98.8% of area under Gaussian in mask of size 5σ x 5σ o In practice, use mask of size 2k+ x 2k+ where k 3 o Normalize output by dividing by sum of all weights Slide credit: C. Dyer

Sharpening Filters 0 0 0 2 0 0 -? 0 0 0 Original (Note that filter sums to ) Source: D. Lowe

Sharpening Filters 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 -? Original (Note that filter sums to ) Source: D. Lowe

Sharpening Filters 0 0 0 2 0 0-0 0 0 Original Sharpening filter - Sharpen an out of focus image by subtracting a multiple of a blurred version Source: D. Lowe

Sharpening Source: D. Lowe

Sharpening by Unsharp Masking o h = f + k(f * g) where k is a small positive constant and g = 0 0-4 0 0 called a Laplacian mask o Called unsharp masking in photography

Sharpening using Unsharp Mask Filter Original Filtered result Slide credit: C. Dyer

Application: Edge Detection 2 0 0 0 - -2 - Sobel Slide credit: C. Dyer Vertical Edge (absolute value)

Application: Edge Detection 0-2 0-2 0 - Sobel Slide credit: C. Dyer Horizontal Edge (absolute value)

Application: Hybrid Images Gaussian Filter I I G G (-G 2 ) I 2 Laplacian Filter unit impulse GaussianLaplacian of Gaussian A. Oliva, A. Torralba, P.G. Schyns, Hybrid Images, SIGGRAPH 2006

https://www.youtube.com/watch?v=gfvmu36fgkw

Application: XDoG Filters Input XDoG Input XDoG Gaussian filtering results Winnemoller, H., XDoG: advanced image stylization with extended Difference-of-Gaussians NPAR 20

Application: Painterly Filters o Many methods have been proposed to make a photo look like a painting o Today we look at one: Painterly-Rendering with Brushes of Multiple Sizes o Basic ideas: Build painting one layer at a time, from biggest to smallest brushes At each layer, add detail missing from previous layer A. Hertzmann, Painterly rendering with curved brush strokes of multiple sizes, SIGGRAPH 998. Slide credit: S. Chenney

Algorithm function paint(sourceimage,r... R n ) // take source and several brush sizes { canvas := a new constant color image // paint the canvas with decreasing sized brushes for each brush radius R i, from largest to smallest do { // Apply Gaussian smoothing with a filter of size const * radius // Brush is intended to catch features at this scale referenceimage = sourceimage * G(fs R i ) // Paint a layer paintlayer(canvas, referenceimage, Ri) } return canvas } Slide credit: S. Chenney

Algorithm 2 procedure paintlayer(canvas,referenceimage, R) // Add a layer of strokes { S := a new set of strokes, initially empty D := difference(canvas,referenceimage) // euclidean distance at every pixel for x=0 to imagewidth stepsize grid do // step in size that depends on brush radius for y=0 to imageheight stepsize grid do { // sum the error near (x,y) M := the region (x-grid/2..x+grid/2, y-grid/2..y+grid/2) areaerror := sum(d i,j for i,j in M) / grid 2 if (areaerror > T) then { // find the largest error point (x,y) := max D i,j in M s :=makestroke(r,x,y,referenceimage) add s to S } } paint all strokes in S on the canvas, in random order } Slide credit: S. Chenney

Results Original Biggest brush Medium brush added Finest brush added Slide credit: S. Chenney

More filters (3 mins Break) Slide credit: S. Chenney

Filter Re-cap noisy image naïve denoising Gaussian blur better denoising edge-preserving filter Slide credit: Sylvain Paris and Frédo Durand

Median Filter Replace pixel by the median value of its neighbors No new pixel values introduced Removes spikes: good for impulse, salt & pepper noise Slide credit: C. Dyer

Median Filter Salt and pepper noise Median filtered Slide credit: M. Hebert, C. Dyer Plots of a row of the image Matlab: output im = medfilt2(im, [h w])

Median Filter o Median filter is edge preserving Slide credit: C. Dyer

Slide credit: C. Dyer

input 9x9 median filter output Slide credit: C. Dyer images by J. Plush

Bilateral filter o Tomasi and Manduci 998 http://www.cse.ucsc.edu/~manduchi/papers/i CCV98.pdf o Related to SUSAN filter [Smith and Brady 95] http://citeseer.ist.psu.edu/smith95susan.html Digital-TV [Chan, Osher and Chen 200] http://citeseer.ist.psu.edu/chan0digital.html sigma filter http://www.geogr.ku.dk/chips/manual/f87.htm Slide credit: F. Durand

Start with Gaussian filtering o Here, input is a step function + noise J f I output input Slide credit: F. Durand

Gaussian filter as weighted average o Weight of x depends on distance to x J(x) f (x,x) I(x) x x x x x output input Slide credit: F. Durand

The problem of edges o Here, x o It is too different pollutes our estimate J(x) J(x) f (x,x) I(x) x x x x x output input Slide credit: F. Durand

Principle of Bilateral filtering [Tomasi and Manduchi 998] o Penalty g on the intensity difference J(x) k(x) f (x,x) g(i(x) I(x)) I(x) x x x I(x) output Slide credit: F. Durand input

Bilateral filtering [Tomasi and Manduchi 998] o Spatial Gaussian f J(x) k(x) f (x,x)g(i(x) I(x)) x I(x) x x x output input Slide credit: F. Durand

Bilateral filtering [Tomasi and Manduchi 998] o Spatial Gaussian f o Gaussian g on the intensity difference J(x) k(x) f (x,x) g(i(x) I(x))I(x) x x x I(x) output input Slide credit: F. Durand

Normalization factor [Tomasi and Manduchi 998] o k(x)= J(x) k(x) f (x,x) g(i(x) I(x)) x f (x,x) g(i(x) I(x)) I(x) x output input Slide credit: F. Durand

Blur from averaging across edges input * output * * Same Gaussian kernel everywhere. Slide credit: P. Sylvain

Bilateral filter: no averaging across edges input * output * * The kernel shape depends on the image content. Slide credit: P. Sylvain

Parameter for intensity difference Gaussian g r = 0. r = 0.25 r = (Gaussian blur) input s = 2 Parameter for spatial distance Gaussian f s = 6 s = 8 Slide credit: P. Sylvain

Parameter for intensity difference Gaussian g r = 0. r = 0.25 r = (Gaussian blur) input s = 2 Parameter for spatial distance Gaussian f s = 6 s = 8 Slide credit: P. Sylvain

Result Input Output Tomasi and Manduchi 998

Other view o The bilateral filter uses the 3D distance Slide credit: F. Durand

Speed o Direct bilateral filtering is slow (minutes) o Accelerations exist: Subsampling in space & range o Durand & Dorsey 2002 o Paris & Durand 2006 Limit to box kernel & intelligent maintenance of histogram o Weiss 2006 Slide credit: F. Durand

Local filters o Compute a new value at each pixel using its neighboring pixels o Box filter o Gaussian filter o Median filter o Bilateral filter

Non-local means filter o Compute a new value at each pixel from the whole image final value at pixel i weight of pixel j value at pixel j Buades, A., Coll, B., Morel, J.-M. A non-local algorithm for image denoising. CVPR 2005

Weight : patch centered at pixel i : patch centered at pixel j Similar pixel neighborhoods give a large weight Reprint from Buades et al. 2005

Input Gaussian Anisotropic Total variation Neighborhood NL-means Reprint from Buades et al. 2005

Non-local means filter o High-quality o Slow Fast non-local means algorithms available o BM3D: http://www.cs.tut.fi/~foi/gcf-bm3d/

BM3D o Image denoising by sparse 3-D transformdomain collaborative filtering (TIP 2007) http://www.cs.tut.fi/~foi/gcf-bm3d/

BM3D o Patch-based o Non-local method o Two-stage denoising o Collaborative denoising o Denoise in frequency domain

BM3D

BM3D o Results An Analysis and Implementation of the BM3D Image Denoising Method

BM3D An Analysis and Implementation of the BM3D Image Denoising Method

Video de-noise o We know how to de-noise an image o How about video? E. P. Bennett and L. McMillan. Video Enhancement using Per-pixel Virtual Exposures SIGGRAPH 2005

Gaussian filter in video cube o Blurring artifacts Not edge-preserving Motion blur

Bilateral filter in video cube o Cannot remove shot noise Reprint from [Bennett and McMillan 2005]

ASTA Filter [Bennett and McMillan 05] o Build upon bilateral filter o Find similar pixels in a video cube for filtering Patch-based similarity measurement o Adaptive Spatial-temporal Accumulation Filter Prefer temporal neighbors

Patch-based similarity measurement frame pt frame st

Similarity measure Reprint from [Bennett and McMillan 2005]

Adaptive Filtering Reprint from [Bennett and McMillan 2005]

Results (filtering + tone mapping) Input Naïve method ASTA Reprint from [Bennett and McMillan 2005]

Next Time o Color o Lighting