CS 1699: Intro to Computer Vision Texture and Other Uses of Filters Prof. Adriana Kovashka University of Pittsburgh September 10, 2015 Slides from Kristen.

Slides:



Advertisements
Similar presentations
CSCE 643 Computer Vision: Template Matching, Image Pyramids and Denoising Jinxiang Chai.
Advertisements

Linear Filtering – Part II Selim Aksoy Department of Computer Engineering Bilkent University
Texture. Limitation of pixel based processing Edge detection with different threshold.
Spatial Filtering (Chapter 3)
Motion illusion, rotating snakes. Slide credit Fei Fei Li.
Ted Adelson’s checkerboard illusion. Motion illusion, rotating snakes.
Computational Photography: Sampling + Reconstruction Connelly Barnes Slides from Alexei Efros and Steve Marschner.
Pyramids and Texture. Scaled representations Big bars and little bars are both interesting Spots and hands vs. stripes and hairs Inefficient to detect.
CS 4487/9587 Algorithms for Image Analysis
Thinking in Frequency Computer Vision Brown James Hays Slides: Hoiem, Efros, and others.
Computer Vision University of Illinois Derek Hoiem
Linear Filtering – Part II Selim Aksoy Department of Computer Engineering Bilkent University
Computational Photography CSE 590 Tamara Berg Filtering & Pyramids.
Texture. Edge detectors find differences in overall intensity. Average intensity is only simplest difference. many slides from David Jacobs.
Templates, Image Pyramids, and Filter Banks Slides largely from Derek Hoeim, Univ. of Illinois.
Templates and Image Pyramids Computational Photography Derek Hoiem, University of Illinois 09/06/11.
Announcements Project 4 questions? Guest lectures Thursday: Richard Ladner “tactile graphics” Next Tuesday: Jenny Yuen and Jeff Bigham.
Image Quilting for Texture Synthesis & Transfer Alexei Efros (UC Berkeley) Bill Freeman (MERL) +=
Convolution, Edge Detection, Sampling : Computational Photography Alexei Efros, CMU, Fall 2006 Some slides from Steve Seitz.
Immagini e filtri lineari. Image Filtering Modifying the pixels in an image based on some function of a local neighborhood of the pixels
Lecture 1: Images and image filtering
Linear filtering. Overview: Linear filtering Linear filters Definition and properties Examples Gaussian smoothing Separability Applications Denoising.
Texture Reading: Chapter 9 (skip 9.4) Key issue: How do we represent texture? Topics: –Texture segmentation –Texture-based matching –Texture synthesis.
15-463: Computational Photography Alexei Efros, CMU, Fall 2011 Many slides from Steve Marschner Sampling and Reconstruction.
Lecture 2: Image filtering
Templates, Image Pyramids, and Filter Banks Computer Vision James Hays, Brown Slides: Hoiem and others.
Linear filtering.
1 Image filtering Hybrid Images, Oliva et al.,
CSC589 Introduction to Computer Vision Lecture 9 Sampling, Gaussian Pyramid Bei Xiao.
Slide credit Fei Fei Li. Image filtering Image filtering: compute function of local neighborhood at each position Really important! – Enhance images.
Texture Synthesis by Non-parametric Sampling Alexei Efros and Thomas Leung UC Berkeley.
Applications of Image Filters Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/04/10.
Templates, Image Pyramids, and Filter Banks Computer Vision Derek Hoiem, University of Illinois 01/31/12.
Templates, Image Pyramids, and Filter Banks
Templates and Image Pyramids Computational Photography Derek Hoiem, University of Illinois 09/03/15.
Linear Filters Monday, Jan 24 Prof. Kristen Grauman UT-Austin …
Linear Filters August 27 th 2015 Devi Parikh Virginia Tech 1 Slide credit: Devi Parikh Disclaimer: Many slides have been borrowed from Kristen Grauman,
Thinking in Frequency Computational Photography University of Illinois Derek Hoiem 09/01/15.
Image Filtering Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/02/10.
Why is computer vision difficult?
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean 5403 T-R 3:00pm – 4:20pm.
Linear filtering. Motivation: Noise reduction Given a camera and a still scene, how can you reduce noise? Take lots of images and average them! What’s.
Templates, Image Pyramids, and Filter Banks
CS 691B Computational Photography
Lecture 5: Fourier and Pyramids
Linear filtering. Motivation: Image denoising How can we reduce noise in a photograph?
Last Lecture photomatix.com. Today Image Processing: from basic concepts to latest techniques Filtering Edge detection Re-sampling and aliasing Image.
Grauman Today: Image Filters Smooth/Sharpen Images... Find edges... Find waldo…
Spatial Filtering (Chapter 3) CS474/674 - Prof. Bebis.
Slide credit Fei Fei Li.
Prof. Adriana Kovashka University of Pittsburgh September 14, 2016
Computer Vision Brown James Hays 09/16/11 Thinking in Frequency Computer Vision Brown James Hays Slides: Hoiem, Efros, and others.
- photometric aspects of image formation gray level images
Announcements Project 4 out today help session at the end of class.
Linear Filtering – Part II
Department of Computer Engineering
Image Pyramids and Applications
Image gradients and edges
Texture Synthesis by Non-parametric Sampling
Announcements Final Project 3 artifacts Evals
Image gradients and edges April 11th, 2017
Sampling and Reconstruction
CSCE 643 Computer Vision: Image Sampling and Filtering
Texture.
Motion illusion, rotating snakes
Oh, no, wait, sorry, I meant, welcome to the implementation of 20th-century science fiction literature, or a small part of it, where we will learn about.
Announcements Guest lecture next Tuesday
Linear Filtering CS 678 Spring 2018.
Department of Computer Engineering
Templates and Image Pyramids
Presentation transcript:

