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

深度恢复方法、电子设备和计算机可读存储介质与流程

2022-04-09 06:41:20 来源:中国专利 TAG:


1.本技术实施例涉及机器视觉技术领域,特别涉及一种深度恢复方法、电子设备和计算机可读存储介质。


背景技术:

2.随着深度相机的发展,3d视觉逐渐在各种消费级应用中兴起,3d视觉技术能获取现实三维场景完整的几何信息,利用带有深度信息的图像来实现对于场景的精准数字化,从而实现高精度的识别,定位等关键功能,深度相机根据其工作原理,可以分为tof深度相机、双目深度相机、和单目结构光相机等,其中,单目结构光相机的抗干扰性强、成本低,得到了更多更广泛的应用。
3.单目结构光相机通常由一个红外散斑投射器和一个红外摄像头组成,在实际使用中,用户使用单目结构光相机对目标物体进行拍摄,得到物体散斑图,通过深度恢复算法,将得到的物体散斑图与预先标定好的参考散斑图进行匹配搜索,理论上来说,物体散斑图和参考散斑图上的匹配点是等高的,因此,深度恢复方法往往只在参考散斑图等高线的一维方向上去搜索与物体散斑图的匹配点。
4.然而,单目结构光相机在使用过程中,难免会出现磕碰、挤压和环境温湿度变化等,这些因素会使单目结构光相机的内部结构发生形变,拍摄出的物体散斑图与预先标定好的参考散斑图之间可能会出现行偏差,从而导致深度恢复缺失或失败。


技术实现要素:

5.本技术实施例的目的在于提供一种深度恢复方法、电子设备和计算机可读存储介质,能够科学、准确地确定出拍摄得到的散斑图与预先标定的参考散斑图之间整体的行偏差情况,从而在大幅减少计算量的同时,提升深度恢复的精度和成功率。
6.为解决上述技术问题,本技术的实施例提供了一种深度恢复方法,包括以下步骤:在获取到的散斑图中选取若干像素点作为种子点;根据所述种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算所述种子点与所述第一搜索范围内各像素点的第一匹配代价值,并确定各所述第一匹配代价值中的第一最大值;将所述第一最大值对应的像素点与所述种子点之间的行偏差值作为所述种子点的行偏差值,并将各所述种子点的行偏差值的均值作为所述散斑图的行偏差值;依次将所述散斑图的各像素点作为目标点,根据所述目标点在所述参考散斑图中对应的像素点、所述散斑图的行偏差值和所述匹配算法,在预设的第二搜索范围内进行一维搜索,确定所述目标点的视差值;根据所述目标点的视差值和预设的恢复公式,计算所述目标点的深度值。
7.本技术的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的
深度恢复方法。
8.本技术的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的深度恢复方法。
9.本技术的实施例提供的深度恢复方法、电子设备和计算机可读存储介质,在获取到的散斑图中选取若干像素点作为种子点,根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值,并确定各第一匹配代价值中的第一最大值,再将第一最大值对应的像素点与种子点之间的行偏差值作为种子点的行偏差值,并将各种子点的行偏差值的均值作为散斑图的行偏差值,随后依次将散斑图的各像素点作为目标点,根据目标点在预设的参考散斑图中对应的像素点、预设的匹配算法和确定出的散斑图的行偏差值,在预设的第二搜索范围内进行一维搜索,确定各目标点的视差值,最后分别根据各目标点的视差值和预设的恢复公式,计算得到各目标点的深度值,考虑到行偏差的存在会导致深度恢复缺失或失败,本技术的实施例先用少部分点作为种子点进行二维搜索确定出散斑图的行偏差值,即科学、准确地确定出拍摄得到的散斑图与预先标定的参考散斑图之间整体的行偏差情况,再以计算出的行偏差值为基础进行一维搜索,实现全图的深度恢复,在大幅减少计算量的同时,提升了深度恢复的精度和成功率。
10.另外,所述预设的匹配算法包括sad匹配算法,所述根据所述种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算所述种子点与所述第一搜索范围内各像素点的第一匹配代价值,包括:以所述种子点在预设的参考散斑图中对应的像素点为中心,依次将预设的第一搜索范围内的各像素点确定为第一匹配点;其中,所述第一搜索范围包括第一上下搜索范围和第一左右搜索范围;在所述散斑图中获取以所述种子点为中心的预设窗口内各像素点的第一灰度值,并在所述参考散斑图中获取以所述第一匹配点为中心的所述预设窗口内各像素点的第二灰度值;根据所述第一灰度值、所述第二灰度值和所述sad匹配算法,计算所述种子点与所述第一匹配点的第一匹配代价值,sad匹配算法的基本思想是差的绝对值之和,即使用“图像块”进行匹配,以两个图像块之间的相似度衡量种子点与第一匹配点之间的相似度,可以更准确地计算出种子点与各第一匹配点的第一匹配代价值,同时第一搜索范围包括第一上下搜索范围和第一左右搜索范围,即种子点进行匹配代价搜索时进行二维搜索,可以很好地考虑行偏差对匹配代价搜索的影响。
11.另外,所述根据所述目标点在所述参考散斑图中对应的像素点、所述散斑图的行偏差值和所述匹配算法,在预设的第二搜索范围内进行一维搜索,确定所述目标点的视差值,包括:根据所述目标点在所述参考散斑图中对应的像素点和所述散斑图的行偏差值,在所述参考散斑图中确定所述目标点对应的视差基准点;以所述视差基准点为中心,依次将预设的第二搜索范围内的各像素点确定为第二匹配点;其中,所述第二搜索范围包括第二左右搜索范围;在所述散斑图中获取以所述目标点为中心的所述预设窗口内各像素点的第三灰度值,并在所述参考散斑图中获取以所述第二匹配点为中心的所述预设窗口内各像素点的第四灰度值;根据所述第三灰度值、所述第四灰度值和所述sad匹配算法,计算所述目标点与所述第二匹配点的第二匹配代价值,并确定各所述第二匹配代价值中的第二最大值;将所述第二最大值对应的第二匹配点与所述目标点之间的列偏差值,作为所述目标点
的视差值,散斑图的行偏差值可以反映散斑图与参考散斑图之间整体的行偏差情况,在视差值计算时,以散斑图的行偏差值为基础,在预设的第二搜索范围内进行一维搜索,即可科学地、准确地计算出目标点的视差值,大幅减少了计算量,节约计算资源,提升深度恢复的速度和效率。
12.另外,所述在获取到的散斑图中选取若干像素点作为种子点,包括:将获取到的散斑图划分成大小相同的若干区域;分别选取所述若干区域的中心点作为所述散斑图的种子点,不同区域的中心点可以很好地反映这个区域的普遍情况,因此本技术的实施例先将获取到的散斑图划分成大小相同的若干区域,再分别选取这些区域的中心点作为散斑图的种子点,可以更准确地计算出散斑图的行偏差值。
13.另外,在所述在获取到的散斑图中选取若干像素点作为种子点之前,还包括:分别对所述获取到的散斑图和预设的参考散斑图进行局部对比度归一化处理,在计算散斑图的行偏差值、计算散斑图中各像素点的视差值之前,先对获取到的散斑图和预设的参考散斑图进行局部对比度归一化处理,可以消除过亮和过暗的点对匹配代价搜索的影响。
14.另外,所述预设的匹配算法包括sad匹配算法,所述根据所述目标点的视差值和预设的恢复公式,计算所述目标点的深度值,包括:获取所述视差值对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值;其中,所述视差值为d;根据所述视差值、所述d对应的第二匹配代价值、所述d-1对应的第二匹配代价值和所述d 1对应的第二匹配代价值,对所述视差值进行插值,得到所述目标点的插值后的视差值;根据所述目标点的插值后的视差值和预设的恢复公式,计算所述目标点的深度值,本技术的实施例根据d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值,对目标点的视差值进行插值处理,插值后的视差值更科学、合理,以插值后的视差值为基础进行深度恢复,可以进一步提升深度恢复的准确度。
附图说明
15.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
16.图1是根据本技术的一个实施例的深度恢复的流程图;
17.图2是根据本技术的一个实施例中,根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值的流程图;
18.图3是根据本技术的一个实施例中,根据目标点在参考散斑图中对应的像素点、散斑图的行偏差值和匹配算法,在预设的第二搜索范围内进行一维搜索,确定目标点的视差值的流程图;
19.图4是根据本技术的一个实施例中,根据目标点的视差值和预设的恢复公式,计算目标点的深度值的流程图;
20.图5是根据本技术的另一个实施例的电子设备的结构示意图。
具体实施方式
21.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术
的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本技术各实施例中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本技术的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
22.本技术的一个实施例涉及一种深度恢复方法,应用于电子设备,其中,电子设备可以为终端或服务器,本实施例以及以下个各个实施例中电子设备以服务器为例进行说明,下面对本实施例的深度恢复方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
23.本实施例的深度恢复方法的具体流程可以如图1所示,包括:
24.步骤101,在获取到的散斑图中选取若干像素点作为种子点。
25.在具体实现中,服务器调用单目结构光相机,对目标物体进行拍摄,得到单目结构光相机拍摄出的散斑图,服务器获取该散斑图,并在该散斑图上选取若干像素点作为种子点。
26.在一个例子中,服务器可以随机在获取到的散斑图中选取k个像素点,作为该散斑图的k个种子点。
27.在另一个例子中,服务器获取到散斑图后,可以将获取到的散斑图划分成大小相同的若干区域,再分别选取划分出的若干区域的中心点作为散斑图的种子点,不同区域的中心点可以很好地反映这个区域的普遍情况,因此本技术的实施例先将获取到的散斑图划分成大小相同的若干区域,再分别选取这些区域的中心点作为散斑图的种子点,可以更准确地计算出散斑图的行偏差值。
28.比如:服务器获取到散斑图后,将获取到的散斑图划分成大小相同的25个正方形区域,分别将这25个正方形区域的中心点作为散斑图的种子点,即服务器从散斑图中选取了25个种子点。
29.步骤102,根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值,并确定各第一匹配代价值中的第一最大值。
30.具体而言,服务器在获取到的散斑图中选取若干像素点作为种子点后,可以根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值,并确定各第一匹配代价值中的第一最大值,其中,预设的参考散斑图、预设的匹配算法和预设的第一搜索范围均可以由本领域的技术人员根据实际需要进行设置。
31.在具体实现中,服务器在获取到的散斑图中选取若干像素点作为种子点后,可以在预设的参考散斑图中找到种子点对应的像素点,即种子点在预设的参考散斑图中的同名点,服务器以种子点在预设的参考散斑图中对应的像素点为中心,根据预设的匹配算法,在预设的第一搜索范围内进行二维搜索,即进行上下方向的搜索和左右方向的搜索,分别计算种子点与第一搜索范围内各像素点的第一匹配代价值,并确定各第一匹配代价值中的最大的第一匹配代价值为第一最大值。
32.在一个例子中,第一搜索范围包括x轴方向上的第一左右搜索范围[-d,d],即视差
搜索,第一搜索范围还包括y轴方向上的第一上下搜索范围[-r,r],即行偏差搜索。
[0033]
步骤103,将第一最大值对应的像素点与种子点之间的行偏差值作为种子点的行偏差值,并将各种子点的行偏差值的均值作为散斑图的行偏差值。
[0034]
在具体实现中,服务器采用赢家通吃算法(winner-take-all,简称:wta),选取第一最大值对应的像素点与种子点之间的行偏差值作为种子点的行偏差值,即选取第一匹配代价值最大的像素点与种子点之间的行偏差值作为种子点的行偏差值,最后取各种子点的行偏差值的均值作为整个散斑图的行偏差值。
[0035]
步骤104,依次将散斑图的各像素点作为目标点,根据目标点在参考散斑图中对应的像素点、散斑图的行偏差值和匹配算法,在预设的第二搜索范围内进行一维搜索,确定目标点的视差值。
[0036]
具体而言,服务器确定出散斑图的行偏差值后,可以遍历散斑图中的各像素点,依次将散斑图的各像素点作为目标点,在预设的参考散斑图中找到目标点对应的像素点,即目标点在参考散斑图中同名点,服务器根据目标点在参考散斑图中对应的像素点、确定出的散斑图的行偏差值和预设的匹配算法,在预设的第二搜索范围内进行一维搜索,确定目标点的视差值,其中,步骤104使用的匹配算法与步骤102使用的匹配算法相同。
[0037]
在一个例子中,第二搜索范围包括x轴方向上的第一左右搜索范围[-d,d],即视差搜索,第二搜索范围以确定出的散斑图的行偏差值为基础,在[-d,d]上进行一维搜索。
[0038]
步骤105,根据目标点的视差值和预设的恢复公式,计算目标点的深度值。
[0039]
具体而言,服务器计算出目标点的视差值后,可以根据目标点的视差值和预设的恢复公式,计算得到目标点的深度值,最后根据各目标点的深度值生成深度图。
[0040]
在具体实现中,预设的恢复公式如下:
[0041][0042]
式中,z0为相机与参考平面之间的距离,d为目标点的视差值,f为相机的红外摄像头的焦距,l为相机的基线,z为目标点的深度值。
[0043]
本实施例,在获取到的散斑图中选取若干像素点作为种子点,根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值,并确定各第一匹配代价值中的第一最大值,再将第一最大值对应的像素点与种子点之间的行偏差值作为种子点的行偏差值,并将各种子点的行偏差值的均值作为散斑图的行偏差值,随后依次将散斑图的各像素点作为目标点,根据目标点在预设的参考散斑图中对应的像素点、预设的匹配算法和确定出的散斑图的行偏差值,在预设的第二搜索范围内进行一维搜索,确定各目标点的视差值,最后分别根据各目标点的视差值和预设的恢复公式,计算得到各目标点的深度值,考虑到行偏差的存在会导致深度恢复缺失或失败,本技术的实施例先用少部分点作为种子点进行二维搜索确定出散斑图的行偏差值,即科学、准确地确定出拍摄得到的散斑图与预先标定的参考散斑图之间整体的行偏差情况,再以计算出的行偏差值为基础进行一维搜索,实现全图的深度恢复,在大幅减少计算量的同时,提升了深度恢复的精度和成功率。
[0044]
在一个实施例中,服务器在选取种子点之前,可以分别对获取到的散斑图和预设
的参考散斑图进行局部对比度归一化处理,可以消除过亮和过暗的点对匹配代价搜索的影响。
[0045]
在具体实现中,以服务器获取到的散斑图为例,服务器遍历散斑图中的各像素点,以点(i,j)为例,服务器计算以点(i,j)为中心点的预设归一化窗口内个像素点的灰度值平均值μ和灰度值标准差σ,并通过以下公式,进行局部对比度归一化处理:
[0046][0047]
式中,i(i,j)为点(i,j)的灰度值,μ为灰度值平均值,σ为灰度值标准差,α为预设的常量值,i
lcn
(i,j)为归一化后的点(i,j)的灰度值。
[0048]
在一个实施例中,预设的匹配算法包括sad匹配算法,服务器根据种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算种子点与第一搜索范围内各像素点的第一匹配代价值,可以通过如图2所示的各步骤实现,具体包括:
[0049]
步骤201,以种子点在预设的参考散斑图中对应的像素点为中心,依次将预设的第一搜索范围内的各像素点确定为第一匹配点。
[0050]
具体而言,服务器在获取到的散斑图中选取若干像素点作为种子点后,可以遍历选取的各种子点,在预设的参考散斑图中找到种子点对应的像素点,即种子点在参考散斑图中的同名点,服务器以种子点在预设的参考散斑图中对应的像素点为中心,依次将预设的第一搜索范围内的各像素点确定为第一匹配点,其中,第一搜索范围包括第一上下搜索范围[-r,r]和第一左右搜索范围[-d,d]。
[0051]
步骤202,在散斑图中获取以种子点为中心的预设窗口内各像素点的第一灰度值,并在参考散斑图中获取以第一匹配点为中心的预设窗口内各像素点的第二灰度值。
[0052]
在具体实现中,sad匹配算法的基本思想是差的绝对值之和,即使用“图像块”进行匹配,以两个“图像块”之间的相似度衡量种子点与第一匹配点之间的相似度,服务器在获取到的散斑图中以种子点为中心,根据预设窗口大小划定“图像块”,获取该窗口内各像素点的第一灰度值,服务器再在参考散斑图中以第一匹配点为中心,根据预设窗口大小划定“图像块”,获取该窗口内各像素点的第二灰度值,服务器在散斑图和参考散斑图中划定的窗口大小相同。
[0053]
步骤203,根据第一灰度值、第二灰度值和sad匹配算法,计算种子点与第一匹配点的第一匹配代价值。
[0054]
具体而言,服务器在散斑图中获取以种子点为中心的预设窗口内各像素点的第一灰度值,并在参考散斑图中获取以第一匹配点为中心的预设窗口内各像素点的第二灰度值后,可以根据在散斑图中获取以种子点为中心的预设窗口内各像素点的第一灰度值、在参考散斑图中获取以第一匹配点为中心的预设窗口内各像素点的第二灰度值和sad匹配算法,计算种子点与第一匹配点的第一匹配代价值。
[0055]
在一个例子中,服务器可以通过以下公式,根据第一灰度值、第二灰度值和sad匹配算法,计算种子点与第一匹配点的第一匹配代价值:
[0056]
[0057]
式中,预设窗口的大小为(2n 1)
×
(2m 1),iw(c i,y j)为散斑图中点(x i,y j)的第一灰度值,ic(x i d,y j r)为参考散斑图中点(x i d,y j r)的第二灰度值,sad(x,y,d,r)为计算出的种子点与第一匹配点的第一匹配代价值。
[0058]
本实施例,所述预设的匹配算法包括sad匹配算法,所述根据所述种子点在预设的参考散斑图中对应的像素点和预设的匹配算法,在预设的第一搜索范围内进行二维搜索,计算所述种子点与所述第一搜索范围内各像素点的第一匹配代价值,包括:以所述种子点在预设的参考散斑图中对应的像素点为中心,依次将预设的第一搜索范围内的各像素点确定为第一匹配点;其中,所述第一搜索范围包括第一上下搜索范围和第一左右搜索范围;在所述散斑图中获取以所述种子点为中心的预设窗口内各像素点的第一灰度值,并在所述参考散斑图中获取以所述第一匹配点为中心的所述预设窗口内各像素点的第二灰度值;根据所述第一灰度值、所述第二灰度值和所述sad匹配算法,计算所述种子点与所述第一匹配点的第一匹配代价值,sad匹配算法的基本思想是差的绝对值之和,即使用“图像块”进行匹配,以两个图像块之间的相似度衡量种子点与第一匹配点之间的相似度,可以更准确地计算出种子点与各第一匹配点的第一匹配代价值,同时第一搜索范围包括第一上下搜索范围和第一左右搜索范围,即种子点进行匹配代价搜索时进行二维搜索,可以很好地考虑行偏差对匹配代价搜索的影响。
[0059]
在一个实施例中,预设的匹配算法包括sad匹配算法,服务器根据目标点在参考散斑图中对应的像素点、散斑图的行偏差值和匹配算法,在预设的第二搜索范围内进行一维搜索,确定目标点的视差值,可以通过如图3所示的各步骤实现,具体包括:
[0060]
步骤301,根据目标点在参考散斑图中对应的像素点和散斑图的行偏差值,在参考散斑图中确定目标点对应的视差基准点。
[0061]
在具体实现中,服务器确定出散斑图的行偏差值后,可以遍历散斑图中的各像素点,依次将散斑图的各像素点作为目标点,服务器在参考散斑图中找到目标点对应的像素点,即目标点在参考散斑图中的同名点,在目标点在参考散斑图中对应的像素点的行坐标的基础上,加上确定出的散斑图的行偏差值,从而找到目标点对应的视差基准点。
[0062]
在一个例子中,服务器确定出的散斑图的行偏差值为目标点在参考散斑图中对应的像素点的坐标为(x,y),则目标点对应的视差基准点的坐标为
[0063]
步骤302,以视差基准点为中心,依次将预设的第二搜索范围内的各像素点确定为第二匹配点。
[0064]
具体而言,服务器确定目标点对应的视差基准点后,可以以视差基准点为中心,依次将预设的第二搜索范围内的各像素点确定为第二匹配点,其中,由于行偏差已经确定,所以第二搜索范围只包括第二左右搜索范围。
[0065]
步骤303,在散斑图中获取以目标点为中心的预设窗口内各像素点的第三灰度值,并在参考散斑图中获取以第二匹配点为中心的预设窗口内各像素点的第四灰度值。
[0066]
在具体实现中,sad匹配算法的基本思想是差的绝对值之和,即使用“图像块”进行匹配,以两个“图像块”之间的相似度衡量种子点与第一匹配点之间的相似度,服务器在获取到的散斑图中以目标点为中心,根据预设窗口大小划定“图像块”,获取该窗口内各像素点的第三灰度值,服务器再在参考散斑图中以第二匹配点为中心,根据预设窗口大小划定“图像块”,获取该窗口内各像素点的第四灰度值,服务器在散斑图和参考散斑图中划定的
窗口大小相同。
[0067]
步骤304,根据第三灰度值、第四灰度值和sad匹配算法,计算目标点与第二匹配点的第二匹配代价值,并确定各第二匹配代价值中的第二最大值。
[0068]
具体而言,服务器在散斑图中获取以目标点为中心的预设窗口内各像素点的第三灰度值,并在参考散斑图中获取以第二匹配点为中心的预设窗口内各像素点的第四灰度值后,可以根据在散斑图中获取以目标点为中心的预设窗口内各像素点的第三灰度值、散斑图中获取以目标点为中心的预设窗口内各像素点的第三灰度值和sad匹配算法,计算目标点与第二匹配点的第二匹配代价值,并确定各第二匹配代价值中最大的第二匹配代价值为第二最大值。
[0069]
在一个例子中,服务器可以通过以下公式,根据第三灰度值、第四灰度值和sad匹配算法,计算目标点与第二匹配点的第二匹配代价值:
[0070][0071]
式中,预设窗口的大小为(2n 1)
×
(2m 1),iw(x i,y j)为散斑图中点(x i,y j)的第三灰度值,为参考散斑图中点的第四灰度值,sad(x,y,d,r)为计算出的目标点与第二匹配点的第二匹配代价值,为散斑图的行偏差值。
[0072]
步骤305,将第二最大值对应的第二匹配点与目标点之间的列偏差值,作为目标点的视差值。
[0073]
在具体实现中,服务器采用赢家通吃算法,选取第二最大值对应的像素点与目标点之间的列偏差值作为目标点的视差值。
[0074]
本实施例,所述根据所述目标点在所述参考散斑图中对应的像素点、所述散斑图的行偏差值和所述匹配算法,在预设的第二搜索范围内进行一维搜索,确定所述目标点的视差值,包括:根据所述目标点在所述参考散斑图中对应的像素点和所述散斑图的行偏差值,在所述参考散斑图中确定所述目标点对应的视差基准点;以所述视差基准点为中心,依次将预设的第二搜索范围内的各像素点确定为第二匹配点;其中,所述第二搜索范围包括第二左右搜索范围;在所述散斑图中获取以所述目标点为中心的所述预设窗口内各像素点的第三灰度值,并在所述参考散斑图中获取以所述第二匹配点为中心的所述预设窗口内各像素点的第四灰度值;根据所述第三灰度值、所述第四灰度值和所述sad匹配算法,计算所述目标点与所述第二匹配点的第二匹配代价值,并确定各所述第二匹配代价值中的第二最大值;将所述第二最大值对应的第二匹配点与所述目标点之间的列偏差值,作为所述目标点的视差值,散斑图的行偏差值可以反映散斑图与参考散斑图之间整体的行偏差情况,在视差值计算时,以散斑图的行偏差值为基础,在预设的第二搜索范围内进行一维搜索,即可科学地、准确地计算出目标点的视差值,大幅减少了计算量,节约计算资源,提升深度恢复的速度和效率。
[0075]
在一个实施例中,预设的匹配算法包括sad匹配算法,服务器根据目标点的视差值和预设的恢复公式,计算目标点的深度值,可以通过如图4所示的各步骤实现,具体包括:
[0076]
步骤401,获取视差值对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对
应的第二匹配代价值。
[0077]
具体而言,服务器计算得到目标点的视差值后,记视差值为d,服务器获取匹配搜索过程中,视差值d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值。
[0078]
步骤402,根据视差值、d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值,对视差值进行插值,得到目标点的插值后的视差值。
[0079]
在具体实现中,服务器可以根据目标点的视差值、获取的d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值,对目标点的视差值进行插值,得到目标点的插值后的视差值,插值后的视差值更科学、合理,以插值后的视差值为基础进行深度恢复,可以进一步提升深度恢复的准确度。
[0080]
在一个例子中,服务器可以通过以下公式,根据目标点的视差值、d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值,对目标点的视差值进行插值,得到目标点的插值后的视差值:
[0081][0082]
式中,d为目标点的视差值,为散斑图的行偏差值,为d对应的第二匹配代价值,为d-1对应的第二匹配代价值,为d 1对应的第二匹配代价值,d
*
为目标点的插值后的视差值。
[0083]
步骤403,根据目标点的插值后的视差值和预设的恢复公式,计算目标点的深度值。
[0084]
本实施例,所述预设的匹配算法包括sad匹配算法,所述根据所述目标点的视差值和预设的恢复公式,计算所述目标点的深度值,包括:获取所述视差值对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值;其中,所述视差值为d;根据所述视差值、所述d对应的第二匹配代价值、所述d-1对应的第二匹配代价值和所述d 1对应的第二匹配代价值,对所述视差值进行插值,得到所述目标点的插值后的视差值;根据所述目标点的插值后的视差值和预设的恢复公式,计算所述目标点的深度值,本技术的实施例根据d对应的第二匹配代价值、d-1对应的第二匹配代价值和d 1对应的第二匹配代价值,对目标点的视差值进行插值处理,插值后的视差值更科学、合理,以插值后的视差值为基础进行深度恢复,可以进一步提升深度恢复的准确度。
[0085]
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
[0086]
本技术另一个实施例涉及一种电子设备,如图5所示,包括:至少一个处理器501;以及,与所述至少一个处理器501通信连接的存储器502;其中,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行,以使所述至少一个处理器501能够执行上述各实施例中的深度恢复方法。
[0087]
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线
和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
[0088]
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
[0089]
本技术另一个实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
[0090]
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称:rom)、随机存取存储器(random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0091]
本领域的普通技术人员可以理解,上述各实施例是实现本技术的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
再多了解一些

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

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

相关文献