Image Blending and Compositing

Slides:



Advertisements
Similar presentations
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/15/11 “The Double Secret”, Magritte.
Advertisements

Image Blending and Compositing : Computational Photography Alexei Efros, CMU, Fall 2010 © NASA.
Blending and Compositing Computational Photography Connelly Barnes Many slides from James Hays, Alexei Efros.
Recap from Monday Frequency domain analytical tool computational shortcut compression tool.
I Images as graphs Fully-connected graph – node for every pixel – link between every pair of pixels, p,q – similarity w ij for each link j w ij c Source:
Recap from Monday Fourier transform analytical tool computational shortcut.
GrabCut Interactive Image (and Stereo) Segmentation Carsten Rother Vladimir Kolmogorov Andrew Blake Antonio Criminisi Geoffrey Cross [based on Siggraph.
A Gimp Plugin that uses “GrabCut” to perform image segmentation
Graph-Based Image Segmentation
Stephen J. Guy 1. Photomontage Photomontage GrabCut – Interactive Foreground Extraction 1.
Blending and Compositing Computational Photography Derek Hoiem, University of Illinois 09/23/14.
1 s-t Graph Cuts for Binary Energy Minimization  Now that we have an energy function, the big question is how do we minimize it? n Exhaustive search is.
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Lecture 6 Image Segmentation
Optimal solution of binary problems Much material taken from :  Olga Veksler, University of Western Ontario
CS448f: Image Processing For Photography and Vision Graph Cuts.
Agenda Seam-carving: finish up “Mid-term review” (a look back) Main topic: Feature detection.
Blending and Compositing : Rendering and Image Processing Alexei Efros.
Image Pyramids and Blending
Advanced Topics in Computer Vision Spring 2006 Video Segmentation Tal Kramer, Shai Bagon Video Segmentation April 30 th, 2006.
Image Segmentation Today’s Readings Intelligent Scissors, Mortensen et. al, SIGGRAPH 1995Intelligent Scissors From Sandlot ScienceSandlot Science.
Deriving Intrinsic Images from Image Sequences Mohit Gupta Yair Weiss.
Comp 775: Graph Cuts and Continuous Maximal Flows Marc Niethammer, Stephen Pizer Department of Computer Science University of North Carolina, Chapel Hill.
Image Compositing and Blending : Computational Photography Alexei Efros, CMU, Fall 2007 © NASA.
Image Pyramids and Blending : Computational Photography Alexei Efros, CMU, Fall 2005 © Kenneth Kwan.
Image Pyramids and Blending
Image Warping Computational Photography Derek Hoiem, University of Illinois 09/27/11 Many slides from Alyosha Efros + Steve Seitz Photo by Sean Carroll.
Image Segmentation Rob Atlas Nick Bridle Evan Radkoff.
CS448f: Image Processing For Photography and Vision The Gradient Domain.
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
Image Warping Computational Photography Derek Hoiem, University of Illinois 09/24/15 Many slides from Alyosha Efros + Steve Seitz Photo by Sean Carroll.
MRFs and Segmentation with Graph Cuts Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/24/10.
Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images (Fri) Young Ki Baik, Computer Vision Lab.
Image Warping Computational Photography Derek Hoiem, University of Illinois 09/23/10 Many slides from Alyosha Efros + Steve Seitz Photo by Sean Carroll.
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Intelligent Scissors for Image Composition Anthony Dotterer 01/17/2006.
Poisson Image Editing & Terrain Synthesis Howard Zhou Jie Sun
Deriving Intrinsic Images from Image Sequences Mohit Gupta 04/21/2006 Advanced Perception Yair Weiss.
Image gradients and edges Tuesday, September 1 st 2015 Devi Parikh Virginia Tech Disclaimer: Many slides have been borrowed from Kristen Grauman, who may.
Scene Completion Using Millions of Photographs James Hays, Alexei A. Efros Carnegie Mellon University ACM SIGGRAPH 2007.
CS654: Digital Image Analysis Lecture 28: Advanced topics in Image Segmentation Image courtesy: IEEE, IJCV.
Computational Photography lecture 8 – segmentation CS (future 572) Spring 2016 Prof. Alex Berg (Credits to many other folks on individual slides)
Image Warping Many slides from Alyosha Efros + Steve Seitz + Derek oeim Photo by Sean Carroll.
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/20/12 “The Double Secret”, Magritte.
Hebrew University Image Processing Exercise Class 8 Panoramas – Stitching and Blending Min-Cut Stitching Many slides from Alexei Efros.
Winter in Kraków photographed by Marcin Ryczek
Graphcut Textures:Image and Video Synthesis Using Graph Cuts
Image Blending : Computational Photography
- photometric aspects of image formation gray level images
Cutting Images: Graphs and Boundary Finding
Digital Visual Effects, Spring 2009 Yung-Yu Chuang 2009/5/21
CS 4501: Introduction to Computer Vision Sparse Feature Detectors: Harris Corner, Difference of Gaussian Connelly Barnes Slides from Jason Lawrence, Fei.
Computational Photography Derek Hoiem, University of Illinois
Computational Photography Derek Hoiem, University of Illinois
Image gradients and edges
Recap from Wednesday Spectra and Color Light capture in cameras and humans.
Image gradients and edges April 11th, 2017
Patric Perez, Michel Gangnet, and Andrew Black
a kind of filtering that leads to useful features
a kind of filtering that leads to useful features
Lecture 31: Graph-Based Image Segmentation
Seam Carving Project 1a due at midnight tonight.
Announcements Project 1 is out today
Announcements Project 1 is out today help session at the end of class.
Image Filtering Readings: Ch 5: 5. 4, 5. 5, 5. 6, , 5
Winter in Kraków photographed by Marcin Ryczek
Photometric Processing
Presentation transcript:

Image Blending and Compositing © NASA CS194: Image Manipulation & Computational Photography Alexei Efros, UC Berkeley, Fall 2015

Image Compositing

Compositing Procedure 1. Extract Sprites (e.g using Intelligent Scissors in Photoshop) 2. Blend them into the composite (in the right order) Composite by David Dewey

Pyramid Blending

Gradient Domain vs. Frequency Domain In Pyramid Blending, we decomposed our images into several frequency bands, and transferred them separately But boundaries appear across multiple bands But what about representation based on derivatives (gradients) of the image?: Represents local change (across all frequences) No need for low-res image captures everything (up to a constant) Blending/Editing in Gradient Domain: Differentiate Copy / Blend / edit / whatever Reintegrate

Gradients vs. Pixels

Gilchrist Illusion (c.f. Exploratorium)

White?

White?

White?

Drawing in Gradient Domain James McCann & Nancy Pollard Real-Time Gradient-Domain Painting, SIGGRAPH 2009 (paper came out of this class!) http://www.youtube.com/watch?v=RvhkAfrA0-w&feature=youtu.be

Gradient Domain blending (1D) bright Two signals dark Regular blending Blending derivatives

Gradient hole-filling (1D) target source

It is impossible to faithfully preserve the gradients target source It is impossible to faithfully preserve the gradients

Gradient Domain Blending (2D) Trickier in 2D: Take partial derivatives dx and dy (the gradient field) Fiddle around with them (copy, blend, smooth, feather, etc) Reintegrate But now integral(dx) might not equal integral(dy) Find the most agreeable solution Equivalent to solving Poisson equation Can be done using least-squares (\ in Matlab)

Example Gradient Visualization Source: Evan Wallace

+ Specify object region Source: Evan Wallace

Poisson Blending Algorithm A good blend should preserve gradients of source region without changing the background Treat pixels as variables to be solved Minimize squared difference between gradients of foreground region and gradients of target region Keep background pixels constant Draw on board Perez et al. 2003

Examples Gradient domain processing source image background image target image 1 20 80 5 9 13 1 10 5 9 13 1 10 v1 v3 v2 v4 5 9 13 2 6 10 14 2 6 10 14 2 6 10 14 3 7 11 15 3 7 11 15 3 7 11 15 4 8 12 16 4 8 12 16 4 8 12 16

Gradient-domain editing Creation of image = least squares problem in terms of: 1) pixel intensities; 2) differences of pixel intensities Use Matlab least-squares solvers for numerically stable solution with sparse A Least Squares Line Fit in 2 Dimensions

