Panoramic Image Stitching

Similar documents
Stitching and Blending

Local Features Tutorial: Nov. 8, 04

Midterm Examination CS 534: Computational Photography

Broad field that includes low-level operations as well as complex high-level algorithms

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014

Targil 10 : Why Mosaic? Why is this a challenge? Exposure differences Scene illumination Miss-registration Moving objects

Today s lecture. Image Alignment and Stitching. Readings. Motion models

An Algorithm for Seamless Image Stitching and Its Application

Outline 7/2/201011/6/

Feature Based Registration - Image Alignment

Image Stitching using Watersheds and Graph Cuts

Implementation and Comparison of Feature Detection Methods in Image Mosaicing

Scale Invariant Feature Transform

CSE 527: Introduction to Computer Vision

Blending and Compositing

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm

Object Recognition with Invariant Features

Building a Panorama. Matching features. Matching with Features. How do we build a panorama? Computational Photography, 6.882

Mosaics. Today s Readings

Local Features: Detection, Description & Matching

Local invariant features

Coarse-to-fine image registration

Feature Matching and RANSAC

Chapter 3 Image Registration. Chapter 3 Image Registration

CS 231A Computer Vision (Winter 2014) Problem Set 3

Local Feature Detectors

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy

Scale Invariant Feature Transform

The SIFT (Scale Invariant Feature

Implementing the Scale Invariant Feature Transform(SIFT) Method

Comparison of Feature Detection and Matching Approaches: SIFT and SURF

Obtaining Feature Correspondences

Image stitching. Announcements. Outline. Image stitching

Panoramic Image Mosaicing

Motion Estimation and Optical Flow Tracking

Image Stitching. Slides from Rick Szeliski, Steve Seitz, Derek Hoiem, Ira Kemelmacher, Ali Farhadi

SIFT - scale-invariant feature transform Konrad Schindler

Fast Image Stitching and Editing for Panorama Painting on Mobile Phones

Computer Vision for HCI. Topics of This Lecture

Augmented Reality VU. Computer Vision 3D Registration (2) Prof. Vincent Lepetit

SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS

Homographies and RANSAC

Fast Image Stitching and Editing for Panorama Painting on Mobile Phones

School of Computing University of Utah

Object Reconstruction

Pictures at an Exhibition

Image processing and features

SCALE INVARIANT FEATURE TRANSFORM (SIFT)

E27 Computer Vision - Final Project: Creating Panoramas David Nahmias, Dan Spagnolo, Vincent Stigliani Professor Zucker Due 5/10/13

Computer Vision. Recap: Smoothing with a Gaussian. Recap: Effect of σ on derivatives. Computer Science Tripos Part II. Dr Christopher Town

SURF applied in Panorama Image Stitching

Image Blending and Compositing NASA

Image-based Modeling and Rendering: 8. Image Transformation and Panorama

CSE 252B: Computer Vision II

Image Mosaic with Rotated Camera and Book Searching Applications Using SURF Method

Announcements. Mosaics. Image Mosaics. How to do it? Basic Procedure Take a sequence of images from the same position =

Filtering Images. Contents

Computer Vision. Exercise 3 Panorama Stitching 09/12/2013. Compute Vision : Exercise 3 Panorama Stitching

Recap. DoF Constraint Solver. translation. affine. homography. 3D rotation

Image stitching. Digital Visual Effects Yung-Yu Chuang. with slides by Richard Szeliski, Steve Seitz, Matthew Brown and Vaclav Hlavac

Acquisition of high resolution geo objects Using image mosaicking techniques

Robotics Programming Laboratory

Computational Optical Imaging - Optique Numerique. -- Multiple View Geometry and Stereo --

Feature Detectors and Descriptors: Corners, Lines, etc.

CS 4495 Computer Vision A. Bobick. CS 4495 Computer Vision. Features 2 SIFT descriptor. Aaron Bobick School of Interactive Computing

Image Features: Local Descriptors. Sanja Fidler CSC420: Intro to Image Understanding 1/ 58

CS 231A Computer Vision (Winter 2018) Problem Set 3

Object Detection by Point Feature Matching using Matlab

What is an edge? Paint. Depth discontinuity. Material change. Texture boundary

SIFT: Scale Invariant Feature Transform

Local features: detection and description May 12 th, 2015

Segmentation and Grouping

Recap from Monday. Frequency domain analytical tool computational shortcut compression tool

Announcements. Mosaics. How to do it? Image Mosaics

A NEW FEATURE BASED IMAGE REGISTRATION ALGORITHM INTRODUCTION

CPSC 425: Computer Vision

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline

521466S Machine Vision Assignment #3 Image Features

Introduction. Introduction. Related Research. SIFT method. SIFT method. Distinctive Image Features from Scale-Invariant. Scale.

CS5670: Computer Vision

A System of Image Matching and 3D Reconstruction

Advanced Video Content Analysis and Video Compression (5LSH0), Module 4

A Comparison of SIFT and SURF

LOCAL AND GLOBAL DESCRIPTORS FOR PLACE RECOGNITION IN ROBOTICS

Image stitching. Digital Visual Effects Yung-Yu Chuang. with slides by Richard Szeliski, Steve Seitz, Matthew Brown and Vaclav Hlavac

Prof. Feng Liu. Spring /26/2017

Image Based Rendering. D.A. Forsyth, with slides from John Hart

CS 231A Computer Vision (Fall 2012) Problem Set 3

Image Stitching using Harris Feature Detection

CS6670: Computer Vision

Faster Image Feature Extraction Hardware

Corner Detection. GV12/3072 Image Processing.

The Video to Panoramic Image Converter

CAP 5415 Computer Vision Fall 2012

Harder case. Image matching. Even harder case. Harder still? by Diva Sian. by swashford

Automatic Image Alignment (feature-based)

Features Points. Andrea Torsello DAIS Università Ca Foscari via Torino 155, Mestre (VE)

Feature Detection. Raul Queiroz Feitosa. 3/30/2017 Feature Detection 1

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects

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

Transcription:

Mcgill University Panoramic Image Stitching by Kai Wang Pengbo Li A report submitted in fulfillment for the COMP 558 Final project in the Faculty of Computer Science April 2013

Mcgill University Abstract Faculty of Computer Science by Kai Wang Pengbo Li Panoramic image stitching is an active research topic and lots of methods was developed to achieve a nice stitched panorama under different limitation of raw pictures. For example, pictures need to be aligned properly, pictures need to has same exposure level, or pictures need to be horizontal or vertical in space. In this project, we followed the pipeline proposed by Matthew Brown and David G. Lowe[1] to implement construct a feature based method using SIFT feature, which is much less sensitive to rotation and scale. We will also implement two methods of blending methods: Laplacian pyramid method and Poisson blending to deal with the seam problem due to exposure difference. Compared with the method without blending technique, blending stitching images apparently shows better performance on the pictures with different exposure level than version without blending. Last but not least, we will provide a set of pictures with various transform, various exposure level, and try to create a nice panoramic image. Keywords: panorama, invariant feature, image alignment, Laplacian pyramid, Poisson equation,exposure compensation

Contents Abstract i 1 Introduction 1 1.1 Panorama.................................... 1 1.2 Alignment step................................. 1 1.3 Blending step.................................. 2 2 Alignment step 3 2.1 Feature Extraction............................... 3 2.1.1 Scale-space extrema detection..................... 3 2.1.2 Keypoint localization......................... 3 2.1.3 Orientation assignment........................ 4 2.1.4 Keypoint descriptor.......................... 4 2.2 Feature matching................................ 4 2.3 Image matching................................. 4 3 Pyramid Blending 7 3.1 Introduction................................... 7 3.2 Pyramid construction............................. 7 3.3 Mask computation............................... 7 3.4 Pyramid blending................................ 8 3.5 Final picture reconstruction.......................... 8 3.6 Result...................................... 8 3.6.1 Pyramid layer.............................. 8 3.6.2 Edge artifact.............................. 9 4 Poisson Blending 10 4.1 Introduction................................... 10 4.2 Implementation................................. 10 5 Conclusion 14 Bibliography 15 ii

Chapter 1 Introduction 1.1 Panorama A panorama is an wide-angle view or representation of a physical space, whether in painting, drawing, photography, film/video, or a three dimensional model. It is interesting to gain large perspective of the environment with a single image. It is easy to produce a panorama in painting, but it is relatively difficult to produce one in photography due to the limitation of field of view. We know that general camera that can only produce a picture with viewing angle of 60-90 degree. Panoramic photography soon came to create wide views for casual user, that is stitching multiple pictures together from different perspectives. Usually, panorama stitching result always undertakes mis-alignment due to randomness,seam due to exposure difference, ghost due to moving object and other issues. Thus this topic is very attractive and challenging. The major goal of our project is to build a panorama stitching program with blending steps to generate a nice-looking panoramic pictures. Our implementation consists of two major steps: alignment and blending. In alignment step, geometrical properties will be analyzed and compare to produce a correctly positioned picture. and In blending step, the exposure level is merged nicely together to produce a uniform exposure level across the overlap region of different pictures. 1.2 Alignment step In the alignment step, we will extract the SIFT features in each input images. Those features will be matched and use RANSAC iteration to estimate homography.then we 1

2 choose one image as reference to align the other one according to homography to generate coarse stitching images and useful masks information for blending step. 1.3 Blending step In the blending step,we blend aligned images with two different methods to produce a nicely merged image. Laplacian pyramid blending generate a band-pass pyramid for each images and combine them together. Poisson blending works in the gradient domain to solve Poisson equation with the Dirichlet conditions to generate seamless images.

Chapter 2 Alignment step 2.1 Feature Extraction Our implementation will use be scale-invariant feature transform(sift) [2]. This algorithm can detect and describe local features in images. The SIFT enables reliable image matching with various orientation and zoom.the basic steps of extraction algorithm are Scale-space extrema detection, keypoint localization, orientation assignment and keypoint descriptor. 2.1.1 Scale-space extrema detection In this step, keypoints will be determined suing a cascade filtering approach. At each scale, the difference of Gaussian function will be calculated with following formula: D(x, y, σ) = (G(x, y, kσ) G(x, y, σ)) I(x, y) (2.1) G(x, y, σ) = 1 +y 2 )/2σ 2 2πσ 2 e (x2 (2.2) In this formula, I(x, y) is the input image, and G(x, y, σ) is the variable-scale 3 Gaussian. the maxima and minima of D(x, y, σ) will be computed across multiple layers. Those maxima and minima will be the features on this image. 2.1.2 Keypoint localization The feature points will then be filtered. There are two steps for filtering the feature points. First feature points with low contrast level will be filtered out with a threshold 3

4 on minimum contrast. Then all the feature points will compare to surrounding feature point to remove edges produced by the noise. 2.1.3 Orientation assignment In this step, orientation will be detected on all the feature points, and will be saved in the keypoint descriptor. The keypoint orientation will be calculated with the presence of surround 4 feature points. Those orientation will be useful when the target image has a rotation compare to the reference image. 2.1.4 Keypoint descriptor In this step, all the useful information about the feature will be saved with corresponding points, including image location, scale, orientation of those keypoints. Those information will be enhanced locally to facilitate the comparison and to remove the in uence of noise. 2.2 Feature matching After finding all the feature points in both images, those feature points need to match to each other. a data structure called k-d tree can be used for this step. This is a spacepartitional data structure good for organizing points in a high dimensional space.for multiple pictures to align, this data structure will be easier to understand and implement. In each matching step, left and right child of current node will be a new k-d tree, and the location of current node will be the median of the keypoint s location. With this data structure, matched keypoints will be easier to save and to retrieve, because the same feature point in different pictures will be at the same location in this structure. 2.3 Image matching After matching feature points in input pictures, we will try to estimate homography using random sample consensus(ransac), which is an iterative method to estimate parameters of a mathematical model from a set of observed data which contains outlier. In our case, those observed data will be the feature points locations and the outliers will be those feature points which cannot be matched to another picture. RANSAC is a robust approach to find reasonable result after certain trials. With the alignment

5 information, we choose one image as reference, then transform other image into local frame using homography and ready for blending step. Figure 2.1: Input image 1

6 Figure 2.2: Input image 2 Figure 2.3: Result of SIFT feature finding and matching

Chapter 3 Pyramid Blending 3.1 Introduction We first use pyramid blending to blend the images together[3]. The principle of this algorithm is to build Laplacian pyramid from input images. Each layer in pyramid will have half of the resolution of the previous layer then the pyramid will be merged at different layer separately. Finally the pyramid of the merged image will be collapsed into the final blended image. 3.2 Pyramid construction Depending on how smooth the blending need to be, a specific number of layer of pyramid need to choose. The maximum number of layer is determine according to the size of input picture. The size of input picture need to be smaller than the 2 l pixel on the shorter side. At each level, the 4 pixel from previous level will be collapse into one single pixel and save at the location. So the picture size of level above will be half of the current level. 3.3 Mask computation A mask of blending need to calculated from input image. Here I calculate separation line for the mask at the middle where the two image joined. In this way, during the merging step of pyramids from input images, those pixel at the edge of the picture will not be consider. The reason is that during the pyramid construction, pixels at the edge of picture will consider the area outside of the picture as part of the picture. And because 7

8 pixel outside of the picture has 0 for its pixel value, which is black for color, the resulting blending result will be a darker area at the blending region. 3.4 Pyramid blending We loop through all the level of pyramid, and blend the image using the re-sized mask at each level and construct a pyramid with combined pixel information at different level. 3.5 Final picture reconstruction The resulting pyramid is then collapsed back to one image. 3.6 Result After implementing the method and various test on the method, we have several interesting discovers: Figure 3.1: Result after Pyramid blending with 8 levels 3.6.1 Pyramid layer We tried blending with different pyramid layer number. Because our test image size is 577418, so the maximum number of layer is 8. When level is 1, the resulting picture

9 has a sharp edge where the image was blending. when the level increase, the edge become smoother and smoother. When level number increase to 8, the edge is barely noticeable. However, for experimenting, I keep increase the level number. As soon as the level number is bigger than the maximum level allow, the lose of picture information is noticed, and it appear as the bottom part of the input image is not present in the resulting picture. This part increases in size as the level size keep increase until the entire result picture disappears. 3.6.2 Edge artifact I ve also notice an increasing size of artifact at the edge of picture. Because the input pictures was constructed as the original picture at its correct final position with black information around it. During the pyramid construction step, the black pixel information will be calculated into higher level pyramids. During the final picture reconstruction step, those information will be kept and result as a blurred edge.

Chapter 4 Poisson Blending 4.1 Introduction Gradient domain processing has wide applications including blending, tone-mapping, and non-photorealistic rendering. The insight here is that people is often more sensitive to the gradient of an image than the overall intensity.thus gradient methods can often make surprising performance. Perez s work[4] shows how gradient reconstruction can be applied to do seamless object insertion. They do computation on the gradient domain of source image, rather than copy intensity of original pixels. For the corresponded area in the target image, the pixel intensity is reconstructed by solving a Poisson Equation that locally align the gradients while obeying the Dirichlet conditions at the seam boundary. Here the target pixels that maximally preserve the gradient of the source region without changing the background pixel. In our project, we extend this approach to stitching image blending, to solve the discrete Poisson equation to determine the final pixel value of overlapped part where always generates seam due to exposure difference and ghost due to moving object, which turned out to be very acceptable. 4.2 Implementation Our objective can be formulated to a least square problem. Given the intensities of the source image s and the target image t. In order to largely preserve property of source image, while nicely combine two pictures, we can solve for new intensity values v within the source region S, then we obtain the formation: 10

11 v = ((v i v j ) s i s j )) 2 + ((v i t j ) (s i s j )) 2 (4.1) i S,j N i S i S,j N i S Where each i pixel in the source region S, and each j is 4-neighbor of pixel i. Each summation guides the gradient values to match those of source region. In the first part, the gradient is over two neighbour variable pixels, and in the second part, one pixel is variable and one is in the fixed target region. We need to transform the least square constraints to a matrix form as (Av b) 2 = 0 and our task becomes construct matrix a sparse matrix A and vector b, then solve for linear equation Av = b. Finally, the source region in the target image can be reconstruct d using solved vector v. In our case, blending step is applied after warp images is constructed. We need to construct the source region mask according to overlap region of two images. Finally choose one image as source image and the other is target image. Then we step into most time consuming part of this implementation to construct sparse matrix A and vector b, because Matlab is very inefficient for loop, which can be speed up using Mex.file. Considering due time, I guess we can do test in the future work. For sparse matrix solving part, here is a tip is to initialize your sparse matrix with sparse() function, leading to ignore zero element while computing. To sum up, Poisson blending shows good performance to smooth the seem between two images. Figure 4.1: Poisson blending : source image and corresponded source region

