the same author :
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
- 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.
Tutorials for using it as a plugin
: PtGui, PtAssembler or Hugin
Use Autopano with PtGui
Use Autopano 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 |
autopano.exe [folder] [options]
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
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
0: Lowe's standard SIFT algorithm
1: PCA-SIFT algorithm ( planned but not available yet)
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
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
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)
Best-Bin-First emax value
OPTIONS FOR VALIDATION ALGORITHMS
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
Number of iteration for the ransac algorithm
Maximal error for ransac algorithm
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
Force every picture to be in only one project file
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
/help, /?, /h
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
"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
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.
WARNING : bugs for v1.03
- Some 16 bits TIFF files couldn't be read by autopano, so use standard 8 bits pictures.
- When providing file names using /f switch, you must use /path:'c:/youpath' 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
- 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
- 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
previous version : autopano_v102.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
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.