Image Stitching Shangliang Jiang Kate Harrison What is image stitching? What is image stitching? Introduction • Are you getting the whole picture? – Compact Camera FOV = 50 x 35° Introduction • Are you getting the whole picture? – Compact Camera FOV = 50 x 35° – Human FOV = 200 x 135° Introduction • Are you getting the whole picture? – Compact Camera FOV = 50 x 35° – Human FOV = 200 x 135° – Panoramic Mosaic = 360 x 180° Recognizing Panoramas • 1D Rotations (q) – Ordering matching images Recognizing Panoramas • 1D Rotations (q) – Ordering matching images Recognizing Panoramas • 1D Rotations (q) – Ordering matching images Recognizing Panoramas • 1D Rotations (q) – Ordering matching images • 2D Rotations (q, f) – Ordering matching images Recognizing Panoramas • 1D Rotations (q) – Ordering matching images • 2D Rotations (q, f) – Ordering matching images Recognizing Panoramas • 1D Rotations (q) – Ordering matching images • 2D Rotations (q, f) – Ordering matching images Recognizing Panoramas Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • Feature Matching – SIFT Features – Nearest Neighbor Matching • • • • Image Matching Bundle Adjustment Image Compositing Conclusions SIFT Features • SIFT features are… – Geometrically invariant to similarity transforms, • some robustness to affine change – Photometrically invariant to affine changes in intensity Overview • Feature Matching – SIFT Features – Nearest Neighbor Matching • • • • Image Matching Bundle Adjustment Image Compositing Conclusions Nearest Neighbor Matching • Find k nearest neighbors for each feature – k number of overlapping images (we use k = 4) • Use k-d tree – k-d tree recursively bi-partitions data at mean in the dimension of maximum variance – Approximate nearest neighbors found in O(nlogn) Overview • Feature Matching – SIFT Features – Nearest Neighbor Matching • • • • Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • Feature Matching • Image Matching – Random Sample Consensus (RANSAC) for Homography – Probabilistic model for verification • Bundle Adjustment • Image Compositing • Conclusions Overview • Feature Matching • Image Matching – Random Sample Consensus (RANSAC) for Homography – Probabilistic model for verification • Bundle Adjustment • Image Compositing • Conclusions RANSAC for Homography RANSAC for Homography • SIFT features of two similar images RANSAC for Homography • SIFT features common to both images RANSAC for Homography • Select random subset of features (e.g. 6) • Compute motion estimate • Apply motion estimate to all SIFT features • Compute error: feature pairs not described by motion estimate • Repeat many times (e.g. 500) • Keep estimate with best error RANSAC for Homography Overview • Feature Matching • Image Matching – Random Sample Consensus (RANSAC) for Homography – Probabilistic model for verification • Bundle Adjustment • Image Compositing • Conclusions Probabilistic model for verification • Potential problem: • Two images don’t match… • … but RANSAC found a motion estimate • Do a quick check to make sure the images do match • MAP for inliers vs. outliers Finding the panoramas Finding the panoramas Finding the panoramas Overview • Feature Matching • Image Matching – RANSAC for Homography – Probabilistic model for verification • Bundle Adjustment • Image Compositing • Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • Feature Matching • Image Matching • Bundle Adjustment – Error function • Image Compositing • Conclusions Overview • Feature Matching • Image Matching • Bundle Adjustment – Error function • Image Compositing • Conclusions Bundle Adjustment • New images initialised with rotation, focal length of best matching image Bundle Adjustment • New images initialised with rotation, focal length of best matching image Error function • Sum of squared projection errors – – – – n = #images I(i) = set of image matches to image i F(i, j) = set of feature matches between images i,j rijk = residual of kth feature match between images i,j • Robust error function Overview • Feature Matching • Image Matching • Bundle Adjustment – Error function • Image Compositing • Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Blending Gain compensation How do we blend? Linear blending Multi-band blending Multi-band Blending • Burt & Adelson 1983 – Blend frequency bands over range l 2-band Blending Low frequency (l > 2 pixels) High frequency (l < 2 pixels) 3-band blending Band 1: high frequencies 3-band blending Band 2: mid-range frequencies 3-band blending Band 3: low frequencies Panorama straightening Heuristic: people tend to shoot pictures in a certain way Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Overview • • • • • Feature Matching Image Matching Bundle Adjustment Image Compositing Conclusions Conclusion Algorithm AutoStitch program AutoStitch.net Open questions • Advanced camera modeling – radial distortion, camera motion, scene motion, vignetting, exposure, high dynamic range, flash … • Full 3D case – recognizing 3D objects/scenes in unordered datasets Credits • Automatic Panoramic Image Stitching Using Invariant Features, 2007 – Matthew Brown and David G. Lowe (Uni. of British Columbia) • Recognising Panoramas, 2003 – Matthew Brown and David G. Lowe (Uni. of British Columbia) – 2003 – Thanks for the slides! • Image Alignment and Stitching: A Tutorial, 2006 – Richard Szeliski (Microsoft) Questions?