CS 1699: Intro to Computer Vision Texture and Other Uses of Filters Prof. Adriana Kovashka University of Pittsburgh September 10, 2015 Slides from Kristen Grauman (12-52) and Derek Hoiem (54-83)

Plan for today Texture (cont’d) – Review of texture description – Texture synthesis Uses of filters – Sampling – Template matching

Reading For today: Szeliski Sec , 3.2, 10.5 For next time: Szeliski Sec , 4.2 (17 pages) Get started now on reading for 9/17 (57 pages) I will finalize the reading for each class by 6pm the day of the class preceding it – Readings finalized until 9/17 inclusive

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 v = +1 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 v = +1 u = 0,v = -1 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 v = +1 (0, 0) (i, j)

Convolution vs. correlation Convolution Cross-correlation F H u = -1,v = -1 v = 0 v = +1 u = 0,v = -1 (0, 0) (i, j)

Median filter No new pixel values introduced Removes spikes: good for impulse, salt & pepper noise Non-linear filter

Median filter Median filter is edge preserving

Median filter Salt and pepper noise Median filtered Source: M. Hebert Plots of a row of the image Matlab: output im = medfilt2(im, [h w]);

Texture What defines a texture?

Includes: more regular patterns

Includes: more random patterns

Texture representation Textures are made up of repeated local patterns, so: – Find the patterns Use filters that look like patterns (spots, bars, raw patches…) Consider magnitude of response – Describe their statistics within each local window Mean, standard deviation Histogram Kristen Grauman

Texture representation: example original image derivative filter responses, squared statistics to summarize patterns in small windows mean d/dx value mean d/dy value Win. # … Kristen Grauman

Texture representation: example original image derivative filter responses, squared statistics to summarize patterns in small windows mean d/dx value mean d/dy value Win. # Win.# … Kristen Grauman

Texture representation: example original image derivative filter responses, squared statistics to summarize patterns in small windows mean d/dx value mean d/dy value Win. # Win.# Win.#9 20 … … Kristen Grauman

Texture representation: example statistics to summarize patterns in small windows mean d/dx value mean d/dy value Win. # Win.# Win.#9 20 … … Dimension 1 (mean d/dx value) Dimension 2 (mean d/dy value) Kristen Grauman

Texture representation: example statistics to summarize patterns in small windows mean d/dx value mean d/dy value Win. # Win.# Win.#9 20 … … Dimension 1 (mean d/dx value) Dimension 2 (mean d/dy value) Windows with small gradient in both directions Windows with primarily vertical edges Windows with primarily horizontal edges Both Kristen Grauman

Texture representation: example original image derivative filter responses, squared visualization of the assignment to texture “types” Kristen Grauman

Filter banks Our previous example used two filters, and resulted in a 2-dimensional feature vector to describe texture in a window. – x and y derivatives revealed something about local structure. We can generalize to apply a collection of multiple (d) filters: a “filter bank” Then our feature vectors will be d-dimensional.

Filter banks What filters to put in the bank? – Typically we want a combination of scales and orientations, different types of patterns. Matlab code available for these examples: scales orientations “Edges” “Bars” “Spots”

Representing texture by mean abs response Mean abs responses Filters Derek Hoiem

[r1, r2, …, r38] We can form a feature vector from the list of responses at each pixel. Kristen Grauman

