Image Alignment and Mosaicing Image Alignment Applications • Local alignment: – Tracking – Stereo • Global alignment: – Camera jitter elimination – Image enhancement – Panoramic mosaicing Image Stitching Problems • Motion model • Parameterization • Correspondence • Warping • Blending Motion Model • How do images relate to each other? • Possibilities: – Pure translation – Rigid body (translation + rotation) – Affine – Parallax – General motion Motion Model • Common case: images taken with perspective camera • Motion around center of projection Parameterization • Single parameterization for all images • Cylindrical parameterization often used for panoramic mosaics Cylindrical Parameterization • After image warping, motion model is pure translation Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Optical Flow for Image Registration • Compute local matches • Least-squares fit to motion model • Problem: outliers Outlier Rejection • Least squares very sensitive to outliers Outlier Rejection • Robust estimation: tolerant of outliers • In general, methods based on absolute value rather than square: minimize S|xi-f|, not S(xi-f )2 Robust Fitting • In general, hard to compute • Analytic solutions in a few cases – Mean Median – Solution for fitting lines Approximation to Robust Fitting • Compute least squares • Assign weights based on average deviation – Simplest: weight = 1 if deviation < 2.5s, 0 otherwise – Smoother version: weight = Gs (deviation) • Weighted least squares • Iterate Alternative Approximation to Robust Fitting • Least median of squares: – Select n random subsets of data points – Perform least-squares fit on each – Compute average deviation for each – Select fit with median deviation Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Correlation / Search Methods • Assume translation only • Given images I1, I2 • For each translation (tx, ty) compute c( I1 , I 2 , t ) I1 (i, j ), I 2 (i t x , j t y ) i j • Select translation that maximizes c • Depending on window size, local or global Cross-Correlation • Statistical definition of correlation: (u, v) uv • Disadvantage: sensitive to local variations in image brightness Normalized Cross-Correlation • Normalize to eliminate brightness sensitivity: (u u )(v v ) (u, v) s us v where u average( u ) s u standard deviation( u ) Sum of Squared Differences • More intuitive measure: (u, v) (u v) 2 • Negative sign so that higher values mean greater similarity • Expand: (u v) u v 2uv 2 2 2 Correlation vs. Optical Flow • Intuitively similar to functional minimization: search vs. Newton’s method Local vs. Global • Correlation with local windows not too expensive • High cost if window size = whole image • But computation looks like convolution – FFT to the rescue! Correlation c I1 (i, j ), I 2 (i t x , j t y ) i j F (c) F ( I1 ) Ftranslated( I 2 ) Fourier Transform with Translation F f ( x x, y y) F f ( x, y) e i ( x x y y ) Fourier Transform with Translation • Therefore, if I1 and I2 differ by translation, F I1 ( x, y ) F I 2 ( x, y ) e e i ( x x y y ) i ( x x y y ) F1 F2 • So, F-1(F1/F2) will have a peak at (x,y) Phase Correlation • In practice, use cross power spectrum F1 F2 * F1 F2 * • Compute inverse FFT, look for peaks • [Kuglin & Hines 1975] Phase Correlation • Advantages – Fast computation – Low sensitivity to global brightness changes (since equally sensitive to all frequencies) Phase Correlation • Disadvantages – Sensitive to white noise – No robust version – Translation only • Extensions to rotation, scale • But not local motion • Not too bad in practice with small local motions Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Correlation plus Optical Flow • Use e.g. phase correlation to find average translation (may be large) • Use optical flow to find local motions Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Iteration • Local refinement of optical flow estimate • Sort of equivalent to multiple iterations of Newton’s method Correspondence Approaches • Optical flow • Correlation • Correlation + optical flow • Any of the above, iterated (e.g. LucasKanade) • Any of the above, coarse-to-fine Image Pyramids • Pre-filter images to collect information at different scales • More efficient computation, allows larger motions Image Pyramids Szeliski Pyramid Creation • “Gaussian” Pyramid • “Laplacian” Pyramid – Created from Gaussian pyramid by subtraction Li = Gi – expand(Gi+1) Szeliski Octaves in the Spatial Domain Lowpass Images Bandpass Images Szeliski Image Warping • Given a coordinate transform x’ = h(x) and a source image f(x), how do we compute a transformed image g(x’) = f(h(x))? h(x) x f(x) x’ g(x’) Szeliski Forward Warping • Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’) • What if pixel lands “between” two pixels? h(x) x f(x) x’ g(x’) Szeliski Forward Warping • Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’) • What if pixel lands “between” two pixels? • Answer: add “contribution” to several pixels, normalize later (splatting) h(x) x f(x) x’ g(x’) Szeliski Inverse Warping • Get each pixel g(x’) from its corresponding location x = h-1(x’) in f(x) • What if pixel comes from “between” two pixels? h1(x’) x f(x) x’ g(x’) Szeliski Inverse Warping • Get each pixel g(x’) from its corresponding location x = h-1(x’) in f(x) • What if pixel comes from “between” two pixels? • Answer: resample color value from interpolated (prefiltered) source image Szeliski Blending • Blend over too small a region: seams • Blend over too large a region: ghosting Multiresolution Blending • Different blending regions for different levels in a pyramid [Burt & Adelson] – Blend low frequencies over large regions (minimize seams due to brightness variations) – Blend high frequencies over small regions (minimize ghosting) Pyramid Blending Szeliski Minimum-Cost Cuts • Instead of blending high frequencies along a straight line, blend along line of minimum differences in image intensities Minimum-Cost Cuts Moving object, simple blending blur [Davis 98] Minimum-Cost Cuts Minimum-cost cut no blur [Davis 98]