DF-VO环境配置及代码运行

一、 环境配置

torch包下载链接

之前配置的cuda11.3很多包版本不一致导致程序无法正常运行,又重新安装了cuda9.0,并更换了python版本,但是折腾半天显示显卡不可用,最后查找各种资料才知道30系列显卡不支持11.0以下的cuda,即使安装成功也不能调用,因此最终还是使用了CUDA11.3配置环境,python选3.6,pytorch版本1.10.0

conda create --name DF-VO113 python=3.6
conda activate DF-VO113
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge

【以下部分为参考内容,与DF-VO环境配置无关,可跳过 】

=========================================================================

安装pytorch,查找对应cuda的版本

pytorch与cuda对应版本下载命令网站

复制对应命令并下载,但conda报错

使用wheel下载并安装(ctrl+F查找需要的版本)

cuda9.0的wheel网址

下载完pytorch和torchvision的.whl文件之后,在下载的目录内使用下列命令即可:

pip install torchvision-0.3.0-cp36-cp36m-win_amd64.whl
pip install torch-1.1.0-cp36-cp36m-win_amd64.whl

=========================================================================

【参考内容结束,以下为DF-VO环境配置部分 】

pytorch配置好后,安装其他需要的包

pip install argcomplete==1.10.0
pip install colour-demosaicing==0.1.5
pip install colour-science==0.3.15
pip install m2r==0.2.1
pip install natsort==6.0.0
pip install opencv-python==3.4.3.18
pip install pot==0.7.0
pip install protobuf==3.8.0
pip install rstcheck==3.3.1
pip install sphinx==3.0.3
pip install sphinx-rtd-theme==0.4.3
pip install sphinxcontrib-applehelp==1.0.2
pip install sphinxcontrib-devhelp==1.0.2
pip install sphinxcontrib-htmlhelp==1.0.3
pip install sphinxcontrib-jsmath==1.0.1
pip install sphinxcontrib-qthelp==1.0.3
pip install sphinxcontrib-serializinghtml==1.1.4
pip install tensorboardx==1.7

运行命令测试程序

python apis/run.py -d libs/options/examples/default_configuration.yml -c libs/options/examples/kitti_stereo_train_icra.yml --no_confirm

继续安装其他缺少的包

pip install matplotlib
pip install tqdm
pip install cupy113
pip install cupy-cuda113

cuda113代表cuda11.3,根据自己的cuda版本修改,不加cudaxx会报以下错误

若继续报错module 'cupy' has no attribute 'util',则可能由于pytorch版本升级,cupy更新后没有了util属性,报错页面如下

【解决方法】

进入目录D:\yanjiusheng\DF-VO-master\libs\deep_models\flow\lite_flow_net\correlation.py", line 276, in <module>
    @cupy.util.memoize(for_each_device=True)

将代码中的

@cupy.util.memoize(for_each_device=True)

修改为

@cupy.memoize(for_each_device=True)

另一处目录为

File "D:\yanjiusheng\DF-VO-master\libs\deep_models\flow\hd3\models\correlation.py", line 289, in <module>
    @cupy.util.memoize(for_each_device=True)

修改后不报这个错了,若不报错则无需操作,继续安装缺少的包

pip install sklearn
pip install easydict
pip install pyyaml

yaml这个库pip 里要加py前缀 ,直接pip安装yaml时会报如下错

 继续,报以下错

将options文件夹移动到libs文件夹下,到此环境配置完成,接下来需要准备数据集进行测试。

二、下载数据和模型

官方的github给出了下载地址,KITTI可能下载有点慢,可以CSDN找一下其他百度网盘的资料,模型可能要翻墙

三、处理数据

项目中的第一个步骤是运行run.py,但是代码中读取的是jpg格式的图片,而我从KITTI下载下来的是png的,而且像素也对不上,所以要改一下。以下是代码:

import cv2
import sys
import os

dirlist = os.listdir(r'D:\\yanjiusheng\\KITTI\\data_odometry_color\\dataset\\sequences\\00\\image_3')
output_folder = r"D:/yanjiusheng/DF-VO-master/dataset/kitti_odom/odom_data_jpg/00/image_3/"
os.makedirs(output_folder, exist_ok=True)

j = 0
for i in dirlist:
    print(i)
    # 我这里的地址是这样,这是PNG的地址
    img = cv2.imread(r"D:/yanjiusheng/KITTI/data_odometry_color/dataset/sequences/00/image_3/{}".format(i))
    res = cv2.resize(img, (640, 192))
    name = i.split('.')[0]
    # 这个是保存的图片地址,就是jpg的
    cv2.imwrite(r"D:/yanjiusheng/DF-VO-master/dataset/kitti_odom/odom_data_jpg/00/image_3/{}.jpg".format(name), res)
    j += 1

四、其他问题处理

以上都完成后运行程序,在输出进度条的时候显示有以下问题Cannot find enough good keypoints from diversed regions!

且预测的位姿图明显和真实轨迹不一样

这一问题在作者github的讨论(已关闭的问题里)中有提到,解决方法是:
pytorch版本问题导致某些语句不兼容
在文件 "DF-VO/libs/deep_models/flow/lite_flow_net/lite_flow_net.py "中28行:
找到并修改为下面的语句:
“return torch.nn.functional.grid_sample(input=tensorInput, grid=(Backward_tensorGrid[str(tensorFlow.size())] + tensorFlow).permute(0, 2, 3, 1), mode=‘bilinear’, padding_mode=‘zeros’,align_corners = True)”

修改后页面如下

最终运行结束前画面如下

可以看到已经能够追踪正确的轨迹了,至此DF-VO环境配置与运行测试工作全部完成!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值