AUTOPANO v1.03
Automatic Panorama Recognising Tool for Panotools
|
What does this software do ? |
It takes a folder and searches it for image files. By analysing the
pictures, it attempts to divide them into panorama sets. The output
will be the Panotools projects for actually stitching them.
In short : it finds panoramas in the supplied pictures, creates
the panorama project files for them and adds sets of control points
! Easy, for lazy people.
Use it standalone : Step by Step |
Here are 16 pictures straight from my digital camera ( sample_pictures.zip ).

Just unzip theses pictures in a folder and put autopano in it also.
Launch autopano with /project:ptgui switch for example.
It detected 2 panoramas, so autopano created 2 new files in
the folder : panorama0.pts and panorama1.pts.
Let's open the panoram0.pts with PtGui.
-
Go to "lens settings"
Tab, hit EXIF to retrieve fov parameter of the pictures.
- Go to "Images Parameters" Tab, and set all rolls to -90 (it turns
the pictures). You could skip this but actually optimization doesn't
like long panorama over poles.
- Go to "Optimizer" Tab, switch to simple interface, don't optimize
fov nor lens distortion. You should except an average error of 1.5.
- Using Panorama
Editor (Ctrl+E), replace the panorama in the center with a well located
horizon.
- Reoptimize with medium lens distortion correction enabled : average
error is around 0.5. You're done !

Proceeding the same way with panorama1.pts gives you this panorama.

Of course, there are 3 pictures which were not used as they
didn't belong to any of the panoramas.

Some benchmarking. It tooks around 137 seconds for the whole
process on a Athlon 1,33 Ghz with no false control points.
Use it as a plugins : PtGui, PtAssembler
or Hugin |
Use it with PtGui :
Use it with PtAssembler :
Use it with Hugin :
================================================================================
| AUTOPANO : Automatic Panorama Recognising Tool for Panotools |
| version 1.03, 21 July 2004 |
| http://autopano.kolor.com |
| Author : Alexandre Jenny |
================================================================================
Usage : autopano.exe [folder] [options] or autopano.exe /f file1 file2 .. [fileN] [options] Launch the autopano analysis on the files provided or for the files which are in the folder path provided (if no path, it use the current path). The output of autopano will be one or several files named panorama1.oto, panorama2.oto, ... panoraman.oto. In these files is stored the definition of detected panoramas. PtGui, PtAssembler and Hugin can open such files. The .oto files are located in the same folder as pictures. OPTIONS FOR SIFT ALGORITHMS /size:value (default:1024) Gives the maximum picture width at which we should start analysis. preceeding picture with greater widths will be ignored. At every step picture are reduce by a factor 2. It reduces greatly the number of keys detected but speed up the detection /sift:value (default:0) 0: Lowe's standard SIFT algorithm 1: PCA-SIFT algorithm ( planned but not available yet) /showkeys When set, it outputs a jpeg file with the keys displayed inside to show where keys are detected in a picture OPTIONS FOR MATCHING ALGORITHMS /keys:value (default:10) How many keys should remains in the project file for a pair of pictures. This value is just an indicator : the current algorithm offen gives much than this value /search:value (default:2) For keypoint pair search, use the following algorithms : 0 : brute force distance calculation in o(n.(n-1)/2), really slow 1 : global kd-tree BBF search 2 : global kd-tree Exact search 3 : kt-tree BBF search for every pair of picture (no global kd-tree) /bbfemax:number (default:25) Best-Bin-First emax value OPTIONS FOR VALIDATION ALGORITHMS /validation:number (default:4) 0 : No check at all, just outputs pairs 1 : Ransac 2 : Ransac, Statistical Check 3 : Ransac, Statistical Check, ISO repartition 4 : Ransac, Statistical Check, ISO repartition, Geometrical Test /ransac_iter:number (default:2000) Number of iteration for the ransac algorithm /ransac_dist:double (default:10.0) Maximal error for ransac algorithm /geotest:number (default:10) Number of point to be removed by geometrical test OPTIONS FOR OUTPUT /path:string (default: current picture's folder) Specify project files folder /name:string (default: 'panorama') Specify project files name : will be panorama0, panorama1, etc /allinone Force every picture to be in only one project file /project:string (default:oto) oto : Creates oto project files : it's now the standard file format produced for integration with Hugin, PtAssembler and PtGUI. hugin : creates Hugin project files pta : creates PtAssembler project files ptgui : creates PtGui project files GENERAL OPTIONS /help, /?, /h This screen /timing Outputs detailed timing
Algorithms, Papers and Implementation ... |
"Distinctive image features from scale-invariant keypoints" by David Lowe
Detailed description of the SIFT algorithm and how to efficiently implement
it. Additionally there are empirical results to the parameters one should
use.
"Recognising panoramas" by Matthew Brown and David Lowe
A more compact description how to use the SIFT feature detection algorithm
as a base to build an efficient automatic panorama generation software
on. It explains all the post-matching steps, such as Ransac check and
also a pointer to the Best-Bin-First
algorithm, an efficient probabilistic modification of the kd-tree algorithm
(I also use BBF). See Matthew's panorama
project page for some examples created with his original implementation.
The software was created in C++ using vigra
library.
Here is the story. Most part of the software is available for free
but not the SIFT detector. So I have to put a warning.
This software is provided
for non-commercial use only. The University of British Columbia has
applied for a patent on the SIFT algorithm in the United States. Commercial
applications of this software may require a license from the University
of British Columbia.
Planned future version :
I already have an integrated optimizer for calculating of the location
of pictures (yaw, pitch, roll, fov). But it's a little bit buggy yet,
so it's not activated. But in a near future, it will pre-locate pictures
without using the Panotools optimizer. As it does only the yaw, pitch,
roll and fov, the PTOptimizer could be of some use for perfect match
by optimizing lens distortion also.
v1.03 : Brand new version with massive improvements
- SIFT debugging : it's now fully rotation and scale invariant,
- Improved distingtiveness,
- Fixes in Ransac algorithm,
- many new command line parameters,
- new interface beetween Autopano and GUI (PtGui, PtAssembler and hugin).
v1.02 : Bugs fix, better spaced keypoints, enhanced ransac
- Enhanced keypoint pruning system to ensure that the keypoints
are spacially located in all overlapping area,
- Fixes in Ransac algorithm (some good matching pairs were removed
with a ni = 1),
- Fix a bug in the image file search pattern : tiff and png weren't
detected,
- New command line parameter for ransac configuration ( /ransac:number
).
v1.01 : Bugs fix release with improved detection accuracy
- Ransac algorithm bug corrected, every picture pair are now
good,
- Updated kd-tree BBF search,
- Fix dependencies issue : you didn't need any dlls,
- Enhanced information output.
v1.00 : Initial release of AutoPano
Zip file for Windows binaries :
last version : autopano_v103.zip
Gz file for Linux Binaries :
Not last version yet : autopano_1_02b_linux_binary.tar.gz
(thanks to pablo for creating it)
Zip file for sample pictures : sample_pictures.zip
To Sebastian Nowozin. He did also an implementation of the sift detector
in C#.
http://user.cs.tu-berlin.de/~nowozin/autopano-sift/
To Pablo d'Angelo : creator of the Hugin GUI. He did a wonderfull work
on this tool : http://hugin.sourceforge.net
If you detect some crash using a given set of pictures, of course I'm
interested in feedback.
|