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

基于深度学习算子的立体匹配方法和系统与流程

2022-05-08 06:42:08 来源:中国专利 TAG:


1.本技术实施例涉及自动驾驶技术领域,具体涉及一种基于深度学习算子的立体匹配方法和系统。


背景技术:

2.随着人们对更加安全和便捷出行的需求的日益增长,智能驾驶技术正处于蓬勃发展时期,感知和理解环境的能力是汽车智能系统的基础和前提。智能车辆通过双目相机采集视图,并在感知周围环境后做出分析,通过将信息提供给控制系统,实现对路面情况的检测。同时,双目相机的立体匹配精度和泛化能力,直接影响数据采集的准确性。
3.因此,提供一种基于深度学习算子的立体匹配方法和系统,以提高立体匹配方法的精度和泛化能力,从而保证自动驾驶过程中的数据采集准确性,就成本领域技术人员亟待解决的问题。


技术实现要素:

4.为此,本发明提供一种基于深度学习算子的立体匹配方法和系统,以提高立体匹配方法的精度和泛化能力,从而保证自动驾驶过程中的数据采集准确性。
5.为了实现上述目的,本技术实施例提供如下技术方案:一种基于深度学习算子的立体匹配方法,所述方法包括:获取目标区域的左右视图;使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;基于赢家通吃算法,得到具有最大代价值的整像素视差结果;根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。
6.进一步地,使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值,具体包括:使用第一sobel算子对左右视图进行卷积,使用第二sobel算子对左右视图进行卷积,所述第一sobel算子和所述第二sobel算子的大小不同,以便在卷积后得到两种不同的梯度信息;计算左图对应右图的边缘结构相似值,并计算右图对应左图的边缘结构相似性;计算和的最小值为当前点时,当前视差的匹配代价结果。
7.进一步地,计算左图对应右图的边缘结构相似值,具体包括:计算左图中左图目标像素点 基于所述第一sobel算子得到的结果、基于所述第二sobel算子得到的结果,以及所述左图目标像素点p左边相邻像素点基于所
述第一sobel算子结果;取、和中的最大值和最小值,并计算右图目标像素点基于所述第一sobel算子的,其中,所述右图目标像素点为所述左图目标像素点在右图中的对应像素点,且p和之间的视差为d;计算和中的最大值,并以作为左图对应右图中的边缘结构相似性。
8.进一步地,利用以下公式,进行匹配代价聚合:其中,表示在传播方向上像素点在视差的聚合代价值,表示传播方向, 表示像素点在视差的匹配代价值,表示在r传播方向上p像素点的前一个像素点所有视差的聚合代价,表示不同视差所对用的惩罚项。
9.进一步地,利用以下公式,对整像素视差结果进行亚像素视差计算:其中,为像素点p最后的亚像素视差值,d为像素点通过赢家通吃算法计算得到的整像素视差,为整像素的聚合代价,为整像素的聚合代价,为整像素的聚合代价。
10.本发明还提供一种基于深度学习算子的立体匹配系统,所述系统包括:视图获取单元,用于获取目标区域的左右视图;代价值计算单元,用于使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;聚合代价值计算单元,用于基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;视差调整单元,用于基于赢家通吃算法,得到具有最大代价值的整像素视差结果;视差值获取单元,用于根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。
11.根据本技术实施例的第三方面,提供了一种电子设备,所述电子设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行第一方面任一项所述的方法。
12.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如第一方面任一项所述的方法。
13.本发明所提供的基于深度学习算子的立体匹配方法,通过使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;基于赢家通吃算法,得到具有最大代价值
的整像素视差结果;根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。
14.这样,本发明所提供的立体匹配方法使用深度学习算子实现,并使用了新的代价匹配算法,加入了亚像素拟合方法,从而保证了算法的精度和泛化能力,而且可以高效的部署在现在主流的大部分的域控制器计算单元上,可以有效降低双目立体匹配系统开发难度和制造成本,既保证了立体匹配效果,又降低了计算难度,提高了计算效率,具有更好的泛化能力,边缘视差效果更好,精度更高,提高立体匹配方法的精度和泛化能力,从而保证自动驾驶过程中的数据采集准确性。
附图说明
15.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
16.本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
17.图1为本发明所提供的基于深度学习算子的立体匹配方法一种具体实施方式的流程图;图2为本发明所提供的方法中匹配代价计算过程的流程图;图3为本发明所提供的方法中计算左图对应右图的边缘结构相似值的流程图。
具体实施方式
18.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.请参考图1,图1为本发明所提供的基于深度学习算子的立体匹配方法一种具体实施方式的流程图。
20.在一种具体实施方式中,本发明所提供的基于深度学习算子的立体匹配方法包括以下步骤:s101:获取目标区域的左右视图,应当理解的是,左右视图包含双目相机采集的到左图和右图。
21.s102:使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值。匹配代价计算的目的是衡量待匹配像素与候选像素之间的相关性。两个像素无论是否为同名点,都可以通过匹配代价函数计算匹配代价,代价越小则说明相关性越大,是同名点的概率也越大。每个像素在搜索同名点之前,往往会指定一个视差搜索范围d(dmin ~ dmax),视差搜索时将范围限定在d内,用一个大小为w
×h×
d(w为影像宽度,h为影像高度)的三维矩阵c来
存储每个像素在视差范围内每个视差下的匹配代价值。矩阵c通常称为dsi(disparity space image)。
22.可见,在原理上,视差匹配代价是通过左右图对应像素点的匹配程度计算得到的,在对左右图像进行标定和平行等位矫正之后,只需在左右图的同一行进行匹配代价计算即可。在进行代价匹配计算时可以使用多种方式,例如:sad(sum of absolute differences), mi(mutual information),census,ssim(structural similarity)等,都是通过计算对应像素点周围范围内的特征值,来计算匹配代价值。
23.s103:基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值。代价聚合的根本目的是让代价值能够准确的反映像素之间的相关性。上一步匹配代价的计算往往只会考虑局部信息,通过两个像素邻域内一定大小的窗口内的像素信息来计算代价值,这很容易受到影像噪声的影响,而且当影像处于弱纹理或重复纹理区域,这个代价值极有可能无法准确的反映像素之间的相关性,直接表现就是真实同名点的代价值非最小。而代价聚合则是建立邻接像素之间的联系,以一定的准则,如相邻像素应该具有连续的视差值,来对代价矩阵进行优化,这种优化往往是全局的,每个像素在某个视差下的新代价值都会根据其相邻像素在同一视差值或者附近视差值下的代价值来重新计算,得到新的dsi,用矩阵s来表示。
24.实际上代价聚合类似于一种视差传播步骤,信噪比高的区域匹配效果好,初始代价能够很好的反映相关性,可以更准确的得到最优视差值,通过代价聚合传播至信噪比低、匹配效果不好的区域,最终使所有影像的代价值都能够准确反映真实相关性。常用的代价聚合方法有扫描线法、动态规划法、sgm算法中的路径聚合法等。
25.具体地,为了提高计算准确性,利用以下公式,进行匹配代价聚合:其中,表示在r传播方向上像素点p在d视差的聚合代价值,r表示传播方向,表示像素点p在d视差的匹配代价值,表示在r传播方向上p像素点的前一个像素点所有视差的聚合代价,表示不同视差所对用的惩罚项。
26.在该实施例中,直接求像素点p-r的所有视差的聚合代价的最小值进行传播,并按照视差d的不同设计不同的惩罚项。例如:根据视差距离当前要传播的视差的距离计算惩罚项,距离越远惩罚项越大,距离越近惩罚项越小,因为根据图像和物理特性,期望在同一平面上的视差要保持相似性。但在边界地方视差会有跳变,本实施例使用全视差传播,确保视差的跳变是被允许的。而且在深度学习算子中,数据整理和搬运是非常耗时的,本方案使用全视差,可以同时对所有视差进行计算,而不需要数据的选取和搬运。并且在非传播方向上,由于不需要传播,则可以所有像素点可以同时进行传播,更符合深度学习算子并行计算的特性,以加快计算效率;同时,该方法包含了上一个点的所有视差进行传播,有效消除视差图边界效果较差的现象。
27.s104:基于赢家通吃算法,得到具有最大代价值的整像素视差结果。视差计算即通过代价聚合之后的代价矩阵来确定每个像素的最优视差值,通常使用赢家通吃算法(wta,winner-takes-all)来计算,其中,赢家通吃算法为通用算法,即某个像素的所有视差下的代价值中,选择最小代价值所对应的视差作为最优视差。这一步非常简单,这意味着聚合代
价矩阵的值必须能够准确的反映像素之间的相关性,也表明上一步代价聚合步骤是立体匹配中极为关键的步骤,直接决定了算法的准确性。
28.s105:根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。
29.也就是说,采用亚像素视差计算的方式进行视差优化,视差优化的目的是对上一步得到的视差图进行进一步优化,改善视差图的质量,包括剔除错误视差、适当平滑以及子像素精度优化等步骤。在视差优化时,一般采用左右一致性检查(left-right check)算法剔除因为遮挡和噪声而导致的错误视差;采用剔除小连通区域算法来剔除孤立异常点;采用中值滤波(median filter)、双边滤波(bilateral filter)等平滑算法对视差图进行平滑;另外还有一些有效提高视差图质量的方法如鲁棒平面拟合(robust plane fitting)、亮度一致性约束(intensity consistent)、局部一致性约束(locally consistent)等也常被使用。
30.当得到了传播后的聚合代价结果后,对于每一个像素点,先使用赢家通吃(winner takes all)算法,聚合代价最小的视差点即为当前像素点的整像素视差。但要得到精准的深度信息,整像素视差并不是最好的表示方式,因此需要通过整像素视差周围的视差聚合代价来拟合出真正最小值所在的亚像素视差值。在该实施例中,以使用抛物线拟合的方式进行亚像素计算为例,具体地,利用以下公式,对整像素视差结果进行亚像素视差计算:其中,为像素点最后的亚像素视差值,d为像素点通过赢家通吃算法计算得到的整像素视差,为整像素的聚合代价,为整像素的聚合代价,为整像素的聚合代价。
31.从理论上来讲,一种典型的立体匹配算法包括四个步骤:匹配代价计算、匹配代价聚和、视差计算和视差细化。对于立体匹配的整体性能而言,每个步骤都起到至关重要的作用。虽然深度卷积神经网络在各种视觉任务中都表现出强大的特征表达能力,并且可以应用到立体匹配中去提高视差估计精度,但强监督的深度学习网络的缺点就是泛化能力弱,而传统方法使用的都是从简单特征中提取的更加抽象的特征,因此能够更好的保持其泛化能力。此方法结合使用深度学习算子,使传统立体匹配方法可以有效地部署到深度学习芯片中,并应用于基于双目的路面平坦度检测中。
32.在一些实施例中,如图2所示,使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值,具体包括以下步骤:s201:使用第一sobel算子对左右视图进行卷积,使用第二sobel算子对左右视图进行卷积,所述第一sobel算子和所述第二sobel算子的大小不同,以便在卷积后得到两种不同的梯度信息。sobel算子是像素图像边缘检测中最重要的算子之一,在机器学习、数字媒体、计算机视觉等信息科技领域起着举足轻重的作用。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。将sobel算子区分为第一和第二仅为了描述方便,不表示某种顺序或限定。
33.也就是说,使用两个大小不同的sobel算子(即第一sobel算子和第二sobel算子)
对左图和右图进行卷积。在一个使用场景中,使用1个3*3的水平方向的sobel算子作为第一sobel算子,使用1个3*4的水平方向的sobel算子作为第二sobel算子进行卷积,得到两种不同的梯度信息。
34.s202:计算左图对应右图的边缘结构相似值,并计算右图对应左图的边缘结构相似性;s203:计算和的最小值为当前点时,当前视差d的匹配代价结果。
35.在得到匹配代价结果后,对左图中每一个点,以最大视差重复步骤s201-s203,则可得到一个大小为[d, h, w]的视差空间。
[0036]
其中,计算左图对应右图的边缘结构相似值,具体包括以下步骤:计算左图中左图目标像素点p基于所述第一sobel算子得到的结果、基于所述第二sobel算子得到的结果,以及所述左图目标像素点p左边相邻像素点基于所述第一sobel算子结果;取、和中的最大值和最小值,并计算右图目标像素点基于所述第一sobel算子的,其中,所述右图目标像素点为所述左图目标像素点在右图中的对应像素点,且p和之间的视差为d;计算和中的最大值,并以作为左图对应右图中的边缘结构相似性。
[0037]
将左图和右图互换,重复执行步骤s201-s203则可以得到。
[0038]
在上述具体实施方式中,本发明所提供的基于深度学习算子的立体匹配方法,通过使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;基于赢家通吃算法,得到具有最大代价值的整像素视差结果;根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。这样,本发明所提供的立体匹配方法使用深度学习算子实现,并使用了新的代价匹配算法,加入了亚像素拟合方法,从而保证了算法的精度和泛化能力,而且可以高效的部署在现在主流的大部分的域控制器计算单元上,可以有效降低双目立体匹配系统开发难度和制造成本,既保证了立体匹配效果,又降低了计算难度,提高了计算效率,具有更好的泛化能力,边缘视差效果更好,精度更高,提高立体匹配方法的精度和泛化能力,从而保证自动驾驶过程中的数据采集准确性。
[0039]
除了上述方法,本发明还提供一种基于深度学习算子的立体匹配系统,如图3所示,所述系统包括:视图获取单元100,用于获取目标区域的左右视图;代价值计算单元200,用于使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;代价值计算单元200具体用于:使用第一sobel算子对左右视图进行卷积,使用第二sobel算子对左右视图进行卷积,所述第一sobel算子和所述第二sobel算子的大小不同,以便在卷积后得到两种不同的
梯度信息;计算左图对应右图的边缘结构相似值,并计算右图对应左图的边缘结构相似性;计算和的最小值为当前点时,当前视差d的匹配代价结果。
[0040]
其中,计算左图对应右图的边缘结构相似值,具体包括:计算左图中左图目标像素点p基于所述第一sobel算子得到的结果、基于所述第二sobel算子得到的结果,以及所述左图目标像素点p左边相邻像素点基于所述第一sobel算子结果;取、和中的最大值和最小值,并计算右图目标像素点基于所述第一sobel算子的,其中,所述右图目标像素点为所述左图目标像素点p在右图中的对应像素点,且p和之间的视差为d;计算和中的最大值,并以作为左图对应右图中的边缘结构相似性。
[0041]
聚合代价值计算单元300,用于基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;聚合代价值计算单元300具体用于,利用以下公式进行匹配代价聚合:其中,表示在传播方向上像素点在视差的聚合代价值,表示传播方向, 表示像素点在视差的匹配代价值,表示在传播方向上像素点的前一个像素点所有视差的聚合代价,表示不同视差所对用的惩罚项。
[0042]
视差调整单元400,用于基于赢家通吃算法,得到具有最大代价值的整像素视差结果;视差值获取单元500,用于根据拟合算法对整像素视差结果进行亚像素视差计算,以得到目标视差值。
[0043]
视差值获取单元500具体用于,利用以下公式,对整像素视差结果进行亚像素视差计算:其中,为像素点最后的亚像素视差值,为像素点通过赢家通吃算法计算得到的整像素视差,为整像素的聚合代价,为整像素的聚合代价,为整像素d的聚合代价。
[0044]
在上述具体实施方式中,本发明所提供的基于深度学习算子的立体匹配系统,通过使用卷积核对左右视图进行视差匹配代价计算,以得到匹配代价值;基于得到的匹配代价值,使用深度学习算子沿多个方向进行匹配代价聚合,以得到聚合代价值;基于赢家通吃算法,得到具有最大代价值的整像素视差结果;根据拟合算法对整像素视差结果进行亚像
素视差计算,以得到目标视差值。这样,本发明所提供的立体匹配方法使用深度学习算子实现,并使用了新的代价匹配算法,加入了亚像素拟合方法,从而保证了算法的精度和泛化能力,而且可以高效的部署在现在主流的大部分的域控制器计算单元上,可以有效降低双目立体匹配系统开发难度和制造成本,既保证了立体匹配效果,又降低了计算难度,提高了计算效率,具有更好的泛化能力,边缘视差效果更好,精度更高,提高立体匹配方法的精度和泛化能力,从而保证自动驾驶过程中的数据采集准确性。
[0045]
基于相同的技术构思,本技术实施例还提供了一种电子设备,所述电子设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行所述的方法。
[0046]
基于相同的技术构思,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行所述的方法。
[0047]
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
[0048]
需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0049]
虽然本技术提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
[0050]
上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0051]
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程
逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0052]
本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机可读存储介质中。
[0053]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0054]
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0055]
以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施例而已,并不用于限定本技术的保护范围,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献