SLAM论文笔记---- DENAO: Monocular Depth Estimation Network with Auxiliary Optical Flow

SLAM论文笔记第一篇。

 

DENAO: Monocular Depth Estimation Network with Auxiliary Optical Flow 顾名思义是带有辅助光流的单目视觉深度估计网络。

与之前工作的比较:

1.传统的ORB-SLAM难以的到稠密的深度图,LSD-SLAM也只是得到半稠密深度图,DENAO采用深度学习方法得到稠密光流图,结合相机位姿,利用三角测量得到稠密深度图。

2.单视角虽然利用cnn有了一些发展,但精度低,泛化能力差,即使与传统的个slam方法相结合提出的SNN-SLAM等也只是将多视角立体信息和单视角先验松散的耦合,难以依靠立体约束引导cnn的学习。

3.DENAO与之前的多视角DeMoN算法相似,后者设计一个同时估计两张图之间位姿和深度的端到端网络,但其网络任务实现较多,多次重复优化实现速度慢,不能实时且不能多帧预测。DENAO与之相比缩减了网络复杂度,专注于有效的结合互补立体视觉信息和先验结构,提高了运行速度,并且可以看到实验结果均优于DeMoN。

 

DENAO:

输入帧\rightarrow卷积层 \rightarrow 交换网络 \rightarrow卷积层 \rightarrow 输出图像

本文采用了带有辅助光流网络和对极约束的卷积神经网络来提高深度估计的准确率和速度。主要结构是两个并行的自编码解码网络,核心是一系列的交换网络(通过深度图和光流图的交换)来增强预测准度。

首先作者讲当下的主流深度估计方法分为三类:多视角估计,单视角预测,及两者结合的视觉线索,并提出期望通过依靠单目相机结合深度学习算法,多视角几何测量信息,和轻量网络来估计稠密深度图,以期解决传统匹配法难以解决的低纹理区的深度图。因为单视角深度估计是不可解的数学问题,本质上通过网络训练数据学习到彩色图像与深度的映射关系,但目前很难做到统一的模型,且受相机内参影响的深度会存在误差。作者提到目前的VINS可以在大尺度场景下降相机轨迹漂移误差降低至0.88%,并在此基础上假设多视角的相机位姿已知,故采用多视角深度估计,依靠调整相机位姿来预测深度,多用于静态场景。

如图1为整个网络结构,上方为深度网络输入参考帧输出深度光流,下方为光流网络输入参考帧和邻近帧输出光流图,二者均为编码器结构,先通过卷积层提取特征,再通过反卷积层上采样得到最后的输出。编码器与解码器相同分辨率的特征采用跨越连接,便于恢复图像信息。两个网络结构类似但独自训练不共享参数。

图1

辅助光流网络通过共享参数的网络提取特征两个图像的特征,再通过相关性度量层进行融合,用极线层来提高匹配度量的准确性。因存在图像的语义相关故采用重定向连接将​​​​I_{ref}I_{ref}特征传递到后续网络,通道融合后继续进行降采样增加通道数,解码器利用反卷积将特征上采样与跨越连接的特征并联并卷积融合,第三层反卷积开始后,引出分支送入交换网络块供深度网络使用,并与得到的深度网络特征并联输入到后续网络,每次均输出相应的光流图大小分别为输入图的1/8,1/4,1/2,最后经过优化网络在输出最后的光流图。

深度网络与辅助光流网络类似,不同在输入仅有一张 I_{ref},在交换模块,光流网络的光流图通过三角测量的到深度图。

交换网络:

1.三角测量公式 p_{c}=\frac{1}{d}KT_{cw}P_{w},T_{wc}为相机坐标系对固定的世界坐标系的位姿,P_{w}为点p的世界坐标, P_{c} 为图像坐标。对参考帧中的每一点用三角测量公式,并以参考帧相机坐标系为世界坐标系,通过SVD分解求得深度值,最后输出稠密深度图。

