Leapvo
[CVPR 2024] LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry
Install / Use
/learn @wrchen530/LeapvoREADME
LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry
[CVPR 2024] The repository contains the official implementation of LEAP-VO. We aim to leverage temporal context with long-term point tracking to achieve motion estimation, occlusion handling, and track probability modeling.
LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry<br> Weirong Chen, Le Chen, Rui Wang, Marc Pollefeys<br> CVPR 2024
[Paper] [Project Page]
<div align="center"> <p align="center"> <a href=""> <img src="./assets/demo.gif" alt="Logo" width="70%"> </a> </p> </div>Installation
Requirements
The code was tested on Ubuntu 20.04, PyTorch 1.12.0, CUDA 11.3 with 1 NVIDIA GPU (RTX A4000).
Clone the repo
git clone https://github.com/wrchen530/leapvo.git
cd leapvo
Create a conda environment
conda env create -f environment.yml
conda activate leapvo
Install LEAP-VO package
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
unzip eigen-3.4.0.zip -d thirdparty
pip install .
Demos
Our method requires an RGB video and camera intrinsics as input. We provide the model checkpoint and example data on Google Drive. Please download leap_kernel.pth and place it in the weights folder, and download samples and place them in the data folder.
The demo can be run using:
python main/eval.py \
--config-path=../configs \
--config-name=demo \ # config file
data.imagedir=data/samples/sintel_market_5/frames \ # path to image directory or video
data.calib=data/samples/sintel_market_5/calib.txt \ # calibration file
data.savedir=logs/sintel_market_5 \ # save directory
data.name=sintel_market_5 \ # scene name
save_trajectory=true \ # save trajectory in TUM format
save_video=true \ # save video visualization
save_plot=true # save trajectory plot
Evaluations
We provide evaluation scripts for MPI-Sinel, TartanAir-Shibuya, and Replica.
MPI-Sintel
Follow MPI-Sintel and download it to the data folder. For evaluation, we also need to download the groundtruth camera pose data. The folder structure should look like
MPI-Sintel-complete
└── training
├── final
└── camdata_left
Then run the evaluation script after setting the DATASET variable to custom location.
bash scripts/eval_sintel.sh
TartanAir-Shibuya
Follow TartanAir-Shibuya and download it to the data folder. Then run the evaluation script after setting the DATASET variable to custom location.
bash scripts/eval_shibuya.sh
Replica
Follow Semantic-NeRF and download the Replica dataset into data folder. Then run the evaluation script after setting the DATASET variable to custom location.
bash scripts/eval_replica.sh
Citations
If you find our repository useful, please consider citing our paper in your work:
@InProceedings{chen2024leap,
title={LEAP-VO: Long-term Effective Any Point Tracking for Visual Odometry},
author={Chen, Weirong and Chen, Le and Wang, Rui and Pollefeys, Marc},
journal={IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2024}
}
Acknowledgement
We adapted some codes from some awesome repositories including CoTracker, DPVO, and ParticleSfM. We sincerely thank the authors for open-sourcing their work and follow the License of CoTracker, DPVO and ParticleSfM.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
