Photogrammetry Testing 3: VisualSFM + PMVS + Meshlab

Here’s the original post, and links to all posts

I have previously outlined my goal of testing multiple photogrammetry solutions on a single dataset, and reporting times and results.

I’m using a dataset based on photographs of this Styracosaurus model (I’ve had it since I was quite young):


The dataset has 53 photos in total, and is available from this link. [This will be moved to figshare in due course].

The model is about 12 cm in total length, has texture for the scales, and a reflective brass nameplate on the base. The model was situated on a glass desk, and there may be reflection issues from that.

This time, I’ve used VisualSFM again, followed by PMVS to generate the dense point cloud (a button in VisualSFM’s GUI allows this to happen nice and easily), and then a mesh was generated using the Poisson Surface Reconstruction in Meshlab.

The matching and reconstruction in VisualSFM


The dense point cloud generated by CMVS/PMVS in VisualSFM

I generated a mesh using the Poisson Surface Reconstruction function, setting Octree depth to 10:


Before I could do that, I had to remove a few extraneous points that would really mess with the Poisson Surface Reconstruction, but this took only 203 seconds to select and delete the points:


As you can see, the model has quite a bit of noise in the surface.  Had I used a lower Octree depth, the model would have been smoother, but finer details would have been lost.



Feature Matching: 114 seconds
3D Camera Pose Reconstruction: 10 seconds
Dense point cloud reconstruction: 703.2 seconds (2376394 faces)
Mesh (Poisson Surface Reconstruction, Octree level 10): 95.18 seconds
Texture (4096px, meshlab): 153.355 seconds

Total Time: 1075.56 seconds

You can view and download the final model here:

Summary VisualSFM + PMVS + Meshlab

Clearly this mesh does not compare well with either of the previous models.  Note that this is not due to VisualSFM, but rather the dense reconstruction part PMVS/CMVS and meshing (meshlab), as can be seen from the quality of the MeshRecon mesh which used VisualSFM to match cameras.

Note that this was about the largest mesh in terms of number of faces.  It also has some texturing issues on the right side of the model.

On the one hand, I like the control; playing with the .ini settings for PMVS may result in a better point cloud (The .ini file for VisualSFM includes options for PMVS, but I left them all at default), and altering the parameters for the Poisson surface reconstruction in meshlab might produce a marginally better model (though ultimately I think that’s the weakest part of this chain).  Remember though, that PMVS/CMVS hasn’t really been altered since I used in my 2012 (first submitted 2010) photogrammetry paper.

On the other hand, needing to move between visualSFM and meshlab is a bit of a pain.

So, in summary, a bit slower and a bit lower quality (and a bit more prone to user error) than MeshRecon, and certainly a lot more fiddly to use than Photoscan.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Website Built with

Up ↑

%d bloggers like this: