Sensor2Sensor β€” Camera β†’ LiDAR synthesis checkpoints

Pretrained weights for cross-modal sensor synthesis on nuScenes: given surround camera images, generate the corresponding LiDAR point cloud via a DINOv3-conditioned latent diffusion model over a compact LiDAR range-image VAE.

  • Code / docs: https://github.com/skr3178/sensor2sensor
  • Trained on: a single RTX 3060 (11.6 GB), nuScenes v1.0-trainval.
  • Scope: architecture validation on a small compute budget, not paper-level quality.

Files

File Model Params Size
lidar_vae_best.pt v5 LiDAR range-image VAE (encoder ΞΌ + decoder) ~2.07 M 8.3 MB
lidar_unet_best.pt 850-scenes DINOv3-conditioned diffusion U-Net (best held-out CD) β€” 59 MB
lidar_unet_ema.pt EMA weights of the diffusion U-Net β€” 59 MB

Held-out metrics (Chamfer distance, metres, lower = better; cfg=3.5, DDIM-25)

Component Metric Value
LiDAR VAE (v5) CD-VAE-only (decode(ΞΌ) vs raw) 0.791 m
Diffusion U-Net (850-scenes) CD-3D-raw (N=16 held-out) 1.994 m
Diffusion U-Net (850-scenes) CD-BEV (N=16 held-out) 1.220 m
End-to-end (VAE + diffusion) CD-3D-raw (4 held-out keyframes) 3.036 m

The 850-scenes checkpoint is selected by held-out Chamfer distance measured in-loop, not by training MSE (a checkpoint with lower training MSE generalized worse). See the repo's s2s_min/RESULTS.md Β§15 for the full rationale.

Loading

import torch
ckpt = torch.load("lidar_vae_best.pt", map_location="cuda")
# state dict keyed by the training-time best l1_range_ema basin; see the GitHub repo
# (s2s_min/models/) for the matching module definitions.

License

MIT (see the GitHub repository). nuScenes data is subject to its own license/terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support