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

一种深度图去噪方法、装置、电子设备及介质与流程

2021-11-09 21:19:00 来源:中国专利 TAG:


1.本技术实施例涉及人工智能技术领域,尤其涉及一种深度图去噪方法、装置、电子设备及介质。


背景技术:

2.散斑深度相机通常包括投影仪和双目相机两个组成部分。由于立体匹配算法需要依靠拍摄场景本身的特征来建立匹配关系,因此,越复杂的场景其匹配成功率越高,但是对于本身特征较少的拍摄场景,匹配算法难以正常工作,因此需要利用投影仪投射散斑图案来增加场景特征,再利用双目相机进行场景拍摄。
3.目前的散斑三维相机,受拍摄环境光源、拍摄物体的材质以及相机本身立体匹配算法的影响,导致最终输出的深度图存在噪声种类丰富,噪声幅度较大的问题,其对应的点云也同样会出现噪声点、浮点较多的现象,这些噪声对于各类三维任务而言有会明显的影响。因此对深度图进行去噪预处理是非常有必要的。
4.然而,目前现有的深度图去噪方法,基本上只能针对性地解决特定类型的噪声,并且还会损失一定的细节信息,在真实情况下这些去噪算法的表现并不佳。


技术实现要素:

5.本技术提供一种深度图去噪方法、装置、电子设备及介质,通过深度学习建立合适的网络模型,能够自适应地解决在真实深度图中出现的各类噪声,并且尽可能地保留目标对象的细节信息。
6.第一方面,本技术实施例提供了一种深度图去噪方法,所述方法包括:
7.选取一个拍摄场景作为当前拍摄场景,通过相机获取所述当前拍摄场景的图像;
8.基于所述图像构建出所述当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;
9.使用各个拍摄场景对应的数据对构建出数据集,并基于所述数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,所述数据集包括:深度图和模板图;所述深度图包括无噪深度图和有噪深度图;所述模板图只包括有噪模板图;所述损失函数包括二维深度图损失函数和三维点云损失函数;
10.使用所述训练好的深度图去噪模型对待处理的深度图进行去噪。
11.第二方面,本技术实施例还提供了一种深度图去噪装置,所述装置包括:获取模块、构建模块、训练模块和去噪模块;其中,
12.所述获取模块,用于选取一个拍摄场景作为当前拍摄场景,通过相机获取所述当前拍摄场景的图像;
13.所述构建模块,用于基于所述图像构建出所述当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;
14.所述训练模块,用于使用各个拍摄场景对应的数据对构建出数据集,并基于所述
数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,所述数据集包括:深度图和模板图;所述深度图包括无噪深度图和有噪深度图;所述模板图只包括有噪模板图;所述损失函数包括二维深度图损失函数和三维点云损失函数;
15.所述去噪模块,用于使用所述训练好的深度图去噪模型对待处理的深度图进行去噪。
16.第三方面,本技术实施例提供了一种电子设备,包括:
17.一个或多个处理器;
18.存储器,用于存储一个或多个程序,
19.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本技术任意实施例所述的深度图去噪方法。
20.第四方面,本技术实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本技术任意实施例所述的深度图去噪方法。
21.本技术实施例提出了一种深度图去噪方法、装置、电子设备及介质,先选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像;然后基于图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;然后使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练。也就是说,在本技术的技术方案中,可以针对各个拍摄场景构建出与其对应的数据对,进一步构建出一个用于对深度图模型进行训练的数据集,使用该数据集可以对待训练的深度图去噪模型进行训练,从而可以使用训练好的深度图去噪模型对待处理的深度图进行去噪。而在现有技术中,只能针对性地解决特定类型的噪声,并且还会损失一定的细节信息。因此,和现有技术相比,本技术实施例提出的深度图去噪方法、装置、电子设备及介质,可以通过深度学习建立合适的网络模型,能够自适应地解决在真实深度图中出现的各类噪声,并且尽可能地保留目标对象的细节信息;并且,本技术实施例的技术方案实现简单方便、便于普及,适用范围更广。
附图说明
22.图1为本技术实施例提供的深度图去噪方法的第一流程示意图;
23.图2为本技术实施例提供的深度图去噪方法的第二流程示意图;
24.图3为本技术实施例提供的深度图去噪方法的第三流程示意图;
25.图4为本技术实施例提供的深度图去噪装置的结构示意图;
26.图5为本技术实施例提供的电子设备的结构示意图。
具体实施方式
27.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。
28.实施例一
29.图1为本技术实施例提供的深度图去噪方法的第一流程示意图,该方法可以由深
度图去噪装置或者电子设备来执行,该装置或者电子设备可以由软件和/或硬件的方式实现,该装置或者电子设备可以集成在任何具有网络通信功能的智能设备中。如图1所示,深度图去噪方法可以包括以下步骤:
30.s101、选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像。
31.在本步骤中,电子设备可以先选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像。具体地,电子设备可以通过双目相机中的左相机和右相机分别获取当前拍摄场景的原始左图像和原始右图像;其中,原始左图像和原始右图像可以分别表示为i
left
和i
right

