Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LCR-Net benchmark

Reproducible setup for LCR-Net (Shi et al., 2024) — a unified LiDAR loop-closure and registration network — evaluated on KITTI odometry with the authors' pretrained weights.

Part of the HDMapping AI loop-closure benchmark.

Requirements

  • KITTI odometry: velodyne laser data + calibration files (~80 GB for 00–10)
  • ~30 GB more for the 0.3 m downsampled copy
  • A GPU is optional. See CPU inference.

Quickstart

Docker

docker build -t lcrnet-benchmark .
docker run --rm -it --gpus all \
  -v /path/to/kitti:/data/kitti \
  -v /path/to/output:/data/lcrnet-output \
  lcrnet-benchmark

Drop --gpus all to run CPU-only — the image is identical either way.

Conda

bash setup/setup_env.sh          # env + pinned LCR-Net clone + C++ extension
conda activate lcrnet

Then, either way

cp config/paths.env.example config/paths.env   # edit KITTI_ROOT, OUTPUT_ROOT
bash scripts/configure_paths.sh                # writes them into upstream config
bash scripts/fetch_weights.sh                  # verifies the 4 checkpoints
bash scripts/prepare_kitti.sh                  # downsample + install GT
bash scripts/run_kitti_eval.sh                 # or: loop_detection|loop_closing|continuous

fetch_weights.sh verifies rather than downloads — the checkpoints sit behind an interactive OneDrive share link. It prints the URL and the target directory.

Layout

Dockerfile                     pinned upstream, no CUDA toolkit needed
config/paths.env.example       every path in one place
setup/setup_env.sh             conda alternative to Docker
setup/requirements.txt         pinned deps (upstream ships none)
scripts/configure_paths.sh     patches upstream's hardcoded paths
scripts/fetch_weights.sh       checkpoint verification
scripts/prepare_kitti.sh       downsample + install GT from assets/
scripts/run_kitti_eval.sh      the three evaluations
docs/NOTES.md                  findings, upstream quirks, CPU inference

The three evaluations

Stage Script Checkpoints Reports
Loop detection test_loop_detection.pyeval_loop_detection_overlap_dataset.py mixed, ld AUC, F1max, Recall@1%
Loop closing test_loop_closure.pyeval.py mixed, lc RR, RRE, RTE
Continuous registration test_registration.pyeval.py --subset=continuous mixed, reg RR, RRE, RTE

Ground truth for all three ships in upstream's assets/data/kitti/, so data/Kitti/generate_kitti_*.py need not be run.

Upstream's own defects and how they're worked around are recorded in docs/NOTES.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages