单目深度估计方法、模型训练方法、装置和计算机设备与流程
未命名
09-22
阅读:85
评论:0
1.本技术涉及图像处理技术领域,特别是涉及一种单目深度估计方法、装置、计算机设备和存储介质。
背景技术:
2.深度估计是计算机视觉领域的一个基础性问题,其可以应用于机器人导航、增强现实、三维重建、自动驾驶等领域。目前的深度估计方式包括双目深度估计方法和单目深度估计方法。但是由于双目图像需要利用立体匹配进行像素点对应和视差计算,计算复杂度较高,尤其是对于低纹理场景的匹配效果较差。而单目深度估计方法,则相对成本更低,更容易普及。
3.然而传统的单目深度估计方法,为了提升模型精度,不断增加模型结构,使得模型的计算复杂度也越来越大,在计算资源有限且精度要求高的情况下,无法快速对单目图像进行深度估计。
技术实现要素:
4.基于此,有必要针对上述技术问题,提供一种能够在计算资源有限且精度要求高的情况下,提高深度估计效率的单目深度估计方法、装置、计算机设备和存储介质。
5.第一方面,本技术提供了一种单目深度估计方法。该方法包括:
6.通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征;
7.通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征;其中,融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络;
8.通过深度预估模型的解码网络,对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据。
9.在其中一个实施例中,通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征,包括:
10.通过融合网络的至少两个依次连接的残差特征蒸馏网络,对第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征;
11.通过融合网络的连接网络对各残差特征蒸馏网络的输出特征进行融合,得到第二图像特征。
12.在其中一个实施例中,每一残差特征蒸馏网络包括:三个常规结构卷积层、两个残差结构卷积层和一个拼接层;
13.通过融合网络的至少两个依次连接的残差特征蒸馏网络,对第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征,包括:
14.针对每一残差特征蒸馏网络,将该残差特征蒸馏网络的输入特征分别输入到第一常规结构卷积层和第一残差结构卷积层,得到第一常规结构卷积层输出的第一常规特征,
以及第一残差卷积层输出的第一残差特征;
15.将第一残差特征输入至第二常规结构卷积层和第二残差结构卷积层,得到第二常规结构卷积层输出的第二常规特征,和第二残差结构卷积层输出的第二残差特征;
16.将第二残差特征输入至第三常规结构卷积层,得到第三常规结构卷积层输出的第三常规特征;
17.将输入特征、第一常规特征、第二常规特征和第三常规特征输入至拼接层,得到该残差特征网络的输出特征;
18.其中,首个残差特征蒸馏网络的输入特征为第一图像特征,其他各残差特征蒸馏网络的输入特征为上一残差特征蒸馏网络的输出特征。
19.在其中一个实施例中,编码网络为对轻量级神经网络mobilenetv3进行通道数删减处理后的网络。
20.在其中一个实施例中,编码网络中包括输入层和多个依次连接的子编码层;
21.通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征,包括:
22.通过编码网络的输入层,将待处理单目图像输入至首个子编码层,得到各子编码层输出的子编码特征,将末尾子编码层输出的子编码特征作为第一图像特征。
23.在其中一个实施例中,编码网络还包括参数优化网络;
24.在通过深度预估模型的融合网络对第一图像特征进行特征融合之前,方法还包括:
25.通过编码网络的参数优化网络对第一图像特征进行通道数删减处理,得到第三图像特征,并对第三图像特征进行特征提取,得到第四图像特征;
26.通过深度预估模型的融合网络对第一图像特征进行特征融合,包括:
27.通过深度预估模型的融合网络对第四图像特征进行特征融合。
28.在其中一个实施例中,解码网络包括输出层和多个子解码层;尺度相同的子编码层和子解码层一一对应;
29.通过深度预估模型的解码网络对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据,包括:
30.通过解码网络的各子解码层,对各子解码层的输入数据进行解码处理,得到各子解码层的解码结果;
31.通过解码网络的输出层对末尾解码层的解码结果进行解码处理,输出待处理单目图像对应的目标深度数据;
32.其中,首个子解码层的输入数据包括:首个子解码层对应的子编码层输出的子编码特征和第二图像特征;其他各子解码层的输入数据包括该子解码层对应的子编码层输出的子编码特征和上一子解码层输出的解码结果。
33.在其中一个实施例中,还包括:
34.获取原始单目图像;
35.对原始单目图像进行预处理,得到待处理单目图像。
36.第二方面,本技术还提供了一种深度预估模型训练方法,用于训练上述实施例中任一项的深度预估模型,该方法包括:
37.将样本图像集输入至待训练的深度预估模型进行深度估计,得到样本图像集对应的训练深度数据;
38.根据训练深度数据、样本图像集的标签深度数据和有效深度值数目,确定感知损失值;
39.根据感知损失值对待训练的深度预估模型进行迭代训练,直至达到训练停止条件,得到训练后的深度预估模型。
40.第三方面,本技术还提供了一种单目深度估计装置。该装置包括:
41.第一提取模块,用于通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征;
42.特征融合模块,用于通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征;其中,融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络;
43.深度估计模块,用于通过深度预估模型的解码网络,对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据。
44.第四方面,本技术还提供了一种计算机设备。该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现上述的单目深度估计方法的步骤;或者,实现上述的深度预估模型训练方法的步骤。
45.第五方面,本技术还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的单目深度估计方法的步骤;或者,实现上述的深度预估模型训练方法的步骤。
46.第六方面,本技术还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的单目深度估计方法的步骤;或者,实现上述的深度预估模型训练方法的步骤。
47.上述单目深度估计方法、模型训练方法、装置、计算机设备和存储介质,通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征,能够降低模型显存和计算量,增大特征提取感受野,从而通过残差特征蒸馏网络进行特征融合,残差特征蒸馏网络的模型参数量较小、能够充分挖掘待处理单目图像的特征信息且具有较低的模型复杂度,进而解码网络将目标深度数据的尺度还原到待处理单目图像的尺度。因此能够在计算资源有限且精度要求高的情况下,提高模型的推理速度,从而提高单目深度估计效率。
附图说明
48.图1为一个实施例中单目深度估计方法的应用环境图;
49.图2为一个实施例中单目深度估计方法的流程示意图;
50.图3为一个实施例中通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征步骤的流程示意图;
51.图4为一个实施例中深度预估模型的网络结构示意图;
52.图5为一个实施例中编码网络的结构示意图;
53.图6为一个实施例中残差特征蒸馏网络的结构示意图;
54.图7为一个实施例中残差结构卷积层的结构示意图;
55.图8为一个实施例中解码网络的结构示意图;
56.图9为一个实施例中轻量化解码网络中子解码层1的结构示意图;
57.图10为一个实施例中深度预估模型训练方法的流程示意图;
58.图11为一个实施例中单目深度估计装置的结构框图;
59.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
60.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
61.本技术实施例提供的单目深度估计方法,可以应用于如图1所示的应用环境中。其中,图像采集设备102通过网络与服务器104进行通信。图像采集设备采集真实环境中的待处理单目图像,将待处理单目图像发送至服务器104,服务器104调用深度预估模型,通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征。从而通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征;其中,融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络。进而通过深度预估模型的解码网络,对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据。其中,图像采集设备102可以但不限于是单目相机、摄像仪、摄像头、个人计算机、笔记本电脑、智能手机和平板电脑。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
62.在一个实施例中,如图2所示,提供了一种单目深度估计方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
63.步骤202,通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征。
64.其中,待处理单目图像是指需要进行深度估计的单目图像。单目图像可以是一张图像,也可以是唯一视角下的图像。深度估计是指估计图像中每个像素点的深度值,即每个像素点相对于拍摄源的距离。
65.具体地,服务器中存储有深度预估模型,深度预估模型包括多个子网络,具体可以包括编码网络、融合网络以及解码网络。通过编码网络对待处理单目图像进行下采样处理,得到第一图像特征。其中,第一图像特征可以包括待处理单目图像中的浅层特征以及深层特征。浅层特征可以包括颜色、形状、位置数据等,深层特征可以包括语义数据。
66.步骤204,通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征;其中,融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络。
67.将第一图像特征作为融合网络的输入,通过融合网络中的每个残差特征蒸馏网络均会对上一个残差蒸馏网络的输出特征进行多次1x1卷积操作和一次拼接操作,从而得到各残差特征蒸馏网络的输出特征。之后通过连接网络将各残差特征蒸馏网络的输出特征进行特征融合处理,能够快速地将分散的特征融合在一起,进而得到第二图像特征。第二图像特征可以包括更深层的深层特征以及浅层特征。第二图像特征的尺度和第一图像特征的尺度是相同的。
68.可选地,融合网络中的残差特征蒸馏网络可以是对传统的残差特征蒸馏块(residual feature distillation block简称rfdb)进行剪枝处理后的网络,可以称为残差特征蒸馏块的变体(rfdb variant)。
69.步骤206,通过深度预估模型的解码网络,对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据。
70.融合网络输出的第二图像特征的尺度和第一图像特征的尺度是相同的,为了还原到与待处理单目图像相同的尺度,将第二图像特征输入至解码网络,从而通过解码网络对第二图像特征进行上采样处理,解码网络的上采样次数与编码网络的下采样次数是相同的,可以保证解码网络输出的目标深度数据与待处理单目图像的尺度相同,从而提高目标深度数据的分辨率。
71.可选地,解码网络可以是u-net网络(结构形似字母u的全卷积神经网络)。
72.上述单目深度估计方法中,通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征,能够降低模型显存和计算量,增大特征提取感受野,从而通过残差特征蒸馏网络进行特征融合,残差特征蒸馏网络的模型参数量较小、能够充分挖掘待处理单目图像的特征信息且具有较低的模型复杂度,进而解码网络将目标深度数据的尺度还原到待处理单目图像的尺度。因此能够在计算资源有限且精度要求高的情况下,提高模型的推理速度,从而提高单目深度估计效率。
73.在一个实施例中,如图3所示,通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征,包括:
74.步骤302,通过融合网络的至少两个依次连接的残差特征蒸馏网络对第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征。
75.步骤304,通过融合网络的连接网络对各残差特征蒸馏网络的输出特征进行融合,得到第二图像特征。
76.其中,特征蒸馏是指将多通道初始低阶特征提取为少通道的高阶细节特征。
77.通过融合网络中的残差特征蒸馏网络对第一图像特征进行多次特征蒸馏,每次特征蒸馏后的特征通道数都少于上次特征蒸馏的特征通道数。具体地,将第一图像特征输入至首个残差特征蒸馏网络进行特征蒸馏,将首个残差特征蒸馏网络的输出特征作为下一个残差特征蒸馏网络的输入,进行特征蒸馏,重复通过残差特征蒸馏网络进行特征蒸馏的步骤,直至得到最后一个残差特征蒸馏网络的输出特征。
78.融合网络的连接网络可以包括拼接层以及卷积层,通过拼接层将各残差特征蒸馏网络的输出特征依次进行拼接。比如,可以按照得到各残差特征蒸馏网络的输出特征的顺序依次首尾连接。进一步地,拼接层的输出特征为将各残差特征蒸馏网络的输出特征进行通道数叠加后的特征。之后,通过卷积层对拼接层的输出特征进行特征提取,以将拼接层的输出特征的通道数压缩至为与第一图像特征的通道数相同,得到第二图像特征。
79.在本实施例中,通过至少两个依次连接的残差特征蒸馏网络对第一图像特征进行特征蒸馏,从而通过连接网络将各残差特征蒸馏网络的输出特征进行融合,能够加强特征传播,使得到的融合特征能够具有更精确的细节特征,无需引入额外参数量,保持足够轻量的同时提高图像重建的准确性。
80.在一个实施例中,每一残差特征蒸馏网络包括:三个常规结构卷积层、两个残差结
构卷积层和一个拼接层;
81.通过融合网络的至少两个依次连接的残差特征蒸馏网络,对第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征,包括:针对每一残差特征蒸馏网络,将该残差特征蒸馏网络的输入特征分别输入到第一常规结构卷积层和第一残差结构卷积层,得到第一常规结构卷积层输出的第一常规特征,以及第一残差卷积层输出的第一残差特征;将第一残差特征输入至第二常规结构卷积层和第二残差结构卷积层,得到第二常规结构卷积层输出的第二常规特征,和第二残差结构卷积层输出的第二残差特征;将第二残差特征输入至第三常规结构卷积层,得到第三常规结构卷积层输出的第三常规特征;将输入特征、第一常规特征、第二常规特征和第三常规特征输入至拼接层,得到该残差特征网络的输出特征;其中,首个残差特征蒸馏网络的输入特征为第一图像特征,其他各残差特征蒸馏网络的输入特征为上一残差特征蒸馏网络的输出特征。
82.具体地,残差特征蒸馏网络是对常规残差特征蒸馏网络进行结构剪枝后的网络,仅包括三个常规结构卷积层、两个残差结构卷积层和一个拼接层。第一常规结构卷积层和第二常规结构卷积层的结构是相同的,第三常规结构卷积层与第一常规结构卷积层和第二常规结构卷积层的结构不相同。例如,第一常规结构卷积层和第二常规结构卷积层采用1
×
1的卷积核,第三常规结构卷积层采用3
×
3的卷积核。残差结构卷积层为浅层残差块,包括常规结构卷积层、残差连接层和激活单元。
83.将第一图像特征分别输入至首个残差特征蒸馏网络的第一常规结构卷积层和第一残差结构卷积层中,通过第一常规结构卷积层对第一图像特征进行特征蒸馏,得到第一常规特征。通过第一残差结构卷积层对第一图像特征进行残差特征提取,输出第一残差特征。第一常规特征和第一残差特征的通道数是相同的,第一常规特征和第一残差特征的通道数少于第一图像特征的通道数。
84.将第一残差特征输入至第二常规结构卷积层和第二残差结构卷积层,通过第二常规结构卷积层对第一残差特征进行特征蒸馏,得到第二常规特征。通过第二残差结构卷积层对第一残差特征进行再次残差特征提取,输出第二残差特征。第二常规特征和第二残差特征的通道数是相同的,第二常规特征和第二残差特征的通道数少于第一残差特征的通道数。
85.将第二残差特征输入至第三常规结构卷积层,通过第三常规结构卷积层对第二残差特征进行特征蒸馏,得到第三常规特征。第三常规特征的通道数和第二残差特征的通道数是相同的。
86.之后,将首个残差特征蒸馏网络的输入特征,即第一图像特征、第一常规特征、第二常规特征和第三常规特征输入至拼接层,通过拼接层将输入特征、第一常规特征、第二常规特征和第三常规特征进行依次连接,得到首个残差特征网络的输出特征。
87.从而将首个残差特征网络的输出特征作为下一个残差特征蒸馏网络的输入特征,直至残差特征蒸馏网络完成特征蒸馏处理。
88.在本实施例中,残差特征蒸馏网络具有特征蒸馏和残差学习的优势,可以从更多、更深层的特征中得到具有更优表征性的特征,由于残差特征蒸馏网络是对常规残差特征蒸馏网络进行结构剪枝后的网络,提高了模型结构的轻量化,进一步降低了模型复杂度,从而提高模型推理速度。
89.在一个实施例中,编码网络为对轻量级神经网络mobilenetv3进行通道数删减处理后的网络。
90.具体地,获取轻量级神经网络mobilenetv3的通道数目,减小该通道数目的参数数值,根据减小后的通道数据对轻量级神经网络mobilenetv3进行训练,直至mobilenetv3的损失值不再下降或者达到预设迭代次数,得到对轻量级神经网络mobilenetv3进行通道数删减处理后的网络,可以称为mobilenetv3变体编码网络(mobilenetv3 encoder variant)。
91.可选地,可以对该通道数目的参数数值减半处理,根据减半后的通道数目训练mobilenetv3。
92.在本实施例中,由于mobilenetv3本身就是轻量化模型,推理速度较快,通过对mobilenetv3采取进一步的轻量化处理,能够进一步降低模型复杂度,从而大大提高模型推理速度。
93.在一个实施例中,编码网络中包括输入层和多个依次连接的子编码层;
94.通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征,包括:通过编码网络的输入层,将待处理单目图像输入至首个子编码层,得到各子编码层输出的子编码特征,将末尾子编码层输出的子编码特征作为第一图像特征。
95.具体地,通过编码网络的输入层,将待处理单目图像输入至首个子编码层,首个子编码层对待处理单目图像进行特征提取,得到首个子编码层输出的子编码特征,从而将首个子编码层输出的子编码特征输入至下一个子编码层进行特征提取,重复子编码层进行特征提取的步骤,直至得到末尾子编码层输出的子编码特征。各子编码层提取的子编码特征,为下采样处理后的特征。多个依次连接的子编码层输出的子编码特征的尺度依次减小。
96.可选地,深度预估模型的编码网络可以是传统的编码网络,如轻量级神经网络mobilenetv3,也可以是对轻量级神经网络mobilenetv3进行通道数删减处理后的网络。
97.在本实施例中,通过编码网络的输入层和多个依次连接的子编码层进行多次特征提取,能够进一步降低模型显存和计算量,增大特征提取感受野。
98.进一步地,编码网络还包括参数优化网络;
99.在通过深度预估模型的融合网络对第一图像特征进行特征融合之前,方法还包括:通过编码网络的参数优化网络对第一图像特征进行通道数删减处理,得到第三图像特征,并对第三图像特征进行特征提取,得到第四图像特征;通过深度预估模型的融合网络对第一图像特征进行特征融合,包括:通过深度预估模型的融合网络对第四图像特征进行特征融合。
100.为了进一步增加编码网络所提取特征的深度,可以在编码网络中加入参数优化网络。参数优化网络可以包括两个参数优化层,第一参数优化层包括一个常规结构卷积层、一个标准化层和一个激活单元,第二参数优化层包括一个常规结构卷积层和一个激活单元。具体地,编码网络的末尾子编码层输出第一图像特征后,将第一图像特征输入至第一参数优化层,通过第一参数优化层的常规结构卷积层对第一图像特征进行通道数删减处理,得到第一优化特征,从而通过标准化层对第一优化特征进行标准化处理,并通过激活单元对标准化后的特征进行激活处理,得到第三图像特征。将第三图像特征输入至第二参数优化层,通过第二参数优化层中的常规结构卷积层对第三图像特征进行特征提取,得到第二优
化特征,并通过之后的激活单元对第二优化特征进行激活处理,得到第四图像特征。
101.可以理解的是,若深度预估模型的编码网络包括参数优化网络,参数优化网络输出的特征为编码网络最终输出的特征,从而将参数优化网络输出的第四图像特征输入至融合网络进行特征融合。
102.在本实施例中,通过编码网络的参数优化网络对第一图像特征进行通道数删减处理,得到第三图像特征,并对第三图像特征进行特征提取,得到第四图像特征。能够增加编码网络所提取特征的深度,提高模型感受野,提高模型收敛速度,同时还可以减少模型计算参数。
103.在一个实施例中,解码网络包括输出层和多个子解码层;尺度相同的子编码层和子解码层一一对应;
104.通过深度预估模型的解码网络对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据,包括:通过解码网络的各子解码层,对各子解码层的输入数据进行解码处理,得到各子解码层的解码结果;通过解码网络的输出层对末尾解码层的解码结果进行解码处理,输出待处理单目图像对应的目标深度数据;其中,首个子解码层的输入数据包括:首个子解码层对应的子编码层输出的子编码特征和第二图像特征;其他各子解码层的输入数据包括该子解码层对应的子编码层输出的子编码特征和上一子解码层输出的解码结果。
105.通过多个子解码层和输出层进行解码处理,将输出层输出的特征作为目标深度数据。具体地,将第二图像特征以及首个子解码层对应的子编码层输出的子编码特征,输入至首个子解码层,对第二图像特征进行上采样,得到与该子编码特征尺度相同的特征,从而将上采样后得到的特征与子编码特征进行拼接,将拼接后的特征进行特征提取,并对提取的特征进行激活处理,得到首个子解码层的解码结果。将首个子解码层的解码结果以及下一个子解码层对应的子编码层输出的子编码特征,输入至下一个子解码层,再次进行解码处理,直至得到末尾解码层的解码结果。多个子解码层和输出层输出的特征的尺度是依次增加的。
106.将末尾解码层的解码结果作为输出层的输入,输出层还会进行一次上采样,并对上采样后的特征进行激活处理,以得到与待处理图像的尺度相同的目标深度数据。
107.在本实施例中,通过对解码层对应的尺度相同的子编码层输出的子编码特征和上一子解码层输出的解码结果进行解码处理,使得目标深度数据具有高分辨率,且具有更清晰的纹理细节,进而提高单目深度估计的精确率。
108.在一个实施例中,该方法还包括:获取原始单目图像;对原始单目图像进行预处理,得到待处理单目图像。
109.其中,预处理是指将原始单目图像处理为满足模型输入要求的图像。
110.由于直接将原始单目图像输入至深度预估模型,会导致图像弯曲变形从而降低模型的精度,在获取到原始单目图像后,对原始单目图像进行预处理。预处理可以包括对原始单目图像进行尺寸调整,对调整后的单目图像进行归一化处理。例如,预处理的方式可以是将原始单目图像的宽和高都调整为224,调整后的单目图像的尺寸为224
×
224,将调整后的单目图像的像素值除以255,以进行归一化。
111.在本实施例中,通过对原始单目图像进行预处理,得到符合模型要求的高标准的
单目图像,从而有利于提高深度预估模型的深度估计准确性。
112.在一个具体的实施例中,深度预估模型的模型结构可以如图4所示,其中,编码网络(mobilenetv3 encoder variant)包括输入层和5个子编码层。通过输入层将待处理单目图像输入至子编码层1,得到子编码层1至子编码层5输出的子编码特征。5个子编码层输出的子编码特征的尺度分别为输入图像的1/2、1/4、1/8、1/16和1/32,子编码层5输出的子编码特征即为第一图像特征。
113.从而将第一图像特征,输入至融合网络。融合网络包括三个残差特征蒸馏网络(rfdb variant)、一个拼接层(concat)和一个1
×
1卷积层(conv_1+leakrelu-0.05),一个拼接层和一个卷积层构成连接网络。其中,conv_1表示卷积层采用的是1
×
1卷积核,leakrelu-0.05表示卷积层后面的激活单元,且激活单元中激活函数的系数为0.05。通过三个残差特征蒸馏网络对第一图像特征进行特征蒸馏,再通过连接网络中的拼接层,将三个残差特征蒸馏网络的输出特征进行融合。通过卷积层对融合后的特征进行特征提取并激活,输出第二图像特征。
114.进而将第二图像特征输入至解码网络(u-net)。解码网络包括四个子解码层和输出层。编码网络中子编码层1至子编码层4指向子解码层1至4的“虚线箭头”表示将子解码层对应的子编码层输出的子编码特征输入至该子解码层。输出层也会对解码层4的解码结果进行解码处理。因此,解码网络的各网络层的输出特征的尺寸分别为第二图像特征的2倍、4倍、8倍、16倍和32倍,通过输出层输出目标深度数据。目标深度数据为深度图,深度图的尺寸与待处理单目图像的尺度相同。
115.在一个具体的实施例中,如图5所示,为编码网络的结构示意图,其中,编码网络包括输入层、五个子编码层和两个参数优化层。第一参数优化层可以包括一个1
×
1卷积层(conv-1)、一个标准化层(bn)和一个激活单元(hard_swish),第一参数优化层可以表示为conv-1+bn+hard_swish。第二参数优化层包括一个1
×
1卷积层(conv-1)和一个激活单元(hard_swish),第二参数优化层可以表示为conv-1+hard_swish。输出1表示子编码层1的输出特征,输出2表示子编码层2的输出特征,输出3表示子编码层3的输出特征,输出4表示子编码层4的输出特征,conv-1表示卷积层,采用的是1
×
1的卷积核。输出5表示第二参数优化层输出的第四图像特征。
116.在一个具体的实施例中,如图6所示,为融合网络中残差特征蒸馏网络的结构示意图,其中,残差特征蒸馏网络(rfdb variant),包括两个1
×
1卷积层(conv_1)、一个3
×
3卷积层(conv_3)、两个残差结构卷积层,即浅层残差块(shallow residual block,srb)和一个拼接层(concat),conv_1表示1
×
1的卷积核,conv_3表示3
×
3的卷积核。通过使用conv-1进行通道数缩减更加有效,显著减少了参数量;考虑到空间上下文和更好的细化特征,传入下一步骤的卷积依然使用conv-3。同时在网络中引入了残差学习,使得学习到的特征更具细粒度。
117.进一步地,如图7所示,为残差结构卷积层的结构示意图,该残差结构卷积层包括一个3x3卷积层(conv_3)、一个残差连接层(add)和一个激活单元(relu)组成。具体地,输入的特征通过3x3卷积层进行卷积,得到卷积特征,将该卷积特征与输入的特征进行叠加后,再通过激活单元进行激活后得到输出的残差特征。其中,输入的特征可以是第一图像特征,也可以是上一残差特征蒸馏网络的输出特征。
118.在一个具体的实施例中,解码网络的结构示意图可以如图8所示,其中,5个二维反卷积块(conv2dtranspose_block)分别表示5个子解码层,3x3二维反卷积层(conv2dtranspose-3+leakrelu-0.05)表示输出层。conv2dtranspose-3采用的是3
×
3卷积核。leakrelu-0.05表示激活单元,且激活单元中激活函数的系数为0.05。输入6表示融合网络输出的第二图像特征,输入4、输入3、输入2和输入1分别表示编码网络中子编码层4、子编码层3、子编码层2和子编码层1的子编码层特征。
119.解码网络中各子解码层的结构可以是相同的。示例性地,解码网络中子解码层1的结构可以如图9所示,包括3x3二维反卷积层(conv2dtranspose-3)、拼接层(concat)和3x3卷积层(conv-3+leakrelu-0.05),conv-3表示采用的是3
×
3卷积核,leakrelu-0.05表示激活单元中激活函数的系数为0.05。通过3x3二维反卷积层对输入6进行反卷积处理,得到扩大2倍的输出特征,通过拼接层将3x3二维反卷积层的输出特征与输入4进行融合,之后经过3x3卷积层,并将处理后的特征进行输出。
120.在一个实施例中,将本技术的深度预估模型与传统的单目深度估计模型fastdepth(快速深度估计模型)进行比较,比较结果如下表所示:
[0121][0122]
其中,on nyu depth2表示将预设单目深度估计模型与fastdepth在nyu depth2数据集上进行深度估计,具体可以在nyu depth2数据集上进行深度估计。input size表示输入的图像的大小。macs为计算量(multiply-accumulate operations),其数量级为g。rmse为均方根误差(root mean square error),all time表示模型深度估计所需的总时间。由上表可知,相比传统的fastdepth,本技术构建的预设单目深度估计模型不仅推理速度快(低延时)、算力小,且精度远高于fastdepth。
[0123]
在一个实施例中,如图10所示,提供了一种深度预估模型训练方法,用于训练深度预估模型,以该方法应用于图1中的服务器为例进行说明,该方法包括:
[0124]
步骤1002,将样本图像集输入至待训练的深度预估模型进行深度估计,得到样本图像集对应的训练深度数据。
[0125]
步骤1004,根据训练深度数据、样本图像集的标签深度数据和有效深度值数目,确定感知损失值。
[0126]
步骤1006,根据感知损失值对深度预估模型进行迭代训练,直至达到训练停止条件,得到训练后的深度预估模型。
[0127]
其中,样本图像集是指用于训练深度预估模型的单目图像的集合。训练深度数据是指深度预估模型在训练过程中输出的样本图像集中每个样本图像的深度数据。标签深度数据是指样本图像集在真实环境中的真实深度值,以下用真实深度值来表示标签深度数据。有效深度值是指标签深度数据中大于零的值。
[0128]
具体地,在数据库中获取样本图像集,样本图像集可以是通过图像采集设备采集,并存储在数据库中的。调用待训练的深度预估模型,将样本图像集输入至深度预估模型,通
过深度预估模型对样本图像集进行深度估计,得到样本图像集对应的训练深度数据。从而根据训练深度数据、样本图像集的标签深度数据、有效深度值数目以及感知损失计算关系,计算待训练的深度预估模型的感知损失值。其中,感知损失计算关系可以如下所示:
[0129][0130][0131]
其中,l
pixel
表示感知损失值,表示模型的第i个预测深度值,di表示真实环境中的第i个真实深度值,gi表示第i个预测深度值的对数与第i个真实深度值的对数的差值,t表示真实深度值中有效深度值的数量,有效深度值是指真实深度值大于零的值,λ为常数项,如,λ可以设置为0.15。
[0132]
根据感知损失值对深度预估模型进行迭代训练,调整深度预估模型的模型参数,直至达到训练停止条件,将此时的深度预估模型确定为深度预估模型。其中,训练停止条件可以是迭代次数达到阈值或者感知损失值不再下降。
[0133]
进一步地,在将样本图像集输入至深度预估模型进行深度估计之前,该方法还包括:获取初始图像集,对初始图像集进行预处理,得到样本图像集。在获取到初始图像集后,对初始图像集进行训练预处理。训练预处理的方式可以是对初始图像集进行随机旋转,将旋转后的初始图像集进行裁剪处理,从而将裁剪后的初始图像集进行尺寸调整,再将调整后的初始图像集进行归一化处理,得到样本图像集。例如,对初始图像集进行与处理可以是对初始图像集中的每个初始图像进行-5度到+5度的随机旋转,接着以每个初始图像的中心点,抠出宽为304,高为228的矩阵,然后将每个初始图像的宽高都调整为224,最后将每个初始图像中的像素值除以255,以实现归一化。进而根据样本图像集对深度预估模型进行训练。
[0134]
本实施例中,根据训练深度数据、样本图像集的标签深度数据和有效深度值数目,确定感知损失值,从而根据感知损失值训练深度预估模型,能够简化训练过程,且提高模型的收敛速度。
[0135]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0136]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的单目深度估计方法的单目深度估计装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个单目深度估计装置实施例中的具体限定可以参见上文中对于单目深度估计方法的限定,在此不再赘述。
[0137]
在一个实施例中,如图11所示,提供了一种单目深度估计装置,包括:第一提取模块1102、特征融合模块1104和深度估计模块1106,其中:
[0138]
第一提取模块1102,用于通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征。
[0139]
特征融合模块1104,用于通过深度预估模型的融合网络对第一图像特征进行特征融合,得到第二图像特征;其中,融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络。
[0140]
深度估计模块1106,用于通过深度预估模型的解码网络,对第二图像特征进行解码处理,得到待处理单目图像对应的目标深度数据。
[0141]
在一个实施例中,特征融合模块1104还用于通过融合网络的至少两个依次连接的残差特征蒸馏网络,对第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征;通过融合网络的连接网络对各残差特征蒸馏网络的输出特征进行融合,得到第二图像特征。
[0142]
在一个实施例中,每一残差特征蒸馏网络包括:三个常规结构卷积层、两个残差结构卷积层和一个拼接层;
[0143]
特征融合模块1104还用于针对每一残差特征蒸馏网络,将该残差特征蒸馏网络的输入特征分别输入到第一常规结构卷积层和第一残差结构卷积层,得到第一常规结构卷积层输出的第一常规特征,以及第一残差卷积层输出的第一残差特征;将第一残差特征输入至第二常规结构卷积层和第二残差结构卷积层,得到第二常规结构卷积层输出的第二常规特征,和第二残差结构卷积层输出的第二残差特征;将第二残差特征输入至第三常规结构卷积层,得到第三常规结构卷积层输出的第三常规特征;将输入特征、第一常规特征、第二常规特征和第三常规特征输入至拼接层,得到该残差特征网络的输出特征;其中,首个残差特征蒸馏网络的输入特征为第一图像特征,其他各残差特征蒸馏网络的输入特征为上一残差特征蒸馏网络的输出特征。
[0144]
在一个实施例中,第一提取模块1102,还用于通过对轻量级神经网络mobilenetv3进行通道数删减处理后的网络对待处理单目图像进行特征提取,得到第一图像特征。
[0145]
在一个实施例中,编码网络中包括输入层和多个依次连接的子编码层;
[0146]
第一提取模块1102还用于通过编码网络的输入层,将待处理单目图像输入至首个子编码层,得到各子编码层输出的子编码特征,将末尾子编码层输出的子编码特征作为第一图像特征。
[0147]
在一个实施例中,编码网络还包括参数优化网络;
[0148]
第一提取模块1102还用于通过编码网络的参数优化网络对第一图像特征进行通道数删减处理,得到第三图像特征,并对第三图像特征进行特征提取,得到第四图像特征;
[0149]
特征融合模块1104还用于通过深度预估模型的融合网络对第四图像特征进行特征融合。
[0150]
在一个实施例中,解码网络包括输出层和多个子解码层;尺度相同的子编码层和子解码层一一对应;
[0151]
深度估计模块1106还用于通过解码网络的各子解码层,对各子解码层的输入数据进行解码处理,得到各子解码层的解码结果;通过解码网络的输出层对末尾解码层的解码结果进行解码处理,输出待处理单目图像对应的目标深度数据;其中,首个子解码层的输入数据包括:首个子解码层对应的子编码层输出的子编码特征和第二图像特征;其他各子解
码层的输入数据包括该子解码层对应的子编码层输出的子编码特征和上一子解码层输出的解码结果。
[0152]
在一个实施例中,该装置还包括:
[0153]
预处理模块,用于获取原始单目图像;对原始单目图像进行预处理,得到待处理单目图像。
[0154]
在一个实施例中,提供了一种深度预估模型训练装置,包括:深度估计模块、损失确定模块和迭代训练模块,其中:
[0155]
深度估计模块,用于将样本图像集输入至待训练的深度预估模型进行深度估计,得到样本图像集对应的训练深度数据。
[0156]
损失确定模块,用于根据训练深度数据、样本图像集的标签深度数据和有效深度值数目,确定感知损失值。
[0157]
迭代训练模块,用于根据感知损失值对待训练的深度预估模型进行迭代训练,直至达到训练停止条件,得到训练后的深度预估模型。
[0158]
上述单目深度估计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0159]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待处理单目图像、样本图像集等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种单目深度估计方法。
[0160]
本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0161]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0162]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0163]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0164]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括
非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0165]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0166]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种单目深度估计方法,其特征在于,所述方法包括:通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征;通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合,得到第二图像特征;其中,所述融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络;通过所述深度预估模型的解码网络,对所述第二图像特征进行解码处理,得到所述待处理单目图像对应的目标深度数据。2.根据权利要求1所述的方法,其特征在于,所述通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合,得到第二图像特征,包括:通过所述融合网络的至少两个依次连接的残差特征蒸馏网络,对所述第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征;通过所述融合网络的连接网络对各残差特征蒸馏网络的输出特征进行融合,得到第二图像特征。3.根据权利要求2所述的方法,其特征在于,每一残差特征蒸馏网络包括:三个常规结构卷积层、两个残差结构卷积层和一个拼接层;所述通过所述融合网络的至少两个依次连接的残差特征蒸馏网络,对所述第一图像特征进行特征蒸馏,确定各残差特征蒸馏网络的输出特征,包括:针对每一残差特征蒸馏网络,将该残差特征蒸馏网络的输入特征分别输入到第一常规结构卷积层和第一残差结构卷积层,得到第一常规结构卷积层输出的第一常规特征,以及第一残差卷积层输出的第一残差特征;将所述第一残差特征输入至第二常规结构卷积层和第二残差结构卷积层,得到第二常规结构卷积层输出的第二常规特征,和第二残差结构卷积层输出的第二残差特征;将所述第二残差特征输入至第三常规结构卷积层,得到第三常规结构卷积层输出的第三常规特征;将所述输入特征、所述第一常规特征、第二常规特征和所述第三常规特征输入至所述拼接层,得到该残差特征网络的输出特征;其中,首个残差特征蒸馏网络的输入特征为第一图像特征,其他各残差特征蒸馏网络的输入特征为上一残差特征蒸馏网络的输出特征。4.根据权利要求1所述的方法,其特征在于,所述编码网络为对轻量级神经网络mobilenetv3进行通道数删减处理后的网络。5.根据权利要求1或4所述的方法,其特征在于,所述编码网络中包括输入层和多个依次连接的子编码层;所述通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征,包括:通过所述编码网络的输入层,将所述待处理单目图像输入至首个子编码层,得到各子编码层输出的子编码特征,将末尾子编码层输出的子编码特征作为第一图像特征。6.根据权利要求5所述的方法,其特征在于,所述编码网络还包括参数优化网络;在所述通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合之前,所述方法还包括:通过所述编码网络的参数优化网络对所述第一图像特征进行通道数删减处理,得到第
三图像特征,并对所述第三图像特征进行特征提取,得到第四图像特征;所述通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合,包括:通过所述深度预估模型的融合网络对所述第四图像特征进行特征融合。7.根据权利要求5所述的方法,其特征在于,所述解码网络包括输出层和多个子解码层;尺度相同的子编码层和子解码层一一对应;所述通过所述深度预估模型的解码网络对所述第二图像特征进行解码处理,得到所述待处理单目图像对应的目标深度数据,包括:通过所述解码网络的各子解码层,对各子解码层的输入数据进行解码处理,得到各子解码层的解码结果;通过所述解码网络的输出层对末尾解码层的解码结果进行解码处理,输出所述待处理单目图像对应的目标深度数据;其中,首个子解码层的输入数据包括:首个子解码层对应的子编码层输出的子编码特征和所述第二图像特征;其他各子解码层的输入数据包括该子解码层对应的子编码层输出的子编码特征和上一子解码层输出的解码结果。8.根据权利要求1所述的方法,其特征在于,还包括:获取原始单目图像;对所述原始单目图像进行预处理,得到待处理单目图像。9.一种深度预估模型训练方法,用于训练如权利要求1-8中任一项所述的深度预估模型,其特征在于,所述方法包括:将所述样本图像集输入至待训练的深度预估模型进行深度估计,得到所述样本图像集对应的训练深度数据;根据所述训练深度数据、所述样本图像集的标签深度数据和有效深度值数目,确定感知损失值;根据所述感知损失值对所述待训练的深度预估模型进行迭代训练,直至达到训练停止条件,得到训练后的深度预估模型。10.一种单目深度估计装置,其特征在于,所述装置包括:第一提取模块,用于通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征;特征融合模块,用于通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合,得到第二图像特征;其中,所述融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络;深度估计模块,用于通过所述深度预估模型的解码网络,对所述第二图像特征进行解码处理,得到所述待处理单目图像对应的目标深度数据。11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
技术总结
本申请涉及一种单目深度估计方法、模型训练方法、装置和计算机设备。所述方法包括:通过深度预估模型的编码网络对待处理单目图像进行特征提取,得到第一图像特征;通过所述深度预估模型的融合网络对所述第一图像特征进行特征融合,得到第二图像特征;其中,所述融合网络包括至少两个依次连接的残差特征蒸馏网络和连接网络;通过所述深度预估模型的解码网络,对所述第二图像特征进行解码处理,得到所述待处理单目图像对应的目标深度数据。采用本方法能够在计算资源有限且精度要求高的情况下,提高深度估计效率。提高深度估计效率。提高深度估计效率。
技术研发人员:张振林 杜金华 鞠园
受保护的技术使用者:中汽创智科技有限公司
技术研发日:2023.06.29
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/