深度估计网络的训练方法、图像的深度估计方法、设备与流程

文档序号:24417622发布日期:2021-03-26 21:27阅读:61来源:国知局
深度估计网络的训练方法、图像的深度估计方法、设备与流程

1.本申请涉及人工智能技术领域,具体涉及计算机视觉、深度学习和图像处理技术。更具体地,本申请提供了一种深度估计网络的训练方法和装置、图像的深度估计方法和装置、电子设备和存储介质。


背景技术:

2.图像的深度估计是计算机视觉领域中不可或缺的技术,广泛应用于视频特效、混合现实、辅助驾驶等多种场景。
3.目前,可以基于相机拍摄的大量样本图像进行训练得到用于深度估计的神经网络,之后,使用经训练的神经网络来估计图像的深度信息,以实现图像的深度估计。但是图像中的运动物体会影响神经网络的训练精度,导致神经网络估计图像深度信息不准确。


技术实现要素:

4.提供了一种深度估计网络的训练方法和装置、图像的深度估计方法和装置、电子设备和存储介质。
5.根据第一方面,提供了一种深度估计网络的训练方法,该方法包括:使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像;从原始图像去除运动对象,得到原始图像的预处理图像;基于原始图像来估计位姿,并基于预处理图像修正位姿;根据原始图像、深度图像和经修正的位姿来调整深度估计网络的参数。
6.根据第二方面,提供了一种图像的深度估计方法,该方法包括:获取待估计的图像;使用深度估计网络对待估计的图像进行深度估计,得到待估计的图的深度图像。
7.根据第三方面,提供了一种深度估计网络的训练装置,该装置包括:第一估计模块,用于使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像;去除模块,用于从原始图像去除运动对象,得到原始图像的预处理图像;处理模块,用于基于原始图像来估计位姿,并基于预处理图像修正位姿;调整模块,用于根据原始图像、深度图像和经修正的位姿来调整深度估计网络的参数。
8.根据第四方面,提供了一种图像的深度估计装置,该装置包括:获取模块,用于获取待估计的图像;第二估计模块,用于使用深度估计网络对待估计的图像进行深度估计,得到待估计的图的深度图像。
9.根据第五方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本申请提供的方法。
10.根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本申请提供的方法。
11.根据第七方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现根据本申请提供的方法。
12.应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用于更好地理解本方案,不构成对本申请的限定。其中:
14.图1是根据本申请一个实施例的可以应用深度估计网络的训练方法和装置以及图像的深度估计方法和装置的示例性系统架构;
15.图2是根据本申请的一个实施例的深度估计网络的训练方法的流程图;
16.图3是根据本申请的一个实施例的从原始图像去除运动对象方法的流程图;
17.图4是根据本申请的一个实施例的调整深度估计网络的参数的方法的流程图;
18.图5是根据本申请的一个实施例的确定深度估计网络的损失的方法的流程图;
19.图6是是根据本申请的一个实施例的深度估计网络的训练方法的示意图;
20.图7是根据本申请的一个实施例的图像的深度估计方法的流程图;
21.图8是根据本申请的一个实施例的深度估计网络的训练装置的框图;
22.图9是根据本申请的一个实施例的图像的深度估计装置的框图;以及
23.图10是根据本申请一个实施例的深度估计网络的训练方法的电子设备的框图。
具体实施方式
24.以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
25.目前,可以基于相机拍摄的大量样本图像进行训练得到用于深度估计的神经网络,即深度估计网络,之后,使用深度估计网络估计待估计的图像的深度信息,以实现图像的深度估计。深度估计网络的训练可以是无监督训练。
26.无监督的深度估计训练主要包括两大类方法,一是基于单目相机拍摄的图像集,针对图像集中相邻帧图像分别估计图像深度和前后帧的位姿,通过图像深度和位姿重映射图像,根据重映射图像的误差来引导网络训练。二是基于相机拍摄的图像集,通过预测图像集左右双目图像之间的视差图与视差的左右一致性,来学习视差图,进而根据相机的基线和焦距计算得到深度值。
27.但是,基于前后位姿估计的方法容易受到运动物体的影响,导致估计的位姿不准确,进而影响到计算重映射误差。基于双目视频的方法需要一个额外相机,计算复杂度增加,此外左右双目相机的标定和校正精度也会影响到深度估计的精度。
28.图1是根据本申请一个实施例的可以应用深度估计网络的训练方法和装置以及图像的深度估计方法和装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本申请实施例的系统架构的示例,以帮助本领域技术人员理解本申请的技术内容,但并不意味着本申请实施例不可以用于其他设备、系统、环境或场景。
29.如图1所示,根据该实施例的系统架构100可以包括多个终端设备101、网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可
以包括各种连接类型,例如有线和/或无线通信链路等等。
30.终端设备101可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机等等。服务器103可以是具有一定数据处理和计算能力的电子设备,并且能够为终端设备101提供业务支撑。
31.示例性地,服务器103用于根据样本图像集训练深度估计神经网络,具体地,针对图像集中相邻帧图像分别估计图像深度和前后帧的位姿,通过图像深度和位姿重映射图像,根据重映射图像的误差来引导网络训练,得到经训练的深度估计网络。
32.示例性地,用户可以通过终端设备101与服务器103进行交互,例如,用户通过终端设备101上传待估计的图像,终端设备101将待估计的图像发送给服务器103,服务器103使用经训练的深度估计网络对待估计图像进行深度估计,得到待估计图像的深度信息,从而生成待估计图像的深度图,然后可以将深度图通过网络102发送给终端设备101,以供用户使用。
33.图2是根据本申请的一个实施例的深度估计网络的训练方法的流程图。
34.如图2所示,该深度估计网络的训练方法200可以包括操作s210~操作s240。
35.在操作s210,使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像。
36.根据本申请的实施例,原始图像可以是连续视频中的相邻两帧图像,分别可以称为第一原始图像和第二原始图像,第二原始图像可以是第一原始图像的下一帧图像或上一帧图像。深度估计网络可以分别估计第一原始图像和第二原始图像的深度信息,基于第一原始图像的深度信息生成第一原始图像的深度图,基于第二原始图像的深度信息生成第二原始图像的深度图。
37.在操作s220,从原始图像去除运动对象,得到原始图像的预处理图像。
38.根据本申请的实施例,可以基于第一原始图像和第二原始图像中每个像素点的位置坐标信息估计该相邻两帧图像之间的位姿。第一原始图像和第二原始图像中可以包括道路、树木、行人、车辆等对象,其中的行人、车辆和骑行者等运动对象会造成第一原始图像和第二原始图像之间位姿估计不准。因此,可以将第一原始图像和第二原始图像中的运动对象剔除,得到第一原始图像的预处理图像和第二原始图像的预处理图像。可以理解,剔除第一原始图像中的运动对象的预处理图像和剔除第二原始图像中的运动对象的预处理图像可以用于后续位姿的修正,以提高位姿估计的准确性。
39.示例性地,可以使用分割网络分别对第一原始图像和第二原始图像进行分割,分割网络可以分别将第一原始图像和第二原始图像中的对象分割到不同的区域,得到第一原始图像的分割图和第二原始图像的分割图。例如,第一原始图像中包括4个对象,分别是道路、树木、行人和车辆,分割网络可以将第一原始图像分割为4个区域,每个区域分别包括道路、树木、行人和车辆。第二原始图像的分割类似,这里不再赘述。需要说明的是,由于第一原始图像和第二原始图像是相邻帧的图像,第一原始图像和第二原始图像一般包括相同的对象。
40.在操作s230,基于原始图像来估计位姿,并基于预处理图像修正位姿。
41.根据本申请的实施例,可以使用位姿估计网络来估计第一原始图像和第二原始图像之间的初始位姿,其中,位姿估计网络可以是经大量样本图像训练得到的用于位姿估计
的神经网络。由于第一原始图像和第二原始图像中包括运动对象,使用位姿估计网络基于第一原始图像和第二原始图像估计出的位姿受运动对象影响可能估计不准,而第一原始图像的预处理图像和第二原始图像的预处理图像剔除了运动对象,因此可以使用第一原始图像的预处理图像和第二原始图像的预处理图像修正初始位姿,得到更准确的位姿。
42.具体地,基于第一原始图像的预处理图像中每个像素点的位置坐标、第一原始图像的深度图像的深度信息以及相机与像素坐标之间的转换关系,可以计算第一原始图像的预处理图像中每个像素点映射到三维空间中的坐标信息,从而得到第一原始图像的预处理图像的点云集。基于第二原始图像的预处理图像中每个像素点的位置坐标、第二原始图像的深度图像的深度信息以及相机与像素坐标之间的转换关系,可以计算第二原始图像的预处理图像中每个像素点映射到三维空间中的坐标信息,从而得到第二原始图像的预处理图像的点云集。可以理解,基于深度图像以及相机与像素坐标之间的转换关系,可以将二维的预处理图像中的像素点坐标映射到三维空间中,得到预处理图像中每个像素点的三维空间坐标。
43.基于第一原始图像的预处理图像的点云集、第二原始图像的预处理图像的点云集以及初始位姿,可以通过迭代最近邻点(iterative closest point,icp)算法重新计算位姿,得到修正后的位姿。
44.在操作s240,根据原始图像、深度图像和经修正的位姿来调整深度估计网络的参数。
45.根据本申请的实施例,根据经修正的位姿、第二原始图像中每个像素点的位置信息和第二原始图像的深度图像中每个像素点的深度信息,可以对第二原始图像进行重映射,得到第二原始图像的投影图像。第二原始图像的投影图像应尽量还原第一原始图像,因此,该投影图像与第一图像之间的差异可以作为深度估计网络的一部分损失。此外,第一原始图像和第一原始图像的深度图像的梯度应尽量一致,因此,第一原始图像和第一原始图像的深度图像的梯度误差也可以作为深度估计网络的一部分损失。
46.基于投影图像与第一图像之间的差异以及第一原始图像和第一原始图像的深度图像的梯度误差可以得到深度估计网络的总体损失,基于深度估计网络的总体损失可以调整深度估计网络的参数,然后针对新的原始图像,返回操作s210,重复上述训练过程,直至深度估计网络的总体损失满足预设的停止条件,得到经训练的深度估计网络。
47.根据本申请的实施例,使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像,从原始图像去除运动对象,得到原始图像的预处理图像,基于原始图像来估计位姿,并基于预处理图像修正位姿,根据原始图像、深度图像和经修正的位姿来调整深度估计网络的参数。由于从原始图像去除了运动对象,可以减少运动对象对网络训练的影响,提高网络训练的精度。
48.可以理解,本申请实施例一方面通过剔除运动物体来引导更准确的位姿估计,从而提高深度估计网络训练的精度。另一方面通过定义第一原始图像和第一原始图像的深度图像的梯度误差,约束深度图像中同一个物体对象所在区域的深度的连续性,能够得到鲁棒性更高的深度信息。
49.图3是根据本申请的一个实施例的从原始图像去除运动对象方法的流程图。
50.如图3所示,该方法可以包括操作s321~操作s322。
51.在操作s321,使用分割网络分别对第一原始图像和第二原始图像进行分割,得到第一原始图像的分割图像和第二原始图像的分割图像。
52.根据本申请的实施例,分割网络可以是语义分割网络,图像拍摄场景对应的语义对象可以包括道路、树木、行人、车辆、红绿灯、路标等。第一原始图像的分割图像和第二原始图像的分割图像中各自包括多个语义对象。例如,第一原始图像和第二原始图像中可以包括道路、树木、行人、车辆等对象,使用语义分割网络可以将这些不同的对象分割到不同的区域,得到第一原始图像的分割图和第二原始图像的分割图。示例性地,使用语义分割网络将第一原始图像中的道路、树木、行人、车辆分割到不同的区域,在第一原始图像的深度图像中可以包括道路所在区域、树木所在区域、行人所在区域和车辆所在区域。
53.具体地,语义分割网络可以是deeplabv3+、pspnet和mask r

