Start from a detector that already knows a ship in daylight. Twelve epochs later, it knows a radar chip.

On SSDD, 1,160 SAR chips, a Faster R-CNN finetune reached 90.34% on the held-out test. The split and the curves are below.

SSDD offshore test chip — official RBox ground truth (research illustration; chips stay with the authors)

SSDD offshore test chip — official RBox ground truth (research illustration; chips stay with the authors)


The dataset Link to heading

Single class ship. Native loader discovers VOC XML (rotated_bndbox / robndbox), then COCO, then DOTA. Point data_root at Official-SSDD-OPEN (walks into RBox_SSDD/voc_style). Grayscale SAR is loaded as RGB (channel repeat). Chips fit a 608 keep-ratio canvas — do not tile.

SplitChipsIn training?
last-digit train~928Yes
last-digit test~232No
test inshore / offshore46 / 186subsets of test
odet train --config configs/rotated_faster_rcnn/ssdd_le90_1x.json
make eval-val EXPERIMENT=runs/rotated_faster_rcnn/<timestamp>

Notebook: notebooks/ssdd_finetune_tutorial.ipynb (1-epoch smoke and full 1×). Optional: odet ssdd-to-dota.

SSDD inshore test chip — official RBox ground truth

SSDD inshore test chip — official RBox ground truth


Local 1× Faster R-CNN: 90.34% Link to heading

From hf://rotated_faster_rcnn_dota_le90_1x (1-way ship head re-init), RTX 3090 Ti, 15 m (runs/rotated_faster_rcnn/20260918-130546). Score ≥ 0.05, rotated IoU 0.50, NMS IoU 0.10. Report: docs/eval-reports/rotated_faster_rcnn_ssdd_le90_1x/.

EpochTrain lossIn-train val mAP50 (score ≥ 0.3)
40.29279.86%
80.26080.73%
120.23590.41%

make eval-val (score ≥ 0.05) is 90.34% — same checkpoint, slightly different floor. Best-F1 deploy threshold on that sweep is 0.40 (P 0.94 / R 0.91 / F1 0.93). Mean best IoU vs GT is 0.74.

Precision–recall on SSDD held-out test (Rotated Faster R-CNN 1×)

Precision–recall on SSDD held-out test (Rotated Faster R-CNN 1×)

Threshold sweep (precision, recall, F1) on SSDD held-out test

Threshold sweep (precision, recall, F1) on SSDD held-out test

Literature Faster R-CNN on SSDD sits around ~89% (Guo et al., Sensors 2021: 88.96% overall). Treat <80% overall as a failed train. The notebook 1-epoch smoke will not hit 90%. Inshore / offshore subsets were not scored separately on this run — the pictures above are the contrast, not a split table.



Written on September 28, 2026 by Jeff Faudi. Link to heading