Inspiration

I didn't start out trying to save dugongs. I started out trying to find a problem statement that wasn't already solved — and kept failing. Dam-break modeling, traffic routing, GPU solvers, agentic AI — every idea I got excited about turned out to already exist somewhere: a government program, a published paper, an operational product. It got frustrating fast.

Then I found this, buried in a 2024 conservation paper:

Researchers trying to find where marine animals get entangled in ghost fishing nets off India's coast didn't run a survey. They scanned Facebook, Twitter, and Instagram for sightings.

That stopped me. Not because it was clever — because it meant there was genuinely nothing better in place. India's only significant dugong population — somewhere between 150 and 200 animals, all of them in the Gulf of Mannar–Palk Bay corridor — is being protected with the same tools you'd use to track a viral meme. That gap is where this project actually started.


What it does

It's a side-scan sonar detection system that doesn't just say "something's down there." It tells you what.

  • 🕸️ Net-tangle — the actual entanglement threat
  • 🚢 Solid debris / wreck — low priority, usually harmless
  • 🪨 Natural feature — a rock, coral, nothing to act on

...each with a confidence score, then ranked by how close it is to known dugong feeding grounds — so the answer isn't just "here's a pin," it's "go to this one first."


How it's built

Here's the part I'm actually proud of: a net and a solid object don't just look different in sonar — they sound different.

A wreck or a rock is solid. Sound hits it, bounces back strongly, and whatever's directly behind it gets a clean, sharp-edged acoustic shadow. A ghost net is basically a hole-filled curtain — sound partially slips through the mesh instead of bouncing off it, so what you get instead is a weak, patchy, ragged shadow. This isn't my theory — it's documented in fisheries acoustics research on how gillnets reflect sound. I just built a system around noticing it.

The pipeline, start to finish:

  1. Raw sonar log comes in (XTF format), gets denoised and cleaned up
  2. YOLO finds the bright acoustic highlight — "something reflective is here"
  3. U-Net, in parallel, traces the exact shadow shape, pixel by pixel
  4. A physics module checks that shadow against what it should look like, geometrically:

$$\text{shadow_length} = \frac{\text{object_height} \times \text{range}}{\text{altitude}}$$

  1. That comparison — plus how sharp or ragged the edge is, plus how strong or diffuse the backscatter is — decides the class
Signal Net-tangle Solid object (wreck/rock)
Backscatter Weak, diffuse Strong, concentrated
Shadow edge Ragged, partial Sharp, complete

No public dataset of labeled Indian sonar nets exists, so training leans heavily on synthetic data — rendering shadows and backscatter from known ground-truth physics rather than hoping a model generalizes blind. This approach has real backing too: Indian researchers (IIT Madras, IISc, DRDC-NSTL) measured a ~60% precision jump from exactly this kind of synthetic-augmented training, on the same sonar modality. Everything runs on-device — only the final classification and coordinates ever leave the vehicle, never raw sonar imagery, which matters both for real-time use underwater and for how sensitive hydrographic data near Indian coastlines actually is.


Challenges I ran into

Not gonna lie — the hardest moment wasn't technical. It was standing in front of judges with an early demo, watching them process it in real time, and hearing:

"That's it? Just object detection and a map?"

It stung. It was also fair. The demo showed input and output and hid every bit of the physics reasoning that actually makes this different — which, in hindsight, is like building a great engine and only showing someone the hood closed. Lesson learned the hard way: the hardest part of a technical project is often just making the invisible part visible.

On the data side, the honest challenge is still open — I can validate the physics logic against synthetic ground truth, but real local sonar data to fully prove it against doesn't exist yet. I'd rather say that plainly than pretend otherwise.


What I learned

That being "first" doesn't exist for any real problem — someone, somewhere, has tried it. What actually matters is finding the one honest, specific gap nobody's closed yet, and being able to defend exactly why it's a gap. I also picked up more applied acoustics than I ever expected to — how shadows form underwater, why mesh behaves nothing like metal, and that a system explaining itself often matters as much as the system being right.


What's next

  • Validate the physics module against real side-scan sonar data, not just synthetic ground truth
  • Widen synthetic training across more net types and seabed conditions
  • Build out risk-prioritization with real Gulf of Mannar habitat data

Built With

  • acoustics
  • computer-vision
  • deep-learning
  • diffusion-models
  • domain-generalization
  • edge-computing
  • fastapi
  • grad-cam
  • jetson
  • leaflet.js
  • marine-conservation
  • numpy
  • onnx
  • opencv
  • python
  • pytorch
  • react
  • signal-processing
  • synthetic-data
  • tensorrt
  • u-net
  • yolov8
Share this project:

Updates

Submission history