32.s102、基于图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对。
33.在本步骤中,电子设备可以基于图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对。具体地,电子设备可以基于原始左图像和原始右图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对。示例性地,电子设备可以先基于原始左图像和原始右图像,得到当前拍摄场景对应的当前有噪数据;并基于原始左图像或者原始右图像,得到当前拍摄场景对应的当前无噪数据;然后使用当前有噪数据和当前无噪数据构建出当前数据对;其中,当前数据对可以表示为:{当前有噪数据,当前无噪数据}。重复执行上述操作,直到构建出各个拍摄场景对应的数据对。例如,假设拍摄场景有n个,分别为:拍摄场景1,拍摄场景2,

,拍摄场景n;其中,n为大于1的自然数。通过上述步骤可以分别构建出拍摄场景1对应的数据对{有噪数据1,无噪数据1}、拍摄场景2对应的数据对{有噪数据2,无噪数据2}、

、拍摄场景n对应的数据对{有噪数据n,无噪数据n}。
34.s103、使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,数据集包括:深度图和模板图;深度图包括无噪深度图和有噪深度图;模板图只包括有噪模板图;损失函数包括二维深度图损失函数和三维点云损失函数。
35.在本步骤中,电子设备可以使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练;其中,数据集包括:深度图和模板图;深度图包括无噪深度图和有噪深度图;模板图只包括有噪模板图;损失函数包括二维深度图损失函数和三维点云损失函数。具体地,电子设备可以将各个拍摄场景对应的数据对组合起来,构建出一个包括全部数据对在内的数据对集合,作为本技术实施例中的数据集;然后基于该数据集对待训练的深度图去噪模型进行训练。具体地,电子设备在基于数据集对待训练的深度图去噪模型进行训练时,可以先在该数据集中选取一个数据对作为当前数据对,当待训练的深度图去噪模型不满足预先设定的收敛条件时,使用当前数据对该待训练的深度图去噪模型进行训练;重复执行上述提取当前数据对的操作,直到待训练的深度图去噪模型满足收敛条件为止。
36.s104、使用训练好的深度图去噪模型对待处理的深度图进行去噪。
37.具体地,电子设备可以将待处理的深度图输入至训练好的深度图去噪模型中,通过该模型可以得到去噪后的深度图。
38.本技术中使用的数据集主要包括两项:深度图以及模板图,其中深度图包括无噪
深度图和有噪深度图两类,模板图只包括有噪模板图。对于深度图,其为单通道的二维像素矩阵,每一个像素内存储着距离值,常用单位为m或者mm,其取值范围可以为0到正无穷也可以是一段人为规定的距离范围(例如在我们的设置里为0到2m)。对于模板图,其也为单通道的二维像素矩阵,模板图上的像素点与深度图上的像素一一对应,每一个像素值存储的是灰度值,只有0和255(即黑和白),代表该点是否被忽略(被忽略的情况包括:该点视差值小于0即无深度值意义和深度值超过指定的深度范围)。除此之外,还需要每一组深度图对应的相机内参以及相机姿态。
39.相机内参:提供的信息包含所使用的拍摄相机的光心位置以及焦距;其中,f
x
和f
y
分别表示该相机在图片坐标系上x方向和y方向的焦距,单位是像素。具体地,假设该相机的焦距为f毫米,那么f
x
的具体含义就是在距离光心f毫米的图片坐标系上,在x方向上f毫米对应的像素个数为f
x
。u0和v0则代表的是相机光心在图片坐标系中在x方向和y方向上的具体位置,单位同样是像素。
40.相机姿态:在我们应用中相机姿态指的是世界坐标系到相机坐标系的转换关系,即旋转向量r
w2c
以及平移向量t
w2c
,(不同于双目标定中提及到的外参,双目标定中的平移向量和旋转向量表示的是两个相机坐标系之间的转换关系)。通过相机姿态,我们可以将各个相机拍摄的三维点云转换到同一个世界坐标系下。
[0041][0042]
关于损失函数的设计:为了网络能够更好地实现深度图去噪功能,我们在损失函数的设计上进行了更新,包含二维深度图损失函数l
depth
和三维点云损失函数l
pointcloud
两个部分。对于二维深度图损失函数l
depth
,主要使用网络去噪后的深度图depth
predict
、原始提供的无噪深度图depth
clean
以及有噪深度模板mask
raw
,计算两个深度图之间的差异作为损失值用于回传。对于三维点云损失函数i
pointcloud
,利用数据集提供的相机的内参、相机姿态以及有噪深度模板,将网络去噪后的深度图以及原始无噪深度图转换至三维点云并将两者转化到同一坐标系,计算两个点云的差异作为损失值用于回传。
[0043]
二维深度图损失函数l
depth
:对给定的mask
raw
进行归一化至[0,1],即现在的mask
raw
内取值只包含0和1两种可能。在具体操作中,我们只将mask
raw
中取值为1的部分参与损失函数的计算,即:
[0044]
l
depth
=||mask
raw
·
(depth
predict

depth
clean
)||2[0045]
三维点云损失函数l
pointcloud
:我们利用提供的模板、相机内参以及相机姿态将深度图转换至对应的点云并且移至统一的世界坐标系,我们称对应的点云为pointcloud
predict

c
和pointcloud
clean

c
。我们利用chamfer distance(cd)作为三维点云损失函数,即:
[0046]
l
pointcloud
=cd(pointcloud
predict

c
,pointcloud
clean

c
)
[0047]
chamfer distance:其定义如下:
[0048][0049]
关于网络结构的设计:针对深度图去噪工作,在网络中引入了多尺寸卷积核策略。我们使用若干个大小不同的卷积核来组成网络对输入的特征进行处理,由于卷积核大小不同,其对应的感受野也不同,因此能够将局部特征以及全局特征有机地整合利用。其网络具体搭建结构既可以是金字塔型结构也可以是u型结构。
[0050]
本技术实施例提出的深度图去噪方法,先选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像;然后基于图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;然后使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练。也就是说,在本技术的技术方案中,可以针对各个拍摄场景构建出与其对应的数据对,进一步构建出一个用于对深度图模型进行训练的数据集,使用该数据集可以对待训练的深度图去噪模型进行训练,从而可以使用训练好的深度图去噪模型对待处理的深度图进行去噪。而在现有技术中,只能针对性地解决特定类型的噪声,并且还会损失一定的细节信息。因此,和现有技术相比,本技术实施例提出的深度图去噪方法,可以通过深度学习建立合适的网络模型,能够自适应地解决在真实深度图中出现的各类噪声,并且尽可能地保留目标对象的细节信息;并且,本技术实施例的技术方案实现简单方便、便于普及,适用范围更广。
[0051]
实施例二
[0052]
图2为本技术实施例提供的深度图去噪方法的第二流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图2所示,深度图去噪方法可以包括以下步骤:
[0053]
s201、选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像。
[0054]
s202、基于该图像得到当前拍摄场景对应的当前有噪数据;并基于该图像得到当前拍摄场景对应的当前无噪数据。
[0055]
在本步骤中,电子设备可以基于该图像得到当前拍摄场景对应的当前有噪数据;并基于该图像得到当前拍摄场景对应的当前无噪数据。具体地,电子设备可以基于原始左图像和原始右图像,得到当前拍摄场景对应的当前有噪数据;并基于原始左图像或者原始右图像,得到当前拍摄场景对应的当前无噪数据。示例性地,电子设备在获取当前有噪数据时,可以先在原始左图像和原始右图像中分别确定出当前拍摄场景的左像点和右像点;然后基于预先确定的当前拍摄场景的物点将左像点和右像点进行图像匹配,得到左像点和右像点的匹配结果;再基于左像点和右像点的匹配结果,得到当前有噪数据。
[0056]
此外,电子设备在获取当前无噪数据时,可以先在图像中确定出当前拍摄场景的像点;然后通过虚拟引擎计算从相机的光心发射经过像点到达预先确定的当前拍摄场景的物点的光线的真实距离以及光线与图像平面的夹角;再基于光线的真实距离以及光线与图像平面的夹角,得到当前无噪数据。示例性地,电子设备可以先在原始左图像中确定出当前拍摄场景的左像点;或者,在原始右图像中确定出当前拍摄场景的右像点;然后通过虚拟引擎计算从左相机的光心发射经过左像点到达预先确定的当前拍摄场景的物点的左光线的
真实距离以及左光线与原始左图像平面的夹角;或者,通过虚拟引擎计算从右相机的光心发射经过右像点到达物点的右光线的真实距离以及右光线与原始右图像平面的夹角;再基于左光线的真实距离以及左光线与原始左图像平面的夹角,得到当前无噪数据;或者,基于右光线的真实距离以及右光线与原始右图像平面的夹角,得到当前无噪数据。具体地,电子设备可以使用以下公式计算原始左图像或者原始右图像的真实深度:z
clean
=l
·
sinθ;从而可以获取无噪深度图;然后利用相机内参结合预先确定的深度公式将无噪深度图转换为无噪视差图和无噪遮挡模板,进一步还可以得到无噪点云。
[0057]
s203、使用当前有噪数据和当前无噪数据构建出当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对。
[0058]
s204、使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,数据集包括:深度图和模板图;深度图包括无噪深度图和有噪深度图;模板图只包括有噪模板图;损失函数包括二维深度图损失函数和三维点云损失函数。
[0059]
本技术的具体实施例中,深度图去噪模型的训练过程可以包括三个阶段,分别为:噪声估计阶段、多尺寸去噪阶段和特征融合阶段。对于给定的一张带噪的深度图depth
raw
,分别经过上述的三个阶段,可以获得最后的去噪后的深度图depth
denoise
。需要注意的是,对于第二阶段,第一阶段的输出会和原始输入级联在一起作为第二阶段的输入;同理,对于第三阶段,第二阶段的输出和第二阶段的输入级联在一起作为第三阶段的输入。需要说明的是,本技术实施例中的深度图去噪模型还可以使用其他基于深度学习的网络模型,本技术对其结构不进行限制。
[0060]
具体地,在噪声估计阶段,电子设备可以选用五层不带池化和批归一化操作的纯卷积层作为深度图去噪模型的特征提取器,每一个卷积层的后面都有relu激活函数。除了最后一层卷积层,其他各层卷积层的输出维度都是32维,卷积核的大小均为3
×
3。最后一层的输出维度一般是1维或者3维。在最后一层卷积层之前,本技术实施例可以增添一个注意力机制模块。希望通过该注意力模块获得注意力权重,表示为:μ=[μ1,μ2,...,μ
n
]∈r1×1×
c
,用于重新调整输入的特征图u∈r
h
×
w
×
c
。在调整过程中,首先利用一个全局池化层(global average pooling,简称gap)来整合u的全局信息到v∈r1×1×
c
中,然后跟随两个全连接层(fully connected layers,简称fc)。整个过程概括如下:
[0061]
μ=sigmoid(fc2(relu(fc1(gap(u)))))
[0062]
最终注意力模块的输出为:其中,u

∈r
h
×
w
×
c
,为逐维度相乘。
[0063]
具体地,在多尺寸去噪阶段,电子设备可以使用五层的金字塔结构来提取不同尺寸的特征。通过金字塔结构,将输入的特征图下采样到不同的尺寸,从而能够通过不同尺寸的感受野同时提取原始信息、局部信息和全局信息。池化卷积核被设置为:1
×
1、2
×
2、4
×
4、8
×
8和16
×
16,池化后的特征都会跟有一个u

net做进一步特征提取;最后各个不同尺寸的特征都会利用双线性插值上采样到同一尺寸,然后级联在一起。
[0064]
具体地,在特征融合阶段,对于输入给第三阶段的特征图u∈r
h
×
w
×
c
,可以先分别利用3
×
3、5
×
5和7
×
7的卷积核获得三个新的特征图u

∈r
h
×
w
×
c
、u

∈r
h
×
w
×
c
和u
″′
∈r
h
×
w
×
c
,然后逐元素相加获得即然后利用和注意力机
制里相同的操作,对进行压缩,然后经过一个gap和两个fc层,最后一层的sigmoid去除。第二个fc的三个输出为α

∈r1×1×
c
、β

∈r1×1×
c
和γ

∈r1×1×
c
,利用softmax进行处理:
[0065][0066]
注意,α
c
是α的第c个维度的元素,β
c
和γ
c
同理。所以最终的输出为v∈r
h
×
w
×
c
,v=[v1,v2,...,v
c
];v
c
=α
c
·
u

