Build Panoramas on Android Phones

Similar documents
3D Model based Object Class Detection in An Arbitrary View

TouchPaper - An Augmented Reality Application with Cloud-Based Image Recognition Service

FACE RECOGNITION BASED ATTENDANCE MARKING SYSTEM

Ultra-High Resolution Digital Mosaics

Camera geometry and image alignment

Make and Model Recognition of Cars

A System for Capturing High Resolution Images

A PHOTOGRAMMETRIC APPRAOCH FOR AUTOMATIC TRAFFIC ASSESSMENT USING CONVENTIONAL CCTV CAMERA

3D Scanner using Line Laser. 1. Introduction. 2. Theory

INTRODUCTION TO RENDERING TECHNIQUES

Augmented Reality Tic-Tac-Toe

Assessment. Presenter: Yupu Zhang, Guoliang Jin, Tuo Wang Computer Vision 2008 Fall

Automatic Grocery Shopping Assistant

Making High Dynamic Range (HDR) Panoramas with Hugin

REPRESENTATION, CODING AND INTERACTIVE RENDERING OF HIGH- RESOLUTION PANORAMIC IMAGES AND VIDEO USING MPEG-4

Fast Matching of Binary Features

Image Stitching based on Feature Extraction Techniques: A Survey

Environmental Remote Sensing GEOG 2021

High-Resolution Multiscale Panoramic Mosaics from Pan-Tilt-Zoom Cameras

VOLUMNECT - Measuring Volumes with Kinect T M

CS231M Project Report - Automated Real-Time Face Tracking and Blending

Geometric Camera Parameters

Matt Cabot Rory Taca QR CODES

The Photosynth Photography Guide

DYNAMIC RANGE IMPROVEMENT THROUGH MULTIPLE EXPOSURES. Mark A. Robertson, Sean Borman, and Robert L. Stevenson

Automatic Labeling of Lane Markings for Autonomous Vehicles

Classifying Manipulation Primitives from Visual Data

MIFT: A Mirror Reflection Invariant Feature Descriptor

More Local Structure Information for Make-Model Recognition

Simultaneous Gamma Correction and Registration in the Frequency Domain

ARC 3D Webservice How to transform your images into 3D models. Maarten Vergauwen


The use of computer vision technologies to augment human monitoring of secure computing facilities

WHITE PAPER DECEMBER 2010 CREATING QUALITY BAR CODES FOR YOUR MOBILE APPLICATION

3D Modeling and Simulation using Image Stitching

CODING MODE DECISION ALGORITHM FOR BINARY DESCRIPTOR CODING

Introduction to Computer Graphics

Face detection is a process of localizing and extracting the face region from the

Topographic Change Detection Using CloudCompare Version 1.0

Computer vision. 3D Stereo camera Bumblebee. 25 August 2014

Projection Center Calibration for a Co-located Projector Camera System

AN EFFICIENT HYBRID REAL TIME FACE RECOGNITION ALGORITHM IN JAVA ENVIRONMENT ABSTRACT

Face Recognition in Low-resolution Images by Using Local Zernike Moments

MACHINE VISION MNEMONICS, INC. 102 Gaither Drive, Suite 4 Mount Laurel, NJ USA

Geospatial Data Integration

EXPERIMENTAL EVALUATION OF RELATIVE POSE ESTIMATION ALGORITHMS

MAP GENERALIZATION FOR OSMASTERMAP DATA IN LOCATION BASED SERVICES & MOBILE GIS APPLICATIONS

Synthetic Sensing: Proximity / Distance Sensors

1 ImageBrowser Software User Guide

Robust Blind Watermarking Mechanism For Point Sampled Geometry

Semi-structured document image matching and recognition

Pipeline External Corrosion Analysis Using a 3D Laser Scanner

Chapter I Model801, Model802 Functions and Features

A Comparison of Keypoint Descriptors in the Context of Pedestrian Detection: FREAK vs. SURF vs. BRISK

International Journal of Advanced Information in Arts, Science & Management Vol.2, No.2, December 2014

Fast Image Labeling for Creating High-Resolution Panoramic Images on Mobile Devices