cnn等,本申请实施例对语义分割网络不做限定。
54.在操作s322,分别从第一原始图像的分割图像和第二原始图像的分割图像中去除多个对象中的运动对象,得到第一原始图像的预处理图像和第二原始图像的预处理图像。
55.根据本申请的实施例,第一原始图像的分割图像和第二原始图像的分割图像中的行人、车辆和骑行者等运动对象会造成第一原始图像和第二原始图像之间位姿估计不准。因此,可以将第一原始图像的分割图像和第二原始图像的分割图像中的运动对象剔除,得到第一原始图像的预处理图像和第二原始图像的预处理图像。可以理解,剔除运动对象的第一原始图像的预处理图像和第二原始图像的预处理图像可以用于后续位姿的修正,以提高位姿估计的准确性。
56.根据本申请的实施例,在使用深度估计网络估计第一原始图像和第二原始图像的深度图像时,为提高深度估计的准确性,针对估计第一原始图像的深度图像,可以将第一原始图像和第一原始图像的分割图像一起作为深度估计网络的输入,由于在第一原始图像的分割图像中对不同对象进行了分割,可以减少不同对象之间的影响,因此,深度估计网络输出的第一原始图像的深度图像更加准确。同理,针对估计第二原始图像的深度图像,可以将第二原始图像和第二原始图像的分割图像一起作为深度估计网络的输入,深度估计网络输出的第二原始图像的深度图像。
57.根据本申请的实施例,使用位姿估计网络估计第一原始图像和第二原始图像之间的位姿得到的初始位姿可以记为其中,r和t分别是相机的旋转矩阵和平移矩阵。在得到第一原始图像的预处理图像、第一原始图像的深度图像、第二原始图像的预处理图像和第二原始图像的深度图像之后,可以基于第一原始图像的预处理图像、第一原始图像的深度图像、第二原始图像的预处理图像和第二原始图像的深度图像可以修正位姿,修正后的位姿可以记为
58.根据本申请的实施例,修正位姿的过程如下:
59.首先,分别计算第一原始图像的预处理图像和第二原始图像的预处理图像中每个像素点的空间坐标,即第一原始图像的预处理图像的点云集和第二原始图像的预处理图像的点云集。
60.具体地,第一原始图像的预处理图像的点云集可以记为p
t
,第二原始图像的预处
理图像的点云集可以记为p
t+1
。基于相机与像素坐标的转换关系可以将二维像素坐标转换为三维空间坐标,则二维图像中像素点转换为三维点云中的点的转换方程由如下公式一表示。
[0061][0062]
其中,p
z
是像素点p的深度值,u和v表示像素坐标,p
x
、p
y
、p
z
是像素点p映射到空间中的点的空间坐标,k是相机的内参。针对三维点云中的每个点p
i
,p
i
的坐标由如下公式二表示。
[0063][0064]
其中,k
‑1表示k的逆矩阵,x,y,z表示p
i
的空间坐标,f
x
,f
y
是沿着x和y方向上的像素焦距,[c
x
,c
y
]是相机的主点,即相机的中心。
[0065]
然后,基于第一原始图像的预处理图像的点云集和第二原始图像的预处理图像的点云集修正初始位姿pose。
[0066]
具体地,第一原始图像的预处理图像的点云集p
t
和第二原始图像的预处理图像的点云集p
t+1
是剔除运动物体得到的两组点云。基于始位姿pose以及p
t
和p
t+1
两组点云,通过icp可以算法重新计算位姿,得到修正后的位姿其中,r