β
c
·
u

γ
c
·
u
″′
;最后再利用一个1
×
1的卷积层将融合的特征图重建成深度图。
[0067]
s205、使用训练好的深度图去噪模型对待处理的深度图进行去噪。
[0068]
本技术实施例提出的深度图去噪方法,先选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像;然后基于图像构建出当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;然后使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练。也就是说,在本技术的技术方案中,可以针对各个拍摄场景构建出与其对应的数据对,进一步构建出一个用于对深度图模型进行训练的数据集,使用该数据集可以对待训练的深度图去噪模型进行训练,从而可以使用训练好的深度图去噪模型对待处理的深度图进行去噪。而在现有技术中,只能针对性地解决特定类型的噪声,并且还会损失一定的细节信息。因此,和现有技术相比,本技术实施例提出的深度图去噪方法,可以通过深度学习建立合适的网络模型,能够自适应地解决在真实深度图中出现的各类噪声,并且尽可能地保留目标对象的细节信息;并且,本技术实施例的技术方案实现简单方便、便于普及,适用范围更广。
[0069]
实施例三
[0070]
图3为本技术实施例提供的深度图去噪方法的第三流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图3所示,深度图去噪方法可以包括以下步骤:
[0071]
s301、选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像。
[0072]
在本步骤中,电子设备可以选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像。具体地,电子设备可以通过双目相机中的左相机和右相机分别获取当前拍摄场景的原始左图像和原始右图像。示例性地,电子设备可以通过构建虚拟的散斑深度相机构建左相机camera
left
和右相机camera
right
;根据具体要求设置双目相机的分辨率以及内参k,直接调节双目相机的姿态关系为基线矫正后的状态,根据具体要求设置双目相机的基线长度b,双目相机始终指向拍摄的拍摄场景。
[0073]
s302、在图像中确定出当前拍摄场景的像点。
[0074]
在本步骤中,电子设备可以在图像中确定出当前拍摄场景的像点。具体地,电子设备可以在原始左图像和原始右图像中分别确定出当前拍摄场景的左像点和右像点。示例性地,对于相机的相关应用,存在三个坐标系,分别为:世界坐标系、相机坐标系和图片坐标系;其中,世界坐标系指的是世界所有物体所在的三维坐标系,其坐标原点可以是三维空间中任意一点;相机坐标系指的是以相机光心为坐标原点的三维坐标系;图片坐标系则是图片所在的二维坐标系。在世界坐标系中,被拍摄的某一个三维点为物点,那么物点与左右相
机光心的连线构成的平面被称为极平面,极平面与左右相机的图片平面交线称为极线,两个光心的连线称为基线,基线与图片平面的交点称为极点,光心与物点连线在图片平面的交点称为像点。利用相机标定获得的相机内参和相机之间的外参,可以使得两个相机的图片平面相互平行,并且同一物点在左右相机对应的像点的高度保持一致,极点在无穷远的地方,这个变换只包括旋转,我们称这个过程为基线矫正。通过基线矫正,在后续的立体匹配过程中,只需要在图片的同一行上寻找左右相机的图片平面的匹配点即可。
[0075]
s303、基于预先确定的当前拍摄场景的物点将像点进行图像匹配,得到像点的匹配结果。
[0076]
在本步骤中,电子设备可以基于预先确定的当前拍摄场景的物点将像点进行图像匹配,得到像点的匹配结果。具体地,电子设备可以基于预先确定的当前拍摄场景的物点将左像点和右像点进行图像匹配,得到左像点和右像点的匹配结果。在立体匹配过程中,左相机和右相机拍摄得到的图像可以分别表示为i
left
和i
right
,称物点为m,称在左右图像平面上对应的像点为p
left
和p
right
,通过基线矫正可以知道,p
left
和p
right
已经处在左右图像的同一行。通过建立图像匹配算法,即可确认对于某一物点m,p
left
和p
right
的对应关系,这样就可以获得对应的视差图disparity。具体定义如下:对于p
left
,称其x方向上的坐标值为x
left
,对于p
right
,称其y方向上的坐标值为x
right
,那么在左相机的图片坐标系下,该点对应的视差d的计算方式为:d=x
left

x
right

[0077]
此外,通过立体匹配,获得了对应的视差图disparity,利用相机标定的内参和外参,可以将视差图转换为对应的深度图depth。具体计算方式如下:对于视差图中的任意一点,其对应的视差为d,那么该点的深度z为:其中,f为内参中的焦距,b为基线的长度。具体计算方式为:相机间外参中的平移向量t的模长。这样就获得了对应的深度图,同样可以获得其对应的点云(point cloud);对点云而言,其将图像中的每一个二维像素点转换到相机坐标系下的三维点。
[0078]
s304、基于像点的匹配结果,得到当前有噪数据。
[0079]
在本步骤中,电子设备可以基于像点的匹配结果,得到当前有噪数据。具体地,电子设备可以基于左像点和右像点的匹配结果,得到当前有噪数据。在一个实施例中,由于双目相机已经是基线矫正后的状态,所以可以直接对获得的原始图像i
left
和i
right
构建双目匹配算法,根据匹配结果利用d=x
left

x
right
,获得左相机的图片坐标系下的有噪视差图disparity
raw
,然后再利用相机内参根据公式将有噪视差图disparity
raw
转换为有噪深度图depth
raw
与有噪点云pointcloud
raw
。此外,对于有噪物体遮挡模板mask
raw
,可以将有噪视差图disparity
raw
中视差值小于等于0的部分在模板上像素值设为0,将视差值大于0的部分在模板上像素值设为255。
[0080]
s305、通过虚拟引擎计算从相机的光心发射经过像点到达预先确定的当前拍摄场景的物点的光线的真实距离以及光线与图像平面的夹角。
[0081]
s306、基于光线的真实距离以及光线与图像平面的夹角,得到当前无噪数据。
[0082]
在本技术的具体实施例中,对于左相机的图片坐标系下任意一像素点,电子设备可以利用虚拟渲染引擎计算从光心发射经过该像素点最后打到场景的光线的真实距离l,
再利用光线与图片平面的夹角θ计算真实深度,即z
clean
=l
·
sinθ,从而可以获得无噪深度图depth
clean
,再利用相机内参结合公式将无噪深度图disparity
raw
转换为无噪视差图disparity
clean
与无噪点云pointcloud
clean

[0083]
s307、使用当前有噪数据和当前无噪数据构建出当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对。
[0084]
s308、使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,数据集包括:深度图和模板图;深度图包括无噪深度图和有噪深度图;模板图只包括有噪模板图;损失函数包括二维深度图损失函数和三维点云损失函数。
[0085]
s309、使用训练好的深度图去噪模型对待处理的深度图进行去噪。
[0086]
需要说明的是,目前主流的散斑三维相机,容易受拍摄对象的材质,拍摄环境的光照条件以及本身相机立体匹配算法的影响,导致输出的深度图存在出现的噪声种类丰富,噪声幅度较大的问题,并且其对应的三维点云同样会出现噪声点、浮点数量多的现象,这些对三维视觉任务会有明显的影响。因此,去噪处理是各类三维视觉任务中非常必要的预处理操作。目前已有大量的工作致力于三维数据去噪,包括深度图去噪以及点云去噪,但是在传统的去噪方法中,一般采用一种方法只能针对某一种特定种类的噪声进行处理,而且在运用过程中需要根据具体情况进行相应的调参。然而对于真实数据,其噪声类型丰富并且噪声幅度较大,单个传统去噪方法难以解决全部噪声问题,并且传统去噪方法调参相当耗时,同时去噪操作会损失一部分数据的细节,这些都是目前传统三维数据去噪方法在解决真实数据噪声时存在的问题。最近,也有相关的工作致力于利用深度学习来处理三维数据去噪问题。以深度图去噪为例,研究者们希望利用合理的网络框架设计,通过学习数据集中关于深度图噪声的相关性质,让网络获得能够同时处理各类噪声并且保持数据细节的能力。然而,目前这些基于深度学习进行深度图去噪的方法效果并不好,其主要原因是由于其数据集的构建方式不够合理,并且网络设计不够合适。
[0087]
对于基于深度学习进深度图去噪的方法而言,如何构建准确的有噪数据和无噪数据是非常重要的,只有正确构建有噪无噪数据对,网络才有可能学习到深度图真实噪声的相关性质,才有可能完成深度图去噪的任务。目前只有在上述提及到的构建数据集的方法才能构建真正贴近真实情况的有噪无噪数据对,这是保证能够使用深度学习进行深度图去噪的基准。本技术实施例提供的深度图去噪模型,不同于现在已有的基于深度学习的深度图去噪的方法的网络设计,而是更多地借鉴了图像去噪的网络设计。但是图像去噪与深度图去噪存在很大的不同,因为一般的图像其每个像素内保存的是该点的颜色,其数值分布在0到255之间,而对于深度图而言,其每个像素内保存的是距离,其数值分布一般为0到无穷,且对于深度图而言,其存在容易出现深度突变、距离相机越近的位置其深度值越准等深度图特有的性质。本技术实施例提供的深度图去噪模型,借鉴于一个已有的基于深度学习进行图像去噪的网络设计,将其改造为合适于进行深度图去噪的网络结构,包括将网络的输入输出改为深度图,以及增加更多适合深度图去噪的模块。
[0088]
本技术实施例提出的深度图去噪方法,先选取一个拍摄场景作为当前拍摄场景,通过相机获取当前拍摄场景的图像;然后基于图像构建出当前拍摄场景对应的当前数据
对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;然后使用各个拍摄场景对应的数据对构建出数据集,并基于数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练。也就是说,在本技术的技术方案中,可以针对各个拍摄场景构建出与其对应的数据对,进一步构建出一个用于对深度图模型进行训练的数据集,使用该数据集可以对待训练的深度图去噪模型进行训练,从而可以使用训练好的深度图去噪模型对待处理的深度图进行去噪。而在现有技术中,只能针对性地解决特定类型的噪声,并且还会损失一定的细节信息。因此,和现有技术相比,本技术实施例提出的深度图去噪方法,可以通过深度学习建立合适的网络模型,能够自适应地解决在真实深度图中出现的各类噪声,并且尽可能地保留目标对象的细节信息;并且,本技术实施例的技术方案实现简单方便、便于普及,适用范围更广。
[0089]
实施例四
[0090]
图4为本技术实施例四提供的深度图去噪装置的结构图。如图4所示,所述深度图去噪装置包括:获取模块401、构建模块402、训练模块403和去噪模块404;其中,
[0091]
所述获取模块401,用于选取一个拍摄场景作为当前拍摄场景,通过相机获取所述当前拍摄场景的图像;
[0092]
所述构建模块402,用于基于所述图像构建出所述当前拍摄场景对应的当前数据对;重复执行上述操作,直到构建出各个拍摄场景对应的数据对;
[0093]
所述训练模块403,用于使用各个拍摄场景对应的数据对构建出数据集,并基于所述数据集和预先设计的损失函数对待训练的深度图去噪模型进行训练,得到训练好的深度图去噪模型;其中,所述数据集包括:深度图和模板图;所述深度图包括无噪深度图和有噪深度图;所述模板图只包括有噪模板图;所述损失函数包括二维深度图损失函数和三维点云损失函数;
[0094]
所述去噪模块404,用于使用所述训练好的深度图去噪模型对待处理的深度图进行去噪。
[0095]
进一步的,所述构建模块402,具体用于基于所述图像得到所述当前拍摄场景对应的当前有噪数据;并基于所述图像得到所述当前拍摄场景对应的当前无噪数据;使用所述当前有噪数据和所述当前无噪数据构建出所述当前数据对。
[0096]
进一步的,所述构建模块402,具体用于在所述图像中确定出所述当前拍摄场景的像点;基于预先确定的所述当前拍摄场景的物点将所述像点进行图像匹配,得到所述像点的匹配结果;基于所述像点的匹配结果,得到所述当前有噪数据。
[0097]
进一步的,所述构建模块402,具体用于基于所述像点的匹配结果,获取所述当前拍摄场景对应的有噪视差图;基于所述当前拍摄场景对应的有噪视差图,得到所述当前拍摄场景对应的有噪深度图和有噪物体遮挡模板;将所述有噪深度图和所述有噪物体遮挡模板作为所述当前有噪数据。
[0098]
进一步的,所述构建模块402,具体用于在所述图像中确定出所述当前拍摄场景的像点;通过虚拟引擎计算从所述相机的光心发射经过所述像点到达预先确定的所述当前拍摄场景的物点的光线的真实距离以及所述光线与所述图像平面的夹角;基于所述光线的真实距离以及所述光线与所述图像平面的夹角,得到所述当前无噪数据。
[0099]
上述深度图去噪装置可执行本技术任意实施例所提供的方法,具备执行方法相应
的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术任意实施例提供的深度图去噪方法。
[0100]
实施例五
[0101]
图5为本技术实施例提供的电子设备的结构示意图。图5示出了适于用来实现本技术实施方式的示例性电子设备的框图。图5显示的电子设备12仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0102]
如图5所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0103]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0104]
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0105]
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd

rom,dvd

rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本技术各实施例的功能。
[0106]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本技术所描述的实施例中的功能和/或方法。
[0107]
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0108]
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本技术实施例所提供的深度图去噪方法。
[0109]
实施例六
[0110]
本技术实施例六提供了一种计算机存储介质。
[0111]
本技术实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0112]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0113]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0114]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0115]
注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
再多了解一些

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

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

相关文献