SuperPoint_SLAM在Ubuntu18.04上的运行

代码主要思想是使用神经网络(SuperPoint)提取特征点,以替代ORB SLAM2中使用的ORB特征点。

配置

1、cmake的版本 推荐11,查看cmake版本可以使用指令:

$ cmake --version

确认自己的cmake版本为11。 安装cmake11可以参考博客: 2、安装Pangolin、OpenCV、Eigen3、DBoW3 and g2o(不要用代码Thirdparty里的,不全并且无法sudo make install)。 安装可以参考博客: 3、Libtorch(大坑,博主卡在这好几天,嘤嘤嘤) 编译指令:

git clone --recursive -b v1.0.1 https://github.com/pytorch/pytorch
cd pytorch && mkdir build && cd build
python ../tools/build_libtorch.py

最开始使用的的30系列显卡,由于只支持cuda11.0以上版本(cuda11.0对应需要下载v1.7.0版本的Libtorch),编译时总是报错

显示找不到cudnn。 后来看到一条这样的帖子 于是装了v8.0.1版本的cudnn。以前一直以为cudnn版本和cuda版本一致即可,第一次发现对应同一版本的cuda还有不同的cudnn,如下图所示: 用于时间不同,以cuda11.0为例,目前有v8.0.1,v8.0.2,v8.0.3,v8.0.4四款,卸载和安装cudnn代码如下: 卸载:

$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*

安装

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

改装v8.0.1版本cudnn后可以成功编译,但是后面编译SuperPoint_SLAM时仍然会报错,初步估计是硬件兼容性不足,30系列显卡对Libtorch兼容性不足。实测发现这和直接从pytorch官网上下载编译好的Libtorch结果一致,编译SuperPoint_SLAM时报相同的错误。 博主能力有限,没能解决这个问题,希望网友不吝赐教。

自己的解决方案(笨办法)

拿出自己好久不用的笔记本(MX150显卡) 各软件版本: cuda 9.2 cudnn v7.6.5 opencv 3.4.3 cmake 3.11.3 Libtorch v1.0.1


下载SuperPoint_SLAM:

git clone https://github.com/KinglittleQ/SuperPoint_SLAM.git SuperPoint_SLAM

编译:

cd SuperPoint_SLAM
chmod +x build.sh
./build.sh

第一次编译SuperPoint_SLAM里的./build.sh时会报这样一个错: 原因是找不到Torch的配置文件,修改SuperPoint_SLAM里CMakeLists.txt

set(Torch_DIR "/home/victor/pytorch/torch/lib/tmp_install/share/cmake/Torch")  # libtorch

根据自己的路径做相应修改即可。 最终成功编译


然后下载词袋和kitti数据集(具体链接见:) 词袋下载好之后解压放入Vocabulary文件中(需要自己建立):

$ cd SuperPoint_SLAM
$ mkdir Vocabulary

最后启动命令格式(以 sequence 03为例):

$ ./Examples/Monocular/mono_kitti Vocabulary/superpoint_voc.yml Examples/Monocular/KITTI03.yaml /home/victor/SuperPoint_SLAM/data_odometry_gray/dataset/sequences/03

最后一部分的/home/victor/SuperPoint_SLAM/改成自己数据集的存储路径。

运行效果

笔记本跑起来比较卡,就没有跑完,也没有作评测,原始代码中的评测结果如下:

经验分享 程序员 微信小程序 职场和发展