本博文记录本文测试DPVO的过程,本博文仅供本人学习记录用~
代码链接:GitHub - princeton-vl/DPVO: Deep Patch Visual Odometry
目录
首先下载代码以及创建conda环境
- git clone https://github.com/princeton-vl/DPVO.git --recursive
- cd DPVO
-
- conda env create -f environment.yml
- conda activate dpvo
然后安装eigen以及下载DPVO对应的模型及数据,同时安装DPVO
- wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
- unzip eigen-3.4.0.zip -d thirdparty
-
- # install DPVO
- pip install .
-
- # download models and data (~2GB)
- ./download_models_and_data.sh
安装成功~
可视化工具,采用Pangolin Viewer
- ./Pangolin/scripts/install_prerequisites.sh
- mkdir Pangolin/build && cd Pangolin/build
- cmake ..
- make -j8
- sudo make install
- cd ../..
然后安装viewer
pip install ./DPViewer
采用MobaXterm来运行下面代码从而观看demo
- conda activate dpvo
-
- python demo.py \
- --imagedir=<path to image directory or video> \
- --calib=<path to calibration file> \
- --viz # enable visualization
- --plot # save trajectory plot
- --save_reconstruction # save point cloud as a .ply file
- --save_trajectory # save the predicted trajectory as .txt in TUM format
-
- Iphone数据
- CUDA_VISIBLE_DEVICES=3 python demo.py \
- --imagedir=movies/IMG_0482.MOV \
- --calib=calib/iphone.txt\
- --viz \
- --plot \
- --save_reconstruction \
- --save_trajectory
-
-
- CUDA_VISIBLE_DEVICES=2 python demo.py --imagedir=mav0/cam0/data --calib=calib/euroc.txt --stride=2 --plot --viz
如果报错ImportError: libpango_windowing.so: cannot open shared object file: No such
那么安装sudo ldconfig。
如果出现错误:
ImportError: /home/gwp/miniconda3/envs/dpvo/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/local/lib/libpango_core.so)
先使用"ll"命令查看一下该文件的概况:
然后用下面命令查看
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
可以发现,GLIBCXX_3.4.30
是存在的。既然已经存在了上述目标文件,所以只需要重新创建软连接使得anaconda3
能够识别到这个目标文件就可以了。
- ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/gwp/miniconda3/envs/dpvo/bin/../lib/libstdc++.so.6
-
然后再次运行,就没有报错了~
但是运行会出现:Framebuffer with requested attributes not available. Using available framebuffer. You may see visual artifacts.Segmentation fault (core dumped)
好像是类似ORBSLAM2的问题导致的
因此,搜全文-march=native,并注释掉。再试试。还是一样的错误。从博客(DPVO服务器端复现-CSDN博客)中发现可能是原来的可视化有点问题~~~
然后再运行就可以了~读者可选用博客(DPVO服务器端复现-CSDN博客)提供的代码或者下面提供的代码。均可实现运行
https://github.com/KwanWaiPang/DPVO_commenthttps://github.com/KwanWaiPang/DPVO_comment
python demo.py --imagedir=movies/IMG_0492.MOV --calib=calib/iphone.txt --stride=5 --viz
DPVO testing 0482
DPVO testing 0497
DPVO testing 0493
DPVO testing 0492
代码的注释以及理解的笔记截图见下面仓库:
如何解决 :libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found-CSDN博客