和t

分别是修正后的旋转矩阵和平移矩阵。
[0067]
icp算法是对匹配好的两组点之间进行运动估计的算法,两组点可以是基于第一原始图像的预处理图像的点云集和第二原始图像的预处理图像的点云集,两组点可通过距离最近进行匹配,使得每个点都有对应的映射点,然后,根据基于每一对匹配好的点不断迭代进行运动估计,直至满足预设停止条件,得到经修正的位姿。
[0068]
图4是根据本申请的一个实施例的调整深度估计网络的参数的方法的流程图。
[0069]
如图4所示,该方法包括操作s441~操作s443。
[0070]
在操作s441,基于经修正的位姿、第二原始图像和第二原始图像的深度图像,生成第二原始图像的投影图像。
[0071]
根据本申请的实施例,根据经修正的位姿、第二原始图像中每个像素点的位置信息和第二原始图像的深度图像中每个像素点的深度信息,可以对第二原始图像进行重映射,得到第二原始图像的投影图像。
[0072]
具体地,基于两帧图像之间的位姿,可以将后一帧图像进行重映射以还原前一帧图像。示例性地,经修正位姿记为pose

,第一原始图像记为i
t
,第二原始图像记为i
t+1
,第二原始图像i
t+1
进行重映射得到投影图像记为第二原始图像i
t+1
中的每一个像素点记为p

t+1
,p

t+1
=[u,v,1]
t
,第二原始图像的深度信息记为投影图像中每个像素点的
像素坐标记为则由如下公式三表示。
[0073][0074]
在操作s442,基于第一原始图像和投影图像之间的差异以及第一原始图像和第一原始图像的深度图像之间的差异,确定深度估计网络的损失。
[0075]
根据本申请的实施例,第二原始图像的投影图像应尽量还原第一原始图像,因此,该投影图像与第一图像之间的差异可以作为深度估计网络的一部分损失。此外,第一原始图像和第一原始图像的深度图像的梯度应尽量一致,因此,第一原始图像和第一原始图像的深度图像的梯度误差也可以作为深度估计网络的一部分损失。
[0076]
具体地,投影图像应尽量与第一原始图像i
t
相似,可以基于投影图像与第一原始图像i
t
之间的相似度和灰度差异来定义投影图像与第一原始图像i
t
之间的光度误差,该光度误差作为深度估计网络的一部分损失。此外,第一原始图像i
t
的深度图像可以记为d
t
,则i
t
与d
t
的梯度应尽量一致,可以基于第一原始图像i
t
的梯度和第一原始图像的深度图像d
t
的深度差异来定义第一原始图像i
t
和第一原始图像i
t
的深度图像d
t
之间的梯度误差,该梯度误差作为深度估计网络的另一部分损失。
[0077]
在操作s443,基于深度估计网络的损失调整深度估计网络的参数。
[0078]
根据本申请的实施例,基于投影图像与第一原始图像i
t
之间的光度误差以及第一原始图像i
t
和第一原始图像i
t
的深度图像d
t
之间的梯度误差,可以计算深度估计网络的总体损失,基于深度估计网络的总体损失可以调整深度估计网络的参数,然后针对新的原始图像,返回操作s210,重复上述训练过程,直至深度估计网络的总体损失满足预设的停止条件,得到经训练的深度估计网络。
[0079]
根据本申请的实施例,投影图像与第一原始图像i
t
之间的光度误差可以由如下公式四表示。
[0080][0081]
其中,ssim(structural similarity index,结构相似性)是用于衡量两幅图像相似度的指标,α是一个权重平衡超参。表示两幅图像的灰度差异。
[0082]
图5是根据本申请的一个实施例的确定深度估计网络的损失的方法的流程图。
[0083]
如图5所示,该方法包括操作s5421~操作s5424。
[0084]
在操作s5421,基于第一原始图像的预处理图像,确定第一原始图像中的各个对象在第一原始图像中所在的区域以及在第一原始图像的深度图像中所在的区域。
[0085]
根据本申请的实施例,第一原始图像的预处理图像可以记为mask
t
,基于mask
t
中的各个对象(例如可以包括道路、树木、天空、红绿灯等静态对象),可以确定这些静态对象在第一原始图像i
t
中所在的区域,以及这些静态对象在第一原始图像的深度图像d
t
中所在的区域。
[0086]
在操作s5422,计算第一原始图像中各个对象所在区域的第一梯度以及第一原始图像的深度图像中各个对象所在区域的第二梯度。
[0087]
根据本申请的实施例,可以利用分割区域信息,计算每一个对象在第一原始图像
i
t
中所在区域的梯度(记为第一梯度),以及每一个对象在第一原始图像的深度图像d
t
中所在区域的梯度。
[0088]
在操作s5423,使用预设的第二损失函数基于第一梯度和第二梯度,针对各个对象计算第一原始图像和第一原始图像的深度图像之间的梯度误差。
[0089]
根据本申请的实施例,基于各个对象的第一梯度和第二梯度计算各个对象所在i
t
中的区域和所在d
t
中的区域的梯度误差。可以理解,第一原始图像的深度图像d
t
中同一对象的深度应平滑,基于同一对象所在i
t
中的区域和所在d
t
中的区域的梯度误差定义该同一对象所在d
t
中的区域的深度平滑度,可以对同一对象所在区域的深度平滑性进行约束,惩罚深度跳变较大的情形。
[0090]
对于同一对象m,针对对象m计算第一原始图像i
t
和第一原始图像的深度图像d
t
之间的梯度误差可以由如下公式五表示。
[0091][0092]
其中,表示对象m在第一原始图像i
t
中所在区域的梯度,表示对象m在第一原始图像的深度图像d
t
中所在区域的梯度,s为对象m在第一原始图像i
t
中所在区域的像素点集,也可以称为是在第一原始图像的深度图像d
t
中所在区域的像素点集。
[0093]
根据本申请的实施例,深度估计网络的学习应使得第一深度图像d
t
中属于同一对象所在区域的深度尽量平滑,可以基于第一原始图像i
t
的梯度与第一深度图像d
t
梯度之间的差异来定义第一深度图像d
t
中属于同一对象所在区域的深度的平滑度。因此,可以将第一原始图像i
t
与第一深度图像d
t
之间的梯度误差作为深度估计网络的一部分损失。通过约束深度图像中同一个物体对象所在区域的深度的连续性,能够使得经训练的深度估计网络能够估计出鲁棒性更高的深度信息。
[0094]
在操作s5424,基于针对各对象的梯度误差,计算第一原始图像和第一原始图像的深度图像之间的总体梯度误差。
[0095]
根据本申请的实施例,基于针对各个对象m的梯度误差可以计算总体的梯度误差,例如可以将针对各个对象m的梯度误差之和作为总体的梯度误差。
[0096]
根据本申请的实施例,基于光度误差和梯度误差l
smooth
(d
t
)可以计算深度估计网络的总体损失。深度估计网络的总体损失例如可以用如下公式六表示。
[0097][0098]
根据本申请的实施例,在深度估计网络的总体损失l不满足预设条件(如收敛)的情况下可以调整深度估计网络的参数,使用调整参数后的深度估计网络重复上述训练过程,直至损失l满足预设条件。
[0099]
根据本申请的实施例,在深度估计网络的总体损失l不满足预设条件的情况下,还可以调整位姿估计网络的参数,即同时更新深度估计网络和位姿估计网络,使用更新的深度估计网络和位姿估计网络重复上述训练过程,直至损失l满足预设条件。这样能够同时训练深度估计网络和位姿估计网络,得到经训练的深度估计网络和位姿估计网络。
[0100]
图6是根据本申请的一个实施例的深度估计网络的训练方法的示意图。
[0101]
如图6所示,第一原始图像记为i
t
,第二原始图像记为i
t+1
,其中,t表示当前帧,t+1
表示当前帧的后一帧。第一原始图像的分割图像记为第一分割图像s
t
,第二原始图像的分割图像记为第二分割图像s
t+1
,第一原始图像的预处理图像记为第一预处理图像mask
t
,第二原始图像的预处理图像记为第二预处理图像mask
t+1
,第一原始图像的深度图像记为第一深度图像d
t
,第二原始图像的深度图像记为第二深度图像d
t+1

[0102]
根据本申请的实施例,将第一原始图像i
t
和第二原始图像i
t+1
分别输入到分割网络,分割网络分别输出第一分割图像s
t
和第二分割图像s
t+1
。其中,分割网络可以是语义分割网络,语义分割网络用于将不同的语义对象进行分割,图像场景的语义对象可以包括道路、树木、行人和车辆等,则语义分割网络可以将道路、树木、行人和车辆等不同的语义对象分割到不同的区域,得到第一分割图像s
t
和第二分割图像s
t+1

[0103]
根据本申请的实施例,分别在第一分割图像s
t
和第二分割图像s
t+1
中去除运动对象(如行人和车辆),得到仅包括静态对象(如道路和树木)的第一预处理图像mask
t
和第二预处理图像mask
t+1

[0104]
根据本申请的实施例,将第一原始图像i
t
和第一分割图像s
t
合并后一起输入到深度估计网络,将第二原始图像i
t+1
和第二分割图像s
t+1
合并后一起输入到深度估计网络,深度估计网络分别输出第一深度图像d
t
和第二深度图像d
t+1

[0105]
根据本申请的实施例,将第一原始图像i
t
和第二原始图像i
t+1
一起输入到位姿估计网络,位姿估计网络输出第一原始图像i
t
和第二原始图像i
t+1
之间的初始位姿矩阵pose。
[0106]
根据本申请的实施例,根据第一预处理图像mask
t
中每个像素点的位置信息和第一深度图像d
t
中每个像素点的深度信息,通过相机与像素坐标的转换关系,将第一预处理图像mask
t
中每个像素点映射到三维空间中,得到第一预处理图像mask
t
的三维空间点云集p
t
,同理将第二预处理图像mask
t
中每个像素点映射到三维空间中,得到第二预处理图像mask
t+1
的三维空间点云集p
t+1
。基于初始位姿矩阵pose、点云集p
t
和点云集p
t+1
重新计算位姿,得到更新的位姿矩阵pose