Perez et al., 2003

gradient domain blending target source mask no blending gradient domain blending Slide by Mr. Hays

gradient domain blending What’s the difference? - = gradient domain blending no blending Slide by Mr. Hays

Perez et al, 2003 Limitations: editing Can’t do contrast reversal (gray on black -> gray on white) Colored backgrounds “bleed through” Images need to be very well aligned

Gradient Domain as Image Representation See GradientShop paper as good example: http://www.gradientshop.com/

Motivation for gradient-domain filtering? Can be used to exert high-level control over images 28

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features 29

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features pixel gradient +100 30

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features pixel gradient +100 31

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features pixel gradient pixel gradient +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 32

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features pixel gradient pixel gradient +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 image edge image edge 33

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to manipulate global image interpretation pixel gradient pixel gradient +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 +100 34

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to manipulate global image interpretation pixel gradient +255 +255 +255 +255 +255 35

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to manipulate global image interpretation pixel gradient +255 +255 +255 +255 +255 36

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to manipulate global image interpretation pixel gradient +0 +0 +0 +0 +0 37

Motivation for gradient-domain filtering? Can be used to exert high-level control over images gradients – low level image-features gradients – give rise to high level image-features manipulate local gradients to manipulate global image interpretation pixel gradient +0 +0 +0 +0 +0 38

Motivation for gradient-domain filtering? Can be used to exert high-level control over images 39

GradientShop Optimization framework Pravin Bhat et al 40 ..our desired image. Pravin Bhat et al 40

GradientShop Optimization framework Input unfiltered image – u 41 ..our desired image. 41

GradientShop Optimization framework Input unfiltered image – u Output filtered image – f ..our desired image. 42

GradientShop Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy) Energy function ..our desired image. min (fx – gx)2 + (fy – gy)2 f 43

GradientShop Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy) Specify desired pixel-values – d Energy function ..our desired image. min (fx – gx)2 + (fy – gy)2 + (f – d)2 f 44

GradientShop Optimization framework Input unfiltered image – u Output filtered image – f Specify desired pixel-differences – (gx, gy) Specify desired pixel-values – d Specify constraints weights – (wx, wy, wd) Energy function ..our desired image. min wx(fx – gx)2 + wy(fy – gy)2 + wd(f – d)2 f 45

GradientShop ..our desired image. 46

GradientShop ..our desired image. 47

GradientShop ..our desired image. 48

Pseudo image relighting change scene illumination in post-production example input

Pseudo image relighting change scene illumination in post-production example manual relight

Pseudo image relighting change scene illumination in post-production example input

Pseudo image relighting change scene illumination in post-production example GradientShop relight

Pseudo image relighting change scene illumination in post-production example GradientShop relight

Pseudo image relighting change scene illumination in post-production example GradientShop relight

Pseudo image relighting change scene illumination in post-production example GradientShop relight

Pseudo image relighting f

Pseudo image relighting Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 u o f

Pseudo image relighting Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = u u o f

Pseudo image relighting Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = u gx(p) = ux(p) * (1 + a(p)) a(p) = max(0, - u(p).o(p)) u o f

Pseudo image relighting Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = u gx(p) = ux(p) * (1 + a(p)) a(p) = max(0, - u(p).o(p)) u o f

Sparse data interpolation Interpolate scattered data over images/video

Sparse data interpolation Interpolate scattered data over images/video Example app: Colorization* input output *Levin et al. – SIGRAPH 2004

Sparse data interpolation u user data f

Sparse data interpolation Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 u user data f

Sparse data interpolation Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = user_data u user data f

Sparse data interpolation Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = user_data if user_data(p) defined wd(p) = 1 else wd(p) = 0 u user data f

Sparse data interpolation Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = user_data if user_data(p) defined wd(p) = 1 else wd(p) = 0 gx(p) = 0; gy(p) = 0 u user data f

Sparse data interpolation Energy function min wx(fx – gx)2 + f wy(fy – gy)2 + wd(f – d)2 Definition: d = user_data if user_data(p) defined wd(p) = 1 else wd(p) = 0 gx(p) = 0; gy(p) = 0 wx(p) = 1/(1 + c*|ux(p)|) wy(p) = 1/(1 + c*|uy(p)|) u user data f

Don’t blend, CUT! Moving objects become ghosts So far we only tried to blend between two images. What about finding an optimal seam?

Davis, 1998 Segment the mosaic Single source image per segment Avoid artifacts along boundries Dijkstra’s algorithm

Minimal error boundary overlapping blocks vertical boundary _ = 2 overlap error min. error boundary

Seam Carving http://www.youtube.com/watch?v=6NcIJXTlugc

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Seam Carving Basic Idea: remove unimportant pixels from the image Unimportant = pixels with less “energy” Intuition for gradient-based energy: Preserve strong contours Human vision more sensitive to edges – so try remove content from smoother areas Simple, enough for producing some nice results See their paper for more measures they have used Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Finding the Seam? Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu The Optimal Seam Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Dynamic Programming Invariant property: M(i,j) = minimal cost of a seam going through (i,j) (satisfying the seam properties) 5 8 12 3 9 2 7 4 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Dynamic Programming 5 8 12 3 9 2+5 7 4 2 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Dynamic Programming 5 8 12 3 9 7 3+3 4 2 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Dynamic Programming 5 8 12 3 9 7 6 14 10 15 8+8 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Searching for Minimum Backtrack (can store choices along the path, but do not have to) 5 8 12 3 9 7 6 14 10 15 16 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Backtracking the Seam 5 8 12 3 9 7 6 14 10 15 16 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Backtracking the Seam 5 8 12 3 9 7 6 14 10 15 16 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Michael Rubinstein — MIT CSAIL – mrub@mit.edu Backtracking the Seam 5 8 12 3 9 7 6 14 10 15 16 Michael Rubinstein — MIT CSAIL – mrub@mit.edu

Graphcuts What if we want similar “cut-where-things-agree” idea, but for closed regions? Dynamic programming can’t handle loops

Graph cuts – a more general solution a cut n-links hard constraint Minimum cost cut can be computed in polynomial time (max-flow/min-cut algorithms)

e.g. Lazy Snapping Interactive segmentation using graphcuts Also see the original Boykov&Jolly, ICCV’01, “GrabCut”, etc, etc ,etc.

Putting it all together Compositing images Have a clever blending function Feathering blend different frequencies differently Gradient based blending Choose the right pixels from each image Dynamic programming – optimal seams Graph-cuts Now, let’s put it all together: Interactive Digital Photomontage, 2004 (video)

http://www.youtube.com/watch?v=kzV-5135bGA