2.重投影公式 p_{nei}=d_{ref}KT_{nei,ref}K^{-1}p_{ref},对于参考帧中的一点已知深度,通过重投影公式得到匹配点坐标 ,则对应的光流为 f_{ref}=p_{nei}-p_{ref}=d_{ref}KT_{nei,ref}K^{-1}p_{ref}-p_{ref}对深度图的没一点都计算则可将稠密深度图转化为稠密光流图。论文中提到的公式即为上述公式,P和I均代表像素。

图2

对于深度图,选择将得到两个深度图在通道维度合并,进行卷积处理后得到的深度图特征融合 F_{dep}^{n'} 和输入到模块的 F_{dep}^{n}进行并联送入主干网络。对于光流,先依据原图得到相应分辨率的流I_{nei}^{n} ,对邻近帧进行warp操作到参考帧中 I_{nei}^{n,warp‘}I_{nei}^{n,warp'},与预测的光流计算误差来调整预测结果,进行融合,最后将两个光流图进行融合得到最终的光流特征。

极线特征层:

在光流网络部分,输入的信息是匹配信息,为提高匹配的精度,提出极限特征层,FlowNet中提出的相关度量层是在二维图像区域中搜索匹配点,在部分区域存在较多的干扰,容易产生假匹配。本文作者提出依据极线约束进行匹配,将极线信息输入到网络中,让网络自行学习得到匹配点。因在相关性度量层中,相关性越高的点高率越高,故选择高斯分布来拟合距离与响应的关系 F(p_{nei,j})=\frac{1}{\sqrt{2\pi}}exp(-\frac{d_{j}^{2}}{2\sigma^{2}}) , d_{j} 表示搜索范围内一点 p_{nei,j}到极线的距离,通过相机的位姿和内参可以计算极线lepip。通过计算得到极线特征图,并与关联特征图拼接,将相关特征图的较高响应值约束在极线附近。

图3

交换网络与极线特征层的提出,通过耦合两个网络,增加度量参数提高了预测的精度。

多视角深度估计:

由于传统的ORB-SLAM基于非线性图优化需要消耗大量的计算资源,作者考虑使用线性的求解方法。多视角时依旧采用进行三角测量,得到多个光流图和投影方程,采用最小二乘法求解,同样对参考帧中的某点,根据不同的相机位姿,将其投影到不同的相机中,得到在每一邻近帧的光流,邻近帧可以靠重投影的到对应的光流。如图4在交换网络块部分,依靠深度图进行重投影(红色箭头),多个不同的光流图,依据三角测量共同解算出深度(黄色箭头)。作者采用联合优化多个光流网络仅维持一个深度网络,因深度网络是由多个网络的光流同时测量得到,不同视角下的光流可以互补;在单个深度图投影为各视角的光流图时,包含了多个相机的光流约束。同时存在了光流和深度的转换和多光流之间的匹配约束,保留了并行优化,能更好的保留两视角网络的有点。

图4

网络运算量与输入视角数量线性增加,时间复杂度为 O(n)\times t_{flow}+O(1)\times t_{dep} ,n为视角数量t_{flow} 和 t_{dep} 分别为单独运行光流和深度网络的时间。

实验结果分析:

作者对DeMoN收集的数据集进行,进行了重投影筛选,重投影落在邻近帧图像上的点占总数量的65%以上时保留,另外验证深度真实值的质量,将有效深度点占比低于80%的图像排除。从低分辨率到高分辨率逐步训练,在低分辨率时,对原始大小的深度与光流图进行下采样得到相同的分辨率,loss functionL=L_{dep}+L_{flow}=\Sigma_{n=1}^{4}(\left| I_{dep}^{n}-I_{dep}^{n *} \right|+\left| I_{flow}^{n}-I_{flow}^{n*} \right|) ,*标记为真实值。

测试网络深度的估计的精度,对ETH3D数据集进行更严格的筛选要求重投影率大于70%,设置四个指标,相对深度误差L1-rel,逆深度误差L1-inv,尺度不变误差sc-inv和不同于之下的完整率\delta 。前三个是深度估计的误差,完整率是深度估计的精度。