[0107]
根据本申请的实施例,基于更新的位姿矩阵pose

,可以将第二原始图像i
t+1
重映射为投影图像具体可以基于更新的位姿矩阵pose

、第二原始图像i
t+1
中每个像素点的位置信息和第二深度图像d
t+1
中每个像素点的深度信息,计算第二原始图像i
t+1
中每个像素点重映射到投影图像中每个像素点的位置信息。
[0108]
根据本申请的实施例,深度估计网络的学习应使得第一原始图像i
t
和投影图像尽量相似,可以基于第一原始图像i
t
和投影图像之间的结构相似度和灰度差异作为第一原始图像i
t
和投影图像之间的光度误差,光度误差作为深度估计网络的一部分损失。
[0109]
根据本申请的实施例,深度估计网络的学习应使得第一深度图像d
t
中属于同一对象所在区域的深度尽量平滑,可以基于第一原始图像i
t
的梯度与第一深度图像d
t
梯度之间的差异来定义第一深度图像d
t
中属于同一对象所在区域的深度的平滑度。因此,可以将第一原始图像i
t
与第一深度图像d
t
之间的梯度误差作为深度估计网络的另一部分损失。通过约束深度图像中同一个物体对象所在区域的深度的连续性,能够使得经训练的深度估计网络能够估计出鲁棒性更高的深度信息。
[0110]
根据本申请的实施例,光度误差和梯度误差之和作为总体损失loss。基于总体损
失loss可以调整深度估计网络的参数,然后针对新的原始图像,基于调整参数后的深度估计网络重复上述步骤,直至总体损失loss收敛。可以理解,基于总体损失loss可以调整位姿估计网络的参数,使用调整参数后的位姿估计网络重复上述步骤,直至总体损失loss收敛。
[0111]
图7是根据本申请的一个实施例的图像的深度估计方法的流程图。
[0112]
如图7所示,该深度估计网络的训练方法700可以包括操作s710~操作s720。
[0113]
在操作s710,获取待估计的图像。
[0114]
在操作s720,使用深度估计网络对待估计的图像进行深度估计,得到待估计的图的深度图像。
[0115]
根据本申请的实施例,利用上述训练方法进行训练得到的深度估计网络可以实现图像的深度估计。具体地,将待估计图像输入到经训练的深度估计网络可以输出待估计图像的深度图像。由于在上述训练方法中去除了运动对象,能够得到更准确的位姿,提高深度估计网络的训练精度,且上述训练方法约束了深度图像中同一个物体对象所在区域的深度的连续性,能够使得经训练的深度估计网络能够估计出鲁棒性更高的深度信息。
[0116]
图8是根据本申请的一个实施例的深度估计网络的训练装置的框图。
[0117]
如图8所示,该深度估计网络的训练装置800可以包括第一估计模块810、第一处理模块820、第二处理模块830和第一调整模块840。
[0118]
第一估计模块810用于使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像。
[0119]
第一处理模块820用于从原始图像去除运动对象,得到原始图像的预处理图像。
[0120]
第二处理模块830用于基于原始图像来估计位姿,并基于预处理图像修正位姿。
[0121]
第一调整模块840用于根据原始图像、深度图像和经修正的位姿来调整深度估计网络的参数。
[0122]
根据本申请的实施例,第一处理模块820包括分割单元和处理单元。
[0123]
分割单元用于使用分割网络分别对第一原始图像和第二原始图像进行分割,得到第一原始图像的分割图像和第二原始图像的分割图像,第一原始图像的分割图像和第二原始图像的分割图像中各自包括多个对象。
[0124]
处理单元用于分别从第一原始图像的分割图像和第二原始图像的分割图像中去除多个对象中的运动对象,得到第一原始图像的预处理图像和第二原始图像的预处理图像。
[0125]
根据本申请的实施例,第一估计模块810包括第一估计单元和第二估计单元。
[0126]
第一估计单元用于使用深度估计网络基于第一原始图像和第一原始图像的分割图像对第一原始图像进行深度估计,得到第一原始图像的深度图像。
[0127]
第二估计单元用于使用深度估计网络基于第二原始图像和第二原始图像的分割图像对第二原始图像进行深度估计,得到第二原始图像的深度图像。
[0128]
根据本申请的实施例,第二处理模块830包括第三估计单元和修正单元。
[0129]
第三估计单元用于使用位姿估计网络估计第一原始图像和第二原始图像之间的位姿。
[0130]
修正单元用于基于第一原始图像的预处理图像、第一原始图像的深度图像、第二原始图像的预处理图像和第二原始图像的深度图像修正位姿。
[0131]
根据本申请的实施例,修正单元包括第一计算子单元、第二计算子单元和修正子单元。
[0132]
第一计算子单元用于基于第一原始图像的预处理图像中每个像素点的位置信息和第一原始图像的深度图像的深度信息,计算第一原始图像的预处理图像中每个像素点的空间坐标信息。
[0133]
第二计算子单元用于基于第二原始图像的预处理图像中每个像素点的位置信息和第二原始图像的深度图像的深度信息,计算第二原始图像的预处理图像中每个像素点的空间坐标信息。
[0134]
修正子单元用于基于第一原始图像的预处理图像中各个像素点的空间坐标信息和第二原始图像的预处理图像中各个像素点的空间坐标信息修正位姿。
[0135]
根据本申请的实施例,第一调整模块840包括生成单元、确定单元和调整单元。
[0136]
生成单元用于基于经修正的位姿、第二原始图像和第二原始图像的深度图像,生成第二原始图像的投影图像。
[0137]
确定单元用于基于第一原始图像和投影图像之间的差异以及第一原始图像和第一原始图像的深度图像之间的差异,确定深度估计网络的损失。
[0138]
调整单元用于基于深度估计网络的损失调整深度估计网络的参数。
[0139]
根据本申请的实施例,生成单元包括第三计算子单元和生成子单元。
[0140]
第三计算子单元用于基于经修正的位姿、第二原始图像中每个像素点的位置信息和第二原始图像的深度图像中每个像素点的深度信息,计算第二原始图中每个像素点的投影位置信息。
[0141]
生成子单元用于基于第二原始图中各像素点的投影位置信息生成投影图。
[0142]
根据本申请的实施例,确定单元包括第四计算子单元、第五计算子单元和第六计算子单元。
[0143]
第四计算子单元用于使用预设的第一损失函数计算第一原始图像和投影图像之间的光度误差。
[0144]
第五计算子单元用于使用预设的第二损失函数计算第一原始图像和第一原始图像的深度图像之间的梯度误差。
[0145]
第六计算子单元用于基于光度误差和梯度误差,计算深度估计网络的损失。
[0146]
根据本申请的实施例,第五计算子单元用于基于第一原始图像的预处理图像,确定第一原始图像中的各个对象在第一原始图像中所在的区域以及在第一原始图像的深度图像中所在的区域;计算第一原始图像中各个对象所在区域的第一梯度以及第一原始图像的深度图像中各个对象所在区域的第二梯度;使用预设的第二损失函数基于第一梯度和第二梯度,针对各个对象计算第一原始图像和第一原始图像的深度图像之间的梯度误差;基于针对各对象的梯度误差,计算第一原始图像和第一原始图像的深度图像之间的总体梯度误差。
[0147]
根据本申请的实施例,第一调整模块840用于在深度估计网络的损失不满足预设条件的情况下,调整深度估计网络的参数,并针对新的原始图像返回使用深度估计网络对原始图像进行深度估计的步骤。
[0148]
根据本申请的实施例,深度估计网络的训练装置800还包括第二调整模块。
[0149]
第二调整模块用于根据原始图像、深度图像和经修正的位姿来调整位姿估计网络的参数。
[0150]
图9是根据本申请的一个实施例的图像的深度估计装置的框图。
[0151]
如图9所示,该图像的深度估计装置900可以包括获取模块910和第二估计模块920。
[0152]
获取模块910用于获取待估计的图像。
[0153]
第二估计模块920用于使用深度估计网络对待估计的图像进行深度估计,得到待估计的图的深度图像。
[0154]
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。计算机程序产品可以包括计算机程序,该计算机程序被计算机执行时实现根据本申请提供的方法。
[0155]
如图10所示,是根据本申请一个实施例的深度估计网络的训练方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0156]
如图10所示,该电子设备1000包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。
[0157]
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的深度估计网络的训练方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的深度估计网络的训练方法。
[0158]
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的深度估计网络的训练的方法对应的程序指令/模块(例如,附图8所示的第一估计模块810、第一处理模块820、第二处理模块830和第一调整模块840)。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的深度估计网络的训练方法。
[0159]
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据深度估计网络的训练方法的电子设备1000的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器
件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至深度估计网络的训练方法的电子设备1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0160]
深度估计网络的训练方法的电子设备1000还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。
[0161]
输入装置1003可接收输入的数字或字符信息,以及产生与深度估计网络的训练方法的电子设备1000的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0162]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0163]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0164]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0165]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0166]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。
[0167]
根据本申请实施例的技术方案,使用深度估计网络对原始图像进行深度估计,得到原始图像的深度图像,从原始图像去除运动对象,得到原始图像的预处理图像,基于所述原始图像来估计位姿,并基于所述预处理图像修正所述位姿,根据所述原始图像、所述深度图像和经修正的位姿来调整所述深度估计网络的参数。由于从原始图像去除了运动对象,可以减少运动对象对网络训练的影响,提高网络训练的精度。
[0168]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0169]
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1