Public Lab Research note


OpenDroneMap -- Automatic postprocessing aerial data

by smathermather | November 14, 2014 13:08 14 Nov 13:08 | #11342 | #11342

What I want to do

OpenDroneMap (http://opendronemap.github.io/odm/) is intended to be a tool to postprocess small Unmanned Aerial Vehicle (sUAS), balloon, kite, and street view data to geographic data.

My attempt and results

The toolchain will currently produce a point cloud (in relative, not geographic space) using computer vision stereo matching between images (Structure from Motion and Multi-Stereo View techniques).

e.g.: One of the input images

image.PNG

Output point cloud:

image_points.png

points.PNG

Questions and next steps

Next steps to have the tool chain generate a surface model (mesh), and texture that model, as well as produce an orthophoto.

balloon.PNG

Why I'm interested

It is really easy, whether with balloon, kite, or drone to produce a huge number of images to process, and there is no current way to leverage the implicit information in the photos to rapidly produce a digital surface model and orthophoto. OpenDroneMap is intended to close that gap.

(the post-processed imagery above attribution to GLAM ( Gowanus Low Altitude Mapping project ) and @publiclab


7 Comments

Very cool @smathermather !

Reply to this comment...


Looks super cool.

To generate your images, did you use the image from a single camera of two cameras side by side?

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

Reply to this comment...


Thanks, @liz, @amysoyka.

@amysoyka, this was not my flight, but seems to be a single camera. The input was a few hundred images.

I'm looking forward to trying with side-by-side.

Reply to this comment...


BTW, @liz -- what's the attribution / background info for the image series?

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

Reply to this comment...


Welcome Aboard @smathermather!!! I was just recommending OpenDroneMap to the @uaviators people, so I'm happy to see you set up a research note. I'm finally at a point in my own UAV project where I can start playing around with different mission planner GUIs, and I was thinking about whether or not it would make sense to integrate Mission Planning with the post-processing tools. Especially, in future applications when it might be possible to crowdsource aerial imagery by requesting a certain resolution/time of/year/weather condition etc... I was picturing a workflow that would begin with a broad area scan by a fixed-wing UAV, and when additional areas of needed detail are highlighted in post-processing, the coordinates could be automatically uploaded to a quadrotor or another vehicle with more precise navigational capabilities.

One of the reasons I stick with an ancient electronics codebase like MultiWii, is the Mission Planner can be run out of the Processing IDE. In theory, this means it should be relatively easy to add in libraries like OpenCV or iGeo while the final program can then be exported into Javascript, Python, Android, Arduino or the default Java.

Have you tried running any part of the ODM toolchain in Processing? If not, would it be compatible with any of the formats Processing can output?

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

Reply to this comment...


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

Reply to this comment...


Awesome. Thanks @liz.

Thanks @ajawitz. I hadn't given any thought to tying flight planning into the workflow. That's a great idea, and really would encourage and make possible collaborative mapping.

Tell me more about how Processing.

Reply to this comment...


Login to comment.