Monday, April 12, 2021

Drone Mapping Software Project

 I've been working on drone aerial photography software for a few months now. It's a really interesting and challenging problem to tackle.

Ideally, the process of making a mosaic of a bunch of aerial photographs would be completely automatic. You could build a fully automated system if you either had absolute accuracy in the positioning of the drone and its camera, or if you had algorithms that could automatically recognize landmarks in photos, then stitch them together.

A consumer grade drone is not very accurate about its position in space, or its orientation in space. A custom built drone with very precise instrumentation would cost tens of thousands of dollars to build or buy. so it'd be preferable to try to use landmarks in the photos.

I just finished working through various algorithms to recognize landmarks and stitch the photos together based on that. The algorithms that were developed for that purpose work well when there are strong features that don't change much in appearance based on the drone position in the air like, a driveway or a road. However, photos of a forest vary wildly based on position, so there's no landmarks that the algorithm can use. In fact, a human can easily be confused by the pictures and would have a hard time manually positioning them.

The only practical solutions there are to either use a video, and extract image data from a succession of frames, then stitch those together--which sacrifices image quality--or to rely on a human brain and some artificial landmarks in photos. I think commercial satellite mapping companies are using neural networks (plus extremely accurate position information) to produce their latest aerial photography mosaics.

The math for the video image stitching is a really good candidate for hardware acceleration via custom processors. At some point, in fact, this stuff will probably be embedded in custom processors and any old crappy consumer grade drone could generate a map very easily.

Anyway, it seems like the manual landmark identification is the way to go for my application. The software can then stitch the photos together easily. Another advantage of that is some of those landmarks can be attached to real world GPS coordinates, so the map can be tied to an accurate position on earth.

So once I get a good recipe for that system, it'd be pretty easy to package it up for other people to use as well. I might actually get there by the end of the summer 2021.

No comments:

Post a Comment