基于预设的损失函数的单目深度估计网络的训练方法

文档序号:26953477发布日期:2021-10-16 02:41阅读:263来源:国知局
基于预设的损失函数的单目深度估计网络的训练方法

1.本技术属于深度估计网络训练技术领域,尤其涉及基于预设的损失函数的单目深度估计网络的训练方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.单目深度估计,是指从单张红绿蓝三通道的彩色图中估算每个像素点对应的三维空间中的深度值。其在很多场景,如三维模型重建、自动驾驶系统、人机交互和场景理解等都有着广泛的实际应用。但进行单目深度估计时,由于单张彩色图理论上可以对应无数个深度图,因此,通常难以得到准确的深度值。
3.现有的单目深度估计方法主要分为传统方法和基于深度学习的方法。前者需要将手工设计的特征描述子与马尔可夫随机场、条件随机场等相结合,虽然速度较快,但由于具有较强的域先验假设,其性能指标以及模型的鲁棒性和泛化性能都不能够让人满意。而基于深度学习的方法,利用深度卷积神经网络对图像的强大的编码能力和泛化性能,在含有大量彩色图

深度图的数据对的数据集中,以红绿蓝三通道图像作为深度卷积神经网络的网络模型输入,直接以端到端的方式输出对应的深度图。近年来,许多工作更加着重于设计一个更加合理的损失函数来提高网络模型的性能效果。如提出将一范数(l1)损失和二范数(l2)损失相结合的huber损失来关注近处点的偏差,但该方法未能取得显著的改进效果。


技术实现要素:

4.本技术实施例提供了一种基于预设的损失函数的单目深度估计网络的训练方法,可以解决现有方法训练得到的深度估计网络所输出的深度信息的准确性较低的问题。
5.第一方面,本技术实施例提供了一种基于预设的损失函数的单目深度估计网络的训练方法,包括:
6.获取训练数据集,所述训练数据集包括多个彩色图像样本和每个所述彩色图像样本的真实深度图;
7.利用所述训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练,得到训练后的所述单目深度估计网络;
8.在所述对抗训练过程中,所述单目深度估计网络的输入为所述彩色图像样本,所述单目深度估计网络的输出为所述彩色图像样本的预测深度图;所述学习网络的输入为所述彩色图像样本的预测深度图或所述真实深度图,所述学习网络的输出为所述彩色图像样本的预测深度图到由所述真实深度图张成的潜在流形空间的距离,或者,所述学习网络的输出为所述真实深度图到由所述真实深度图张成的潜在流形空间的距离;所述损失函数的输入为所述彩色图像样本的预测深度图和所述真实深度图,所述损失函数的输出为基于所述预测深度图到由所述真实深度图张成的潜在流形空间的距离所计算得到的数值。
9.第二方面,本技术实施例提供了一种基于预设的损失函数的单目深度估计网络的训练装置,包括:
10.训练数据集获取模块,用于获取训练数据集,所述训练数据集包括多个彩色图像样本和每个所述彩色图像样本的真实深度图;
11.网络训练模块,用于利用所述训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练,得到训练后的所述单目深度估计网络;
12.在所述对抗训练过程中,所述单目深度估计网络的输入为所述彩色图像样本,所述单目深度估计网络的输出为所述彩色图像样本的预测深度图;所述学习网络的输入为所述彩色图像样本的预测深度图或所述真实深度图,所述学习网络的输出为所述彩色图像样本的预测深度图到由所述真实深度图张成的潜在流形空间的距离,或者,所述学习网络的输出为所述真实深度图到由所述真实深度图张成的潜在流形空间的距离;所述损失函数的输入为所述彩色图像样本的预测深度图和所述真实深度图,所述损失函数的输出为基于所述预测深度图到由所述真实深度图张成的潜在流形空间的距离所计算得到的数值。
13.第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
14.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
15.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
16.本技术实施例与现有技术相比存在的有益效果是:
17.在本技术实施例中,预设的损失函数的输入为彩色图像样本的预测深度图和真实深度图,输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值,而预测深度图到由真实深度图张成的潜在流形空间的距离越小,表示单目深度估计网络输出的预测深度图与真实深度图越接近,即该预设的损失函数是对输入的整张深度图(预测深度图或真实深度图)进行了全局编码后,得到与整张深度图(预测深度图或真实深度图)有关的输出。由于整张深度图包含的信息更多,故该预设的损失函数能够自适应地学习场景的高层的语义特征,因此,在利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练时,能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息,即,当基于训练后的单目深度估计网络进行深度估计时,能够得到更准确的深度信息。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
19.图1是本技术一实施例提供的一种基于预设的损失函数的单目深度估计网络的训练方法的流程图;
20.图2是本技术一实施例提供的一种预测深度图到由真实深度图张成的潜在流形空间的距离的示意图;
21.图3是本技术一实施例提供的一种单目深度估计网络的结构示意图;
22.图4是本技术一实施例提供的一种基于预设的损失函数的单目深度估计网络的训
练装置的结构示意图;
23.图5是本技术另一实施例提供的电子设备的结构示意图。
具体实施方式
24.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
25.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
26.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
27.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
28.实施例一:
29.目前,为了提高基于深度卷积神经网络的网络模型的性能效果,在利用该网络模型确定深度图像之前,需要先设计一个合理的损失函数,如提出根据huber损失来关注近处点的偏差。然而,由于该huber损失仅关注像素级别的损失,因此其对应的网络模型难以保持场景的整体结构。也即,由于缺少高层的语义信息,因此,基于huber损失函数所对应的网络模型得到的深度图像的准确性较低。
30.为了解决上述技术问题,本技术实施例提供了一种基于预设的损失函数的单目深度估计网络的训练方法,在该训练方法中,先获取包括多个彩色图像样本和每个彩色图像样本对应的真实深度图的训练数据集,再利用该训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练,得到训练后的单目深度估计网络。
31.具体地,在对抗训练过程中,单目深度估计网络的输入为从训练数据集中选取的彩色图像样本,该单目深度估计网络的输出为与输入的彩色图像样本对应的预测深度图(该预测深度图即为基于彩色图像样本预测得到的深度图)。
32.学习网络的输入为彩色图像样本的预测深度图或者真实深度图,即一次输入只输入一张预测深度图或者一张真实深度图,对应地,该学习网络的输出为彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离,或者,该学习网络的输出为真实深度图到由真实深度图张成的潜在流形空间(考虑到由真实深度图计算得到的流形空间与真实的流形空间还是存在一定的误差,因此,在本技术实施例中,将由真实深度图计算得到的流形空间称为潜在流形空间)的距离。
33.预设的损失函数的输入为彩色图像样本的预测深度图和真实深度图,输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值。
34.在本技术实施例中,预设的损失函数的输入为彩色图像样本的预测深度图和真实深度图,即该预设的损失函数将对整张深度图(预测深度图或真实深度图)进行全局编码。由于整张深度图包含的信息更多,故该预设的损失函数能够自适应地学习场景的高层的语义特征,因此,在利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练时,能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息,即,使得输出的深度图像更准确。
35.下面结合附图对本技术实施例提供的基于预设的损失函数的单目深度估计网络的训练方法进行描述。
36.图1示出了本技术实施例提供的一种基于预设的损失函数的单目深度估计网络的训练方法的流程图,该训练方法可应用在电子设备中,该电子设备可以为终端设备或服务器。详述如下:
37.步骤s11,获取训练数据集,训练数据集包括多个彩色图像样本和每个彩色图像样本的真实深度图。
38.其中,上述的真实深度图可通过双目摄像头拍摄的图像确定,或通过其他方式确定。
39.本实施例中,彩色图像样本为红绿蓝三通道的图像,该训练数据集可为nyu

depth

v2,或为scannet。
40.步骤s12,利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练,得到训练后的单目深度估计网络。
41.在对抗训练过程中,单目深度估计网络的输入为彩色图像样本,单目深度估计网络的输出为彩色图像样本的预测深度图;学习网络的输入为彩色图像样本的预测深度图或真实深度图,学习网络的输出为彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离,或者,学习网络的输出为真实深度图到由真实深度图张成的潜在流形空间的距离;损失函数的输入为彩色图像样本的预测深度图和真实深度图,损失函数的输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值。
42.本实施例的对抗训练是指:当单目深度估计网络的网络参数不符合要求时,将更新学习网络的网络参数,再基于更新后的学习网络的网络参数更新单目深度估计网络的网络参数。即,单目深度估计网络的网络参数的更新与学习网络的网络参数有关。
43.当得到训练后的单目深度估计网络之后,若后续需要估计某张彩色图像(如电子设备自身的摄像头所拍摄得到的图像,或为该电子设备通过网络连接从其他设备获取的图像)的深度,则将该彩色图像输入训练后的单目深度估计网络,得到该训练后的单目深度估计网络所输出的预测深度图。由于该预测深度图包含输入的彩色图像的深度信息,因此,从该训练后的单目深度估计网络所输出的预测深度图能够获得输入的彩色图像的深度信息。
44.在本技术实施例中,预设的损失函数的输入为彩色图像样本的预测深度图和真实深度图,输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值,而预测深度图到由真实深度图张成的潜在流形空间的距离越小,表示单目深度估计网络输出的预测深度图与真实深度图越接近,即该预设的损失函数是对输入的整张深度图(预测深度图或真实深度图)进行了全局编码后,得到与整张深度图(预测深度图或真实深
度图)有关的输出。由于整张深度图包含的信息更多,故该预设的损失函数能够自适应地学习场景的高层的语义特征,因此,在利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练时,能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息,即,当基于训练后的单目深度估计网络进行深度估计时,能够得到更准确的深度信息。
45.为了更清楚地描述预测深度图到由真实深度图张成的潜在流形空间的距离,下面结合图2进行描述。在图2中,仅示出了一个预测深度图,每一个星形符号表示一个真实深度图,曲线表示由真实深度图张成的潜在流形空间在该预测深度图与潜在流形空间之间的双箭头之间的长度表示该预测深度图到潜在流形空间的距离。从图2中可以看出,当预测深度图到潜在流形空间的距离越小,表示该预测深度图越接近真实深度图。
46.在一些实施例中,预设的损失函数包括学习网络的第一损失函数和单目深度估计网络的第二损失函数。
47.上述第一损失函数的输入包括b张彩色图像样本的预测深度图和b张真实深度图,b为大于0的自然数。
48.上述第二损失函数的输入包括b组深度图,其中,每组深度图包括一张彩色图像样本的预测深度图以及与预测深度图对应的真实深度图。
49.具体地,预先设定“b”的值,这样,在训练单目深度估计网络时,先从训练数据集中选取b张彩色图像样本,再将该b张彩色图像样本分别输入单目深度估计网络,得到该单目深度估计网络输出的b张预测深度图。该b张预测深度图以及从训练数据集中选取的b张真实深度图均作为第一损失函数的输入。而第二损失函数的输入是:从训练数据集中独立选取出b张彩色图像样本后,将独立选取出的b张彩色图像样本分别输入单目深度估计网络,得到该单目深度估计网络输出的b张预测深度图,该b张预测深度图与从训练数据集中选取的与上述b张彩色图像样本对应的b张真实深度图,均作为第二损失函数的输入。
50.本技术实施例中,由于第一损失函数和第二损失函数的输入均为整张预测深度图和整张真实深度图,因此,该第一损失函数和第二损失函数能够自适应地学习场景的高层的语义特征,即后续能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息。此外,由于第一损失函数是学习网络所对应的损失函数,因此,不限定输入第一损失函数的预测深度图和真实深度图是否为一组的深度图,从而在基于不同预测深度图与不同的真实深度图确定该第一损失函数的输出值时,有利于根据该第一损失函数训练出能够输出一个尽可能小的距离的学习网络。又由于第二损失函数是单目深度估计网络所对应的损失函数,因此,限定输入第二损失函数的预测深度图和真实深度图为同一组深度图,从而在基于预测深度图与对应的真实深度图确定该第二损失函数的输出值时,有利于根据该第一损失函数训练出能够输出一张尽可能接近真实深度图的预测深度图的单目深度估计网络,即,通过上述限定,能够提高训练出的单目深度估计网络的准确性。
51.在一些实施例中,第一损失函数用于根据彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离获得尽可能大的数值,第二损失函数用于根据彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离获得尽可能小的数值。
52.本技术实施例中,由于第一损失函数和第二损失函数的输入均与预测深度图和真
实深度图有关,但第一损失函数希望获得尽可能大的数值,而第二损失函数希望获得尽可能小的数值,即第一损失函数和第二损失函数所希望获得的数值大小是相反的,因此,可依据上述的第一损失函数和第二损失函数对单目深度估计网络进行对抗训练,从而使得依据该第一损失函数和第二损失函数训练得到的单目深度估计网络更准确。
53.在一些实施例中,将学习网络输出的距离映射到指定区间,得到映射后的距离,例如,将学习网络输出的距离映射到[0,1]区间。由于映射后的距离只在[0,1]之间,因此能够提高训练的稳定性。
[0054]
在一些实施例中,上述第一损失函数为:
[0055][0056]
其中,x
i
表示选取的第i个彩色图像样本,f(
·
)表示单目深度估计网络,f(x
i
)表示选取的第i个彩色图像样本所对应的预测深度图,d
i
表示选取的第i个真实深度图,r(
·
)表示学习网络,r(d
i
)表示第i个真实深度图到由真实深度图张成的潜在流形空间的距离,r(f(x
i
))表示第i个彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离。
[0057]
在本技术实施例中,由于第一损失函数的公式包含r(d
i
)和r(f(x
i
)),也即,包含了选取的彩色图像样本所对应的整张预测深度图,以及选取的整张真实深度图,因此,该第一损失函数能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息。
[0058]
在一些实施例中,上述第二损失函数为:
[0059][0060]
其中,x
j
表示选取的第j个彩色图像样本,f(x
j
)表示选取的第j个彩色图像样本所对应的预测深度图,d
j
表示与选取的第j个彩色图像样本所对应的真实深度图,l
ori
(f(x
j
),d
j
)表示基于预测深度图和真实深度图确定的损失项,r(f(x
j
))表示第j个彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离。
[0061]
本技术实施例中,由于该第二损失函数的输入是预测深度图和该预测深度图对应的真实深度图,因此,上述的l
mde
能够反映同属于同一组深度图预测深度图和真实深度图的特征,也即,后续依据该第二损失函数对单目深度估计网络训练时,能够得到更准确的单目深度估计网络。此外,由于r(d
i
)输出的距离在[0,1]之间,因此,[log(1

r(d
i
))+log(r(f(x
i
)))]的值小于0,也即,l
rn
的值大于0,而l
mde
小于0,也即,通过上述公式求解的l
rn
和l
mde
满足通过第一损失函数获得尽可能大的数值,而通过第二损失函数获得尽可能小的数值的需求。
[0062]
在一些实施例中,上述l
ori
(f(x
j
),d
j
)包括:
[0063]
第一损失项,第一损失项基于预测深度图中各个像素点的深度值和真实深度图中对应的像素点的深度值的差异所计算得到。
[0064]
本实施例中,需要分别计算预测深度图中各个像素点的深度值与真实深度图中对应的像素点的深度值的差异之后,再基于各个深度值的差异确定出对应的第一损失项,也即,计算得到的第一损失项与预测深度图的各个像素点的深度值有关。由于本技术中的单目深度估计网络的输出为预测深度图,因此,设置第二损失函数的l
ori
(f(x
j
),d
j
)包括上述
的第一损失项,有利于提高后续得到的已训练的单目深度估计网络的准确性。
[0065]
在一些实施例中,上述第一损失项的表现形式为:
[0066][0067]
其中,n表示预测深度图(或真实深度图)中像素点的总数,f
i
和d
i
分别表示预测深度图和真实深度图中的第i个像素点的深度值,公式中的“||”表示取绝对值的运算,上述的“∈”为一个非0的常数,以防止“log”项的真数部分为0,即避免出现无意义的l
depth

