一种单目深度估计方法
未命名
10-21
阅读:37
评论:0
1.本发明涉及计算机视觉技术领域,具体是一种单目深度估计方法。
背景技术:
2.目前单目深度估计是计算机视觉任务中一个的研究重点,在智能驾驶、机器人运动和三维认知中有广泛的应用。传统的sfm等算法在很多任务中实现较困难,随着深度学习正在成为当前主流算法,使用单目像机完成的效果越来越好,并且还具有节约成本、体积小等优点。
3.基于学习的方法主要分为监督学习和自监督学习两类。监督学习需要大量的各种各样的数据集和配对的真实地面深度标签作为输入。相对来说获取数据的任务比较困难,采用的激光雷达等设备价格也比较昂贵。自监督学习在获取深度和位姿相对要容易很多,通常将单目相机图像序列作为输入,采用相应的网络架构,将深度图和位姿估计两个任务统一到一个框架中,其中监督信息主要来自视图合成。
4.然而,就目前实现的效果来说,自监督方法仍然低于监督方法。主要原因在于采用光度特征损失作为监督信号时,在一些光强较大或纹理较弱地方无法有效的提取特征。
技术实现要素:
5.为了解决上述问题,本发明提供了一种能够体现图像中纹理细节和边缘线索的单目深度估计方法。
6.为了达到上述目的,本发明是通过以下技术方案来实现的:
7.本发明是一种单目深度估计方法,包括如下:
8.采用kitti数据集,划分训练集和测试集;
9.构建基于单目深度估计的网络结构,包括深度网络和位姿网络,所述深度网络采用u-net结构,包括编码器和解码器,所述位姿网络包括位姿编码器和位姿解码器;
10.利用图像重构模型重构目标图像:目标图像i
t
(p)经过深度网络输出对应深度图d
t
、对应图像经过位姿网络生成的相对位姿t
t
→
t
′
,和相机的内参k结合图像重构模型进行图像重构,得到重建图像计算重建图像对应的光度特征损失,并引入纹理特征梯度计算得到纹理特征损失函数;
11.利用纹理特征损失、光度特征损失、像素平滑度的多融合损失函数为总的损失函数,进行单目深度估计训练,并利用训练得到的模型对测试集数据进行有效评估。
12.本发明的进一步改进在于:编码器的输出端引入坐标注意力并连接解码器。
13.本发明的进一步改进在于:深度网络的编码器采用去除全连接层的resnet-18网络结构,其中最深的特征映射经过5个下采样阶段,并将输入图像的分辨率降低到1/32,所述解码器包含五个3
×
3卷积层,每个卷积层后具有一个双线性上采样层。
14.本发明的进一步改进在于:位姿网络的位姿编码器采用resnet-18网络结构。本发
明的进一步改进在于:图像重构模型表达式为:
[0015][0016]
式中,为重建图像,为重建后的像素,proj为2d和3d间的投影关系,《》为采样运算符,i
t
为目标图像帧,t
t
→
t
′
为相对位姿,k为相机的内参,d
t
为深度图。
[0017]
本发明的进一步改进在于:重建图像对应的光度特征损失的表达式为:
[0018][0019]
式中,l
phrec
为光度特征损失,l(,)为测量每个像素的光度差损失,i
t
(p)为目标图像,p为像素;
[0020]
将纹理特征梯度引入到重建图像对应的光度特征损失的表达式中得到:
[0021][0022]
式中,为重建的纹理特征,φ
t
(p)为目标图像的纹理特征。
[0023]
本发明的进一步改进在于:多融合损失函数的表达式为:
[0024]
l
total
=λl
smooth
+βl
phrec
+γl
fmrec
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0025]
其中:
[0026][0027][0028][0029]
式中,l
total
为多融合损失,l
fmrec
为纹理特征损失,l
phrec
为光度特征损失,l
smooth
为像素平滑度,其中α取0.85,λ、β、γ分别为像素平滑度、光度特征损失、纹理特征损失的权重,其中λ=1,β、γ取0.001,x、y用于表示像素坐标。
[0030]
本发明的有益效果是:本发明在光度特征损失的基础上,通过引入纹理特征损失,强化无纹理或者纹理较弱的情况下深度估计的效果。本发明的方法能够跨数据域实现良好的效果,本发明虽然基于kitti数据集训练单目深度估计的网络,但是在kitti、cityscapes和maker3d等数据集上都有良好表现。本发明的方法引入坐标注意力,加强通道和位置注意力,加强了边界特征。
附图说明
[0031]
图1是本发明实施例中的单目深度估计的网络结构示意图;
[0032]
图2是本发明实施例中的光度特征损失流程图;
[0033]
图3是本发明实施例中的坐标注意力示意图;
[0034]
图4是本发明实施例中的方法与现有的深度估计方法的kitti数据集效果对比;
[0035]
图5是本发明实施例中的方法与现有的深度估计方法的cityscape数据集效果对比;
[0036]
图6是本发明实施例中的方法与现有的深度估计方法的make3d数据集效果对比。
具体实施方式
[0037]
为了使本发明的目的、技术方案及优点更加清晰,以下结合附图及实施例,对本发明做出进一步详细阐述。应当注意,此处所描述的实施例仅用以解释本发明,并不用做限定本发明。
[0038]
本发明的一种单目深度估计方法,包括如下:
[0039]
采用kitti数据集,并划分训练集和测试集;
[0040]
构建基于单目深度估计的网络结构,包括深度网络和位姿网络,所述深度网络采用u-net结构,包括编码器和解码器,所述位姿网络包括位姿编码器和位姿解码器;
[0041]
利用图像重构模型重构目标图像:目标图像i
t
(p)经过深度网络输出对应深度图d
t
、对应图像经过位姿网络生成的相对位姿t
t
→
t
′
,和相机的内参k结合图像重构模型进行图像重构,得到重建图像
[0042]
计算重建图像对应的光度特征损失,并引入纹理特征梯度计算得到纹理特征损失函数;
[0043]
利用纹理特征损失、光度特征损失、像素平滑度的多融合损失函数为总的损失函数,进行单目深度估计训练,并利用训练得到的模型对测试集数据进行有效评估。
[0044]
本发明的深度网络(dipthnet)的编码器部分采用resnet18网络结构,其输出端可以引入坐标注意力并连接解码器。坐标注意力可以提高网络学习特征的表达能力。可以采用任何中间特征张量x=[x1,x2,
…
,xc]∈rc×h×w作为输入,输出均和x大小相同的增广矩阵y=[y1,y2,
…
,yc]。本实施例中坐标注意力结构如图3所示,给定输入x,使用x和y方向池化内核的两个空间范围(h,1)或(1,w),以分别沿着水平坐标和垂直坐标对每个通道进行编码,最后输出y同样大小为c
×h×
w。在高度为h的第c个通道输出公式可以转化为:
[0045][0046]
同样,在宽带为w处的第c个通道输出公式同样为:
[0047][0048]
其中,c为图像通道数,h为图像高度,w为图像宽度,xc(h,i)、xc(j,w)表示坐标轴x方向的特征,表示坐标轴z方向的特征。
[0049]
上述两个变换分别沿着两个空间方向聚合特征,产生一对方向感知特征图。经过x avg pool和y avg pool处理后连接起来,然后进行1
×
1卷积变换,得到水平方向和垂直方向上的空间信息进行编码的中间特征图。然后,本实施例沿着空间维度将特征图分解为两个独立的张量分别进行处理,最后得到同等维度,具有空间和通道注意力特征的输出。
[0050]
本发明的整个单目深度估计的网络结构采用多尺度结构设计,可以提取不同尺度的光度特征以解决出现”伪影”等问题。为了有效提高整体网络结构的紧凑性,位姿网络(posenet)的位姿编码器也采用resnet18,并在位姿解码器输出端输出连续三帧图像之间的相对位姿关系。具体的,对于深度网络的编码器采用去除全连接层的resnet-18网络结构,其中最深的特征映射经过5个下采样阶段,并将输入图像的分辨率降低到1/32,解码器包含五个3
×
3卷积层,每个卷积层后跟一个双线性上采样层。解码器卷积层的多尺度特征图用于生成多尺度重建图像,其中每个尺度的特征图进一步通过3
×
3卷积和sigmoid函数
进行图像重建。
[0051]
如图1所示,在整个单目深度估计的网络结构中,输入图像源is∈{i
t-1
,i
t
,i
t+1
}为相邻的三幅图像帧,其中i
t
作为目标图像帧,i
t
输入深度网络,输出对应的深度图d
t
,图像源is输入位姿网络,输出对应的位姿数据,其中i
t-1
和i
t+1
分别对i
t
计算位姿估计记作t
t
→
t
′
。
[0052]
为了生成有效的深度图,本发明目标图像i
t
(p)经过深度网络输出对应深度图d
t
、对应图像经过位姿网络生成的相对位姿t
t
→
t
′
,和相机的内参k结合图像重构模型进行图像重构,得到重建图像图像重构模型表达式为:
[0053][0054]
式中,为重建图像,为重建后的像素,proj为2d和3d间的投影关系,《》为采样运算符,i
t
为目标图像帧,t
t
→
t
′
为相对位姿,k为相机的内参,d
t
为深度图。
[0055]
光度特征损失在深度估计中比较常见,但是对于低纹理区域表现不佳,本发明在光度特征损失的基础上引入了纹理特征损失来增加低纹理区域的特征提取。光度特征损失在单目深度估计的网络结构中如图2所示,图中输入为目标图像(即i
t
(p)),经过深度网络生成视差图(深度图d
t
),联合位姿网络的输出位姿t
t
→
t
′
进行重构,经过采样后生成重构图像(即)。对应的光度特征损失表达式为:
[0056][0057]
其中,l(,)是测量每个像素的光度差损失,p为像素。
[0058]
在正常的深度估计和位姿运动情况下,光度特征损失可以起到良好的作用,但是对应低纹理甚至无纹理区域,如果光度差相近或相等那么就无法起到良好的监督作用。根据公式(5)和公式(6),来进一步分析光度特征损失中的深度d(p)和自运动m的梯度:
[0059][0060][0061]
从上述公式中可以看出深度和位姿梯度依赖于图像梯度而在无纹理区域图像梯度为零,这样导致公式(5)和公式(6)为零。从此处可以看出仅仅依靠光度误差不能很好的进行多视图重建,因此本发明引入纹理特征梯度到式(4):
[0062][0063]
其中表示重建的纹理特征,φ
t
(p)表示目标图像的纹理特征。
[0064]
本实施例中的多融合损失函数如下:
[0065]
根据式(7)可以得到纹理特征度量损失为:
[0066][0067]
采用l1和ssim生成光度误差l
phrec
,即:
[0068][0069]
取α=0.85。同时对生成的深度图求解视差平滑损失:
[0070][0071]
将像素平滑度、光度特征损失和纹理特征损失合并为整体的损失函数:
[0072]
l
total
=γl
smooth
+βl
phrec
+γl
fmrec
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0073]
式中,λ、β、γ分别为像素平滑度、光度特征损失、纹理特征损失的权重。
[0074]
本实施例输入的图像大小为640*192,采用kitti数据集进行单目深度估计的网络训练,其中训练图像39810帧,测试图像4242帧,主要采用monocular(m)训练进行训练比较。经过对比实验发现:monodepth2采用同样的参数训练最后得到的abs rel为0.120。结果表明,即使在计算资源有限的条件下,本发明方法的评估效果依然表现比较好。训练结果如表1所示:
[0075]
表1:采样kitti数据集训练结果对比
[0076][0077][0078]
ours(feat)指本发明实施例中仅含纹理特征损失的单目深度估计的网络,ours(coor+feat)指本发明实施例中同时引入纹理特征损失和坐标注意力的单目深度估计的网络。
[0079]
图4为kitti的数据测试效果,参与比对的包括经典算法monodepth2、最新成果lite-mon和r_msfm等方法,以及本发明采用只有纹理特征的方法our(feat)和纹理注意力相结合ours(coor+feat)的两种方法。由实验结果可见:纹理注意力相结合的方法在低纹理细节处表现较好,具体表现在:(a)列图中树木的轮廓比较清晰,(b)列的标识杆的粗细大小甚至反光标识都能清晰表达,(c)列在光照强烈的墙角的处理,(d)列中阳光照射的灌木以
及栏杆的处理。由于光度误差不一致性经常会导致深度图中物体靠近摄像机的实际距离不一致,无法反映深度图中物体到像机的准备距离,具体可以参考(b)列中骑自行车的人,本发明的纹理注意力相结合的方法能具体反映实际的距离。
[0080]
图5为cityscapes数据集的测试效果,kitti数据基本上都是移动像机拍摄的静态场景,缺少移动目标,但是实际现实环境中公路上有很多车辆和行人。与kitti数据集不同,cityscapes数据集中有大量的行人和行驶车辆,把kitti数据集中训练的模型用来测试cityscapes数据集,来验证本发明的网络在不同数据集中的有效性。在图5是输入部分的远处的路灯杆的、树木的形状细节、行人的识别成为了辨别不同方法优劣的依据。(a)列中本发明的方法可以清楚的展现远处的路灯杆,(b)列中周围的路灯杆都能清楚表现出来,而在(c)列中中树木纹理细节只有本发明的方法得到的图像比较清晰,而(d)列中本发明的方法则可以把周围的路灯杆和远处的天空都能表现出来。可以看出在图5中使用本发明的方法效果明显。
[0081]
图6为make3d数据集的测试效果,同样把在kitti中训练的网络对make3d数据集进行测试比较。本发明中纹理注意力相结合的方法如图6所示在深度图的细节上表现更好,尤其是光照比较强烈的地方更能体现出房屋和树木的轮廓和细节。
[0082]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种单目深度估计方法,其特征在于:包括如下:采用kitti数据集,划分训练集和测试集;构建基于单目深度估计的网络结构,包括深度网络和位姿网络,所述深度网络采用u-net结构,包括编码器和解码器,所述位姿网络包括位姿编码器和位姿解码器;利用图像重构模型重构目标图像:目标图像i
t
(p)经过深度网络输出对应深度图d
t
、对应图像经过位姿网络生成的相对位姿t
t
→
t
′
,和相机的内参k结合图像重构模型进行图像重构,得到重建图像计算重建图像对应的光度特征损失,并引入纹理特征梯度计算得到纹理特征损失函数;利用纹理特征损失、光度特征损失、像素平滑度的多融合损失函数为总的损失函数,进行单目深度估计训练,并利用训练得到的模型对测试集进行有效评估。2.根据权利要求1所述的一种单目深度估计方法,其特征在于:所述编码器的输出端引入坐标注意力并连接解码器。3.根据权利要求1或2所述的一种单目深度估计方法,其特征在于:所述深度网络的编码器采用去除全连接层的resnet-18网络结构,其中最深的特征映射经过5个下采样阶段,并将输入图像的分辨率降低到1/32,所述解码器包含五个3
×
3卷积层,每个卷积层后具有一个双线性上采样层。4.根据权利要求3所述的一种单目深度估计方法,其特征在于:所述位姿网络的位姿编码器采用resnet-18网络结构。5.根据权利要求3所述的一种单目深度估计方法,其特征在于:所述图像重构模型表达式为:式中,为重建图像,为重建后的像素,proj为2d和3d间的投影关系,<>为采样运算符,i
t
为目标图像帧,t
t
→
t
′
为相对位姿,k为相机的内参,d
t
为深度图。6.根据权利要求5所述的一种单目深度估计方法,其特征在于:所述重建图像对应的光度特征损失的表达式为:式中,l
phrec
为光度特征损失,为测量每个像素的光度差损失,i
t
(p)为目标图像,p为像素;将纹理特征梯度引入到重建图像对应的光度特征损失的表达式中得到:式中,为重建的纹理特征,φ
t
(p)为目标图像的纹理特征。7.根据权利要求6所述的一种单目深度估计方法,其特征在于:所述多融合损失函数的表达式为:l
total
=λl
smooth
+βl
phrec
+γl
fmrec
ꢀꢀꢀꢀ
(4)其中:
式中,l
total
为多融合损失,l
fmrec
为纹理特征损失,l
phrec
为光度特征损失,l
smooth
为像素平滑度,其中α取0.85,λ、β、γ分别为像素平滑度、光度特征损失、纹理特征损失的权重,其中λ=1,β、γ取0.001,x、y用于表示像素坐标。
技术总结
本发明公开了一种单目深度估计方法,包括:采用KITTI数据集,划分训练集和测试集;构建基于单目深度估计的网络结构,包括深度网络和位姿网络,深度网络采用U-net结构,包括编码器和解码器,位姿网络包括位姿编码器和位姿解码器;利用图像重构模型重构目标图像;计算重建图像对应的光度特征损失与纹理特征损失;利用纹理特征损失、光度特征损失、像素平滑度的多融合损失函数为总的损失函数,进行单目深度估计训练,并利用训练得到的模型对测试集进行有效评估。本发明在光度特征损失的基础上,通过引入纹理特征损失,强化无纹理或者纹理较弱的情况下深度估计的效果,此外,还能够跨数据域实现良好的效果。跨数据域实现良好的效果。跨数据域实现良好的效果。
技术研发人员:魏峰 魏群瀚
受保护的技术使用者:河海大学
技术研发日:2023.08.08
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/