| --- |
| license: other |
| license_name: mixed-per-checkpoint |
| license_link: https://github.com/jroth1414/SAR-VesselBench#license |
| tags: |
| - sar |
| - remote-sensing |
| - vessel-detection |
| - xview3 |
| - sentinel-1 |
| - transfer-learning |
| library_name: pytorch |
| --- |
| |
| # SAR-VesselBench: 32 controlled vessel-detection checkpoints |
|
|
| Fine-tuned dark-vessel detectors for Sentinel-1 SAR from the SAR-VesselBench |
| label-efficiency study ([code and evidence](https://github.com/jroth1414/SAR-VesselBench)). |
| Two size-matched tracks (ViT-B/16 and ConvNeXt-V2-Base) each compare four |
| initializations β random, optical remote sensing, SAR, and ImageNet β at four |
| nested label budgets (12, 28, 56, and 111 xView3-SAR training scenes). Every |
| cell shares one CenterNet-style point detector, optimizer, schedule, |
| scene-level split, and seed, trained in strict FP32 on one eight-GPU H100 |
| node, one single-GPU process per cell. |
|
|
| Each file here is the cohort-bound **best development checkpoint** of one |
| cell: a PyTorch Lightning checkpoint containing the full detector (encoder, |
| adapter, and 256-channel head; ~90M parameters ViT track, ~94M CNN track). |
| `TRAINING_COHORT.json` binds every checkpoint's SHA-256, selected epoch, and |
| development-selected operating threshold; verify any download against it. |
|
|
| ## Results (seed-0 point estimates) |
|
|
| Development-selection F1 / once-scored held-out 16-scene test F1 at each |
| cell's checkpoint-bound operating threshold: |
|
|
| | Track | Init | 10% (12) | 25% (28) | 50% (56) | 100% (111) | |
| |---|---|---|---|---|---| |
| | ViT-B/16 | Random | 0.8030 / 0.7042 | 0.8563 / 0.7372 | 0.8912 / 0.8101 | 0.8958 / 0.8101 | |
| | ViT-B/16 | Optical (SatDINO) | 0.8902 / 0.8198 | 0.8802 / 0.8279 | 0.9136 / 0.8495 | 0.9268 / 0.8465 | |
| | ViT-B/16 | SAR (SARMAE) | 0.8857 / 0.8041 | 0.8624 / 0.7715 | 0.9161 / 0.8672 | 0.9289 / 0.8748 | |
| | ViT-B/16 | ImageNet (AugReg) | 0.8761 / 0.8103 | 0.8716 / 0.8051 | 0.9284 / 0.8545 | 0.9399 / 0.8569 | |
| | ConvNeXt-V2-B | Random | 0.7992 / 0.6571 | 0.8167 / 0.7065 | 0.8664 / 0.7807 | 0.8919 / 0.8124 | |
| | ConvNeXt-V2-B | Optical (BigEarthNet S2) | 0.7992 / 0.6712 | 0.8063 / 0.7024 | 0.8586 / 0.7616 | 0.8636 / 0.7948 | |
| | ConvNeXt-V2-B | SAR (BigEarthNet S1) | 0.8762 / 0.8000 | 0.8868 / 0.8025 | 0.8998 / 0.8521 | 0.9068 / 0.8221 | |
| | ConvNeXt-V2-B | ImageNet (FCMAE+sup) | 0.8856 / 0.7810 | 0.9005 / 0.8481 | 0.9221 / 0.8807 | 0.9387 / 0.8966 | |
|
|
| Headline findings: transfer concentrates its value under label scarcity; the |
| SAR-versus-optical contrast is architecture-dependent (SAR wins the CNN track |
| at every budget, optical leads the ViT track below half data, and the |
| held-out split confirms the sign at every budget); and held-out scoring |
| reverses one development-selection conclusion β the full-data ViT winner |
| flips from ImageNet to SAR. Two SAR test curves violate a 0.02 monotonicity |
| tolerance as the budget grows; treat the grid as descriptive seed-0 point |
| estimates. Test scenes are Sentinel-1 revisits of regions near training |
| scenes, so absolute values measure in-region generalization. |
|
|
| ## File naming |
|
|
| `<arm>-f<fraction>-s0/checkpoints/best.ckpt`, where `<arm>` is one of |
| `vitrand`, `satdino`, `sarmae`, `vitin1k` (ViT track) or `cnnrand`, `beS2`, |
| `beS1`, `cnnin1k` (CNN track), and `<fraction>` is the label budget in |
| percent (10, 25, 50, 100). |
|
|
| ## Loading |
|
|
| Checkpoints load through the study's code (`HeatmapLitModule.load_from_checkpoint` |
| from the [SAR-VesselBench repository](https://github.com/jroth1414/SAR-VesselBench), |
| which also defines the whole-scene tiled-inference path and the frozen |
| scorer). Inputs are three-channel decibel tensors `[VH, VV, VH-VV]` |
| normalized with the repository's committed training statistics; each cell's |
| operating threshold is recorded in `TRAINING_COHORT.json`. |
|
|
| ## License β read before use |
|
|
| These checkpoints are fine-tuned derivatives of released pretrained |
| encoders, and each cell inherits its source's terms: |
|
|
| | Cells | Source encoder | Inherited terms | |
| |---|---|---| |
| | `sarmae-*` | SARMAE (SAR-1M) | **CC BY-NC 4.0 β noncommercial use only** | |
| | `satdino-*` | SatDINO (fMoW-RGB) | Apache-2.0 | |
| | `beS1-*`, `beS2-*` | BigEarthNet-v2 ConvNeXt | upstream model-card terms | |
| | `vitin1k-*`, `cnnin1k-*` | timm ImageNet-1K | Apache-2.0 | |
| | `vitrand-*`, `cnnrand-*` | none (random init) | MIT (this project) | |
|
|
| The four `sarmae-*` checkpoints may not be used commercially. Fine-tuning |
| data is xView3-SAR (Paolo et al., NeurIPS 2022); its labels and imagery |
| retain their own distribution terms. |
|
|
| ## Citation |
|
|
| John Roth and Kyle Wagner. *Label-Efficient Dark-Vessel Detection in SAR: |
| Does SAR-Domain Pretraining Outperform Optical and ImageNet Transfer Across |
| ViT and CNN?* Johns Hopkins University, EN.705.643, August 2026. |
|
|