[0068]
在一些实施例中,上述l
ori
(f(x
j
),d
j
)还包括第二损失项和第三损失项中的至少一种损失项,其中:
[0069]
第二损失项,上述第二损失项基于预测深度图中各个像素点的梯度和真实深度图中对应像素点的梯度的差异所计算得到。
[0070]
其中,第二损失项包括横向梯度和纵向梯度,即
[0071]
l
gradient
=l
dx
+l
dy
[0072][0073][0074]
其中,l
gradient
表示第二损失项,l
dx
表示预测深度图的横向梯度,l
dy
表示预测深度图的纵向梯度,表示预测深度图中第i个像素点的深度值的横向梯度,表示真实深度图中第i个像素点的深度值的横向梯度,表示预测深度图中第i个像素点的深度值的纵向梯度,表示真实深度图中第i个像素点的深度值的纵向梯度。
[0075]
本实施例中,由于梯度能够反映预测深度图的边缘信息,因此,设置第二损失函数还包括上述第二损失项,能够使得后续得到的已训练的单目深度估计网络所输出的深度图保持更多的边缘信息。
[0076]
在一些实施例中,预测深度图中各个像素点的梯度根据预测深度图中各个像素点和预设的滤波器进行卷积得到。
[0077]
本实施例中,和可根据预测深度图和预设的滤波器进行卷积得到。同理,和可根据真实深度图和预设的滤波器进行卷积得到。
[0078]
在一些实施例中,上述的预设的滤波器可为sobel算子,该sobel算子的定义如下:
[0079][0080]
第三损失项,上述第三损失项基于预测深度图中各个像素点的法向量和真实深度
图中对应的像素点的法向量的差异所计算得到。
[0081]
具体地,由于法向量是与平面垂直的,因此,当法向量的方向确定之后,相当于平面的方向也被确定了,而平面的方向属于几何信息的一种。故,若第二损失函数还包括上述的第三损失项,则能够使得后续得到的已训练的单目深度估计网络所输出的深度图保持更多的几何信息。
[0082]
在一些实施例中,上述的第三损失项定义如下:
[0083][0084]
其中,表示预测深度图中第i个像素点所在位置的三维空间中的法向量,表示真实深度图中第i个像素点所在位置的三维空间中的法向量。
[0085]
在一些实施例中,两个法向量分别定义如下:
[0086][0087][0088]
由于等可通过卷积的方式计算得到,而与矩阵求逆等运算相比,卷积的计算速度较快,因此,根据上述定义的和能够快速求得l
normal

