复现TartanVO及环境配置踩坑

TartanVO是在TartanAir数据集上提出的一个通用性的视觉里程计,在复现该代码的过程中遇到一系列环境配置问题,做个记录。

  1. 首先是python的版本选择,最初无脑python3.10,相应的numpy、matplotlib、scipy等库也相应地安装了最新版,后来发现原代码是用python2写的,很多函数和用法也都有所变化,于是手动修改了几处报错的代码,又使用python自带的2to3.py脚本升级了代码,最终成功运行了vo_trajectory_from_folder.py对下载好的KITTI数据集进行测试。
    kitti_tartanvo_1914

  2. 然而在运行ros节点进行轨迹可视化时,发现ros系统默认使用python2,其中用来对ros图像和openCV图像进行相互转化的CvBridge库也是默认为python2版本的,报错:

    ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)

    结合之前发现的原代码本身也是python2编写的,决定退回python2

  3. 回到python2后,其他的相关库也全部都按照GitHub原文中指定的版本进行安装,结果之前的vo_trajectory_from_folder.py也无法运行了,报错:

    RuntimeError:CuDNN error:CUDNN_STATUS_EXECUTION_FAILED

    上网查找到这个问题一般是由于cuda、cudnn、pytorch等版本出现问题,GitHub原文中指定cuda版本为9.2/10.1,但是两个版本都不行,后来查到原来3090仅支持cuda11以上的版本,而高版本的cuda和pytorch又不支持python2,所以还是换回python3

  4. 至于上述所说的CvBridge库版本不匹配问题,解决方法是自己下载并重新编译python3版本的CvBridge库,编译方法参考

    【bug】ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)

    由于此处编译的CvBridge是基于python3.6的,所以也选择了python3.6作为最终的python版本。

  5. 然后conda安装了cudatoolkit11.3、cudnn8.2.1,pip安装了cupy-cuda113,pip安装 torch1.10.0+cu113、torchvision0.11.0+cu113、torchaudio0.10.0 。
    网上大多数cuda安装教程都是到官网下载安装,但实际上直接用conda安装即可,只需一行命令,亲测比官网安装好用,使用以下命令可以查看当前支持的cudatoolkit和cudnn版本

    conda search cudatoolkit --info
    conda search cudnn --info
    

    然后conda install安装你需要的cudatoolkit和cudann版本即可,实际上conda安装cudnn时会一并安装cudnn所依赖的对应版本的cudatoolkit,所以如无特定版本要求,只需conda安装你需要的cudnn版本即可。conda安装cuda方法可参考

    win下conda安装多版本cuda

  6. 最终成功运行了ros节点tartanvo_node.pypublish_image_from_folder.py实现了对EuRoC_V102数据集的预测并在rviz上进行了轨迹的可视化
    TartanVO_EuRoC_V102

总结最终的运行环境为:

  • ubuntu18.04
  • python3.6
  • cudatoolkit11.3
  • cudnn8.2.1
  • cupy-cuda113
  • torch1.10.0+cu113
  • torchvision0.11.0+cu113
  • torchaudio0.10.0
  • numpy
  • matplotlib
  • scipy
  • opencv-python4.2.0.32

其中主要关注的是python版本为3.6,然后根据自己的显卡选择合适的cuda和pytorch版本,其他库版本影响不大。

安装和运行过程中遇到问题可参考我上边提到的解决方法。如有遗漏,欢迎补充。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值