50 SERVO 04.2017
After the project is created, we need to upload photos.
Click the “Upload Images” button and select all of the
images from the dataset. The upload will take a minute or
two; the interface is pretty much unresponsive during that
period. After the upload is completed, you can look in the
advanced settings if you wish, but the defaults will work
fine here. Click “Save” and then “Start Processing.”
Processing Images with ODM
To process images with ODM, we need to build up a
Docker run command. We can see from the ODM README
file that the final command will be: docker run -it —user
root -v $(pwd)/images:/code/images -v $(pwd)/
odm_orthophoto:/code/odm_orthophoto -v $(pwd)/
odm_texturing:/code/odm_texturing —rm odm_image —
which is quite a mouthful. Let’s break it down.
We’re calling the docker run command because we
want to spin up a container. The -it options make the
system emulate a TTY machine (-t) and leave the standard
input open (-i), which is what many command line utilities
will expect. The —user root part of the command tells
Docker that we want to run as the root user. The -v option
is mounting the images, odm_orthophoto, and
odm_texturing folders to the file system of the container.
Finally, the —rm option has the container’s file system clean
up upon exiting. After all of those options, we are to the
first (and only) command line argument — odm_image —
which is the image we want to run. Any additional
arguments we want to pass into the run.py script can be
Open the OpenDroneMap folder and navigate to the
images directory. Copy the photos you want to process into
that directory and then issue the docker run command we
constructed earlier. I recommend starting with the caliterra
dataset we downloaded earlier. You will be returned to the
terminal prompt when the process is completed without any
error messages. This dataset can take a while to run, so I
recommend starting it and then going on to work, bed, etc.
The resulting products from the processing will be in
the odm_orthophoto and odm_texturing folders. I
recommend copying these folders out to somewhere safe
for later viewing. The product files aren’t all that large
usually, so storing them isn’t a problem.
Viewing the Results
The time has finally come — we are ready to view the
images that ODM has produced! Head over to where your
output data is saved. The output directory for the products
may vary depending on which interface you are using, but
you’ll find a PNG and Geo TIFF in the orthophoto output.
You can open these in any program that opens images
(Figure 8). This product is the equivalent of a stitched
together image mosaic with the coordinates rectified to be
nadir (normal to the ground) view. For many applications,
this is the most useful product. It could be a farmer
wanting to review how different crops are doing, a
developer wanting a build site overview, or just a curious
hobbyist wanting an aerial photo of his/her property. These
images can be analyzed with standard image processing
The Geo TIFF is a special type of image file originating
from the NASA Jet Propulsion Laboratory. You can read
more about the format at http://geotiff.osgeo.org, but
basically it is a standard way to pack georeferencing
information into a TIFF image file, including the map
projection, coordinate system, etc.
Many standard GIS type tools can read these in, and
easily plot and analyze them with other georeferenced
data. I installed the free QGIS tool ( www.qgis.org) as it
seems to be the best free and open source tool in the
game. The Geo TIFF can be opened by clicking the “Add
Raster Layer” button (Figure 9) and navigating to the file.
Other layers can be added as well.
Generally, we are mapping relatively small areas with
our drones, but you can find shapefiles for rivers, roads,
Figure 9: Click this icon to add a “raster” or gridded data
layer to the GIS map.
Figure 10: Click this icon to add a “vector” layer such as a
shape file to the GIS map.
Figure 8: The stitched GeoTIFF/PNG images provide an aerial photo
of the construction site. Images like this could be very useful for
land monitoring, site planning, and job progress assessment.