DeepVO项目实践-基于ChiWeiHsiao/DeepVO-pytorch版本

DeepVO是一种使用深度递归卷积神经网络(RCNN)和LSTM的端到端单目视觉里程计框架,它避免了传统VO方法中的模块化设计。该项目基于ChiWeiHsiao的PyTorch实现,涉及下载、配置、训练和评估过程,包括使用KITTI数据集和预训练模型。DeepVO通过端到端训练直接从RGB图像序列中估计姿态。
摘要由CSDN通过智能技术生成

一、项目介绍

传统的VO方法pipeline一般需要包括:特征提取,特征匹配,运动估计,局部优化等模块。尽管其中一些方法已经展现了优越的性能,但通常仍需要精心设计和专门进行微调才能适应不同的任务和环境需求。同时单目视觉里程计缺失尺度信息,往往需要一些先验知识来恢复绝对尺度估计。

针对传统的方法的不足,DeepVO方法使用深度递归卷积神经网络(RCNNG),提出了一种新颖的端到端单目VO的框架。由于它是以端到端的方式进行训练和配置的,因此它可以直接从一系列原始的RGB图像(视频)中计算得到姿态,而无需采用任何传统VO框架中的模块。

DeepVO方法应该是第一个采用LSTM方法来实现视觉里程计的方法,具有里程碑的意义。

由于作者没有开源,感谢很多大佬复现了他的方法,如ChiWeiHsiao复现了DeepVO方法,github上取名为:DeepVO-pytorch

非常感谢原文作者和ChiWeiHsiao对VO做出的贡献。

本文基于ChiWeiHsiao/DeepVO-pytorch版本项目部署,进行简单的介绍。

DeepVO方法pipeline详细分析如下图所示:

 二、项目下载

下载地址:https://github.com/ChiWeiHsiao/DeepVO-pytorch

下载命令:

git clone GitHub - ChiWeiHsiao/DeepVO-pytorch: PyTorch Implementation of DeepVO

我的项目名称修改为:DeepVO

三、项目配置

1、下载KITTI数据集和预训练模型

(1)自动下载数据集(网速块)

运行KITTI/downloader.sh自动下载数据集和预训练模型(网速快)

注意:请使用bash命令运行,sh命令出现“downloader.sh: 3: Syntax error: "(" unexpected”错误)

bash KITTI/downloader.sh

(2)手动下载数据集(网速慢)

注意:服务器如果没有配置VPN,下载KITTI数据非常慢,可以自己先通过其他渠道下载,再上传至KITTI目录(注意文件夹的命名

如:将文件夹2011_10_03_drive_0027下的image_03中的所有RGB图像放置在文件夹00中。

文件夹

名称

文件名下载地址备注
002011_10_03_drive_0027https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_drive_0027/2011_10_03_drive_0027_sync.zip训练集
012011_10_03_drive_0034https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_drive_0034/2011_10_03_drive_0034_sync.zip训练集
022011_10_03_drive_0042https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_drive_0042/2011_10_03_drive_0042_sync.zip训练集
032011_09_26_drive_0067https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_26_drive_0067/2011_09_26_drive_0067_sync.zip训练集
042011_09_30_drive_0016https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0016/2011_09_30_drive_0016_sync.zip测试集
052011_09_30_drive_0018https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0018/2011_09_30_drive_0018_sync.zip测试集
062011_09_30_drive_0020https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0020/2011_09_30_drive_0020_sync.zip训练集
072011_09_30_drive_0027https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0027/2011_09_30_drive_0027_sync.zip测试集
082011_09_30_drive_0028https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0027/2011_09_30_drive_0027_sync.zip训练集
092011_09_30_drive_0033https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0033/2011_09_30_drive_0033_sync.zip测试集
102011_09_30_drive_0034https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_30_drive_0034/2011_09_30_drive_0034_sync.zip训练集

DeepVO预训练模型下载:

https://drive.google.com/file/d/1l0s3rYWgN8bL0Fyofee8IhN-0knxJF22/view

放在./models文件夹下。

文件名为:

t000102050809_v04060710_im184x608_s5x7_b8_rnn1000_optAdagrad_lr0.0005.model.train

(3)下载ground truth pose

从 KITTI Visual Odometry下载ground truth pose

下载地址:

存放在:./KITTI/pose_GT/文件夹下。

2、运行preprocess.py

根据KITTI devkit中的readme文件删除未使用的图像;

将KITTI的绝对姿态(12个浮点数 [R|t])转换为6个浮点数(欧拉角 + 平移);

并将转换后的绝对姿态保存为.npy文件

3、下载预训练模型FlowNet ( CNN part ) 

下载地址:

https://drive.google.com/drive/folders/16eo3p9dO_vmssxRoZCmWkTpNjKRzJzn5

随便下载哪个都可以。

下载之后放在./pretrained目录下

4、指定路径和超参数

在文件paras.py中指定数据集的路径和超参数

模型训练和验证时需要的所有参数全部在这里设置(这个工程思想很好,避免在脚本文件中带上非常多的参数)。

如果您的计算资源有限,请注意以下参数:

batch_size:根据您的GPU内存选择批处理大小

img_w、img_h:将图像降采样以适应GPU内存

pin_mem:加速GPU和内存之间的数据交换,如果您的RAM不够大,请将其设置为False。

5、训练模型

运行main.py训练模型

训练的模型和优化的参数保存在:models目录下;

记录存放在:records目录中。

6、评估模型

运行test.py预测位姿

输出在:result目录中;

文件名类似于:out_00.txt等。

7、可视化

运行visualize.py,可视化预测的位姿

8、其他文件

model.py:模型在这里调优

data_helper.py:定制PyTorch dataset and sampler

三、测试结果

使用预训练模型,对01、04、05、10四个序列进行测试,测试结果如下。

参考文献:

[1] 1709.08429.pdf (arxiv.org)

[2] GitHub - ChiWeiHsiao/DeepVO-pytorch: PyTorch Implementation of DeepVO

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值