Texture-related tasks Shape from texture – Estimate surface orientation or shape from image texture Segmentation/classification from texture cues – Analyze, represent texture – Group image regions with consistent texture Synthesis – Generate new texture patches/images given some examples

Texture synthesis Goal: create new samples of a given texture Many applications: virtual environments, hole- filling, texturing surfaces

The Challenge Need to model the whole spectrum: from repeated to stochastic texture repeated stochastic Both? Alexei A. Efros and Thomas K. Leung, “Texture Synthesis by Non-parametric Sampling,” Proc. International Conference on Computer Vision (ICCV), 1999.

Markov Chains Markov Chain a sequence of random variables is the state of the model at time t Markov assumption: each state is dependent only on the previous one –dependency given by a conditional probability: The above is actually a first-order Markov chain An N’th-order Markov chain: Source S. Seitz

Markov Chain Example: Text “A dog is a man’s best friend. It’s a dog eat dog world out there.” 2/31/ a dog is man’s best friend it’s eat world out there dog isman’sbestfriendit’seat world outthere a.. Source: S. Seitz

Text synthesis Create plausible looking poetry, love letters, term papers, etc. Most basic algorithm 1.Build probability histogram –find all blocks of N consecutive words/letters in training documents –compute probability of occurrence 2.Given words –compute by sampling from Source: S. Seitz WE NEEDTOEATCAKE

Text synthesis Results: – “As I've commented before, really relating to someone involves standing next to impossible.” –"One morning I shot an elephant in my arms and kissed him.” –"I spent an interesting evening recently with a grain of salt" Dewdney, “A potpourri of programmed prose and prosody” Scientific American, Slide from Alyosha Efros, ICCV 1999

Synthesizing Computer Vision text What do we get if we extract the probabilities from a chapter on Linear Filters, and then synthesize new statements? Check out Yisong Yue’s website implementing text generation: build your own text Markov Chain for a given text corpus. Kristen Grauman