[0089]
在一些实施例中,本技术实施例提供的单目深度估计网络的训练方法在对抗训练过程中,包括:
[0090]
根据上述学习网络的网络参数、第二损失函数、预设的第一初始学习率以及预设的动量项,更新单目深度估计网络的网络参数。
[0091]
本实施例中,考虑到adam优化器有着收敛速度快、调参容易等优点,故采用adam优化器更新单目深度估计网络的网络参数。在本实施例中,假设mde

cnn(单目深度估计网络)的网络参数为θ,则其中,ω为rn(学习网络)的网络参数,l
mde
为mde

cnn的损失函数(即第二损失函数),为根据l
mde
对ω求导后所得到的值,lr
f
为预设的第一初始学习率,β1(adam一阶动量项)和β2(adam二阶动量项)为上述预设的动量项。
[0092]
在一些实施例中,本技术实施例提供的单目深度估计网络的训练方法在对抗训练过程中,包括:
[0093]
基于预设的第二初始学习率、预设的动量项以及学习网络上一次确定的网络参数,得到学习网络本次的网络参数。
[0094]
本实施例中,采用adam优化器更新学习网络的网络参数。具体地,结合下式更新学习网络的网络参数:其中,l
rn
为rn的损失函数(即第一损失函数),lr
r
为预设的第二初始学习率。
[0095]
为了更清楚地描述mde

cnn和rn的对抗训练过程,下面结合具体的应用场景进行描述。
[0096]
假设mde