PROPERTY PANORAMA VIRTUAL TOURS

3DVista Virtual Tour Suite

Scanning Photogrammetry for Measuring Large Targets in Close Range

PHYSIOLOGICALLY-BASED DETECTION OF COMPUTER GENERATED FACES IN VIDEO

Analecta Vol. 8, No. 2 ISSN

Wireless Day / Night Cloud Camera TV-IP751WIC (v1.0r)

Automotive Applications of 3D Laser Scanning Introduction

1 ImageBrowser Software Guide

siftservice.com - Turning a Computer Vision algorithm into a World Wide Web Service

SUPER RESOLUTION FROM MULTIPLE LOW RESOLUTION IMAGES

MusicGuide: Album Reviews on the Go Serdar Sali

A Comparative Study between SIFT- Particle and SURF-Particle Video Tracking Algorithms

Jiří Matas. Hough Transform

DYNAMIC DOMAIN CLASSIFICATION FOR FRACTAL IMAGE COMPRESSION

Automatic 3D Mapping for Infrared Image Analysis

Tutorial for Tracker and Supporting Software By David Chandler

Creating the Ultimate Image: Introduction

An Approach for Utility Pole Recognition in Real Conditions

CS 534: Computer Vision 3D Model-based recognition

A Learning Based Method for Super-Resolution of Low Resolution Images

Automatic 3D Reconstruction via Object Detection and 3D Transformable Model Matching CS 269 Class Project Report

2-View Geometry. Mark Fiala Ryerson University

Feature Point Selection using Structural Graph Matching for MLS based Image Registration

ACE: After Effects CC

False alarm in outdoor environments

A Study on SURF Algorithm and Real-Time Tracking Objects Using Optical Flow

VECTORAL IMAGING THE NEW DIRECTION IN AUTOMATED OPTICAL INSPECTION

Assessment of Camera Phone Distortion and Implications for Watermarking

High-accuracy ultrasound target localization for hand-eye calibration between optical tracking systems and three-dimensional ultrasound

MetropoGIS: A City Modeling System DI Dr. Konrad KARNER, DI Andreas KLAUS, DI Joachim BAUER, DI Christopher ZACH

Beyond Built-in: Why a Better Webcam Matters

Wireless LAN Concepts

Hidden Camera Surveillance

Transcription:

Build Panoramas on Android Phones Tao Chu, Bowen Meng, Zixuan Wang Stanford University, Stanford CA Abstract The purpose of this work is to implement panorama stitching from a sequence of photos taken by cell phone camera on the Android phone system. The photos for panorama stitching are captured in a fixed linear spatial interval based on magnetic compass provided by Android cell phone. The computation is carried out either on phone or by a cloud according to the number of photos used for the panorama. The post processing methods on phone or by a cloud for panorama mosaic are similar. SURF (Speed-Up Robust Features) detection algorithm [] is employed detect the features, and the correspondences are further discriminated by RANSAC (RANdom SAmple Consensus) algorithm [3]. By stitching photos with blending, the resultant panorama is automatically popped up after these processing steps. Our algorithm successfully automates the panorama stitching on the user end. The resultant panoramas from 3 photos computed on the Android phone takes 22 seconds, and panorama from 7 photos computed by server takes only 9 seconds. Introduction Panorama was prevalent ever since mid-9th century because it offers a more immersive experience compare to a simple snapshot due to the unlimited field of view. At that time, a series of images were taken from a wide angle and directly stitched into a single large image, i.e. a panorama. With the advent of new technology, we are capable of achieving this technique with the power of signal processing. In the research literature, methods for automatic image alignment and stitching fall broadly into two categories, direct and feature based methods: Direct methods have the advantage that they use all of the available image data and hence can provide very accurate registration, but they require a close initialization. Feature based registration does not require initialization, but traditional feature matching methods e.g., correlation of image patches around Harris corners lacks the invariance properties needed to enable reliable matching of arbitrary panoramic image sequences. Thanks to the scale-invariant feature detection method and homograph model, panorama stitching problem now has an explicit solution. In our work, we use a feature based method to implement the panorama stitching on the Android mobile.