L1-rel=\frac{1}{n}\Sigma_{i}\frac{\left| d_{i}-d_{i}^{*}\right|}{d_{i}^{*}} ,L1-inv=\frac{1}{n}\Sigma_{i}\left| \frac{1}{d_{i}}-\frac{1}{d_{i}^{*}}\right|

sc-inv=\sqrt{\frac{1}{n}\Sigma_{i}z_{i}^{2}-\frac{1}{n^{2}}(\Sigma_{i}z_{i})^{2}} 其中 z_{i}=logd_{i}-logd_{i}^{*}

\delta_{i}^{n}=\frac{card({d_{i}max(\frac{d_{i}}{d_{i}^{*}},\frac{d_{i}^{*}}{d_{i}})<1.25_{n}})}{card(d_{i})}(n=1,2,3) 其中​​​d_{i}d_{i}为坐标i的估计深度,​d_{i}^{*}d_{i}^{*}为真实深度值。

测试光流采用EPE指标EPE=\frac{1}{n}\Sigma_{i}\left| \left| f_{i}-f_{i}^{*}\right| \right|_{2} ,带*为光流真实值。

两视角的比较,深度估计下作者将DENAO与DORN,COLMAP,DeMoN,DeepMVS,MVDepthNet在不同数据几下比较发现仅在MVS上略逊于DeepMVS,原因可能是后者拥有额外的虚拟户外场景训练。光流估计结果中,DENAO由于PWC-Net,略优于FlowNet2.0,但因使用极线约束,DENAO的光流估计仅能用于静态场景,图像的光流来自于相机的运动,不是图像本身的运动,所以光流用来辅助深度估计。多视角比较,均采用五视角,一个参考帧四个邻近帧,与COLMAP,DeepMVs相比较。图5可以看出,DENAO各指标均优于前两者,在运行时间上为121ms,而两视角为26ms,增长近似线性增长,符合线性特征。

图5

在两视角时间比较部分,DENAO所用时间略优于FlowNet2.0,主要原因为只叠加了两个网络,后者为读个FlowNet的叠加。

图6

消融实验表明使用光流深度交换模块优于先预测光流再优化深度结构。加入的极线层也会略微提高实验精度,这里就不再列出。

总结思考:

1.DENAO采用辅助光流来提高深度估计精度,并行的两个网络结构,再有粗到细的网络结构中。

2.通过交换模块是两个网络的信息能够交换且在交换后进行提炼优化光流再输出很好提高了光流的准确度,实现了在不同尺度上是两个网络紧密耦合,跳跃连接又能保证原有特征的传递,提高了网络的精度。

3.加入的极线特征层,可以减小相似性的估计范围,并提高光流估计的精度。

4.输出结果主要是深度图,光流作为副产物也达到了不错的效果,且运行耗时较低,有一定的落地可能性。

5.设计了多视角的处理网络,通过更多的图片,提高深度估计的精度。

5.DENAO采用监督学习的方式训练多视角需要大量的数据作为支撑,数据的获取较为困难;在实际场景中,因极线约束利用相机位姿的变化,不是物体本身的改变,所以动态场景难以满足,我认为应该采用别的约束方法来提高在动态场景的约束效率;深度学习端到端的输入输出,难以解释,在避障等紧急问题下依赖次并不安全。

第一次写笔记,这将作为我以后的学习笔记,供我复习,萌新可以看看,大佬就忽略吧,咩哈哈。

 

 

 

参考文献:

[1]Chen Jingyu,Yang Xin,Jia Qizeng,Liao Chunyuan. DENAO: Monocular Depth Estimation Network with Auxiliary Optical Flow.[J]. IEEE transactions on pattern analysis and machine intelligence,2020.

[2]陈靖宇,华中科技大学,基于深度学习的单目多视角深度估计,硕士毕业论文

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值