cnn的网络参数为θ,rn的网络参数为ω,adam优化器所需的参数lr
f
(预设的第一初始学习率)、lr
r
(预设的第二初始学习率)、β1(adam一阶动量项)、β2(adam二阶动量项)、一次所取的样本数量b。
[0097]
循环如下迭代直至θ收敛:
[0098]
从包含彩色图像样本和真实深度图的训练数据集s中随机选取b张彩色图像样本{x1,...,x
b
};
[0099]
从s中随机选取b张真实深度图样本{d1,...,d
b
};
[0100]
计算rn的损失函数(即第一损失函数):
[0101][0102]
使用adam优化器更新rn的网络参数
[0103]
从s中随机选取b对彩色图像样本和真实深度图{(x1,d1),

,(x
b
,d
b
)};即,相当于将b组深度图作为输入来计算mde

cnn的损失函数(即第二损失函数):
[0104][0105]
使用adam优化器更新mde

cnn的网络参数:
[0106][0107]
在一些实施例中,mde

cnn可采用如图3所示的网络结构。在图3中,“conv1”、“conv3”、“conv4”、“conv5”和
““
conv6”均表示一个卷积运算,“block1”、“block2”、“block3”和“block4”中的每一个均表示由多个卷积层组成的卷积块,“up1”、“up2”、“up3”、“up4”、“up5”、“up6”、“up7”和“up8”均表示上采样计算,区别在于,“up5”、“up6”、“up7”和“up8”中的每一次上采样,均得到一个尺寸与原图的尺寸相同的特征图,而“up1”、“up2”、“up3”、“up4”中,只有“up4”之后,所得到的特征图的尺寸才与原图的尺寸相同。
[0108]
将“up5”、“up6”、“up7”和“up8”所得到的4个特征图进行融合处理,再与“up4”所得到的特征图进行卷积处理,得到原图对应的深度图。
[0109]
在一些实施例中,rn可采用如下表1所示的网络结构。
[0110]
表1:
[0111][0112][0113]
上述表1中,“layer”表示所在的卷积层,“kernel size”表示卷积核的大小,