12 Figure 4.2: Poisson blending : target image Figure 4.3: Poisson blending result Figure 4.4: Test panorama without blending

13 Figure 4.5: Test panorama after blending Figure 4.6: Roddick Gates, 6:00AM, April 26th, 2013

Chapter 5 Conclusion As an extensive research topic, panorama image stitching have been developed to many engineers. In this project, we implemented a relatively completed panorama stitching system and generally explored the many aspects, including feature extraction and matching, homogaphy estimation and image blending. Comparing with two blending method, pyramid blending is relatively faster and show better performance on the whole picture exposure compensation, but it has edge artifacts with higher level. And Poisson blending can accurately remove the seam on the image, but could not globally compensate exposure, which can be seen in the figures of blending result. Our algorithm of SIFT and RANSC was implemented based on existing works. We work together finish alignment step and the final report. Kai implement the part of Laplacian pyramid blending, and Pengbo take part in the Poisson blending. We do believe this is impressive corporation. In this project, our job more focused on the blending part and do not take much effort to solve registration error like bundle adjustment, multiple warp option and more hybrid blending method.hopefully, we can build up a perfect auto panoramic image stitching system in the future. 14

Bibliography [1] Matthew Brown and David G Lowe. Automatic panoramic image stitching using invariant features. International Journal of Computer Vision, 74(1):59 73, 2007. [2] David G Lowe. Distinctive image features from scale-invariant keypoints. International journal of computer vision, 60(2):91 110, 2004. [3] C. Allene, J.-P. Pons, and R. Keriven. Seamless image-based texture atlases using multi-band blending. In Pattern Recognition, 2008. ICPR 2008. 19th International Conference on, pages 1 4, 2008. doi: 10.1109/ICPR.2008.4761913. [4] Patrick Pérez, Michel Gangnet, and Andrew Blake. Poisson image editing. ACM Transactions on Graphics (TOG), 22(3):313 318, 2003. 15