Skip to content

SeaScan

Constructing maps of flat regions should be a relatively simple task, but conventional approaches require complicated structure-from-motion pipelines intended for full 3D reconstruction. These methods often fail on scenes without distinguishable details, such as the ocean. We overcome this limitation through the use of target(s) and GPS data to stitch maps that are focused at a singular depth.

Map of Waters Near the Rosenstiel School using the MAVIC 3E

drawing

Products

We present two methods of map generation depending on the amount of processing that should be done during or before viewing.

Folium Map

The simplest and quickest result is a map made with folium. It populates a map with a subset of downsampled images stacked on top of each other. While this is quick to generate, the tiles overlap, and your browser may switch between these tiles.

This particular result uses fewer images, at a lower resolution, to work with Github.

Stitched Image

Using our derived GPS transformation, we can stitch together high-quality images with limited noise from glint. This work is ongoing and the transforms of the corresponding geotiffs need correction.

geotif stitching map 1–imagine a very windy drone pathgeotif stitching map 2-a map over some ocean and some land

Timelapse Videos

Lastly, we can collate data around a particular region to get an idea of the 3D shape, change over time, as well as a depiction of the accuracy of our GPS to image mapping. Notice in May 1, the image transform is slightly off, so objects on the sea surface appear to move.

Requirements

  1. Sea Surface Target

Our method was designed to automatically detect mooring buoys for boats; however, you can also manually isolate a target, and in just a few images, the algorithm can achieve similar results. Thus, our method can be used on any type of target with minimal effort.

Automatic Feature Detection

drawing

Manual Feature Annotation

drawing
  1. GPS Data

Our method uses GPS data, as well as gimbal heading data, to align images. We designed with the Mavic 3E in mind, so the metadata should be found at GimbalYawDegree and GimbalPitchDegree. However, if these do not suit your data, you can edit the gps.py file.

  1. Camera Calibration (optional)

In designing for the Mavic 3E, we also included parameters for its image undistortion. We included a notebook that leverages OpenCV checkerboard camera calibration. This can be found in Calibration.ipynb.

You can find our code here!