stride”表示步长,“output size”表示输出的尺寸大小,“channel”表示通道数。
[0114]
在本技术实施例中,当根据训练训练得到的单目深度估计网络进行深度估计时,其输出的预测深度图的错误率低于现有的深度估计网络所输出的深度图(本技术输出的预测深度图的错误率在0.05~0.526之间,而现有深度估计网络的错误率在0.052~0.907之间),且根据训练训练得到的单目深度估计网络进行深度估计时,其输出的预测深度图的准确率高于现有的深度估计网络所输出的深度图的准确率(本技术输出的预测深度图的准确率在0.869~0.994之间,而现有深度估计网络的准确率在0.611~0.993之间)。当然,上述的错误率可采用均方根误差、平均相对误差等表示,上述的准确率可采用下式确定:的错误率可采用均方根误差、平均相对误差等表示,上述的准确率可采用下式确定:其中,δ
k
,k=1,2,3。
[0115]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0116]
实施例二:
[0117]
对应于上文实施例一的基于预设的损失函数的单目深度估计网络的训练方法,图4示出了本技术实施例提供的基于预设的损失函数的单目深度估计网络的训练装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0118]
参照图4,该基于预设的损失函数的单目深度估计网络的训练装置4包括:训练数据集获取模块41和网络训练模块42。其中:
[0119]
训练数据集获取模块41,用于获取训练数据集,训练数据集包括多个彩色图像样本和每个彩色图像样本的真实深度图。
[0120]
网络训练模块42,用于利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练,得到训练后的单目深度估计网络。
[0121]
在对抗训练过程中,单目深度估计网络的输入为彩色图像样本,单目深度估计网络的输出为彩色图像样本的预测深度图;学习网络的输入为彩色图像样本的预测深度图或真实深度图,学习网络的输出为彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离,或者,学习网络的输出为真实深度图到由真实深度图张成的潜在流形空间的距离;损失函数的输入为彩色图像样本的预测深度图和真实深度图,损失函数的输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值。
[0122]
在本技术实施例中,预设的损失函数的输入为彩色图像样本的预测深度图和真实深度图,输出为基于预测深度图到由真实深度图张成的潜在流形空间的距离所计算得到的数值,而预测深度图到由真实深度图张成的潜在流形空间的距离越小,表示单目深度估计网络输出的预测深度图与真实深度图越接近,即该预设的损失函数是对输入的整张深度图(预测深度图或真实深度图)进行了全局编码后,得到与整张深度图(预测深度图或真实深度图)有关的输出。由于整张深度图包含的信息更多,故该预设的损失函数能够自适应地学习场景的高层的语义特征,因此,在利用训练数据集、单目深度估计网络、学习网络和预设的损失函数进行对抗训练时,能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息,即,当基于训练后的单目深度估计网络进行深度估计时,能够得到更准确的深度信息。
[0123]
在一些实施例中,损失函数包括学习网络的第一损失函数和单目深度估计网络的第二损失函数。
[0124]
其中,上述第一损失函数的输入包括b张彩色图像样本的预测深度图和b张真实深度图,b为大于0的自然数。
[0125]
其中,上述第二损失函数的输入包括b组深度图,其中,每组深度图包括一张彩色图像样本的预测深度图以及与预测深度图对应的真实深度图。
[0126]
本技术实施例中,由于第一损失函数是学习网络所对应的损失函数,因此,不限定输入第一损失函数的预测深度图和真实深度图是否为一组的深度图,从而在基于不同预测深度图与不同的真实深度图确定该第一损失函数的输出值时,有利于根据该第一损失函数训练出能够输出一个尽可能小的距离的学习网络。又由于第二损失函数是单目深度估计网络所对应的损失函数,因此,限定输入第二损失函数的预测深度图和真实深度图为同一组深度图,从而在基于预测深度图与对应的真实深度图确定该第二损失函数的输出值时,有利于根据该第一损失函数训练出能够输出一张尽可能接近真实深度图的预测深度图的单目深度估计网络,即,通过上述限定,能够提高训练出的单目深度估计网络的准确性。
[0127]
在一些实施例中,第一损失函数用于根据彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离获得尽可能大的数值,第二损失函数用于根据彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离获得尽可能小的数值。
[0128]
在一些实施例中,将学习网络输出的距离映射到指定区间,得到映射后的距离,例如,将学习网络输出的距离映射到[0,1]区间。由于映射后的距离只在[0,1]之间,因此能够提高训练的稳定性。
[0129]
在一些实施例中,第一损失函数为:
[0130][0131]
其中,x
i
表示选取的第i个彩色图像样本,f(x
i
)表示选取的第i个彩色图像样本所对应的预测深度图,d
i
表示选取的第i个真实深度图,r(d
i
)表示第i个真实深度图到由真实深度图张成的潜在流形空间的距离,r(f(x
i
))表示第i个彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离。
[0132]
在本技术实施例中,由于第一损失函数的公式包含r(d
i
)和r(f(x
x
)),也即,包含了选取的彩色图像样本所对应的整张预测深度图,以及选取的整张真实深度图,因此,该第一损失函数能够对单目深度估计网络的训练提供高层的语义特征的指导,从而使得训练后的单目深度估计网络所输出的深度图像具有高层的语义信息。
[0133]
在一些实施例中,上述第二损失函数为:
[0134][0135]
其中,x
j
表示选取的第j个彩色图像样本,f(x
j
)表示选取的第j个彩色图像样本所对应的预测深度图,d
j
表示与选取的第j个彩色图像样本所对应的真实深度图,l
ori
(f(x
j
),d
j
)表示基于预测深度图和真实深度图确定的损失项,r(f(x
j
))表示第j个彩色图像样本的预测深度图到由真实深度图张成的潜在流形空间的距离。
[0136]
本技术实施例中,由于该第二损失函数的输入是预测深度图和该预测深度图对应
的真实深度图,因此,上述的l
mde
能够反映同属于同一组深度图预测深度图和真实深度图的特征,也即,后续依据该第二损失函数对单目深度估计网络训练时,能够得到更准确的单目深度估计网络。此外,由于r(d
i
)输出的距离在[0,1]之间,因此,[log(1

r(d
i
))+log(r(f(x
i
)))]的值小于0,也即,l
rn
的值大于0,而l
mme
小于0,也即,通过上述公式求解的l
rn
和l
mde
满足通过第一损失函数获得尽可能大的数值,而通过第二损失函数获得尽可能小的数值的需求。
[0137]
在一些实施例中,上述l
ori
(f(x
j
),d
j
)包括:
[0138]
第一损失项,第一损失项基于预测深度图中各个像素点的深度值和真实深度图中对应的像素点的深度值的差异所计算得到。
[0139]
本技术实施例中,由于本技术中的单目深度估计网络的输出为预测深度图,因此,设置第二损失函数的l
ori
(f(x
j
),d
j
)包括上述的第一损失项,有利于提高后续得到的已训练的单目深度估计网络的准确性。
[0140]
在一些实施例中,上述第一损失项的表现形式为:
[0141][0142]
其中,n表示预测深度图(或真实深度图)中像素点的总数,f
i
和d
i
分别表示预测深度图和真实深度图中的第i个像素点的深度值,公式中的“||”表示取绝对值的运算,上述的“∈”为一个非0的常数,以防止“log”项的真数部分为0,即避免出现无意义的l
depth

