CN112070821B - 一种低功耗立体匹配系统及获取深度信息的方法 - Google Patents
一种低功耗立体匹配系统及获取深度信息的方法 Download PDFInfo
- Publication number
- CN112070821B CN112070821B CN202010762904.3A CN202010762904A CN112070821B CN 112070821 B CN112070821 B CN 112070821B CN 202010762904 A CN202010762904 A CN 202010762904A CN 112070821 B CN112070821 B CN 112070821B
- Authority
- CN
- China
- Prior art keywords
- pixel
- region
- cost
- minimum
- parallax
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000002776 aggregation Effects 0.000 claims abstract description 73
- 238000004220 aggregation Methods 0.000 claims abstract description 73
- 238000004364 calculation method Methods 0.000 claims abstract description 28
- 238000005457 optimization Methods 0.000 claims abstract description 27
- 238000005192 partition Methods 0.000 claims abstract description 23
- 230000004931 aggregating effect Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 4
- 238000006116 polymerization reaction Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 21
- 238000012545 processing Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002924 energy minimization method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种低功耗立体匹配系统及获取深度信息的方法,该系统包括依次连接的普查模块、分区优化模块、多路径代价聚合模块以及深度计算模块。本申请通过使用Census算法作为初始像素代价值计算函数,并在Census普查模块与多路径代价聚合模块之间加入分区优化模块简化初始像素代价值,基于分区域处理以及最优视差位置,在不影响精度的情况下减少传入多路径代价聚合模块的初始像素代价值数量,进而降低算法耗时以及资源消耗,并确保精度。
Description
技术领域
本申请涉及立体视觉技术技术领域,特别涉及一种低功耗立体匹配系统及获取深度信息的方法。
背景技术
在计算机视觉领域中立体匹配是主要研究方向,其研究从二维图像的信息中提取并重建目标物体的三维信息,被广泛应用于智能机器人系统,无人车系统,工业测量等领域。因此,在立体视觉系统中,立体匹配算法的精度及速度直接影响到三维重建的效果,其通过建立一个能量代价函数寻找像素间一一对应的关系,通过此能量代价函数最小化来估计像素点视差值。然而目前立体匹配测试平台中往往由于复杂高精度算法所需的计算量与资源消耗量较大,难以在硬件上移植。
因此,现有技术还有待改进和提高。
发明内容
基于此,有必要针对现有技术中立体匹配中资源开销大、移植难的技术问题,提供一种低功耗立体匹配系统及获取深度信息的方法。
为了解决上述技术问题,本申请所采用的技术方案如下:
第一方面,本申请提供一种低功耗立体匹配系统,其包括普查模块、多路径代价聚合模块以及深度计算模块,还包括:设置在所述普查模块和所述多路径代价聚合模块之间的分区优化模块;
所述普查模块用于输入目标的左图像和右图像,输出目标像素的多个初始像素代价值;所述普查模块包括用于转换左图像的像素流的左普查转码单元、用于转换右图像的像素流的右普查转码单元以及用于确定每个目标像素的多个初始像素代价值的汉明距离计算单元;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素;
所述分区优化模块包括多个用于确定能够代表区域代价值的最小区域代价值以及该最小区域代价值的区域最佳匹配点位置的区域单元,每个所述区域单元均包括并行设置的两个第一最小子单元和与两个第一最小子单元的输出端共接的第二最小子单元;
所述多路径代价聚合模块包括用于传递每个区域的代价聚合值并辅助每个区域代价更新的若干先进先出单元、用于确定每个区域对应的不同预设路径方向上的路径代价值并分别聚合同一区域的多个路径代价值的若干代价聚合模块以及用于确定每个区域的多个能量函数值的加法聚合模块;
所述深度计算模块包括用于确定每个区域的多个能量函数值中最小能量函数值的能量最小查找模块、用于确定对应区域该最小能量函数的视差区域的移位模块以及用于基于所述移位模块的每个视差区域以及所述分区优化模块的对应区域的区域最佳匹配点位置所确定的每个目标像素的深度信息的加法模块。
进一步地,所述右普查转码单元包括右行缓存单元、右普查窗口单元以及右普查对比单元,所述左普查转码单元包括左行缓存单元、左普查窗口单元以及左普查对比单元,其中,所述右行缓存单元与所述左行缓存单元的结构相同,所述右普查窗口单元和所述右普查对比单元分别与所述左普查窗口单元、所述左普查对比单元的结构不同。
进一步地,当以左图像为目标图像,以右图像为非目标图像时,所述左普查窗口单元包括一个用于遍历左图像的左滑动窗口,该左滑动窗口包括若干个寄存器,所述左普查对比单元包括一个左对比窗口,所述左对比窗口包括若干个比较器;所述右普查窗口单元包括用于遍历右图像中距离目标像素预设视差阈值区域内每个视差像素的右视差窗口,所述右视差窗口的个数为预设视差阈值,每个所述右视差窗口均包括若干个寄存器;所述右普查对比单元包括预设视差阈值个右对比窗口,每个所述右对比窗口包括若干个比较器;
或当以右图像为目标图像,以左图像为非目标图像时,所述右普查窗口单元包括一个用于遍历右图像的右滑动窗口,该右滑动窗口包括若干个寄存器,所述右普查对比单元包括一个右对比窗口,所述右对比窗口包括若干个比较器;所述左普查窗口单元包括用于遍历左图像中距离目标像素预设视差阈值区域内每个视差像素的左视差窗口,所述左视差窗口的个数为预设视差阈值,每个所述左视差窗口均包括若干个寄存器;所述左普查对比单元包括预设视差阈值个左对比窗口,每个所述左对比窗口包括若干个比较器。
进一步地,每个所述第一最小子单元均包括第一比较器、第一数据复用器以及第一位置复用器,所述第一数据复用器用于输出所输入的多个初始像素代价值中的最小初始像素代价值,所述第一位置复用器用于输出所述最小初始像素代价值对应的位置信息;所述第二最小子单元包括一个第二比较器、一个第二数据复用器、两个第二位置复用器以及一个与门单元,所述第二数据复用器用于获取两个所述第一最小子单元输出数据中最小初始像素代价值,所述第二位置复用器用于输出该最小初始像素代价值对应的最佳匹配位置信息。
进一步地,每个所述先进先出单元均包括三个传输单元以及一个方向先进先出单元,所述方向先进先出单元的个数与所述代价聚合模块的个数相同。
第二方面,本申请还提供一种低功耗立体匹配系统获取深度信息的方法,其方法包括以下步骤:
采集目标的左图像和右图像;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素;
针对目标图像中若干目标像素中每一个目标像素,确定非目标图像中该目标像素对应的预设视差阈值个视差像素,并基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值;
基于预设区域代价阈值,确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置;
基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值;
基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息。
进一步地,所述基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值具体包括:
获取预设视差阈值并确定目标图像中的一目标像素;
在目标图像的图像区域确定该目标像素自身的所有领域像素以及在非目标图像的图像区域搜索距离该相同目标像素一预设视差阈值区域内所有视差像素;
基于所有视差像素,确定每个视差像素自身的所有邻域像素;
比较目标像素与该目标像素自身对应的所有邻域像素的灰度值大小,输出该目标像素的第一二进制码流;
将每一个视差像素均作为参考像素,比较每个参考像素与每个参考像素对应的所有邻域像素的灰度值大小,输出该目标像素的多个第二二进制码流;
计算所述第一二进制码流与每个第二二进制码流的汉明距离,确定该目标像素的多个初始像素代价值。
进一步地,所述比较目标像素与该目标像素自身对应的所有邻域像素的灰度值大小,输出该目标像素的第一二进制码流具体包括:
当某邻域像素的灰度值小于或等于目标像素的灰度值,其比较结果为0,则输出0;
当某邻域像素的灰度值大于目标像素的灰度值,其比较结果为1,则输出1;
将所有比较结果按位输出,得到该目标像素的第一二进制码流。
进一步地,所述计算所述第一二进制码流与每个第二二进制码流的汉明距离,确定该目标像素的多个初始像素代价值具体包括:
将所述第一二进制码流并行与每个第二二进制码流进行异或运算,得到多个异或运算结果;
统计每个异或运算结果的比特位不为1的个数,得到该该目标像素的多个初始像素代价值。
进一步地,所述确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置具体包括:
获取预设区域代价阈值;
基于所述预设区域代价阈值划分目标像素的多个初始像素代价值,确定该目标像素的若干区域以及对应区域的多个初始像素代价值;
选取若干区域中每个区域的多个初始像素代价值中值最小的初始代价值,作为对应区域的最小区域代价值;
基于对应区域的最小区域代价值,获取目标图像中所述最小区域代价值的区域最佳匹配点位置。
进一步地,所述基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值具体包括:
选定多个预设路径方向;其中,所述预设路径方向包括0°、45°、90°以及135°;
针对多个区域中的每一个区域,计算该区域的最小区域代价值多个预设路径方向上的路径代价,得到该区域对应预设路径方向上的最小路径代价值;
将该区域的多个最小路径代价值聚合处理,得到该区域的能量函数值。
进一步地,所述基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息具体包括:
获取所有区域对应的能量函数值;
选取出所有能量函数值中最小值,并对该最小能量函数值采用模拟乘法操作,确定该最小能量函数值对应的最优视差区域;
接收该最优视差区域对应的区域最佳匹配点位置;
基于该目标像素的区域最佳匹配点位置以及最优视差区域,得到该目标像素的深度信息。
有益效果:与现有技术相比,本申请提供了一种低功耗立体匹配系统及获取深度信息的方法,该系统包括依次连接的普查模块、分区优化模块、多路径代价聚合模块以及深度计算模块。本申请通过使用Census算法作为初始像素代价值计算函数,并在Census普查模块与多路径代价聚合模块之间加入分区优化模块简化初始像素代价值,基于分区域处理以及最优视差位置,在不影响精度的情况下减少传入多路径代价聚合模块的初始像素代价值数量,进而降低算法耗时以及资源消耗,并确保精度。
附图说明
图1为本申请提供的一种低功耗立体匹配系统的结构框图。
图2为本申请中低功耗立体匹配系统中普查模块的结构框图。
图3为本申请分区优化模块中区域单元的结构框图。
图4为本申请分区优化模块中第一最小子单元的结构框图。
图5为本申请分区优化模块中第二最小子单元的结构框图。
图6为本申请多路径代价聚合模块的结构框图。
图7为本申请目标像素四个方向示例图。
图8为本申请提供的一种低功耗立体匹配系统获取深度信息的方法的流程图。
图9为低功耗立体匹配系统获取深度信息的方法步骤S30的流程图。
图10为低功耗立体匹配系统获取深度信息的方法步骤S40的流程图。
图11为低功耗立体匹配系统获取深度信息的方法步骤S50的流程图
图12为一应用场景一目标的左图像。
图13为一应用场景同一目标的右图像。
图14为一应用场景输出同一目标的深度图。
具体实施方式
本申请提供一种低功耗立体匹配系统及获取深度信息的方法,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
该立体匹配系统的基本原理为:利用标定后不同位置的摄像头对同一物体目标进行拍摄,以得到不同角度的二维图像;利用同一空间点在二维图片中对应像素位置的不同以得到深度信息,由深度信息组成的图像称为深度图像。
经发明人研究表明,通用立体匹配算法可按能量代价函数不同可分为全局立体匹配算法,半全局立体匹配算法(SGM),以及局部立体匹配算法。其中,全局立体匹配算法主要是采用了全局的优化理论方法估计视差,建立全局能量函数,通过最小化全局能量函数得到最优视差值,其结果比较精准,但计算量大,运行时间长。局部匹配算法主要是采用局部优化方法进行视差值估计,也是通过能量最小化方法进行视差估计,其运行速度快,但是在能量函数中,只有数据项,而没有平滑项,导致精度较差。半全局立体匹配算法用到了像素点本身以及其邻点的约束信息(局部立体匹配算法的特点),又使用了动态规划思想,由多个方向的一维平滑约束来模拟二维平滑约束(全局立体匹配的特点),再将各个一维路径上的数据合并,并且引入根据深度不同而不同的惩罚因子作为平滑项,从而在确保精度情况下使算法对噪音有较强的鲁棒性。
目前立体匹配测试平台中大多算法都基于半全局立体匹配思想,但由于复杂高精度算法所需的计算量与资源消耗量因其较大,使其难以在硬件上移植,而现在众多应用均要求硬件系统拥有实时性,因此,为了解决上述问题,本申请提供一种低功耗立体匹配系统及获取深度信息的方法,通过使用Census算法作为初始像素代价值计算函数,并在Census普查模块与多路径代价聚合模块之间加入分区优化模块简化初始像素代价值,基于分区域处理以及最优视差位置,在不影响精度的情况下减少传入多路径代价聚合模块的初始像素代价值数量,进而降低算法耗时以及资源消耗,并确保精度。
请参阅图1,图1是本申请提供的一种低功耗立体匹配系统的结构框图,如图1所示,所述低功耗立体匹配系统包括普查模块1、分区优化模块2、多路径代价聚合模块3以及深度计算模块4,这样,通过分区优化模块2简化普查模块1中初始像素代价值的匹配数量,从而减少传入多路径代价聚合模块3的初始像素代价值数量,并基于最优视差位置以及多路径代价聚合,最终得到每个目标像素高精度的深度信息。
相应地,所述普查模块1(又称Census模块)用于输入目标的左图像和右图像,输出目标像素的多个初始像素代价值。如图1所示,所述普查模块1包括用于转换左图像的像素流的左普查转码单元11、用于转换右图像的像素流的右普查转码单元12以及用于确定每个目标像素的多个初始像素代价值的汉明距离计算单元13;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素。
也就是说,通过左普查转码单元11和右普查转码单元12分别实现Census变换,即左普查转码单元11和右普查转码单元12分别将对应输入的左图像和右图像中像素点的灰度值分别编码成二进制码流,以此来获取邻域像素灰度值相对于中心像素灰度值的大小关系,而通过汉明距离计算单元13实现每个目标像素的初始像素代价值的输出。
本申请实施例中,所述初始像素代价值指的是双目摄像头获取的两幅图像中像素块的相似程度。例如:预先设定一个视差搜索范围,若以标定后的右摄像头为基准,则在右摄像头获取的图像中依次选定一个像素点,并在标定后的左摄像头获取的图片中相同坐标像素点及其右边视差范围内的所有像素点进行匹配代价的计算,获取初始像素代价值。通常,初始像素代价值越低,说明右图像中像素点在所设定的视差下与左图像对应的像素点越匹配。
请参阅图2,图2是低功耗立体匹配系统中普查模块1的结构框图。如图2所示,所述右普查转码单元12包括右行缓存单元121、右普查窗口单元122以及右普查对比单元123,所述左普查转码单元11包括左行缓存单元111、左普查窗口单元112以及左普查对比单元113,其中,所述右行缓存单元121与所述左行缓存单元111的结构相同,所述右普查窗口单元122和所述右普查对比单元123分别与所述左普查窗口单元112、所述左普查对比单元113的结构不同。
所述右行缓存单元121、右普查窗口单元122、右普查对比单元123以及汉明距离计算单元13组成一个四级流水线结构,使得每四个周期完成一右图像中所有像素点在预设的视差搜索范围内所有Census变化以及汉明距离值(也即初始像素代价值)的计算。
进一步地,所述右行缓存单元121(linebuffer)用于依次缓存右图像像素流中连续两行像素值信息,其包括第一行缓存单元1211(linebuffer1)和第二行缓存单元1212(linebuffer2),所述第一行缓存单元1211和所述第二行缓存单元1212的深度值相同,且均由一个先进先出队列构成。这样,将所述右图像输入至右行缓存单元,通过所述右行缓存单元以像素流先进先出的传入方式依次缓存所述右图像中两行像素值信息。需要说明的是,每一个像素有一个灰度值,深度信息取决于输入图像的列数。
例如:以输入右图像为例,假设右图像的像素为640*480,则一行有640个像素点,此时linebuffer1与linebuffer2的深度均为640;右图像输入以左上角为初始传入点,右下角为结束传入点,以像素流的方式一个时钟周期传入一个像素灰度值至Linebuffer1中,经过640个周期右图像第一行像素传输完毕且填满linebuffer1;到1280个周期时,右图像第二行像素值信息传输完毕,此时,linebuffer1中填充的是右图像第二行像素值信息,linebuffer2中填充的是右图像第一行像素值信息。
请继续参阅图2,标定右图像为目标图像,因此,如图2所示,所述右普查窗口单元122包括一个用于遍历右图像的右滑动窗口1221,所述右普查窗口单元122通过该右滑动窗口1221对整个右图像进行遍历操作,输出该右滑动窗口1221所包含的所有像素的灰度值。该右滑动窗口1221由若干个寄存器组成,该右滑动窗口1221的尺寸大小根据用户需要预先定义,在本申请实施例中,所述右滑动窗口1221较佳为3*3的矩形窗口,与比特流最小8位数吻合,开销最小。所述右普查窗口单元122是一个三级流水线结构,因此,所述右滑动窗口1221在本申请实施例中较佳包括9个寄存器,形成3*3矩阵,每一层滑动窗口均包括3个相同的寄存器,第一层滑动窗口由寄存器1,寄存器2,寄存器3构成,第二层滑动窗口由寄存器4、寄存器5、寄存器6构成,第三层滑动窗口由寄存器7,寄存器8,寄存器9构成。需要说明的是,寄存器5用于处理该右滑动窗口1221对应的中心像素,而寄存器1,寄存器2,寄存器3,寄存器4,寄存器6,寄存器7,寄存器8,寄存器9用于处理该右滑动窗口1221的中心像素对应邻域内的8个像素。因此,这8个像素又称为该中心像素的邻域像素。中心像素即为目标像素。
请继续参阅图2,所述右普查对比单元123用于将该右滑动窗口1221遍历右图像区域过程中每次的中心像素作为参考像素并将该参考像素的灰度值与该右滑动窗口1221的该中心像素对应的邻域中每一个像素的灰度值进行比较,若该邻域像素的灰度值小于或等于参考像素的灰度值,则右普查对比单元123输出0,若该邻域像素的灰度值大于参考像素的灰度值,则右普查对比单元123输出为1。所述右普查对比单元123与右普查窗口单元122相对应,其同样是一个三层级联而成,所述右普查对比单元123包括一个右对比窗口1231,所述右对比窗口1231包括若干个比较器。所述右对比窗口1231在本申请实施例中较佳包括8个寄存器,同样形成3*3矩阵,但第一层对比窗口和第三层对比窗口均包括3个相同的比较器,即第一层对比窗口由比较器1,比较器2,比较器3构成;第三层对比窗口由比较器7,比较器8,比较器9构成,但第二层对比窗口仅由2个比较器构成,即比较器4和比较器6。
进一步地,右滑动窗口1221的寄存器5的输出端共同连接8个比较器的输入端。而除右滑动窗口1221的寄存器5外的其余8个寄存器均与所述右对比窗口1231的8个比较器一一对应,即寄存器1的输出端连接比较器1的输入端,寄存器2的输出端连接比较器2的输入端,寄存器3的输出端连接比较器3的输入端,寄存器4的输出端连接比较器4的输入端,寄存器6的输出端连接比较器6的输入端,寄存器7的输出端连接比较器7的输入端,寄存器8的输出端连接比较器8的输入端,寄存器9的输出端连接比较器9的输入端。
接着将8个比较器的输出值从左到右、从上到下的顺序按位连接,通过右普查对比单元123得到一个8bit的比特串,即由0和1组成的二进制码流(又称右二进制码流)。
这样,右图像的像素流通过所述右普查窗口单元122获取每个目标像素的灰度值以及对应目标像素的邻域像素的灰度值,通过所述右普查对比单元123对每个目标像素的灰度值与对应目标像素的邻域每个像素的灰度值进行大小比较,从而通过所述右普查对比单元按位顺序输出所述右图像每个目标像素对应的右二进制码流。
同样的,所述左普查转码单元11与所述右普查转码单元12采用同样的Census变换方法,即将左图像的图像像素转换为二进制码流。所述左普查转码单元11包括左行缓存单元111、左普查窗口单元112以及左普查对比单元113,其中,所述左行缓存单元111与所述右行缓存单元121的结构相同,所述左普查窗口单元112和所述左普查对比单元113分别与所述右普查窗口单元122、所述右普查对比单元123的结构不同。
具体地,所述左行缓存单元111同样用于依次缓存左图像像素流中连续两行像素值信息,其包括第一行缓存单元1111和第二行缓存单元1112,所述左行缓存单元111与所述右行缓存单元121采用相同的方法,具体参照上述所述右行缓存单元121实现过程。
然而,所述左普查窗口单元112包括用于遍历左图像中距离目标像素预设视差阈值区域内每个视差像素的左视差窗口1121,也就是说,在标定右图像为目标图像中,右图像中每一个目标像素都对应预设视差阈值个左视差窗口1121(又称Disparity Range窗口1121)。所述左视差窗口的个数为预设视差阈值。在本申请实施例中,所述预设视差阈值较佳为96个,可以获取该目标像素最优匹配,开销小。该预设视差阈值并非限定的,可根据用户需求自行设定,如48个,24个等。
举例:右图像中某目标像素1,对应一个右滑动窗口1221,一个右对比窗口122,与此同时,搜索左图像的该目标像素1,确定距离该目标像素预设视差阈值区域(即邻域),则该邻域内具有预设视差阈值(96)个视差像素,每个视差像素都对应一个左视差窗口1121,因此,在本申请实施例中,当确定右图像中一个目标像素1,则左图像该目标像素1具有96个视差像素,即96个左视差窗口1121。
因此,本申请的左视差窗口1121不是一个,具有预设视差阈值个窗口对应,本申请并发处理,不仅提高搜索速率,而且更进一步提高目标像素的精度。
进一步地,每个所述左视差窗口1121均包括若干个寄存器;在本申请实施例中,每个所述左视差窗口1121均包括9个寄存器,所述左普查对比单元113包括预设视差阈值个左对比窗口1131,也就是说,左视差窗口1121的个数与左对比窗口1131的个数相同,均为预设视差阈值个,例如96个左对比窗口1131。每个所述左对比窗口1131均包括8个比较器,每个所述左对比窗口1131均与对应所述左视差窗口1121的寄存器对应:
例如:以一个左视差窗口1121和一个左对比窗口1131为例,左滑动窗口1121的寄存器5的输出端共同连接8个比较器的输入端。而除左视差窗口1121的寄存器5外的其余8个寄存器均与所述左对比窗口1131的8个比较器一一对应,即寄存器1的输出端连接比较器1的输入端,寄存器2的输出端连接比较器2的输入端,寄存器3的输出端连接比较器3的输入端,寄存器4的输出端连接比较器4的输入端,寄存器6的输出端连接比较器6的输入端,寄存器7的输出端连接比较器7的输入端,寄存器8的输出端连接比较器8的输入端,寄存器9的输出端连接比较器9的输入端。接着将8个比较器的输出值从左到右、从上到下的顺序按位连接,通过左普查对比单元113得到一个8bit的比特串,即由0和1组成的二进制码流。这样,右图像中一个目标像素,输出一个右二进制码流,对应左图像中并发通过96个左视差窗口1121和96个左对比窗口1131输出96个右二进制码流。
请继续参阅图1和图2,所述汉明距离(Hamming Distance)计算单元13用于接收所述左普查转码单元11和所述右普查转码单元12分别输出的比特串,采用以计算汉明距离的方式计算目标像素的一个右二进制码流与每个左二进制码流的初始像素代价值,从而通过该汉明距离计算单元13确定每个目标像素的多个初始像素代价值。在本申请实施例中,该汉明距离值即为初始像素代价值,其指的是两个比特串的对应位不相同(即一个为1,另一个为0)的数量。所述汉明距离计算单元13包括并列设置的多个异或门以及与所有异或门的输出端共接的加法器132。在本申请实施例中,该异或门的个数较佳为9个,分别为异或门1、异或门2、异或门3、异或门4、异或门5、异或门6、异或门7、异或门8、异或门9,无异或门5,每个异或门具有两个输入端和一个输出端,异或门的两个输入端分别连接左普查对比单元113的一个比较器的输出端和右普查对比单元123的对应比较器的输出端,每个异或门的输出端与加法器连接。也就是说,对于一个目标像素来说,一个右二进制码流和96个左二进制码流并行输入至每个异或门的两输入端,通过每个异或门进行异或运算,输出至所述加法器,从而输出一个目标像素的96个初始像素代价值。
为了便于理解上述获取每个目标像素的初始像素代价值,下面一具体实施例加以说明:
以输入右图为例,右摄像头读取到图像数据后,通过右图像像素流pixelstream依次传入linebuffer1(第一行缓存单元)和linebuffer2(第二行缓存单元),当linebuffer2充满以后,pixelstream在进入linebuffer1的同时,pixelstream、linebuffer1最右边的数据和linebuffer2最右边的数据分别进入census窗口单元里stage1(状态1)的三个寄存器,在接下来的一个个时钟到来时依次向右传递;当Census窗口单元填满之后,下一个时钟周期到来时,Census窗口单元里除寄存器5外的8个寄存器,分别传入Census对比单元里对应位置的8个比较器,同时寄存器5传入Census对比单元里的8个比较器中进行比较,接着将Census对比单元里的8个比较器的比较结果,按照从左到右、从上到下的顺序进入Hamming计算单元与左图Census对比单元113传来的96个结果分别进行异或操作,最终结果输出96个Hamming distance(汉明距离),即每个目标像素具有96个初始像素代价值。例如:对于右图像某一像素点,在左图像中将有若干个像素点与之对应,以模拟不同视差取值下对应的代价值,其代价值数量为预设的视差范围值,此代价值也被称为像素点的初始像素代价值。
请继续参阅图1,所述分区优化模块2用于将每个目标像素的多个初始像素代价值划分为多个区域,并对每个区域进行优化处理,得到每个区域的最小区域代价值以及对应最小区域代价值的区域最佳匹配点位置,其目的是减少所述普查模块输出的初始像素代价值的数据量。所述优化处理指的是将目标像素的多个初始像素代价值划分为多个区域,每个区域包含多个初始像素代价值,所述分区优化模块2包括多个用于确定能够代表区域代价值的最小区域代价值以及该最小区域代价值的区域最佳匹配点位置的区域单元20。
每个区域单元20使用树状结构处理区域单元包含的所有初始像素代价值C1~C4,请参阅图3,图3为每个区域单元的结构框图,如图3所示,每个所述区域单元20均包括并行设置的两个第一最小子单元21(min_first)和与两个第一最小子单元21的输出端共接的第二最小子单元22(min_second)。
请参阅图4和图5,图4为第一最小子单元21的结构框图,图5为第二最小子单元22的结构框图。如图4所示,所述第一最小子单元21均包括第一比较器、第一数据复用器mux以及第一位置复用器mux,所述第一数据复用器用于输出任意2个初始像素代价值中最小的初始像素代价值,所述第一位置复用器用于输出该最小的初始像素代价值对应的位置值(最佳匹配像素点位置,用1bit表示)。具体应用时,所述第一比较器包括两个输入端和一个输出端,所述第一数据复用器包括三个输入端和一个输出端,所述第一位置复用器包括三个输入端和一个输出端。如图3和图4所示,所述第一比较器的两个输入端和第一数据复用器的两个输入端共接任意2个初始像素代价值如C1、C2,所述第一数据复用器的第三个输入端和所述第一位置复用器的第三个输入端共接所述第一比较器的输出端,所述第一数据复用器的输出端和所述第一位置复用器的输出端共接第二最小子单元的输入端。
例如:若输入c1,c2,当c1<c2时,第一比较器输出c1,并且第一位置复用器输出0,代表最佳匹配像素点位置;反之,若c1>c2,第一比较器输出c2,并且第一位置复用器输出1,代表最佳匹配位置。
同样地如图5所示,所述第二最小子单元22包括一个第二比较器、一个第二数据复用器mux、两个第二位置复用器mux以及一个与门单元,所述第二数据复用器用于输出两个第一最小子单元的输出数据中最小初始像素代价值,2个第二位置复用器用于输出该最小初始像素代价值对应的最佳匹配位置值,用2bit表示。具体地,所述第二比较器包括3个输入端和1个输出端,所述第二数据复用器包括三个输入端和一个输出端,两个第二位置复用器均包括三个输入端和一个输出端,所述与门单元包括两个输入端和一个输出端。
具体实施时,所述第二比较器的两个输入端和所述第二数据复用器的两个输入端共接两个第一最小子单元min_first分别输出的最小初始像素代价值,如C1和C2;所述第二数据复用器的第三输入端、两个第二位置复用器的第三输入端共接所述第二比较器的输出端,两个第二位置复用器的输出端共接所述与门单元的两个输入端,其中一个第二位置复用器的两个输入端输入0和1,另一个第二位置复用器的两个输入端与第二位置复用器的两个输入端对应输入p1和P2。
例如:若输入c1,c2,p1,p2,当c1<c2时,第二比较器输出c1,两个第二位置复用器分别输出p10代表最佳匹配位置;反之,若c1>c2,第二比较器输出c2,两个第二位置复用器分别输出p21代表最佳匹配位置。
这样,基于分区域处理以及最优视差位置,通过分区优化模块2简化初始像素代价值,在不影响精度的情况下减少传入多路径代价聚合模块3的初始像素代价值数量,从而减少资源开销,加快处理速率。
请参阅图6,图6为多路径代价聚合模块的结构框图。如图1和图6所示,所述多路径代价聚合模块3(SGM模块)用于对每个最小区域代价值的多个预设路径方向进行路径代价计算,得到对应预设路径方向的多个路径代价值,并将对应预设路径方向的所有路径代价值进行聚合,得到目标像素的对应区域的能量函数值。所述多路径代价聚合模块3包括用于传递每个区域的代价聚合值并辅助每个区域代价更新的若干先进先出单元31(FIFO单元)、用于确定每个区域对应的不同预设路径方向上的路径代价值并分别聚合同一区域的多个路径代价值的若干代价聚合模块32以及用于确定每个区域的多个能量函数值的加法聚合模块33。
在本申请实施例中,所述先进先出单元31的个数较佳为4个,所述代价聚合模块32的个数较佳也为4个,分别为代价聚合模块1(Agg1)、代价聚合模块2(Agg2)、代价聚合模块3(Agg3)、代价聚合模块4(Agg4)。其中,每个所述先进先出单元31均包括三个传输单元以及一个方向先进先出单元,所述方向先进先出单元的个数与所述代价聚合模块32的个数相同,对应于4个方向上代价聚合。这4个方向为目标像素的0°、45°、90°以及135°,如图7所示。每个传输单元由24个寄存器构成,因此,FIFO单元由0°、45°、90°以及135°四个方向先进先出单元以及12个传输单元构成。
进一步地,如图6所示,四个代价聚合模块构成四层平行二级流水线结构:第一层为第二代价聚合模块agg2自身聚合,由第二代价聚合模块agg2到第二代价聚合模块agg2,第二层为第二代价聚合模块Agg2到第四代价聚合模块Agg4,第三层为第二代价聚合模块Agg2到第三代价聚合模块Agg3,第四层为第一代价聚合模块Agg1到第四代价聚合模块Agg4。
需要说明的是,由于每一帧图像的第一行只需要进行0°的方向的代价聚合,如图6所示,因此通过一个计数器counter计数。当图像第一行到来时,24个区域代价值传入FIFO单元而不是Agg4,当第一行最后一个像素的区域代价值传入Agg2后,第二行的像素的区域代价值开始传入Agg4而不是FIFO单元,这是因为第二行以后的像素的区域代价值都需要进行4个方向的聚合;同时Agg3的输出跳过FIFO单元里的前两个传输单元而是直接传入相同方向对应的第三个传输单元,这是因为当第二行像素的区域代价值从Agg4传入时,相当于替代了FIFO单元的两个深度,因此只需从第三个传输单元传入。通过FIFO单元,可将代价聚合模块32中的代价聚合值依次传递下去,帮助代价聚合模块32进行代价的更新。
请继续参阅图1和图6,所述加法聚合模块(Sum)33由加法器构成,Agg1中含有4个方向的更新后的24*4个区域聚合值,也称为路径代价值,以一个区域为例,Sum聚合模块33通过加法器将区域的4个方向对应的路径代价值相加得到总路径代价值,继而得到24个区域的24个能量函数。
请继续参阅图1和图6,所述深度计算模块4用于确定多个能量函数值中最小能量函数值对应的视差区域,并基于所述区域最佳匹配点位置以及所述视差区域,得到深度信息。所述深度计算模块4包括能量最小查找模块41、移位模块42和加法模块43,所述能量最小查找模块41用于寻找最小能量值,即确定每个区域的多个能量函数值中最小能量函数值,所述移位模块42用于确定对应区域该最小能量函数的视差区域,即采用模拟乘法操作(*4),形成最小能量函数对应的视差区域,所述加法模块43用于基于分区优化模块2输出的区域最佳匹配点位置和移位模块42输出的最小能量函数对应的视差区域,计算出每个目标像素的深度信息。
所述深度计算模块4为三级流水线结构,即在三个时钟周期完成24个聚合能量值到深度信息的计算,其中前两个时钟周期完成24个能量值最小值寻找,第三个时间周期完成深度信息计算。
能量最小查找模块41为两级流水线结构,以树状结构实现,其中每一个时间周期处理三个对比阶层,输入为24个能量函数值,输出其中的最小值。
基于上述低功耗立体匹配系统,本申请还提供一种低功耗立体匹配系统获取深度信息的方法,请参阅图8,图8是本申请提供的低功耗立体匹配系统获取深度信息的方法的具体实施例的流程图。如图8所示,所述低功耗立体匹配系统获取深度信息的方法包括以下步骤:
S10、采集目标的左图像和右图像;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素。
在本申请实施例中,通过双目摄像头采集同一目标的左图像和右图像。该双目摄像头是模拟人的双眼,由两个单目摄像头即左摄像头和右摄像头组成,每个单目摄像头对同一目标拍摄以输出一图像,分别对应左图像和右图像。因此,所述左图像与所述右图像为同一目标(例如同一像素块)不同角度下对应的图像。在拍摄前,预先标定某一单目摄像头以使得其所拍摄的图像作为目标图像,如标定双目摄像头中的右单目摄像头作为目标摄像头,然后双目摄像头对同一物体目标进行拍摄,得到作为目标图像的右图像,作为非目标图像的左图像。继而将左右图像输入至低功耗立体匹配系统,得到每个目标像素高精度的深度信息。
由于同一物体目标下的左图像和右图像在同一空间点具有一距离视差,因此,预先设定一视差阈值(即同一目标像素的视差搜索范围),可以通过标定的目标图像中同一目标像素及非目标图像中对应邻域该目标像素对应的视差阈值范围内的所有视差像素点进行匹配代价和一系列计算、优化,得到同一目标像素的深度信息。
S20、针对目标图像中若干目标像素中每一个目标像素,确定非目标图像中该目标像素对应的预设视差阈值个视差像素,并基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值。
在本申请实施例中,获取预设视差阈值并确定目标图像中的一目标像素;在目标图像的图像区域,确定目标像素自身的所有领域像素,即右图像中一目标像素1,通过右滑动窗口1221搜索右图像区域中该目标像素1的其他8个邻域像素。然后获取目标像素1的灰度值以及该目标像素1的所有领域像素的灰度值,通过右比较窗口1231比较目标像素与该目标像素自身对应的所有邻域像素的灰度值大小,若某邻域像素的灰度值小于或等于目标像素的灰度值,输出0,若某邻域像素的灰度值大于目标像素的灰度值,输出1,将8个比较结果按位(即从上到下、从左到右)连接,输出该目标像素的第一二进制码流(即上述右二进制码流)。
与此同时,基于该目标像素1以及预设视差阈值,在非目标图像的图像区域搜索距离该相同目标像素一预设视差阈值区域内所有视差像素,即在左图像的图像区域距离该相同坐标像素的预设视差阈值内的96个视差像素,也就是说,一个目标像素1,对应96个视差像素,即对应96个左视差窗口1121。然后基于所有视差像素,以每个视差像素为中心,通过对应的左视差窗口1121,在左图像的图像区域搜索每个视差像素自身的8个邻域像素。通过96个左对比窗口1131,同样将每一个视差像素均作为参考像素,比较每个参考像素与每个参考像素对应的所有邻域像素的灰度值大小,若某邻域像素的灰度值小于或等于参考像素的灰度值,输出0,若某邻域像素的灰度值大于参考像素的灰度值,输出1,然后每个视差像素的比较结果按位(即从上到下、从左到右)连接,输出每个视差像素的第二二进制码流,也就该目标像素的第二二进制码流,共96个第二二进制码流(即上述左二进制码流)。
二进制码流转换可用公式(1)和公式(2)表示:
其中,(u,v)为中心像素坐标,为位拼接符,将得到的0、1字符拼接成一个8bit比特串,其中,n′=1,m′=1(u+i,v+j)为邻域像素坐标,i∈[-n′,n′],ξ(x,y)为0、1比较公式,x、y为相比较的两个数值,Cs(u,v)为坐标(u,v)下的普查转换后得到的8bit比特串,I(u,v)为坐标(u,v)下的像素值。
接着,计算所述第一二进制码流与96个第二二进制码流的汉明距离,确定该目标像素的96个初始像素代价值。即将所述第一二进制码流并行与96个第二二进制码流分别进行异或运算,若所述第一二进制码流的某位数据与第二二进制码流的对应位数据不同,则输出1,若所述第一二进制码流的某位数据与第二二进制码流的对应位数据相同,则输出0,然后通过加法器132统计96个异或运算结果的比特位中不为1的个数,该个数值即为初始像素代价值,即输出96个初始像素代价值。
该异或运算和统计用公式(3)表示:
公式(3)表示将两个比特串进行异或运算,再统计异或运算结果的比特位中不为1的个数。其中,为异或运算符,C(u,v,d)为像素点(u,v)在深度d下的初始匹配代价,d∈[0,disparityrange-1],其中,disparityrange表示视差范围。
S30、基于预设区域代价阈值,确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置。
在本申请实施例中,预设设置区域代价阈值。所述区域代价阈值较佳为4,即定义每个区域包括至少4个初始像素代价值,以一个目标像素为例说明,因此,一个目标像素的96个初始像素代价值按4个初始像素代价值为一区域,可划分为24个区域单元,因此,通过分区优化模块2输出为24个区域代价值与24个区域最佳匹配点位置。这样,通过所述分区优化模块2的优化后输入至多路径代价聚合模块3的数据量将减少至少4倍,由此减少整体的资源消耗量。
每个区域单元20由4个初始像素代价值C1、C2、C3、C4组成,用该区域单元内最小的初始像素代价值表示该区域代价值,并保持该最小的初始像素代价值对应的位置,该最小的初始像素代价值所在位置成为该区域单元i内最匹配点即最佳匹配像素点位置。该区域单元i用公式(4)和公式(5)表示为:
p′i=position(min(ci,ci-1,ci-2,ci-3)) (4)
其中,min为寻找最小值函数,ci-3,ci-2,ci-1,ci分别代表传入的4个初始像素代价值,p′i代表区域单元内最佳匹配像素点。
因此,如图9所示,所述步骤S30具体包括:
S31,获取预设区域代价阈值;
S32,基于所述预设区域代价阈值划分目标像素的多个初始像素代价值,确定该目标像素的若干区域以及对应区域的多个初始像素代价值;
S33,选取若干区域中每个区域的多个初始像素代价值中值最小的初始代价值,作为对应区域的最小区域代价值;
S34,基于对应区域的最小区域代价值,获取目标图像中所述最小区域代价值的区域最佳匹配点位置。
需要说明的是,本申请中选取若干区域中每个区域的多个初始像素代价值中值最小的初始代价值是经过二次最小处理,更进一步提高匹配精度,保证数据准确。
S40、基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值。
在本申请实施例中,所述多路径代价聚合模块3对分区优化模块2优化后的24个区域代价值,针对其中一个区域的一个区域代价值,选择0°、45°、90°以及135°这4个方向分别进行路径代价计算,得到0°、45°、90°以及135°这4个方向的路径代价值,将0°、45°、90°以及135°这4个方向的路径代价值进行聚合,得到该区域的能量函数,相同方法计算其他区域的多路径代价,得到24个区域对应的24个能量函数值,从而确定每个目标像素的24个能量函数值。
具体实施时,第一个时钟周期在Agg2中,分别计算0°方向聚合值的最小值、90°方向聚合值的最小值和135°方向聚合值中的最小值,同时Agg1计算45°方向聚合值的最小值。这四个不同方向聚合值中的最小路径代价值为下路径代价计算公式(6)单个方向上中的minj Lr(p-r,j)。
其中,Lr(p,i)表示像素点p在路径方向r上视差区域i下的路径代价值,公式第一项C(p,i)为像素p在视差区域i时的区域代价值,p-r点为像素点p在路径方向r上的前一个像素点,Lr(p-r,i)表示像素点p-r在路径方向r上视差区域i下的区域代价值,Lr(p-r,i-1)表示像素点p-r在路径方向r上视差区域i-1下的区域代价值,Lr(p-r,i+1)表示像素点p-r在路径方向r上视差区域i+1下的区域代价值,P1,P2为预设的惩罚系数,minj Lr(p-r,j)表示点p-r的在路径方向r上任意视差区域j下的最小路径代价值。
需要说明的是,由于第一个时钟周期内的Agg2对应于第二个时钟周期内Agg2的0°方向上前一个pixel,第一个时钟周期内的Agg2对应于第二个时钟周期内Agg4的90°方向上前一个pixel,第一个时钟周期内的Agg2对应于第二个时钟周期内Agg3的135°方向上前一个pixel,第一个时钟周期内的Agg1对应于第二个时钟周期内Agg4的45°方向上前一个pixel,因此在第二个时钟周期内Agg2获得上一个时钟周期中Agg2计算得到的0°方向聚合值中的最小值,以及所有上个时钟周期中Agg2的0°方向24个聚合值,同时根据前文路径代价计算公式进行代价的更新;Agg4获得上一个时钟周期中Agg2计算的90°方向聚合值中的最小值,以及所有上个时钟周期中Agg2的90°方向24个聚合值,同时获得上一个时钟周期Agg1计算的45°方向聚合值中的最小值,以及所有上个时钟周期中Agg1的45°方向24个聚合值,再根据路径代价计算公式进行代价的更新;Agg3获得上一个时钟周期中Agg2计算的135°方向聚合值中的最小值,以及所有上个时钟周期中Agg2的135°方向24个聚合值。在第二个时钟周期以后,Agg1不仅使Agg4完成了45°方向的代价更新,同时含有了4个方向都更新过的代价值,从而在此代价聚合模块中,可完成四个方向的代价更新。
接着,针对24个区域中每一个区域,将该区域的4个方向路径代价值通过公式(7)进行累加,形成对于目标像素p的该视差区域i的能量函数,
最终得到24个能量函数值,即目标像素对应的24个能量函数值。
E(p,i)=∑rLr(p,i) (7)
也就是说,如图10所示,所述步骤S40具体包括:
S41,选定多个预设路径方向;其中,所述预设路径方向包括0°、45°、90°以及135°;
S42,针对多个区域中的每一个区域,计算该区域的最小区域代价值多个预设路径方向上的路径代价,得到该区域对应预设路径方向上的最小路径代价值;
S43,将该区域的多个最小路径代价值聚合处理,得到该区域的能量函数值。
S50、基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息。
在本申请实施例中,所述深度计算模块4通过公式(8)计算得到每个目标像素的深度信息。
dfinal=4*i+p′i (8)
其中,p’i为区域最佳匹配点位置。
也就是说,图中目标像素p的每个视差区域的能量函数E(p,i),找出最小能量函数对应的视差区域i,并从第4步骤中找到该像素p视差区域i的最佳匹配位置p′i,继而求出目标像素p的深大信息。
因此,如图11所示,所述步骤S50具体包括:
S51,获取所有区域对应的能量函数值;
S52,选取出所有能量函数值中最小值,并对该最小能量函数值采用模拟乘法操作,确定该最小能量函数值对应的最优视差区域;
S53,接收该最优视差区域对应的区域最佳匹配点位置;
S54,基于该目标像素的区域最佳匹配点位置以及最优视差区域,得到该目标像素的深度信息。
进一步地,基于深度信息以及目标图像,最终可获取该目标的深度图。
图12-图14示例了本申请该低功耗立体匹配系统获取深度信息的方法的一应用场景。
综上所述,本申请提供了一种低功耗立体匹配系统获取深度信息的方法。所述低功耗立体匹配系统获取深度信息的方法包括以下步骤:采集目标的左图像和右图像;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素;针对目标图像中若干目标像素中每一个目标像素,确定非目标图像中该目标像素对应的预设视差阈值个视差像素,并基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值;基于预设区域代价阈值,确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置;基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值;基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息。本申请通过使用Census算法作为初始像素代价值计算函数,并在Census普查模块与多路径代价聚合模块之间加入分区优化模块简化初始像素代价值,基于分区域处理以及最优视差位置,在不影响精度的情况下减少传入多路径代价聚合模块的初始像素代价值数量,进而降低算法耗时以及资源消耗,并确保精度。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种低功耗立体匹配系统,其包括普查模块、多路径代价聚合模块以及深度计算模块,其特征在于,还包括:设置在所述普查模块和所述多路径代价聚合模块之间的分区优化模块;
所述普查模块用于输入目标的左图像和右图像,输出目标像素的多个初始像素代价值;所述普查模块包括用于转换左图像的像素流的左普查转码单元、用于转换右图像的像素流的右普查转码单元以及用于确定每个目标像素的多个初始像素代价值的汉明距离计算单元;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素;
所述分区优化模块包括多个用于确定能够代表区域代价值的最小区域代价值以及该最小区域代价值的区域最佳匹配点位置的区域单元,每个所述区域单元均包括并行设置的两个第一最小子单元和与两个第一最小子单元的输出端共接的第二最小子单元;
所述多路径代价聚合模块包括用于传递每个区域的代价聚合值并辅助每个区域代价更新的若干先进先出单元、用于确定每个区域对应的不同预设路径方向上的路径代价值并分别聚合同一区域的多个路径代价值的若干代价聚合模块以及用于确定每个区域的多个能量函数值的加法聚合模块;
所述深度计算模块包括用于确定每个区域的多个能量函数值中最小能量函数值的能量最小查找模块、用于确定对应区域该最小能量函数的视差区域的移位模块以及用于基于所述移位模块的每个视差区域以及所述分区优化模块的对应区域的区域最佳匹配点位置所确定的每个目标像素的深度信息的加法模块。
2.根据权利要求1所述的低功耗立体匹配系统,其特征在于,所述右普查转码单元包括右行缓存单元、右普查窗口单元以及右普查对比单元,所述左普查转码单元包括左行缓存单元、左普查窗口单元以及左普查对比单元,其中,所述右行缓存单元与所述左行缓存单元的结构相同,所述右普查窗口单元和所述右普查对比单元分别与所述左普查窗口单元、所述左普查对比单元的结构不同。
3.根据权利要求2所述的低功耗立体匹配系统,其特征在于,当以左图像为目标图像,以右图像为非目标图像时,所述左普查窗口单元包括一个用于遍历左图像的左滑动窗口,该左滑动窗口包括若干个寄存器,所述左普查对比单元包括一个左对比窗口,所述左对比窗口包括若干个比较器;所述右普查窗口单元包括用于遍历右图像中距离目标像素预设视差阈值区域内每个视差像素的右视差窗口,所述右视差窗口的个数为预设视差阈值,每个所述右视差窗口均包括若干个寄存器;所述右普查对比单元包括预设视差阈值个右对比窗口,每个所述右对比窗口包括若干个比较器。
4.根据权利要求1所述的低功耗立体匹配系统,其特征在于,每个所述第一最小子单元均包括第一比较器、第一数据复用器以及第一位置复用器,所述第一数据复用器用于输出所输入的多个初始像素代价值中的最小初始像素代价值,所述第一位置复用器用于输出所述最小初始像素代价值对应的位置信息;所述第二最小子单元包括一个第二比较器、一个第二数据复用器、两个第二位置复用器以及一个与门单元,所述第二数据复用器用于获取两个所述第一最小子单元输出数据中最小初始像素代价值,所述第二位置复用器用于输出该最小初始像素代价值对应的最佳匹配位置信息。
5.根据权利要求1所述的低功耗立体匹配系统,其特征在于,每个所述先进先出单元均包括三个传输单元以及一个方向先进先出单元,所述方向先进先出单元的个数与所述代价聚合模块的个数相同。
6.一种如权利要求1-5任一项所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述低功耗立体匹配系统获取深度信息的方法包括以下步骤:
采集目标的左图像和右图像;其中,以左图像或右图像作为目标图像,所述目标图像包括若干目标像素;
针对目标图像中若干目标像素中每一个目标像素,确定非目标图像中该目标像素对应的预设视差阈值个视差像素,并基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值;
基于预设区域代价阈值,确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置;
基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值;
基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息。
7.根据权利要求6所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述基于该目标像素及所有视差像素,确定该目标像素的第一二进制码流和每个视差像素的第二二进制码流,并将第一二进制码流分别与每个第二二进制码流进行汉明距离计算,得到该目标像素的多个初始像素代价值具体包括:
获取预设视差阈值并确定目标图像中的一目标像素;
在目标图像的图像区域确定该目标像素自身的所有领域像素以及在非目标图像的图像区域搜索距离该相同目标像素一预设视差阈值区域内所有视差像素;
基于所有视差像素,确定每个视差像素自身的所有邻域像素;
比较目标像素与该目标像素自身对应的所有邻域像素的灰度值大小,输出该目标像素的第一二进制码流;
将每一个视差像素均作为参考像素,比较每个参考像素与每个参考像素对应的所有邻域像素的灰度值大小,输出该目标像素的多个第二二进制码流;
计算所述第一二进制码流与每个第二二进制码流的汉明距离,确定该目标像素的多个初始像素代价值。
8.根据权利要求7所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述比较目标像素与该目标像素自身对应的所有邻域像素的灰度值大小,输出该目标像素的第一二进制码流具体包括:
当某邻域像素的灰度值小于或等于目标像素的灰度值,其比较结果为0,则输出0;
当某邻域像素的灰度值大于目标像素的灰度值,其比较结果为1,则输出1;
将所有比较结果按位输出,得到该目标像素的第一二进制码流。
9.根据权利要求7或8所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述计算所述第一二进制码流与每个第二二进制码流的汉明距离,确定该目标像素的多个初始像素代价值具体包括:
将所述第一二进制码流并行与每个第二二进制码流进行异或运算,得到多个异或运算结果;
统计每个异或运算结果的比特位不为1的个数,得到该目标像素的多个初始像素代价值。
10.根据权利要求6所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述确定该目标像素的若干区域以及每个区域的若干初始像素代价值,并基于若干区域中每个区域的若干初始像素代价值,确定每个区域的最小区域代价值以及每个所述最小区域代价值的区域最佳匹配点位置具体包括:
获取预设区域代价阈值;
基于所述预设区域代价阈值划分目标像素的多个初始像素代价值,确定该目标像素的若干区域以及对应区域的多个初始像素代价值;
选取若干区域中每个区域的多个初始像素代价值中值最小的初始代价值,作为对应区域的最小区域代价值;
基于对应区域的最小区域代价值,获取目标图像中所述最小区域代价值的区域最佳匹配点位置。
11.根据权利要求6所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述基于每个区域的最小区域代价值的多个预设路径方向,确定每个区域对应预设路径方向上的路径代价值,并将同一区域的多个预设路径方向上对应的路径代价值进行聚合,得到每个区域的能量函数值具体包括:
选定多个预设路径方向;其中,所述预设路径方向包括0°、45°、90°以及135°;
针对多个区域中的每一个区域,计算该区域的最小区域代价值多个预设路径方向上的路径代价,得到该区域对应预设路径方向上的最小路径代价值;
将该区域的多个最小路径代价值聚合处理,得到该区域的能量函数值。
12.根据权利要求6所述的低功耗立体匹配系统获取深度信息的方法,其特征在于,所述基于所有区域对应的能量函数值以及所有区域中每个区域对应的区域最佳匹配点位置,确定所有能量函数值中最小能量函数值对应的视差区域,并基于该最小能量函数值所在区域对应的区域最佳匹配点位置以及所述视差区域,得到该目标像素的深度信息具体包括:
获取所有区域对应的能量函数值;
选取出所有能量函数值中最小值,并对该最小能量函数值采用模拟乘法操作,确定该最小能量函数值对应的最优视差区域;
接收该最优视差区域对应的区域最佳匹配点位置;
基于该目标像素的区域最佳匹配点位置以及最优视差区域,得到该目标像素的深度信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762904.3A CN112070821B (zh) | 2020-07-31 | 2020-07-31 | 一种低功耗立体匹配系统及获取深度信息的方法 |
PCT/CN2021/083603 WO2022021912A1 (zh) | 2020-07-31 | 2021-03-29 | 一种低功耗立体匹配系统及获取深度信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762904.3A CN112070821B (zh) | 2020-07-31 | 2020-07-31 | 一种低功耗立体匹配系统及获取深度信息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112070821A CN112070821A (zh) | 2020-12-11 |
CN112070821B true CN112070821B (zh) | 2023-07-25 |
Family
ID=73657313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010762904.3A Active CN112070821B (zh) | 2020-07-31 | 2020-07-31 | 一种低功耗立体匹配系统及获取深度信息的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112070821B (zh) |
WO (1) | WO2022021912A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070821B (zh) * | 2020-07-31 | 2023-07-25 | 南方科技大学 | 一种低功耗立体匹配系统及获取深度信息的方法 |
CN113329219B (zh) * | 2021-05-07 | 2022-06-14 | 华南理工大学 | 多输出参数可动态配置深度相机 |
CN113436057B (zh) * | 2021-08-27 | 2021-11-19 | 绍兴埃瓦科技有限公司 | 数据处理方法及双目立体匹配方法 |
CN114723967B (zh) * | 2022-03-10 | 2023-01-31 | 合肥的卢深视科技有限公司 | 视差图优化方法、人脸识别方法、装置、设备及存储介质 |
CN114677261B (zh) * | 2022-05-27 | 2022-08-26 | 绍兴埃瓦科技有限公司 | 一种视差处理电路和视差处理系统及其方法 |
CN116129037B (zh) * | 2022-12-13 | 2023-10-31 | 珠海视熙科技有限公司 | 视触觉传感器及其三维重建方法、系统、设备及存储介质 |
CN116228601B (zh) * | 2023-05-08 | 2023-07-21 | 山东中都机器有限公司 | 一种火车双向平煤的平煤效果视觉监控方法 |
CN116958134B (zh) * | 2023-09-19 | 2023-12-19 | 青岛伟东包装有限公司 | 基于图像处理的塑料膜挤出质量评估方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220997A (zh) * | 2017-05-22 | 2017-09-29 | 成都通甲优博科技有限责任公司 | 一种立体匹配方法及系统 |
CN109743562A (zh) * | 2019-01-10 | 2019-05-10 | 中国科学技术大学 | 基于Census算法的匹配代价计算电路结构及其工作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104427324A (zh) * | 2013-09-02 | 2015-03-18 | 联咏科技股份有限公司 | 视差计算方法及其立体匹配装置 |
US10554947B1 (en) * | 2015-12-16 | 2020-02-04 | Marvell International Ltd. | Method and apparatus for stereo vision matching including disparity refinement based on matching merit values |
CN108460792B (zh) * | 2016-12-12 | 2021-09-21 | 南京理工大学 | 一种基于图像分割的高效聚焦立体匹配方法 |
KR20180087944A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 스테레오 매칭 방법 및 장치 |
CN109255811B (zh) * | 2018-07-18 | 2021-05-25 | 南京航空航天大学 | 一种基于可信度图视差优化的立体匹配方法 |
CN110310320B (zh) * | 2019-07-09 | 2023-07-07 | 南京美基森信息技术有限公司 | 一种双目视觉匹配代价聚合优化方法 |
CN110473217B (zh) * | 2019-07-25 | 2022-12-06 | 沈阳工业大学 | 一种基于Census变换的双目立体匹配方法 |
CN112070821B (zh) * | 2020-07-31 | 2023-07-25 | 南方科技大学 | 一种低功耗立体匹配系统及获取深度信息的方法 |
-
2020
- 2020-07-31 CN CN202010762904.3A patent/CN112070821B/zh active Active
-
2021
- 2021-03-29 WO PCT/CN2021/083603 patent/WO2022021912A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220997A (zh) * | 2017-05-22 | 2017-09-29 | 成都通甲优博科技有限责任公司 | 一种立体匹配方法及系统 |
CN109743562A (zh) * | 2019-01-10 | 2019-05-10 | 中国科学技术大学 | 基于Census算法的匹配代价计算电路结构及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112070821A (zh) | 2020-12-11 |
WO2022021912A1 (zh) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112070821B (zh) | 一种低功耗立体匹配系统及获取深度信息的方法 | |
US10878273B2 (en) | Dynamic quantization for deep neural network inference system and method | |
CN111179339B (zh) | 基于三角测量的坐标定位方法、装置、设备及存储介质 | |
US20210042954A1 (en) | Binocular matching method and apparatus, device and storage medium | |
US11417014B2 (en) | Method and apparatus for constructing map | |
CN112001914A (zh) | 深度图像补全的方法和装置 | |
US9628777B2 (en) | Method of 3D reconstruction of a scene calling upon asynchronous sensors | |
CN111652921B (zh) | 一种单目深度预测模型的生成方法及单目深度预测方法 | |
CN109743562B (zh) | 基于Census算法的匹配代价计算电路结构及其工作方法 | |
CN110517309A (zh) | 一种基于卷积神经网络的单目深度信息获取方法 | |
CN112652020B (zh) | 一种基于AdaLAM算法的视觉SLAM方法 | |
CN112465704B (zh) | 一种全局-局部自适应优化的全景光场拼接方法 | |
CN106952304A (zh) | 一种利用视频序列帧间相关性的深度图像计算方法 | |
WO2008054109A1 (en) | Message propagation-based stereo image matching system | |
CN115714855A (zh) | 一种基于立体视觉与tof融合的三维视觉感知方法及系统 | |
CN112233149A (zh) | 场景流的确定方法及装置、存储介质、电子装置 | |
KR20230117034A (ko) | 깊이 이미지 완성 방법 및 장치 | |
CN110428461B (zh) | 结合深度学习的单目slam方法及装置 | |
CN111553296A (zh) | 一种基于fpga实现的二值神经网络立体视觉匹配方法 | |
CN214587004U (zh) | 一种立体匹配加速电路、图像处理器及三维成像电子设备 | |
CN111325778A (zh) | 基于窗口互相关信息的改进Census立体匹配算法 | |
CN112258647B (zh) | 地图重建方法及装置、计算机可读介质和电子设备 | |
Ding et al. | Improved real-time correlation-based FPGA stereo vision system | |
CN110120009B (zh) | 基于显著物体检测和深度估计算法的背景虚化实现方法 | |
CN103839259B (zh) | 一种图像搜寻最优匹配块方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |