Thursday, 30 September 2010

Python Photogrammetry Toolbox

This project intend to create a python photogrammetry toolbox.
It provides an easy interface to run Bundler + Dense point cloud computation via PMVS2 and CMVS (as WIP).

The main drawbacks of Bundler is that people have to install cygwin to use it and windows.
The advantage of Python is that the scripting langage is multiplatform, so the same code will be ok to run Bundler and the other tools on windows, linux and mac ! No more cygwin... installation.

This project make the Sift detector from VLFeat library works with Bundler. So the toolchain is OpenSource from A to Z. Other modules could be plug into because of the modularity approach that have been choosen.

In a near future we could think in integrate a SIFTGpu matcher into the toolchain.

Running example :
Perform point cloud and camera calibration :
  • $ --photos="./examples/MyPhotos"

Perform dense 3D point cloud computation :
  • $ --bundlerOutputPath="C:/temp/PreviousLineTempDirectoryPath"
Perform dense 3D point could computation by using Cluster 3D representation of the scene :
  • $ --bundlerOutputPath="C:/temp/PreviousLineTempDirectoryPath"

CMVS windows linux

Many multi-view stereo (MVS) algorithms do not scale well to a large number of input images (lack of computational and memory resources). This software (CMVS) takes the output of a structure-from-motion (SfM) software as input, then decomposes the input images into a set of image clusters of managable size. An MVS software can be used to process each cluster independently and in parallel, where the union of reconstructions from all the clusters should not miss any details that can be otherwise obtained from the whole image set. CMVS should be used in conjunction with an SfM software Bundler and an MVS software PMVS2 (PMVS version 2).

hall-all hall-all
hall-all hall-all
MVS reconstructions from four view-clusters


Union of four reconstructions

You could find  :
Sources (compatible for Windows/Linux)
The build system used is CMake to make easy project maintenance and portability (windows only for the moment).

PMVS2 windows linux

PMVS is a multi-view stereo software that takes a set of images and camera parameters, then reconstructs 3D structure of an object or a scene visible in the images. Only rigid structure is reconstructed, in other words, the software automatically ignores non-rigid objects such as pedestrians in front of a building. The software outputs a set of oriented points instead of a polygonal (or a mesh) model, where both the 3D coordinate and the surface normal are estimated at each oriented point

You could find windows port here:
Sources and Binaries in the CMVS package.

Bundler 0.4 for windows linux and mac !

Bundler is a structure-from-motion system for unordered image collections (for instance, images from the Internet) written in C and C++. An earlier version of this system was used in the Photo Tourism project.

You could find  :
Sources (compatible for Windows/Linux/Mac)
The build system used is CMake to make easy project maintenance and portability.