Overview
Maritime vessel detection from SAR satellite imagery presents unique challenges compared to optical imaging. Vessels appear as bright point-scattering returns against dark ocean backgrounds — speckle noise, sea clutter, and varying incidence angles make small vessel detection non-trivial. This project builds a complete pipeline from raw Sentinel-1 imagery through detection and real-time proximity measurement.
The project uses Sentinel-1 C-band SAR which provides all-weather, day-night imaging — critical for maritime surveillance where optical sensors are blocked by cloud cover.
Dataset
- All images manually annotated using LabelImg in YOLO format — class, x_center, y_center, width, height (normalized 0–1)
- Two detection classes: Ship (class 0) and Land (class 1)
- Data augmentation applied to handle speckle noise, contrast variation, and low-SNR vessel signatures
- Noisy images filtered during curation to maintain annotation quality
Technical Pipeline
The full pipeline goes from raw Sentinel-1 SAR imagery through YOLO-based detection to annotated distance output:
01
SAR Image Acquisition
Raw Sentinel-1 C-band SAR imagery downloaded from the European Space Agency. Each frame covers ~5km² at 1200×800px resolution.
02
Annotation
Each image manually annotated using LabelImg. Ships labeled class 0, land labeled class 1. Bounding boxes stored in YOLO normalized format.
03
Model Training
YOLOv3, YOLOv4, and YOLOv4-tiny trained on the custom SAR dataset using pre-trained COCO weights. Config: max_batch=64, subdivisions=16, classes=2.
04
Detection
Best model (YOLOv4, 82.96% mAP) runs inference. Green bounding boxes mark land, red bounding boxes mark detected ships with confidence scores.
05
Centroid Calculation
Center of each bounding box computed as (x₁+x₂)/2, (y₁+y₂)/2. Applied to both ship and land detections.
06
Distance Annotation
Euclidean distance from each ship centroid to nearest land centroid computed and annotated directly on the detection output image in nautical miles.
distance = √( (x_ship − x_land)² + (y_ship − y_land)² )
Detection Results
Real Detection Output — YOLOv4 on Sentinel-1 SAR
Open Ocean — Multi-Vessel Detection
5 ships detected · Red bboxes + distance labels (Ship 4.88nm, 3.20nm, 1.01nm, 2.08nm, 7.85nm)
Coastal Scene — Land + Ship Detection
Green bboxes: land masses · Red bbox: Ship 1.7km from nearest coast
Key Finding: YOLOv4 (82.96% mAP) correctly identifies both vessel classes simultaneously — green bounding boxes isolate land masses as reference points, red bounding boxes annotate each detected ship with its computed distance to the nearest coastline. The system handles complex multi-vessel and multi-landmass scenes with per-ship distance labeling.
Model Comparison
| Model | Backbone | Scales | mAP | Best For |
| YOLOv4 Best | CSPDarknet53 | 3 (FPN+PANet) | 82.96% | High-accuracy surveillance |
| YOLOv3 | Darknet-53 | 3 (FPN) | 74.82% | Solid baseline |
| YOLOv4-tiny | CSPDarknet53-Tiny | 2 (simplified) | 69.31% | Edge deployment |
Applications
- Coastal Surveillance — automated monitoring of vessel traffic in restricted maritime zones, all-weather day-night operation
- Search & Rescue — rapid vessel localization with proximity-to-shore for emergency coordination
- Illegal Fishing Detection — monitoring fishing vessels operating in protected marine areas using distance data
- Smuggling & Trafficking — detecting small fast-moving vessels near coastlines at unusual hours