[0143]
在一些实施例中,上述l
ori
(f(x
j
),d
j
)还包括第二损失项和第三损失项中的至少一种损失项,其中:
[0144]
第二损失项,第二损失项基于预测深度图中各个像素点的梯度和真实深度图中对应像素点的梯度的差异所计算得到。
[0145]
其中,第二损失项包括横向梯度和纵向梯度,即
[0146]
l
gradient
=l
dx
+l
dy
[0147][0148][0149]
其中,l
gradient
表示第二损失项,l
dx
表示预测深度图的横向梯度,l
dy
表示预测深度图的纵向梯度,表示预测深度图中第i个像素点的深度值的横向梯度,表示真实深度图中第i个像素点的深度值的横向梯度,表示预测深度图中第i个像素点的深度值的纵向梯度,表示真实深度图中第i个像素点的深度值的纵向梯度。
[0150]
本实施例中,由于梯度能够反映预测深度图的边缘信息,因此,设置第二损失函数还包括上述第二损失项,能够使得后续得到的已训练的单目深度估计网络所输出的深度图保持更多的边缘信息。
[0151]
在一些实施例中,预测深度图中各个像素点的梯度根据预测深度图中各个像素点和预设的滤波器进行卷积得到。
[0152]
本实施例中,和可根据预测深度图和预设的滤波器进行卷积得到。同理,和可根据真实深度图和预设的滤波器进行卷积得到。
[0153]
在一些实施例中,上述的预设的滤波器可为sobel算子,该sobel算子的定义如下:
[0154][0155]
第三损失项,第三损失项基于预测深度图中各个像素点的法向量和真实深度图中对应的像素点的法向量的差异所计算得到。
[0156]
在一些实施例中,上述的第三损失项定义如下:
[0157][0158]
其中,表示预测深度图中第i个像素点所在位置的三维空间中的法向量,表示真实深度图中第i个像素点所在位置的三维空间中的法向量。
[0159]
在一些实施例中,两个法向量分别定义如下:
[0160][0161][0162]
由于等可通过卷积的方式计算得到,而与矩阵求逆等运算相比,卷积的计算速度较快,因此,根据上述定义的和能够快速求得l
normal

[0163]
在一些实施例中,本技术实施例的网络训练模块42在对抗训练过程中,包括:
[0164]
根据上述学习网络的网络参数、第二损失函数、预设的第一初始学习率以及预设的动量项,更新单目深度估计网络的网络参数。
[0165]
在一些实施例中,本技术实施例的网络训练模块42在对抗训练过程中,包括:
[0166]
基于预设的第二初始学习率、预设的动量项以及学习网络上一次确定的网络参数,得到学习网络本次的网络参数。
[0167]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0168]
实施例三:
[0169]
图5为本技术一实施例提供的电子设备的结构示意图。如图5所示,该实施例的电子设备5包括:至少一个处理器50(图5中仅示出一个处理器)、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个方法实施例中的步骤。
[0170]
所述电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是电子设备5的举例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0171]
所称处理器50可以是中央处理单元(central processing unit,cpu),该处理器50还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0172]
所述存储器51在一些实施例中可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0173]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0174]
本技术实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
[0175]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0176]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。
[0177]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可
以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0178]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0179]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0180]
在本技术所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0181]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0182]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1