一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于视觉和毫米波雷达的融合深度估计方法

2022-06-16 01:41:04 来源:中国专利 TAG:


1.本发明属于计算机视觉技术领域,具体涉及一种基于视觉和毫米波雷达的融合深度估计方法。


背景技术:

2.单目深度估计是计算机视觉领域的热门研究课题之一,它从单一的rgb图像中估计出稠密的深度图,在自动驾驶、三维重建、机器人技术等领域都有着广泛的应用。但是深度估计是一个不适定问题,且单个图像本身并不能提供任何明确的深度信息。
3.目前常采用的方法是引入激光雷达数据,即深度补全任务从由激光雷达获得的稀疏的深度中重建出稠密的深度图。尽管激光雷达能提供更为稠密的深度观测,但其受不利天气(如雪、雨、雾等)影响较大,且其获取成本较高。相比于激光雷达,毫米波雷达在恶劣天气下非常强大,且能够探测到非常远的目标。又由于毫米波雷达在车辆中已经有了广泛的使用,如自适应巡航系统(acc)和自动紧急制动系统(aeb)等,这更有利于深度估计模块后续在自动驾驶中部署。
4.早期的单目深度估计方法主要使用手动设计的特征。近年来,由于神经网络在图像分类、目标检测和语义分割等任务中表现出了强大的潜能,研究人员们将神经网络引入单目深度估计。eigen等人首个使用卷积神经网络(cnn)进行单目深度估计,其采用两个阶段的网络,全局网络得到粗略的深度估计结果后,利用局部网络细化预测,并提出尺度不变平均平方误差作为损失函数。为了实现更准确的深度估计,一些方法引入注意力机制,将深度回归任务转化为分类任务,将语义分割任务与深度估计任务结合,或通过编解码器结构得到粗略的深度图后,利用条件随机场进行优化。上述方法都需要大量的深度标签数据来对模型进行训练,但由于获取精确的深度数据成本较高且获取难度较大。目前也有一些工作采用无监督的形式,以图像重建的形式训练网络。其通常以立体图像对的形式输入,从而用图像取代了难以获得的深度标签。
5.虽然仅基于图像数据的深度估计已经得到了比较可观的结果,激光雷达的引入仍然大幅减少了深度估计的误差。深度补全任务相比于单目深度估计具有额外的特点,如稀疏点的深度值应该尽量保持,稀疏点与其邻域之间的过度应该平滑等。为解决上述问题,许多研究尝试训练神经网络用于深度补全任务。这些方法可以粗略分为两类:1)构建网络预测出粗糙深度图后,利用局部的邻域对其优化。2)利用图像指导稠密深度图的恢复。本发明与深度补全最大的不同点在于深度补全任务的稀疏输入已经包含了比较充分的信息,因此可以将图像作为引导,从稀疏输入中重建出稠密深度。而由于毫米波雷达的输入过于稀疏,将其视为图像的辅助信息更为合适。


技术实现要素:

