BundlerPgP Instructions
BundlerPgP Instructions
1. Setup
Hardware and software requirements:
Windows operating system, 64-bit computer, Nvidia graphics card.
Bundler Photogrammetry Package: download from http://files.neonascent.net/SFM.zip
Software installation
Extract SFM.zip to C:\
The exact path is important and others will not work. Ensure that the extraction has given you folders:
C:\SFM\ bin C:\SFM\ bundler_doc
C:\SFM\ bin64 C:\SFM\ cygwin C:\SFM\ examples
Bundler requires the sensor width of the camera to initialize processing. In most cases Bundler extracts this
from either the EXIF header data of the images, or from a text file used by the software. However, if the
data are not found, you will see
[Couldn't find CCD width for camera ...]
and you need to add the details yourself to the text file. To do this :
1) Find the CCD width of your camera in mm; values are usually given on manufacturer’s website or
at camera review sites such as DPReview (http://www.dpreview.com/).
2) You also need to determine the text in your image files that Bundler uses to identify which camera
was used. In Windows Explorer, right-click on an image and go to Properties. Select the Details or
Summary tab (clicking ‘Advanced’if necessary), and find the value for the Camera Model property.
3) Using a text editor, insert a line containing you camera details to C:\SFM\bin\extract_focal.pl file in
the same format as the lines for other camera data:
%ccd_widths = (
…
"YOUR CAMERA MODEL" => ww,
…
);
where ww is the CCD width in mm. Note that anything written after a ‘#’ character is a comment
only and not used by the software. Save the file and retry sparseRecon64.bat. If the problem
remains, double check that you have exactly the same text in your entry to the CCD list as in the
image properties (including capitalization and spaces).
When Bundler is running then a sub-directory called bundle will be produced in your project
folder. As the reconstruction proceeds, Bundler writes incremental output files in the form
bundle_nnn.out and pointsnnn.ply, where nnn is the number of images that have been
successfully incorporated into the model so far. The .ply files are ASCII format 3D point clouds
which show the positions of the reconstructed cameras and the 3D surface. They can be viewed
with a variety of software (see below).
4) Copy denseRecon_batch.bat and denseRecon.vbs from C:\SFM\ into your project folder
and run denseRecon.vbs
5) Enter the values for the match parameters - the recommended ones usually give good result but
the panel below explains more about the individual parameters
Images per segment: This sets the maximum number of images that will be clustered together (by
CMVS) for simultaneous matching. More is better, but the maximum number is limited by RAM
and will vary with the density of the reconstruction. Fewer means that more image clusters will be
produced for matching one after another.
Reconstruction level and Voxel size: Both these parameters effectively vary the density at which the
matching is carried out. Denser matching require more RAM and is much slower than less dense
matching. The details are not straightforward, but level determines the number of times images are
decimated before matching (i.e. level = 1 (recommended) represents images used at half-
resolution). Voxel size determines how often a match is attempted – i.e. every nth pixel in the x and
y directions of the sampled images. For the recommended voxel size = 2, then a match is attempted
for every fourth pixel in an image.
Reconstruction threshold: A threshold that is related to correlation values in the matching process and
is used to filter out bad matches. Larger (up to 1.0) values mean fewer but more reliable points,
smaller values retain more points, but the quality can be lower. A value of 0.9 is recommended.
The matching process may take some time. At the end there should be one or more .ply files within the
subdirectory \pmvs\models of your project folder.
Meshlab: http://meshlab.sourceforge.net/
Cloudcompare http://www.danielgm.net/cc/