Geospatial · Computer Vision · AWS

We turned your seafloor sample into a working platform — before you hired anyone.

A running pilot on your 634k-image survey format: georeferenced orthomosaic, a Google-Maps-style viewer, and a computer-vision model that already counted and sized polymetallic nodules across the sample line.

Measured from your sample

Not a mockup — real numbers from your imagery

The 30-frame sample you shared, processed end-to-end. These update the moment new imagery lands.

Your sample is a single ~18 m survey line. The full engagement is ~634,000 frames — the same pipeline, scaled horizontally on AWS batch compute.

How it works

Eight stages, one deterministic pipeline

Every frame carries a .jgw world file, so we know its exact ground position. That single fact makes the hard parts easy.

Ingest & catalog

Pair each JPG with its world file, read geometry into a database that also drives batch scheduling at scale.

Geo-placement

Place every pixel at its true UTM position. No fragile feature-matching — the coordinates are known.

Overlap dedup

Voronoi ownership assigns each seabed patch to one frame, cancelling the 70% overlap so nothing is counted twice.

Orthomosaic

Warp & blend frames into one seamless north-up image of the seabed.

Tile pyramid

Slice into 256px web tiles across zoom levels — the browser loads only what's on screen.

Nodule CV

Detect, count & size every nodule; pixel scale converts boxes to real centimetres.

Fauna + review

Flag megafauna candidates; low-confidence ones route to a scientist, never auto-labelled.

Dashboard + export

Density, size, taxa, anomalies — plus GeoJSON/CSV for QGIS, ArcGIS and pandas.

The winning insight

Your "70% overlap" is a geometry problem, not a vision problem

Coordinates anchor the survey

Each .jgw pins a frame to the ground, so global structure never drifts over 634k frames — unlike panorama-style feature-stitching, which is slow and fragile on repetitive nodule texture. 69.7% overlap — from the files, not eyeballed.

Local refinement erases nav error

We QA'd the georeferencing and found a consistent 40 mm camera/nav timing offset. Phase-correlating each overlap snaps frames together: 40.1 mm → 0.6 mm seam misalignment.

So counting is exact

Each seabed patch is owned by one frame and counted once; sizes come out in real cm from the known 0.887 mm/px scale. Correcting the offset removed ~3,000 double-counts.

Explore it

Three ways to see the pilot