Synthesized text This means we cannot obtain a separate copy of the best studied regions in the sum. All this activity will result in the primate visual system. The response is also Gaussian, and hence isn’t bandlimited. Instead, we need to know only its response to any data vector, we need to apply a low pass filter that strongly reduces the content of the Fourier transform of a very large standard deviation. It is clear how this integral exist (it is sufficient for all pixels within a 2k +1 × 2k +1 × 2k +1 × 2k + 1 — required for the images separately. Kristen Grauman

Markov Random Field A Markov random field (MRF) generalization of Markov chains to two or more dimensions. First-order MRF: probability that pixel X takes a certain value given the values of neighbors A, B, C, and D: D C X A B Source: S. Seitz

Texture Synthesis [Efros & Leung, ICCV 99] [Efros & Leung, ICCV 99] Can apply 2D version of text synthesis Texture corpus (sample) Output

Texture synthesis: intuition Before, we inserted the next word based on existing nearby words… Now we want to insert pixel intensities based on existing nearby pixel values. Sample of the texture (“corpus”) Place we want to insert next Distribution of a value of a pixel is conditioned on its neighbors alone.

Synthesizing One Pixel What is ? Find all the windows in the image that match the neighborhood To synthesize x –pick one matching window at random –assign x to be the center pixel of that window An exact neighbourhood match might not be present, so find the best matches using SSD error and randomly choose between them, preferring better matches with higher probability p input image synthesized image Slide from Alyosha Efros, ICCV 1999

Neighborhood Window input Slide adapted from Alyosha Efros, ICCV 1999

Varying Window Size Increasing window size Slide from Alyosha Efros, ICCV 1999

Synthesis results french canvasrafia weave Slide from Alyosha Efros, ICCV 1999

white breadbrick wall Synthesis results Slide from Alyosha Efros, ICCV 1999

Synthesis results Slide from Alyosha Efros, ICCV 1999

Growing Texture Starting from the initial image, “grow” the texture one pixel at a time Slide from Alyosha Efros, ICCV 1999

Hole Filling Slide from Alyosha Efros, ICCV 1999

Extrapolation Slide from Alyosha Efros, ICCV 1999

Texture (summary) Texture is a useful property that is often indicative of materials, appearance cues Texture representations attempt to summarize repeating patterns of local structure Filter banks useful to measure redundant variety of structures in local neighborhood – Feature spaces can be multi-dimensional Neighborhood statistics can be exploited to “sample” or synthesize new texture regions – Example-based technique Kristen Grauman

Plan for today Texture (cont’d) – Review of texture description – Texture synthesis Uses of filters – Sampling – Template matching

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

Throw away every other row and column to create a 1/2 size image Subsampling by a factor of 2

Aliasing problem 1D example (sinewave): Source: S. Marschner

Aliasing problem 1D example (sinewave):

Aliasing problem Sub-sampling may be dangerous…. Characteristic errors may appear: – “Wagon wheels rolling the wrong way in movies” – “Checkerboards disintegrate in ray tracing” – “Striped shirts look funny on color television” Source: D. Forsyth

Sampling and aliasing

Nyquist-Shannon Sampling Theorem When sampling a signal at discrete intervals, the sampling frequency must be  2  f max f max = max frequency of the input signal This will allows to reconstruct the original perfectly from the sampled version good bad vvv

Anti-aliasing Solutions: Sample more often Get rid of all frequencies that are greater than half the new sampling frequency – Will lose information – But it’s better than aliasing – Apply a smoothing filter

Algorithm for downsampling by factor of 2 1.Start with image(h, w) 2.Apply low-pass filter im_blur = imfilter(image, fspecial(‘gaussian’, 7, 1)) 3.Sample every other pixel im_small = im_blur(1:2:end, 1:2:end);

Anti-aliasing Forsyth and Ponce 2002

Subsampling without pre-filtering 1/4 (2x zoom) 1/8 (4x zoom) 1/2 Slide by Steve Seitz

Subsampling with Gaussian pre-filtering G 1/4G 1/8Gaussian 1/2 Slide by Steve Seitz

Plan for today Texture (cont’d) – Review of texture description – Texture synthesis Uses of filters – Sampling – Template matching

Template matching Goal: find in image Main challenge: What is a good similarity or distance measure between two patches? – Correlation – Zero-mean correlation – Sum Square Difference – Normalized Cross Correlation

Matching with filters Goal: find in image Method 0: filter the image with eye patch Input Filtered Image What went wrong? f = image g = filter

Matching with filters Goal: find in image Method 1: filter the image with zero-mean eye Input Filtered Image (scaled) Thresholded Image True detections False detections mean of template g

Matching with filters Goal: find in image Method 2: SSD Input 1- sqrt(SSD) Thresholded Image True detections

Matching with filters Goal: find in image Method 2: SSD Input 1- sqrt(SSD) What’s the potential downside of SSD?

Matching with filters Goal: find in image Method 3: Normalized cross-correlation Matlab: normxcorr2(template, im) mean image patch mean template

Matching with filters Goal: find in image Method 3: Normalized cross-correlation Input Normalized X-Correlation Thresholded Image True detections

Matching with filters Goal: find in image Method 3: Normalized cross-correlation Input Normalized X-Correlation Thresholded Image True detections

Q: What is the best method to use? A: Depends Zero-mean filter: fastest but not a great matcher SSD: next fastest, sensitive to overall intensity Normalized cross-correlation: slowest, invariant to local average intensity and contrast

Q: What if we want to find larger or smaller eyes? A: Image Pyramid

Sampling Low-Pass Filtered Image Image Gaussian Filter Sample Low-Res Image

Gaussian pyramid Source: Forsyth

Template Matching with Image Pyramids Input: Image, Template 1.Match template at current scale 2.Downsample image – In practice, scale step of 1.1 to Repeat 1-2 until image is very small 4.Take responses above some threshold

Laplacian filter Gaussian unit impulse Laplacian of Gaussian Source: Lazebnik

Laplacian pyramid Source: Forsyth

Computing Gaussian/Laplacian Pyramid Can we reconstruct the original from the Laplacian pyramid?

Creating the Gaussian/Laplacian Pyramid Downsample (Smooth(G 1 )) G 1 - Smooth(Upsample(G 2 )) Image = G 1 L1L1 G2G2 … G N = L N G 2 - Smooth(Upsample(G 3 )) L2L2 G 3 - Smooth(Upsample(G 4 )) L3L3 G3G3 Downsample (Smooth(G 2 )) Smooth, then downsample

Aude Oliva & Antonio Torralba & Philippe G Schyns, SIGGRAPH 2006 Application: Hybrid Images

A. Oliva, A. Torralba, P.G. Schyns, “Hybrid Images,” SIGGRAPH 2006 “Hybrid Images,” Gaussian Filter Laplacian Filter Gaussian unit impulse Laplacian of Gaussian Application: Hybrid Images Slide credit: Kristen Grauman

Aude Oliva & Antonio Torralba & Philippe G Schyns, SIGGRAPH 2006

Uses of filters (summary) Texture description – Texture synthesis Image compression – Image pyramids Template matching Uses in object recognition – Detecting stable interest points – Scale search

Next time Edge detection