Underwater Acoustic Vessel Classification System
Self-supervised learning approach for classifying vessel types from hydrophone audio signatures.
© 2026 Oravont Systems LLP. All rights reserved.
- 5-Class Vessel Classification: Cargo Ship, Tanker, Fishing Vessel, Small Craft, No Vessel (Ambient)
- Real-time Audio Playback: Listen to acoustic signatures while classifying
- Radar Plot Visualization: Interactive probability display with animated transitions
- Physics-Aware Architecture: Selective Kernel convolutions tuned for underwater acoustics (15–500+ Hz)
# 1. Install dependencies
pip install -r requirements.txt
# 2. Run the demo
python skann_ssl_v5_demo.py- Python 3.10+
- Windows / macOS / Linux
- ~700 MB disk space (model + sample data)
SKANN-SSL-V5-Demo/
├── skann_ssl_v5_demo.py # Main demo application
├── requirements.txt # Python dependencies
├── README.md # This file
├── model/
│ ├── SKANN_SSL_V3_Production_Bundle.joblib # Trained encoder + embeddings
│ └── vessel_territories_v3.joblib # Classification centroids
└── data/
├── manifest.csv # Clip metadata
└── tensors/ # Audio tensors (16 kHz, 5 seconds)
├── tensor_000000.npy
├── tensor_000001.npy
└── ...
- Launch: Run
python skann_ssl_v5_demo.py - Select Clip: Use dropdown or click "🎲 Random"
- Classify: Click "🎯 Classify"
- Listen: Audio plays in loop (click "🔊" to mute)
- Review: Radar plot shows class probabilities with build-up animation
| Metric | Value |
|---|---|
| Silhouette Score | 0.9697 |
| kNN Accuracy | 100% |
| Embedding Dimension (h) | 512 |
| Embedding Dimension (z) | 256 |
| Vessel Classes | 5 |
| Sample Rate | 16 kHz |
| Clip Duration | 5 seconds |
| Training Clips | 12,000 |
| Class | Description |
|---|---|
| Cargo Ship | Large commercial cargo vessels |
| Tanker | Oil/chemical tankers |
| Fishing Vessel | Commercial fishing boats |
| Small Craft | Recreational boats, yachts |
| No Vessel | Ambient ocean noise (no vessel present) |
| Kernel Size | Frequency | Acoustic Phenomenon |
|---|---|---|
| 1023 | 15+ Hz | Shaft rate |
| 511 | 31+ Hz | Generator (25 Hz) |
| 255 | 62+ Hz | Generator (50 Hz) |
| 127 | 125+ Hz | Blade pass |
| 63 | 250+ Hz | Hull resonance |
| 31 | 500+ Hz | Cavitation |
"sounddevice not installed"
pip install sounddeviceNo audio output
- Check system audio settings
- Demo works without audio (visual classification still functional)
CUDA errors on CPU machine
- The demo automatically handles CPU-only environments
GUI becomes unresponsive
- Avoid rapid clicking; the demo includes debounce protection
- Restart the application if needed
For licensing, integration, or technical support:
Oravont Systems LLP
SKANN-SSL: Selective Kernel Audio Neural Networks with Self-Supervised Learning