Post Process

VisualSFM and CMVS

This tutorial covers downloading, setting up, and running VisualSFM to generate the following outputs:

  • Orthorectified images
  • Sparse point cloud
  • Dense point cloud






This tutorial covers how to use the output from VisualSFM as input data for running CMPMVS to create the following outputs:

  • Orthomosaic image
  • Digital Surface Model (DSM)

It also covers loading the CMPMVS outputs in MeshLab to visualize the outputs in 3D.











Georectification and georeferencing

  • Leveraging GPS GCPs
  • Using existing Aerial imagery to create GCPs
  • Using on-board GPS in conjunction with telemetry data to georeference


Please let me know if there are specific topics or subtopics that you would like included or prioritized.


  1. justinR

    I am agreeing with LeonDwyer, georeferencing is what we need to make all this trully work. Thank you for the work you have put into this already.

  2. LeonDwyer

    Fantastic tutorial.
    realy keen to get working on Georectification. it;s the missing piece to the puzzle 🙂

  3. Gaas

    When can we expect Georectification and georeferencing tutorial? I really love your work and would like to see part 3 🙂

  4. utm_geopd

    Dear all,
    I have got 25 images of a campus area (its only a small portion of the entire work)and 4 ground control points.I found the tutorial very cool but i m afraid on what reference frame are these images plotted while shown in the window.I never entered any cooridnates but it gav,e me a 3d point cloud.Is there any way we enter our coordinate system georeference all uav images carry out image registration and image matching and generate a spatially referenced DSM using this software?

  5. bigosunut

    Wow. This is awesome. I’ve been looking for this sort of thing. My interest is in providing maps for missing person searches. I love the first two tutorials but I’m left with questions.

    First: Is it possible to take pictures on the ground by hand? I’ve tried a couple of times using my iPhone but the software has found no matching points. Perhaps I’m not taking enough pictures? I’m taking pictures of the outside of the house and am leaving what I think is a pretty good overlap. Do I need to try to keep the camera in one plain?

    Second: There is a portion above titled georectification and georeferencing. Is that a space holder for a future tutorial? I can’t seem to find it.

    Again, thank you for sharing your knowledge!

    • geobduffy

      You should be able to take pictures of a structure from the ground and model it. It may be an issue with your Gpu. Are you using an NVIDIA card?
      You are correct in that I have not completed some of the tutorials. I’ve simply been too busy but I do intent to get back to it.

      • bigosunut

        Might be my computer. (Older MBpro running bootcamp.). I was able to do a loose grid with some other pictures but it dies on the fine grid. Will have to try another computer. Thanks for your work. I look forward to your next tutorial!

  6. Diodio26

    I was wondering how can I orthorectify the mosaic? I have all the data from the UAV like coordinate of the photos, camera tilt, etc. But I don’t see how Visual SFM or SFM Georef can use that.

    Thanks in advance.

  7. danielgeographic

    Hi there, I love your videos and thank you for the content and your committal to helping others.

    My question is, Is the products generated from this process georefermced, is the DEM created georeferenced, could this be used in a GIS with other GIS data??

    If so, where does the geospatial location data come from, it seems to me every step thus far is absent a georeference source, are these products in a relative coordinate system?

    Just curious,
    Im an idiot so I could’ve missed something in the tutorial,

    Thanks for all you do,

    Justin Daniel

    • geobduffy

      Hi Justin,
      The geospatial components have not really been addressed in tutorials yet, so you are correct and certainly not an idiot 🙂
      In Visual SFM you can load a text reference file (as Bagre88 has done above) and Georgetown’s the point cloud.
      Georectifying the orthoimagery from cmpmvs is more challenging due to data type conflicts and probably best solved by using GCPs.
      Unfortunately, my energy has been drawn away from some of the post processing work and will be for some time so I’m hoping some of the folks on flight riot will share back to the group as they continue to learn. Three are a couple more tutorials that I intend to complete but it will be some time…

      • danielgeographic

        10-4, thanks for the info,
        Ill keep searching, I don’t have any UAV captured images to test out yet. I still have a few components to finish out on my rig.
        1. Im having an error in CMPMVS and it appears its due to the fact that I do not have a NVIDIA graphics card, didn’t know if you have heard of this,
        2. I need to get a cable to operate my camera with, in your videos you are using an intervalometer script to capture your imagery. However now that Mission Planner will create a survey grid and a trigger to operate your camera, do you find that the cable you created from the EFLITE light controller, still work?


  8. bagre88


    I am currently looking for a software processing images captured by UAVs. and software I’ve found at this site seems interesting but I have several questions:

    1. Upon opening my pictures and apply the Software VisualSFM computin matches missing, this crashes and throws me an error message about the graphics card. What can be the problem?, My graphics card is NVIDIA 8400 1GB RAM is 1 GB.

    2.The images that I have have the geotag, and also have a text file with the id and the coordinates of each image. When I load the images should have another feature? Can I load the text file with the coordinates in the software?

    thank you very much for your reply, greetings from Colombia

    • geobduffy

      I think we already talked via email but I’ll address your questions briefly here.
      1) VisualSFM is very GPU intensive and I think your graphics card is not quite up to the challenge. You can/should try installing latest drivers for the card and see if it helps.
      2) you have the right idea with using a text file. This approach can leverage (a) the GPS data from the Camera’s GPS (b) the GPS data from the autopilot (c) GPS data from GCPs
      The geospatial reference gets applied to the point cloud.

Submit a Comment

Pin It on Pinterest

Let's stay in touch

Would you like to sign up to receive an occassional newsletter from us.  We'd love to let you know about new and wonderful things happening on the site.  Your details are never shared or sold and we hate spam as much as you do. 

You have Successfully Subscribed!