More Droning

One of the other projects that I wanted to try with the drone was some photogrammetry of large objects. A flying camera solves a lot of the problem of getting a good range of suitable vantage points to take photographs. Add in the “Quickshots” feature built into the drone and it makes it even easier. For this exercise I used the “Circle quickshot” which allows you to tag an area in the image and the drone will fly a 360° orbit around that point while keeping  the camera centred on the point. Doing that at a few different heights gives a quick and easy way of capturing images.

I tried this on a limestone outcrop in the Brecon Beacons with four different height orbits to give a total of 137 images. The general setup, complete with drone pilot, can be seen on the right. The modelled area was about 15m x 15m.

After extracting the images and running them through the photogrammetry process produced the following model:

This was only intended as a first test so there are a few improvements that could be made fairly easily:

  • Use the higher resolution video from the drone, 2.7K ( 2704×1520 pixels ) rather than 1080p ( 1920 x 1080 pixels )
  • Use more images from the video for the 3D re-creation
  • Reduce the video shutter speed to get sharper images
  • I used a different photogrammetry tool for this model ( see below ) and there’s some scope for experimenting with the settings

I had some initial problems selecting the target point for the 360° orbits but once that was done it was very quick and easy to take the videos. I think that the same technique would work well with objects like standing stones or maybe even stone circles.

Alicevision Meshroom

Initially I used the usual openMVG / openMVS combination of tools for the photgrammetry. However, even though the sparse reconstruction worked fine, there were problems with the dense reconstruction. I spent some time, without success, trying to find the reason and eventually decided that an alternative approach was needed.

I’d been wanting to try a different open source photogrammetry tool called Alicevision Meshroom for a while and this seemed the ideal opportunity. This is a GUI based tool and makes use of the PC’s GPU to speed up the reconstruction process. My two rules for any new software are (a) it must install without descending into any dependency hells and (b) it should have sensible default options so that I can experiment straight away. I’m happy that Alicevision Meshroom passed both with flying colours 🙂 The only slightly complicated thing was that I needed to install the Nvidia CUDA libraries for Linux but even this went smoothly. The instructions are slightly lengthy but are actually easy to follow. ( I didn’t follow any of the extra, recommended steps at the end as everything worked fine without them. )

Meshroom deserves a blog post of its own really but the main screen looks something like:

The key areas are:

  1. List of images to use for the reconstruction
  2. Preview of the selected image
  3. 3D reconstruction view. Here it’s showing the sparse reconstruction with the camera positions. You can see the four circular orbits that I used.
  4. A graphical representation of the processing path. This is the default but extra steps can be added if necessary
  5. Log output

Further experimentation will be necessary but it looks good so far.