LunarSight / NASA JPL capstone

Leading a 12-person team to train lunar feature detection models

A year-long, NASA JPL-sponsored capstone: a pipeline that turns raw lunar imagery into geolocated detections of craters, pits and rocks.

The source is on GitHub ↗
Role
Led a 12-person student team
Timeline
2025–26
Stack
Python, PyTorch, YOLO, Detectron2, Roboflow
Runs on
A Python CLI, on GPU or CPU
Four square tiles of the lunar surface in a two-by-two grid, each with small boxes labelled crater, rock or pit and a confidence score. Top left: a flat, cratered plain with a few rocks boxed and a dark pit boxed at 0.69. Top right: a crater rim in raking light, with craters and rocks boxed along the lit slope. Bottom left: a lit ridge beside deep shadow, its largest crater boxed at 0.32. Bottom right: a large shadowed crater, with smaller craters boxed around it at up to 0.34.
YOLO11x on four held-out tiles of LROC NAC imagery. Every box is a model prediction, with its class and confidence.
01AcquisitionLROC NAC stripsfrom the PDS02Imaging1024 px PNG tiles,SPICE-geolocated03AnnotationRoboflow labelsto COCO and YOLO04TrainingYOLO11x andDetectron205InferenceBoxed detectionsin lunar lat/lon01AcquisitionLROC NAC strips from the PDS02Imaging1024 px PNG tiles, SPICE-geolocated03AnnotationRoboflow labels to COCO and YOLO04TrainingYOLO11x and Detectron205InferenceBoxed detections in lunar lat/lon
Five phases, from raw strips in NASA's archive to detections placed on the Moon.
YOLO11x output on a bright, flat plain dotted with small craters: a dark pit boxed at 0.69 and a handful of rocks boxed at 0.15 to 0.24.

YOLO11x

Detectron2 output on a bright, sloping crater wall: a pit at the lower edge boxed at 0.90, one rock at 0.56, and a line of small craters boxed at 0.56 to 0.84.

Detectron2

The two detectors, each on its own tile. Detectron2 was strongest on pits, weaker on craters and rocks.

YOLO11x

mAP@50
63.0%
mAP@50-95
29.4%
Precision
60.8%
Recall
61.2%

Detectron2

mAP@50
48.2%
mAP@50-95
22.2%
Test split: 183 images, 9,060 labelled instances. YOLO11x is training run 7, the stronger detector overall; Detectron2 is Faster R-CNN R50-FPN. Overall scores average the three classes.
UMAP projection of features from YOLO's backbone, one point per detected object, coloured by class: crater in red, pit in blue, rock in green. Red crater points form several large clusters. Green rock points sit mostly along one arc that runs into a crater cluster, and a few blue pit points sit at its tip.
YOLO backbone features by class, reduced to 2D with UMAP. Craters dominate, and rocks overlap them: still the hardest class.