lunar-trn-ft-real — real lunar crater detector
YOLO26s initialized from the C1-trained box model and fine-tuned on LU3M6TGT: 8,756 real LROC WAC patches (~100 m/px, 416×416) with dense crater boxes.
Results
Held-out patches (1,545), IoU-based AP at conf ≥ 0.25:
| Metric | Value |
|---|---|
| mAP50 | 0.947 |
| mAP50-95 | 0.830 |
| Robbins ≥2 km recall (human-verified) | 0.606 |
| Isolated-tile mAP50 (>2.5° from any training tile) | 0.942 |
The zero-shot C1 model scores mAP50 ≈ 0.03 on the same data; fine-tuning recovers the domain. The isolated-tile check shows the result is not driven by tile adjacency (leak effect ≈ −0.6 pt).
Usage
from ultralytics import YOLO
model = YOLO("best.pt")
results = model.predict("lunar_patch.png", imgsz=1024, conf=0.25)
Project repository: https://github.com/huseyincavusbi/lunar-trn
Training
| Architecture | YOLO26s (detect) |
| Init | C1-trained box weights |
| Data | LU3M6TGT train split (8,756 patches) |
| Input | imgsz 1024, batch 16 |
| Epochs | 15 (patience 5) |
| Augmentation | defaults + vertical flip 0.5 |
Limitations
- Evaluated on held-out patches from the same mosaic. Spatial adjacency was audited, but this is not a fully independent regional test.
- Sub-kilometre craters are weak (AP50 ≈ 0.37 below 0.6 km); the strongest band is 1–4 km.
- Fine-tuning specializes the model: it forgets the synthetic C1 domain (CDA 76.3 → 10.5).
- Labels are catalogue-derived and cover ≈59% of Robbins ≥2 km craters, so precision against the labels understates true detection.
- Research model; not flight-qualified.
License
Weights: MIT. LU3M6TGT: CC BY-SA 4.0. Robbins catalogue: see the PDS terms.