A sequence of photos is the initial input for panorama stitching, and this depends both on the camera setting and user operation. The Android phone is equipped with a five mega pixel camera, and the photos sequence is designed to be linear to facilitate the post-processing steps The advantage of a sequence of images here is to minimize the computational burden on phone. We don t need to match different images for their sequence, instead we can operate the stitching one by one without worrying the ordering. With random photo shooting, the computation time for n input images is O(n log(n)), but the sequence images, it will reduce the computation to linear time, with sacrificed user options (but we assume the linear photo gallery satisfies the user requirement to certain extent). For further computation efficiency purpose, we also down sample the input images by a factor of 6, under which, the feature detection step may be affected. The geometry of the panorama problem has been exhausted explored, and we only need to estimate the homography or a 3 3 matrix transformation for each images. SIFT (Scaleinvariant feature transform) [4] and SURF methods are both cable of the scale invariant feature detection. Although SIFT possesses higher accuracy, SURF method is used in our work considering the computation efficiency on the mobile phone. Blending and cropping is automatically triggered for image matching. Upon completion of image matching, adaptive cropping is necessary to form an output seamless panorama image. We describe the algorithm for this work in the section 2, and the section 3 presents the experiment results. Further discussion and conclusion is made in section 4. 2 Algorithm Panorama image mosaicking has been extensively explored nowadays, and many commercial camera and image software provide such image processing technique. However, implementing the panorama image mosaicking on the mobile phone is a new idea, which we anticipate meets customer needs with promising commercial future. We embedded our panorama stitching algorithm on the android system, with the mobile phone camera as the image sources. The procedure we used is as following: ) Images capturing with android cell phone; 2) Images projection to a predefined cylindrical coordinate; 3) Features matching among successive images and 4) Image matching. Detailed procedure for each step will be described in the following sections. 2. Images capture The first step for panorama is to capture desired images which are suitable for panorama stitching. The desired images means that successive photos need to have roughly the same camera settings, enough overlap with each other and known camera parameters. Android phone provides us with a 5 mega-pixel resolution camera which is cable of burst shooting mode. Utilizing this feature, we took a bunch of pictures of the objects. During the burst shooting process, cell phone can provide developers with timer and compass information. 2

To satisfy the overlapping requirement, we can set the burst shooting at predesigned time intervals (measured by the timer) or spatial interval (measure by the compass). Since the photos are taken by users, spatial control of the shooting interval benefits the requirement of overlapping. For the parameter setting, unfortunately, android phone doesnt provide the focal length info, which is important to the cylindrical projection step. But the good news is that our estimation of the focal length works well for the all the experiments. One reason is that the when taking photos for panorama stitching, we usually obtain objects which are far away. Under this assumption, the focal length tends to be a fix value. 2.2 Images projection The first step to process the collected images is to project them to a cylinder with the preset focal length parameter. This step is critical for panoramas with a large angle of view, especially for an indoor or outdoor 360 scene. The cylindrical projection transform can be described as following procedure. (x, y, z ) = (X, Y, Z) X2 + Z2 () (sin θ, h, cos θ) = (x, y, z ) (2) (x, y ) = (f θ, f h) + (x c, y c ) (3) Equation projects arbitrary point in 3D space (X, Y, Z) to the unit cylinder. Equation 2 converts points to cylindrical coordinates. Cylindrical image can be computed from Equation 3, where f is the focal length of the camera and (x c, y c ) is the origin defined in the unwrapped cylinder. To prove the importance of the cylindrical projection step, Figure compares the panoramas with and without cylindrical projection step. As we can see, the image is greatly distorted if this step is not applied. (a) Panorama with cylindrical projection (b) Panorama with perspective projection Figure : Comparison of cylindrical and perspective projection 3

2.3 Features matching 2.3. SURF SURF (Speed Up Robust Features) method is a quick scale invariant feature detection method, which was first proposed by Bay et al.. It computes horizontal and vertical pixel differences, dx and dy, in local coordinate system for rotation and scale invariance. And then it accumulates dx, dy, and dx, dy over 4 4 subregions (SURF-64) or 3 3 subregions (SURF-36). It then normalized for gain invariance, but distinguishes bright blobs and dark blobs based on the sign of Laplacian. It speeds up the feature detection several times than the SIFT (Scale Invariant Feature Transform). 2.3.2 Feature correspondences From the detected features, we need to find correspondences between successive images. We achieve this by using the nearest distance search over the entire features detected. Among all the correspondence, we need the build the Homography model of the projective transform, i.e. we need to find the homograph matrix as below: x i y i = h 00 h 0 h 02 h 0 h h 2 h 20 h 2 h 22 x i y i (4) The homograph matrix describes the transform we need, and h 00, h 0, h 02, h 0, h, h 2, h 20, h 2 and h 22 are the transform parameters. Calculating those variables only need 3 correspondences, but we have to guarantee that those 3 are the correct correspondences. Although we have many correspondences, not all of them are correct detection, so we need further validation for finding the right ones. 2.3.3 Image matching For each pair of potentially matching images we have a set of feature matches that are geometrically consistent and a set of features that are inside the area of overlap but not consistent. The idea of our verification model is to compare the probabilities that this set of inliers/outliers was generated by a correct image match or by a false image match. Using the full-fledged RANSAC method, we successfully find the correspondences within the estimated precision. 3 Results Figures 2(a) and 2(b) show the panoramas computed on the Motorola Droid phone. For each panorama, a set of images containing 3 photos was input. Figure 2(a) takes 22 seconds and 4

Figure 2(b) takes 43 seconds to compute the result. Figure 2(c) shows the panorama computed from 7 photos on a 2.33GHz PC. The result was rendered in 9 seconds (without network transmission). Figure 2(d) shows the panorama computed using Photoshop, which takes 23 seconds. (a) Panorama computed from 3 indoor pho- (b) Panorama computed from 3 outdoor tos photos (c) Panorama computed from 7 outdoor photos (d) Panorama computed using Photoshop Figure 2: Experimental results 4 Discussion and Conclusions Although panorama technique has been well developed by many commercial and research groups [2], mobile phone application of it is still an interesting and challenging work for both users and developers. First of all, the constraint of the mobile phone computation ability seem be a bottleneck for it. Waiting several minutes for a panorama image is not pleasing for users, and meanwhile this process may jeopardize many other phone applications. Cloud computing provides an efficient solution for this problem, and the communication between the phone and server should be carried out safely and accurately. Since it s beyond the scope of this paper, we won t discuss more about it. Another issue about the stitching process is how to sort the bunch of images and stitch them. Sequence shooting provides us a way of less effort on this problem, while users loses the choice of the unlimited panorama formation. Content based image retrieval can be used to find adjacent images from a bunch of unsorted images. But from the user experience 5

perspective, it s natural to take phone around a certain path instead of random shooting. And our approaching really combine the photo shooting and panorama construction together to one step. If powerful server is provided, we can process the panorama stitching during photo shooting process by simply sending the next image to the server and stitching it to the panorama we already have. Then near really time panorama construction is achieved, the time needed is really the time users need to take photos. This feature is only guaranteed by the sequence model. In conclusion, we implement an algorithm for fully automatic panorama stitching on Android cell phone environment using a sequence of photos captured by phones own camera. The use of matching methodologies and alignment algorithms allow us to compose panoramas more efficient, and stitch them together without user input. Blending scheme ensures seamless transitions between image illumination differences, providing an immersive image panorama experience to the user. References [] H. Bay, T. Tuytelaars, and L. Van Gool. Surf: Speeded up robust features. Computer Vision ECCV 2006, pages 404 47, 2006. [2] M. Brown and D. Lowe. Automatic panoramic image stitching using invariant features. International Journal of Computer Vision, 74():59 73, 2007. [3] M. Fischler and R. Bolles. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6):38 395, 98. [4] D. Lowe. Distinctive image features from scale-invariant keypoints. International journal of computer vision, 60(2):9 0, 2004. A Appendix Tao Chu: Feature matching, Image Matching Bowen Meng: Feature matching, Image Matching Zixuan Wang: Feature matching, Image Matching The poster and report are discussed and written by all of us. 6