Public Lab Research note

3D Tundra

by cfastie | July 15, 2013 21:11 15 Jul 21:11 | #8895 | #8895

Brenden has made a couple of tutorial videos about using free (for non-commercial use) software which creates 3D models of surfaces from multiple photographs of the surface. This process, unfortunately known as structure from motion, is a powerful way to visualize landscapes from collections of many aerial photographs. We have tried online tools to accomplish this, but these have relatively low resolution. There are also expensive commercial programs (Agisoft Photoscan) which I have not tried. So it was good to learn about Brenden’s workflow.

I had to use four different programs to produce the model in the video below:

  1. VisualSFM: Matches the multiple photos and makes a 3D point cloud.
  2. PMVS/CMVS: Integrated into VisualSFM to prepare its result for the next program.
  3. CMPMVS: Command line tool to make the high resolution surface model and paint it with the photos.
  4. MeshLab: Display, scale, edit, and annotate the result.

The model I made is of a single 50x50m vegetation study plot which was photographed in the rain. The only input was 76 10MP kite photos, there was no GPS or orientation data involved. The processing time for the first three programs above was about 15 hours on a Windows 64 desktop with 3.1 GHz, quad core, 8 GB RAM, and 2 GB CUDA graphics card. The project created 4000 files totaling 40 GB. I probably won’t do this for all 18 of the study plots.

CMPMVS produced several videos (below) as part of its processing (even though I tried to ask it not to). These are sequential views of versions of the 3D model from each camera position. They are not very useful videos, but with kite photos, they do make you feel like you are seeing what the kite saw as the photos were taken. The textured model used in one of these videos has a lot more detail than the model I opened in MeshLab and used for the video above. So I'm not sure I found the proper output among the 4000 files.

Brenden’s first tutorial points to his zip file of everything required to install the first two programs above on a Windows 64 computer. For the second tutorial, two other programs must be installed. CMPMVS requires C++ and DirectX libraries (see readme files for links).


Chris, Very nice work! It looks like you have the process down well. Thanks for including the additional requirements to your post. I should update my notes to reflect the C++ and DirectX library requirements as well. Also, it looks like you used the correct PLY output from CMPMVS in MeshLab. I believe it's called meshAvImgCol.ply

Reply to this comment...

It's good to hear I used the correct ply file. Another thing I could not figure out is whether there is a better way to animate the model while recording a video. Dragging it around in MeshLab results in jerky moves, as in my video, instead of nice smooth motion. There must be way to get a smooth animation of the model.

And an important addition will be a way to embed the model so that anyone can interact with it directly. Can MeshLab models be embedded?

Is this a question? Click here to post it to the Questions page.

Reply to this comment...

I also want to be able to generate smooth 3D animations and also share the results in a web interface but I have not yet had the chance to do research on these 2 important considerations. I was planning on investigating the following when time permits:

Reply to this comment...

Chris, I think I may have "solved" one of our issues - sharing 3D point clouds and 3D ortho-models online. If you can generate a 3D PDF from MeshLab using U3D as described here: then you can embed the results easily as seen here: I'm very excited about this!!!

Reply to this comment...

Brenden, this solves BOTH of the issues above. The embedding and interaction is excellent, and the motion is smooth so you can capture video from the screen and make nice movies. So I am waiting eagerly for your next tutorial so I can learn how to do this! Thanks much.

Reply to this comment...

Also xml3d looks good. Meshlab can export in that format. See example at Did not try it jet, my computer is still data crunching for 2 days.

Reply to this comment...

Login to comment.