MARE Lunar Rover Baselines
Segmentation and depth models trained on the synthetic MARE Lunar Rover Dataset, recorded in the MARE simulator. They are the baselines of the MARE paper; the training and evaluation code is in MARE-Dataset-Baselines.
All models were trained on maps 000-005, selected on map 006 and scored on map 007, terrain never seen in training. Scores are at the dataset's native resolution.
| Folder | Task | Model | Input | Test |
|---|---|---|---|---|
depth |
monocular depth | Depth Anything V2-Small, fine-tuned | rgb_central |
AbsRel 0.027, RMSE 1.63 m, δ<1.25 0.984 |
object |
objects | U-Net, ResNet-34 encoder (ImageNet) | rgb_central |
mIoU 0.596 |
object_deeplabv3plus |
objects | DeepLabV3+, ResNet-50 encoder (ImageNet) | rgb_central |
mIoU 0.570 |
object_segformer |
objects | SegFormer-B2 (MiT-B2 encoder, ImageNet) | rgb_central |
mIoU 0.586 |
rear_object |
objects | U-Net, ResNet-34 encoder (ImageNet) | rear_rgb |
mIoU 0.666 |
rear_shadow |
shadows | U-Net, ResNet-34 encoder (ImageNet) | rear_rgb |
mIoU 0.849 |
shadow |
shadows | U-Net, ResNet-34 encoder (ImageNet) | rgb_central |
mIoU 0.854 |
shadow_deeplabv3plus |
shadows | DeepLabV3+, ResNet-50 encoder (ImageNet) | rgb_central |
mIoU 0.804 |
shadow_segformer |
shadows | SegFormer-B2 (MiT-B2 encoder, ImageNet) | rgb_central |
mIoU 0.801 |
spad_object |
objects | U-Net, ResNet-34 encoder (ImageNet) | spad |
mIoU 0.484 |
spad_shadow |
shadows | U-Net, ResNet-34 encoder (ImageNet) | spad |
mIoU 0.709 |
Each folder holds model.safetensors and config.json (class names, input size, per-class test IoU,
training settings, code commit and dataset revision).
Usage
Segmentation models are segmentation-models-pytorch
networks; inputs are RGB images resized to input_size (width, height) and normalized with the ImageNet mean
and standard deviation.
import json
import segmentation_models_pytorch as smp
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
config = json.load(open(hf_hub_download("raulcastar/mare-lunar-baselines", "object/config.json")))
model = smp.Unet("resnet34", encoder_weights=None, classes=config["classes"])
model.load_state_dict(load_file(hf_hub_download("raulcastar/mare-lunar-baselines", "object/model.safetensors")))
model.eval()
Use smp.DeepLabV3Plus("resnet50", ...) and smp.Segformer("mit_b2", ...) for the other architectures.
The depth model is
Depth Anything V2-Small fine-tuned for
metric depth: load the base model with transformers.AutoModelForDepthEstimation, then
depth/model.safetensors; metric depth in metres is 10 / predicted_depth.
With the training repository, mare_baselines.predict runs any of these models on a folder of images:
hf download raulcastar/mare-lunar-baselines --local-dir results/hub
docker compose run --rm train mare_baselines.predict --run object --results /results/hub --images /data
License
The U-Net, DeepLabV3+ and depth weights are released under CC BY 4.0. The SegFormer weights derive from NVIDIA's MiT-B2 ImageNet weights and are subject to the NVIDIA SegFormer license (non-commercial use).
Citation
@misc{castilla2026mare,
title = {{MARE}: An Open-Source Lunar Rover Simulator with Shadow Ground Truth for Perception and Autonomy},
author = {Castilla-Arquillo, Ra{\'u}l and Olivares-Mendez, Miguel},
year = {2026},
eprint = {2610.28465},
archivePrefix = {arXiv},
primaryClass = {cs.RO},
url = {https://arxiv.org/abs/2610.28465}
}