SDTagNet - nuScenes (new split, long range), ResNet-50, 30ep schedule
Best checkpoints from an SDTagNet training run on nuScenes with the new split and the 100 x 50 m long-range setting (pc_range = [-25, -50, -10, 25, 50, 10], BEV (200, 100)). ResNet-50 image backbone, camera-only SDTagNet, 30-epoch schedule.
This repository replaces the earlier upload under the same repo name with the later sdtagnet_nusc_r50_30ep_100_50_range_mapping_last run.
Evaluation on long-range new-split val
| Checkpoint | Save time (UTC) | NuscMap_chamfer/mAP | divider_AP | boundary_AP | ped_crossing_AP |
|---|---|---|---|---|---|
mAP_epoch_8.pth |
2026-04-29 22:15 | 0.2070 | 0.2399 | 0.2700 | 0.1112 |
mAP_epoch_20.pth |
2026-04-30 19:49 | 0.2251 | 0.2490 | 0.3077 | 0.1188 |
AP by chamfer threshold (@1.0 / @1.5 / @2.0 m):
mAP_epoch_8.pth
| Class | @1.0 | @1.5 | @2.0 |
|---|---|---|---|
| divider | 0.1364 | 0.2490 | 0.3343 |
| boundary | 0.1064 | 0.2837 | 0.4197 |
| ped_crossing | 0.0349 | 0.1112 | 0.1876 |
mAP_epoch_20.pth
| Class | @1.0 | @1.5 | @2.0 |
|---|---|---|---|
| divider | 0.1534 | 0.2587 | 0.3348 |
| boundary | 0.1293 | 0.3199 | 0.4737 |
| ped_crossing | 0.0368 | 0.1187 | 0.2009 |
Recorded mAP progression:
| Epoch | mAP |
|---|---|
| 2 | 0.1345 |
| 4 | 0.1855 |
| 6 | 0.1965 |
| 8 | 0.2070 |
| 10 | 0.2157 |
| 12 | 0.2180 |
| 14 | 0.2240 |
| 16 | 0.2200 |
| 18 | 0.2238 |
| 20 | 0.2251 |
| 22 | 0.2210 |
Range / BEV / modality
pc_range = [-25.0, -50.0, -10.0, 25.0, 50.0, 10.0]bev_size = (200, 100)use_lidar = False(camera-only SDTagNet)- Image backbone: ResNet-50
- Training schedule in the saved config: 30 epochs
Files
| Path | Description |
|---|---|
mAP_epoch_8.pth |
Best checkpoint at epoch 8 (~579 MB) |
mAP_epoch_20.pth |
Best checkpoint at epoch 20, highest recorded mAP in this run (~579 MB) |
sdtagnet_nusc_r50_30ep_100_50_range_mapping_last.py |
Exact config snapshot saved in the work_dir |
logs/20260429_103003.log / .log.json |
Training/eval log covering epochs 2-8 |
logs/20260430_021112.log / .log.json |
Continuation log covering epochs 10-22 |
Config notes
The config expects:
data_root = '/datasets/public/nuscenes/'- train/val pkl:
nuscenes_map_infos_temporal_newsplit_100x50_{train,val}.pkl - eval json:
nuscenes_map_anns_val_sdtagnet_100x50.json work_dir = './work_dirs/sdtagnet_nusc_r50_30ep_100_50_range_mapping_last'
Override paths for your own environment.
Related checkpoints
sung98/sdtagnet-nusc-r50-110ep-newsplit- SDTagNet, standard range, new splitsung98/sdtagnet-nusc-r50-30ep-oldsplit- SDTagNet, old split, standard rangesung98/maptrv2-nusc-r50-110ep-lidar-newsplit- MapTRv2 LiDAR, new splitsung98/maptrv2-nusc-r50-24ep-lidar-oldsplit- MapTRv2 LiDAR, old splitsung98/maptrv2-nusc-r50-24ep-lidar-newsplit-longrange- MapTRv2 LiDAR, long range, new split
Numbers across runs are not directly comparable (different range / split / eval thresholds / model).
Loading
from mmcv import Config
from mmdet3d.models import build_model
from mmcv.runner import load_checkpoint
cfg = Config.fromfile('sdtagnet_nusc_r50_30ep_100_50_range_mapping_last.py')
cfg.model.train_cfg = None
model = build_model(cfg.model, test_cfg=cfg.get('test_cfg'))
load_checkpoint(model, 'mAP_epoch_20.pth', map_location='cpu')
model.eval()
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support