Portfolio Ocean Drones — Autonomous Marine Data Platform

PYTHON · ML · FIAP

DriftWatch

Ocean Drones — Autonomous Marine Data Platform

Final-year project · FIAP 2 semesters 8 min read

My final-year project at FIAP: an end-to-end platform for autonomous marine monitoring. Operators plan a mission in the browser, the drone streams pH, temperature and high-resolution imagery back in real time, and machine-learning models turn that stream into an ecosystem-health readout rather than a pile of readings.

  • ML predictive models & species image classification (Scikit-learn, TensorFlow)
  • Real-time sensor pipeline (pH, temperature) + high-res imagery
  • Full-stack web app to deploy drones & visualise ecosystem health
Screenshot of the Ocean Drones — Autonomous Marine Data Platform: three headline metric cards above a bar chart of species classification accuracy by training round, 64 % top-1 accuracy at Baseline up to 91 by R8.
A full-stack platform that deploys autonomous marine drones, streams their sensor telemetry and classifies the species they photograph.

01 — Context

The problem.

Coastal ecosystem surveys are expensive, sporadic and manual. A crewed boat samples a handful of points, results come back from a lab weeks later, and by the time anyone reads them the water has changed. Continuous monitoring exists, but the telemetry it produces is unreadable without someone to interpret it.

We wanted to close both gaps at once: make the collection autonomous, and make the output legible to a marine biologist who has no interest in a raw sensor feed.

02 — Method

The approach.

The build, in the order it happened.

  1. A real-time ingestion pipeline

    Drone telemetry arrives as an irregular stream. It is normalised on arrival — units reconciled, timestamps made timezone-aware, out-of-range readings quarantined rather than silently averaged in — then written to PostgreSQL with the raw payload retained for replay.

  2. Species classification on captured imagery

    A convolutional model fine-tuned in TensorFlow tags each frame with candidate species and a confidence score. Anything below the confidence floor is routed to a human review queue instead of being asserted as fact.

  3. Predictive models on the sensor series

    Scikit-learn regressors project pH and temperature trajectories for a survey area and flag divergence from the seasonal baseline — the signal a biologist actually acts on.

  4. A console built for the operator

    Mission planning, live drone position, telemetry and the health readout in one web app. The interface leads with an ecosystem-health score and lets you drill down to the underlying readings only if you want to.

03 — Outcome

What changed.

  • Species classification reached 91% top-1 accuracy on the held-out validation set, up from a 64% baseline on the initial untuned model.
  • Survey turnaround fell from weeks of lab round-trips to a live readout available during the mission.
  • Out-of-range sensor readings are quarantined rather than absorbed, so a failing probe no longer corrupts a whole survey.
  • The project was selected for FIAP’s end-of-course showcase.

04 — The numbers

Species classification accuracy by training round.

Tracked as % top-1 accuracy, from Baseline through R8 — low 64, high 91.

DriftWatch — Species classification accuracy by training round, % top-1 accuracy, Final-year project · FIAP.

06 — Stack & role

Built with.

  • Python
  • Scikit-learn
  • TensorFlow
  • FastAPI
  • PostgreSQL
  • JavaScript
Role
Team of four — I owned the data pipeline and the ML models
Duration
2 semesters
Client
FIAP
Period
Final-year project · FIAP

07 — Questions

The questions I get asked about this one.

Because a confidently wrong species identification is worse than no identification. The confidence floor was set with the biology students on the team, and everything below it is reviewed.

Not the model — the data. Marine telemetry arrives late, out of order and occasionally from a probe that has drifted out of calibration. Most of the engineering went into making that survivable.

Got a report that takes two days to assemble?

That is usually a one-week fix. Tell me what you are reconciling by hand and I will tell you what I would automate first.

Ask the AI Advisor