6.本发明的目的是克服现有技术中存在的单目深度估计准确性低,且在视觉退化场景下失效的缺陷,提出了一种基于视觉和毫米波雷达的融合深度估计方法。在单目图像中
引入毫米波雷达的测量值作为先验知识,旨在利用毫米波雷达补充视觉信息,尤其是在夜晚、雨天等视觉特征退化严重的场景,从而提升深度估计结果的准确性。
7.本发明采用的技术方案如下:
8.一种基于视觉和毫米波雷达的融合深度估计方法,其特征在于,包括以下步骤:
9.s1.将待估计图像和毫米波雷达数据输入稀疏-粗糙编码网络,分别提取特征后融合,得到第一融合特征图。
10.优选地,所述稀疏-粗糙编码网络采用双编码器结构,包括图像编码器和深度编码器;其中所述图像编码器为预先训练过并去除了全连接层的resnet-34网络;所述深度编码器,包括稀疏前置映射模块和残差模块,通过稀疏前置映射模块提取毫米波雷达数据的初步特征,再采用残差模块进一步提取特征。
11.s2.将稀疏-粗糙编码网络得到的第一融合特征图输入稀疏-粗糙解码网络,解码得到粗糙深度图。
12.s3.通过特征融合模块将稀疏-粗糙解码网络中的解码特征融合到粗糙-精细编码网络;将粗糙深度图输入粗糙-精细编码网络,得到第二融合特征图。
13.优选地,所述粗糙-精细编码网络,采用单编码器结构。
14.优选地,所述特征融合模块,用于计算注意力向量,引导粗糙-精细编码网络特征的学习。
15.优选地,所述解码特征,由稀疏-粗糙解码网络中的残差模块产生。
16.s4.将粗糙-精细编码网络得到的第二融合特征图输入粗糙-精细解码网络,解码得到最后的预测深度图。
17.优选地,在训练过程中,采用基于二进制掩膜的滤波-插值方式构建标签数据进行监督;具体地,所述基于二进制掩膜的滤波-插值方式为:
18.a、聚集多帧激光雷达数据。
19.b、基于二进制掩膜的滤波算法滤除异常点,得到滤波后的激光雷达数据l'。具体地,首先使用稀疏掩膜m
l
屏蔽激光雷达数据l中的非观测点;然后在大小为n
×
m的区域s内求得观测点深度的均值;最后通过判断观测点深度与均值的差是否大于阈值来决定其是否为异常值。
20.基于二进制掩膜的滤波算法g的计算公式如下:
[0021][0022][0023]
其中,m=n
×
m,n的取值范围为[30,50],m的取值范围为[40,60],ave(p,q)表示当前位置(p,q)处的均值,l(p,q)、l(x,y)分别表示当前位置(p,q)、(x,y)处的激光雷达数据值,ε为设置的阈值,s为大小为n
×
m的滤波器窗口,(x,y)表示滤波器窗口内激光雷达数据的位置,ml(x,y)为位置(x,y)处的二进制掩膜值。
[0024]
c、以滤波后的激光雷达数据l'和稀疏掩膜m
l
为输入进行基于二进制掩膜的插值,得到稠密的深度标签数据。具体地,首先使用稀疏掩码1-m
l
屏蔽滤波后的激光雷达数据l'
中的观测点,仅对非观测点进行插值;设定x和y方向上的步长分别为t
x
和ty,以设定的步长遍历屏蔽后的非观测点,以遍历到的非观测点为中心在大小为(a,b)的窗口内寻找最近邻,其中,a的取值范围为[15,25],b的取值范围为[2,5]。
[0025]
二进制掩膜的插值算法f公式表示为:
[0026][0027]
其中,nearest(p,q)表示在以(p,q)为中心在大小为(a,b)的窗口内搜寻最近邻观测点,l'(p,q)表示当前位置(p,q)处滤波后的激光雷达数据值。
[0028]
d、随机采样,得到最终的深度标签数据。
[0029]
本发明内容主要包含两个方面,分别为:基于毫米波雷达和单目视觉的联合深度估计网络以及基于二进制掩膜的滤波-插值的标签数据生成算法。
[0030]
(1)基于毫米波雷达和单目视觉的联合深度估计网络
[0031]
本发明设计了一个基于毫米波雷达和图像的端到端深度估计网络,整个网络由两个子网络组成。稀疏-粗糙子网络以图像和稀疏毫米波雷达数据为输入,预测出稠密但粗糙的深度图。在稀疏-粗糙子网络中为充分利用毫米波雷达数据,并使图像特征与毫米波雷达特征的融合更有效,采用双编码器-单一解码器的结构,即图像和毫米波雷达分别提取特征后融合,再通过解码器预测粗糙深度图。具体地,图像编码器为预先训练过的resnet-34网络,且去除了全连接层。在深度编码器中,考虑到毫米波雷达数据的高度稀疏性,采用和图像相同的编码方式会其失效,因此采用稀疏前置映射模块提取其初步特征,然后采用层数较少的残差模块进一步提取特征。粗糙-精细子网络以稀疏-粗糙子网络预测的粗糙深度图为输入,采用单一编码器-解码器结构,并通过特征融合模块融合两阶段特征,旨在获得更精细的预测。
[0032]
(2)基于二进制掩膜的滤波-插值的标签数据生成算法
[0033]
考虑到原始激光雷达数据存在大量的非观测点,常规的滤波和插值算法并没有考虑数据的稀疏性,且深度估计任务中将激光雷达的观测点视为真值,常规算法会导致观测点数据的改动。因此,本发明提出一种观测点不变的基于二进制掩膜的滤波-插值算法,提升标签数据的稠密性。
[0034]
相比与目前存在的毫米波雷达和激光的融合深度估计方法或单目深度估计方法,本发明的优势在于:1)本发明估计的深度准确性更高。2)本发明在夜晚或雨天等视觉退化的场景下也有较好的性能。3)本发明提出的基于二进制掩膜的滤波-插值算法可以延申应用于其他稀疏数据的处理。
附图说明
[0035]
图1为本发明的网络结构示意图。
[0036]
图2为实施例的深度标签处理结果示意图。
[0037]
图3为实施例的稀疏前置映射模块示意图。
[0038]
图4为实施例的特征融合模块示意图。
[0039]
图5为本发明的训练和推导过程示意图。
[0040]
图6为本发明的深度估计结果图。
具体实施方式
[0041]
为了更好的说明本发明的技术方案及优势,以下结合具体实施例及说明书附图,对本发明作进一步地阐述。
[0042]
一种基于视觉和毫米波雷达的融合深度估计方法,包括以下步骤:
[0043]
s1.将待估计图像和毫米波雷达数据输入稀疏-粗糙编码网络,分别提取特征后融合,得到第一融合特征图。
[0044]
所述稀疏-粗糙编码网络采用双编码器结构,包括图像编码器和深度编码器;其中所述图像编码器为预先训练过并去除了全连接层的resnet-34网络;所述深度编码器,包括稀疏前置映射模块和残差模块,通过稀疏前置映射模块提取毫米波雷达数据的初步特征,再采用残差模块进一步提取特征。
[0045]
如图3所示,稀疏前置映射模块通过5个堆叠的稀疏不变卷积来获得更稠密的特征图,并在其输出处双线性上采样到原分辨率后,对此处的输出施加监督。其中稀疏不变卷积采用逐渐减少的卷积核依次为7,5,3,3,1,前4个卷积的输出通道数为16,最后一个卷积的输出通道数为1,第1个卷积的步幅为2,其余卷积步幅都为1,用于得到更稠密的输出以便施加监督。最后,将第4个卷积的输出接入深度分支,进一步采用残差模块提取更高级的特征。
[0046]
s2.将稀疏-粗糙编码网络得到的第一融合特征图输入稀疏-粗糙解码网络,解码得到粗糙深度图。
[0047]
s3.通过特征融合模块将稀疏-粗糙解码网络中的解码特征融合到粗糙-精细编码网络;将粗糙深度图输入粗糙-精细编码网络,得到第二融合特征图。
[0048]
所述粗糙-精细编码网络,采用单编码器结构。
[0049]
所述特征融合模块,用于计算注意力向量,引导粗糙-精细编码网络特征的学习。该模块采用解码器-编码器特征融合的策略,将稀疏-粗糙阶段中的解码特征融合到粗糙-精细阶段中。具体来说,为了使稀疏-粗糙阶段中解码器特征适应于粗糙-精细阶段中编码器的特征,需减少解码器特征的通道数并细化特征。
[0050]
如图4所示,特征融合模块首先通过一个1
×
1卷积层减少输入特征的通道数,然后采用残差连接的形式,用两个3
×
3卷积提取更精细的特征后与减少通道数后的特征相加,得到细化特征映射后与粗糙-精细编码网络的特征拼接,采用全局平均池化获得全局上下文信息,然后计算注意力向量来引导粗糙-精细编码网络特征的学习。
[0051]
所述解码特征,由稀疏-粗糙解码网络中的残差模块产生。
[0052]
s4.将粗糙-精细编码网络得到的特征输入粗糙-精细解码网络,解码得到最后的预测深度图。
[0053]
在训练过程中采用基于二进制掩膜的滤波与插值方法,在多帧的激光雷达数据的基础上构建出了稠密且少噪声的深度标签。具体方式如下:
[0054]
a、聚集多帧激光雷达数据。
[0055]
b、基于二进制掩膜的滤波算法滤除异常点,得到滤波后的激光雷达数据l'。具体地,首先使用稀疏掩膜m
l
屏蔽激光雷达数据l中的非观测点;然后在大小为n
×
m的区域s内求得观测点深度的均值;最后通过判断观测点深度与均值的差是否大于阈值来决定其是否
为异常值。
[0056]
基于二进制掩膜的滤波算法g的计算公式如下:
[0057][0058][0059]
其中,m=n
×
m,本实施例中n=40,m=50,ave(p,q)表示当前位置(p,q)处的均值,l(p,q)、l(x,y)分别表示当前位置(p,q)、(x,y)处的激光雷达数据值,ε=2为设置的阈值,s为大小为n
×
m的滤波器窗口,(x,y)表示滤波器窗口内激光雷达数据的位置,ml(x,y)为位置(x,y)处的二进制掩膜值。
[0060]
c、以滤波后的激光雷达数据l'和稀疏掩膜m
l
为输入进行基于二进制掩膜的插值,得到稠密的深度标签数据。
[0061]
具体地,首先使用稀疏掩码1-m
l
屏蔽滤波后的激光雷达数据l'中的观测点,仅对非观测点进行插值;设定x和y方向上的步长分别为t
x
和ty,以设定的步长遍历屏蔽后的非观测点,以遍历到的非观测点为中心在大小为(a,b)的窗口内寻找最近邻,本实施例中a=20,b=3。
[0062]
二进制掩膜的插值算法f公式表示为:
[0063][0064]
其中,nearest(p,q)表示在以(p,q)为中心搜寻最近邻观测点,l'(p,q)表示当前位置(p,q)处滤波后的激光雷达数据值。图2为采用基于二进制掩膜的滤波与插值方法处理激光雷达数据的示例。
[0065]
d、由于在步骤c采用固定步长,为了破除插值后数据的规则性,使其更拟合与原始激光雷达的形式,对插值的点进行随机采样,得到最终的深度标签数据。
[0066]
在训练过程中,对稀疏-粗糙子网络和粗糙-精细子网络输出的深度预测都施加监督,同时也对稀疏-粗糙阶段中的映射结果进行监督。具体地,整体损失函数l
total
为:
[0067]
l
total
=λ1(l
coarse
λ2l
map
λ3l
smooth
) (1-λ1)l
final
ꢀꢀꢀ
(4)
[0068]
其中λ1、λ2、λ3是根据经验设定的超参数,l
coarse
表示根据稀疏-粗糙子网络输出的粗糙深度图和深度标签计算得到的损失值,l
map
表示根据稀疏-粗糙子网络输出的映射结果和深度标签计算得到的损失值,l
final
表示根据粗糙-精细子网络输出的最终深度图和深度标签计算得到的损失值。
[0069]
l
coarse
、l
map
和l
final
都使用l1 loss计算损失。由于深度标签并不存在于每个像素,因此只计算深度标签中有效像素的损失,表示为:
[0070][0071]
其中,d和分别表示深度标签和预测深度图。k表示深度标签d的有效深度集合,w
为有效深度的数量,d(e,f)和分别表示深度标签和预测深度图中像素(e,f)处的深度值。进一步加入平滑项,由于深度不连续通常发生在交界处,因此使用图像梯度进行加权,平滑项l
smooth
定义为:
[0072][0073]
其中分别表示沿x和y方向的梯度,i表示输入图像。
[0074]
如图5所示,训练时采用基于二进制掩膜的滤波与插值方法中生成的深度标签数据作为真值进行监督。而在推导阶段,仅需要以图像和毫米波雷达为输入。
[0075]
采用训练后的深度估计网络对场景进行深度估计,深度估计结果如图6所示,本发明中估计的最大深度值为120米。
[0076]
训练和测试均采用nuscenes数据集,nuscenes数据集中不仅包含相机和激光雷达数据,也记录了毫米波雷达数据,是为数不多包含毫米波雷达数据的大型数据集。该数据集每个场景时长20秒,其中有40个关键帧,每帧图像的分辨率为1600
×
900。并且nuscenes中包含各种情况下的驾驶场景,如雨天、夜晚等,这也增加了在该数据集上进行深度估计的难度。本发明使用了850个场景,并将它们分为810个场景用于训练,40个场景用于评估。(训练集共计32564张图片,测试集共计1585张图片)。最终估计得到的深度图在所有像素点,即144万个像素点上都估计出最终深度,相比于初始毫米波雷达每帧探测的有效点数仅为40-50点,提升约两万倍的稠密度。本发明使用pytorch部署网络,并且在nvidia geforce gtx titan x上训练。批大小设置为4,使用adam优化器其学习率为0.0005,并且每5个轮次学习率下降一半,参数设置为λ1=0.5,λ2=0.3,λ3=0.001。
[0077]
本发明所得结果在所有像素位置处计算误差,结果如表1所示,可以看出本发明的各项指标都优于现有方案,且证明了毫米波雷达的引入能提高深度估计的性能。
[0078]
表1深度估计结果
[0079]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献