-
Preprocess the ViViD to contain
imglist.txtandgpslist.txt -
run
manydepthby following command:python -m manydepth.test_all --target_image_path /your/vivid/path --intrinsics_json_path vivid_sequence_intrinsics.json --model_path manydepth/pretrainedThe script above will generate
.npyand.png, representing depth in absolute scale and relative scale. -
run
lc2by following command:python test_pr.py
-
pr_curve.py: plots pr curve, given numpy files fromtest_pr.py. -
filter_and_visualze.py: gtsam-based pose optimizer using outputs fromtest_pr.pyand 2D csv poses generated from rel. pose estimator.
** to run filter_and_visualize, you need the pose files below:
loopposes.csv: Estimated rel.poses from EPnP, given depths from each depth values and local point cloud map. (2D form)
odomposes.csv: Estimated poses from odometry, and projected into 2D.
-
Dual encoder [google drive]
-
Manydepth trained on ViViD [google drive]
###Codebases
[1] Patch-NetVLAD: Multi-Scale Fusion of Locally-Global Descriptors for Place Recognition (github)
[2] The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth (github)
###Bibtex
@ARTICLE{lee2023lc2,
author={Lee, Alex Junho and Song, Seungwon and Lim, Hyungtae and Lee, Woojoo and Myung, Hyun},
journal={IEEE Robotics and Automation Letters},
title={(LC)$^{2}$: LiDAR-Camera Loop Constraints for Cross-Modal Place Recognition},
year={2023},
volume={8},
number={6},
pages={3589-3596},
doi={10.1109/LRA.2023.3268848}}