CN114677261A - 一种视差处理电路和视差处理系统及其方法 - Google Patents

一种视差处理电路和视差处理系统及其方法 Download PDF

Info

Publication number
CN114677261A
CN114677261A CN202210583780.1A CN202210583780A CN114677261A CN 114677261 A CN114677261 A CN 114677261A CN 202210583780 A CN202210583780 A CN 202210583780A CN 114677261 A CN114677261 A CN 114677261A
Authority
CN
China
Prior art keywords
column
parallax
shift register
aggregation cost
minimum
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.)
Granted
Application number
CN202210583780.1A
Other languages
English (en)
Other versions
CN114677261B (zh
Inventor
王赟
张官兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaoxing Ewa Technology Co ltd
Original Assignee
Shaoxing Ewa Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shaoxing Ewa Technology Co ltd filed Critical Shaoxing Ewa Technology Co ltd
Priority to CN202210583780.1A priority Critical patent/CN114677261B/zh
Publication of CN114677261A publication Critical patent/CN114677261A/zh
Application granted granted Critical
Publication of CN114677261B publication Critical patent/CN114677261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Abstract

本说明书提供一种视差处理电路和视差处理系统及其方法,应用于人工智能技术领域。视差处理电路包括移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路,在列周期控制下,移位寄存器矩阵中各列的聚合代价依次移位一列,在移位方向的尾部按列存入新加入列中的聚合代价,串行WTA电路从移位寄存器矩阵中对应列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定并输出第一对角线上的最小聚合代价,并行WTA电路和行向移位寄存器组配合使用对应记录移位寄存器矩阵中每列对应的最小聚合代价。通过本申请的处理方案,实现了视差处理过程中对行方向和列方向的数据复用,提高了数据匹配视差检验的处理效率。

Description

一种视差处理电路和视差处理系统及其方法
技术领域
本说明书涉及人工智能技术领域,具体涉及一种视差处理电路和视差处理系统及其方法。
背景技术
在图像的立体匹配处理中,区域匹配算法主要分为以下步骤,首先使用相似性测度计算出每个像素在不同视差下的匹配代价,然后通过窗口聚合的方式计算出该像素点所在邻域内的像素的代价和,最后通过WTA(Winner-Takes-All,赢者通吃)的方法求出聚合代价最小时的视差,作为该像素的视差,最终计算整幅图像中的所有像素,形成视差图。视差处理是将参考图像和目标图像做比较,寻找目标图像上与参考图像相对应的像素点,并输出视差图的过程。
在传统的立体匹配计算过程中,需要分别计算参考像素的视差和目标像素视差,然后将当前参考像素最优视差及该参考像素最优视差对应目标像素视最优视差进行左右一致性验证,若一致则证明当前视差计算结果正确。因此在上述左右一致性验证过程中数据处理量非常大,其中一是除了在完成参考像素视差计算完成后需要重新计算目标像素对应的视差;二是现有硬件加速电路或算法虽然针对一致性验证进行了优化加速设计实现了部分计算结果复用,但在左右一致性验证阶段仍需要复杂的数据调度和控制逻辑,很难做到高效数据处理及流水线作业,从而使得立体匹配技术在各种智能设备上的部署应用受到较多限制。
因此,亟需一种新的视差处理计算方案。
发明内容
有鉴于此,本说明书实施例提供一种视差处理电路和视差处理系统及其方法,可对图像立体匹配过程中数据的处理进行有效的组织管理,有利于提高立体匹配过程中视差处理电路数据处理效率和使得整个视差处理过程实现流水线作业,提高立体匹配技术在不同场景应用的实时性、实用性。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种视差处理电路,包括:移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路;
移位寄存器矩阵至少包括一列由n+1行的寄存器组成的寄存器阵列,在列周期控制下,将各列的聚合代价依次移位一列,以及在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d’,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中d’∈d,d’为视差值,视差范围d为[0:n],n为正整数;其中[0:n]×[0:n]的移位寄存器表示所述移位寄存器矩阵由n+1行寄存器组、n+1列寄存器组构成,行向各寄存器首尾耦合连接,实现数据在行向流动,每个寄存器中存储对应像素的匹配聚合代价和/或该像素的视差及坐标,在列寄存器组中存储一个参考像素在视差范围d(即0到n)内与各对应目标像素的聚合代价,当整个移位寄存器矩阵存储加载满数据后,该移位寄存器矩阵可存储n+1个参考像素在不同视差下的匹配聚合代价;此时在整个移位寄存器矩阵每个对角线方向上的寄存器组中存储的是一个目标像素在不同视差下的匹配聚合代价,尤其在最大对角线上存储的是一个目标像素在视差范围d(即0到n)内与各对应参考像素的聚合代价。
基于以上通过首先选取最大对角线方向所代表的目标像素对应的某一视差值下最小聚合代价,来确定该目标像素在当前视差值下对应的参考像素,在确定该参考像素后,从该参考像素所在列寄存器组中筛选出该参考像素对应聚合代价最小的视差值,以此通过比对当前目标像素视差值与其对应的参考像素的视差值,来确定当前像素的差值是否有效;
进一步的所述移位寄存器矩阵包括由[0:n]×1的移位寄存器组成的寄存器阵列,即所述移位寄存器矩阵由1列、n+1行寄存器组构成,通过合理设置并行WTA电路亦可实现上述由[0:n]×[0:n]的移位寄存器组成的寄存器阵列视差加速处理过程,相较于由[0:n]×[0:n]的移位寄存器组成的寄存器阵列,可节省n×(n+1)个寄存器的电路面积;
针对上述两种移位寄存器矩阵设计方案,前一种在计算速度上大大被提高,后一种由于取消了大部分列寄存器大大节省了整个电路面积,因此在实际应用过程中可考虑时间和空间等因素合理选择对应移位寄存器矩阵设计方案。
串行WTA电路用于在列周期控制下,从移位寄存器矩阵中新加入列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价;在实际实现过程中,当前列周期时,处于移位寄存器矩阵每个第一对角线上的聚合代价中的最小聚合代价值已在前若干列周期被串行WTA筛选出,当前列周期只需比较对应列各聚合代价与该聚合代价所在第一对角线上最小聚合代价值,确定当前列周期下第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其视差值,然后基于该视差值作为选择信号确定对应移位寄存器矩阵列寄存器组。
并行WTA电路用于在列周期控制下,获取移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价;
进一步的,当采用由[0:n]×[0:n]的移位寄存器组成的寄存器矩阵加速电路方式时,矩阵的每列寄存器组对应一个并行子WTA电路,用于从当前列聚合代价中筛选最小聚合代价,即第二最小聚合代价,其中每个并行子WTA包含至少一个或多个并行第二比较电路,用于从当前列每个寄存器中并行接收全部或部分聚合代价数据,从当前列的n+1个聚合代价中筛选出第二最小聚合代价;因此在采用上述实现方式时,当前并行WTA电路包括n+1个并行子WTA电路,可在同一或不同列周期分别获得每列聚合代价最小的聚合代价值,作为当前并行子WTA电路对应列的最小聚合代价,即第二最小聚合代价;
进一步的若用采用由[0:n]×1的移位寄存器组成的寄存器矩阵加速电路方式时,实际电路中只包含一列由n+1行寄存器构成的寄存器组以及一个与其对应的并行子WTA电路;其中该并行WTA电路与上述并行子WTA电路功能类似,只是在该电路内部第二比较器数量和/或时钟频率控制方面存在差异性,采用该方式可进一步减少寄存器组硬件面积。
行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器,用于在列周期控制下,对并行WTA电路获得的第二最小聚合代价依次移位缓存,以对应记录移位寄存器矩阵中每列对应的第二最小聚合代价及其对应的视差值;
视差选择电路用于在列周期控制下,从行向移位寄存器组中的各个第二最小聚合代价之中,确定出第一最小聚合代价所在列上的第二最小聚合代价,并根据第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的第一最小聚合代价所在列上的第二最小聚合代价确定当前参考像素对应的第二视差值;然后通过左右一致性检验电路计算第一视差值与第二视差值的差值的绝对值结果,并与预设阈值比较,若该差值的绝对值结果小于或小于等于该阈值则当前参考像素或目标像素所对应的视差值正确并保留输出,若大于该阈值则当前参考像素或目标像素所对应的视差值错误则当前视差值无效。
本说明书实施例还提供一种视差处理系统,包括至少两个视差处理电路,视差处理电路为本说明书中任意一个实施例的视差处理电路,其中至少两个视差处理电路用于构成新视差处理电路,新视差处理电路的视差范围整数倍于视差范围d。
本说明书实施例还提供一种视差处理方法,包括:
在列周期控制下,将移位寄存器矩阵中各列的聚合代价依次移位一列,以及在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d’,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中移位寄存器矩阵至少包括一列由n+1行的寄存器组成的寄存器阵列,其中d’∈d,d’为视差值,视差范围d为[0:n],n为正整数;
在列周期控制下,从移位寄存器矩阵中新加入列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价;
在列周期控制下,获取移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价;
在列周期控制下,对获得的第二最小聚合代价及其对应的视差值依次移位缓存于行向移位寄存器组,以对应记录移位寄存器矩阵中每列对应的第二最小聚合代价,行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器;
在列周期控制下,从行向移位寄存器组中的各个第二最小聚合代价之中,确定出第一最小聚合代价所在列上的第二最小聚合代价,并根据第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的第一最小聚合代价所在列上的第二最小聚合代价确定当前参考像素对应的第二视差值,然后基于第一视差值和第二视差值检验当前像素视差计算结果是否有效。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:
通过配置移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组、视差选择电路,其中通过移位寄存器矩阵实现了在行方向和列方向的聚合代价数据的复用,并通过串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路共同协同工作后,实现了参考图像像素匹配代价和目标图像像素匹配代价的一次性获取,即矩阵列的聚合代价数据通过并行WTA电路获得该列中的最小聚合代价,然后将该列对应的最小聚合代价在行向移位寄存器组中进行移位缓存,以及通过串行WTA电路将对应列的聚合代价数据与移位寄存器矩阵对角线中在视差范围内的聚合代价数据作计算以获得最小聚合代价,所以在利用移位寄存器矩阵缓存聚合代价数据,以及通过串行WTA电路、并行WTA电路获取最小聚合代价数据,并使用行向移位寄存器组缓存并行WTA电路获得的最小代价数据,可以在一个控制周期下实现参考图像像素代价和目标图像像素代价的一次性获取和左右一致性检验,既简化了视差处理的硬件电路要求,降低了视差处理对硬件性能的要求,实现了视差数据左右一致性检验过程的流水线化处理,也无需对数据进行重复处理,有效提高了计算效率,有利于视差处理方案在不同的硬件性能的设备中部署使用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本说明书实施例提供的一种视差处理电路的结构示意图;
图2是本说明书实施例提供的另一种视差处理电路的的结构示意图;
图3是本说明书实施例提供的一种视差处理电路中移位寄存器矩阵的数据流动示意图;
图4是本说明书实施例提供的一种视差处理电路中并行子WTA电路工作原理的处理流程图;
图5是本说明书实施例提供的一种视差处理电路中左右一致性检验电路的原理示意图;
图6是本说明书实施例提供的一种视差处理方法的处理流程图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
目前的视差处理计算方案中,计算出匹配代价后,需要先计算参考图像中各个像素点与目标图像在视差范围d内的最小聚合代价,其中视差范围d为[0:n],即d=n+1,n为正整数,其中要说明的是在实际视差计算过程中视差范围由最小搜索视差d_min和最大搜索视差d_max确定,即视差搜索范围为d=d_max-d_min+1,本发明中以d_min=0,d_max=n为例说明,在实际算法软件及硬件加速器设计过程中可通过设置偏置参数,以此实现整个计算过程数据流对齐,这种设置是本领域技术人员所熟知的以下说明不在赘述;在确定每个像素的视差搜索范围后,再计算目标图像各个像素点与对应参考图像在视差范围d内的最小聚合代价,然后通过比较两次视差计算的结果的差值来验证整个立体匹配视差计算结果是否正确,从而实现保留正确的视差值去除无效视差,然后通过滤波、填充等平滑处理对无效错误的像素视差进行填补,以此来获取高质量的视差图。但由于数据计算期间视差范围d有重复,因此在视差处理过程中存在大量数据重复处理的情况;
例如,参考图像中的像素点p(x,y)需要与目标图像中在视差范围d内的n+1个目标图像像素点p'(x,y)至p'(x+d,y)进行最优视差处理,通常可通过计算出视差范围d内的最小聚合代价来获得最优视差结果;进一步参考图像的像素点p(x+1,y),同样需要对目标图像中在视差范围d内的n+1个目标图像像素点p'(x+1,y)至p'(x+d’+1,y)进行视差处理计算。依此类推,直至参考图像中各个像素点获得视差范围d内对应的各个最小聚合代价。
同时,还需对目标图像中像素点p'(x,y)与参考图像中在视差范围d内的n+1个参考图像像素点p(x,y)至p(x-d,y)进行最优视差处理;进一步的目标图像的像素点p'(x+1,y),同样需要对参考图像中在视差范围d内的n+1个参考图像像素点p(x+1,y)至p(x+1-d,y)进行视差处理计算。依此类推,直至目标图像中各个像素点获得视差范围d内对应的各个最小聚合代价。
这种计算方式,在计算过程中将存在大量数据重复计算的情况,即在计算连续参考像素p(x,y)至p(x+d,y)与之对应的目标像素的匹配代价或聚合代价过程中,目标像素p'(x+d,y)已获得视差搜索范围内与相关参考像素的匹配代价或聚合代价,因此在实际计算过程中我们如何通过硬件电路实现参考像素匹配代价或聚合代价复用,并将其作为后续目标像素匹配代价的计算结果,加速立体匹配及后续左右一致性检验过程,解决图形处理器对重复数据进行处理室,处理较多的时间、数据处理效率低、数据计算过程无法流水线化计算的问题。
有鉴于此,本说明书实施例提供了一种视差处理电路和视差处理系统,通过对移位寄存器矩阵中与串行WTA电路、并行WTA电路和行向移位寄存器组和视差选择电路配合协作,简化了视差处理电路的结构,避免了对数据的重复计算,提高了数据处理效率,降低了对视差处理的硬件性能要求,使得视差处理电路可应用于各类场景中。
以下结合附图1至附图6,说明本申请各实施例提供的技术方案。
本说明书实施例提供一种视差处理电路,包括:移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路;
其中,移位寄存器矩阵包括由[0:n]×[0:n](即n+1行、n+1列)或[0:n]×1(即n+1行、1列)的移位寄存器组成的寄存器阵列,串行WTA电路包括至少n个选择单元,其中,相邻两个选择单元之间,前一个选择单元的输出作为后一个选择单元的其中一个输入,并行WTA电路包括至少一个并行子WTA电路,并行子WTA电路包括至少一个第二比较器、最小数据选择器,行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器,视差选择器包括左右一致性检验电路、多路选择器。
在对一个图像块的聚合代价进行视差处理时,移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路可按如下设置进行数据处理:
实施中,在列周期控制下,将移位寄存器矩阵中各列的聚合代价依次移位一列,同时,在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中d’∈d,d’为视差值,视差范围d为[0:n],即d=n+1,n为正整数。
在实施方式1中,如图1所示,移位寄存器矩阵由[0:n]×[0:n](即n+1行、n+1列)移位寄存器组成,每个移位寄存器均为一个单独的存储单元,同行各移位寄存器收尾耦合连接,在实际计算过程中,采用串行移位输入控制方式,每次新加入列进行计算时,在第1个至第n+1个列周期的控制下,移位寄存器矩阵中每列移位寄存器中装载的聚合代价沿数据流向方向依次移位一列,图1中即为每列移位寄存器中装载的聚合代价依次向右依次移位一列,同时,对应列的聚合代价存入到移位方向的尾部列,即为图1中的最左侧一列。
其中,移位寄存器矩阵中每列数据进行串行移位输入的过程为:在第t个列周期时,对应列的聚合代价存储到移位方向的第一列(输入方向的尾列),即对应列第一行的聚合代价存储到移位寄存器矩阵中移位方向的第一列第一行,对应列第二行的聚合代价存储到移位寄存器矩阵中移位方向的第一列第二行,以此类推,对应列第n+1行的聚合代价存储到移位寄存器矩阵中移位方向的第一列第n+1行。在第t+1个列周期时,移位寄存器矩阵中每列移位寄存器矩阵依次移位一列,即移位寄存器矩阵中移位方向的第一列中聚合代价依次存入到移位寄存器矩阵中移位方向的第二列中,同时,对应列的聚合代价存入到移位寄存器矩阵中移位方向的第一列中。以此类推,在列周期的控制下,每次对应列时,所述移位寄存器矩阵中每列聚合代价依次移位一列,在初始状态时,经过n+1个列周期所述移位寄存器矩阵被填充满。
实施中,在列周期控制下,且移位寄存器矩阵满载状态时,当对应列时,移位寄存器矩阵中将各列的聚合代价依次移位一列,移位寄存器矩阵输入方向的首部一列被移出;
需要说明的是,移位寄存器矩阵中数据输入方向可以设置为从左往右移位,也可以设置为从右往左移位,移位寄存器矩阵的移位输入方式可以根据实际应用需要进行设置,同时移位寄存器中存储的数据不限于聚合代价,在一些立体匹配计算过程中通过初始匹配代价来完成像素视差的左右一致性检验,这里不作限定。
当移位寄存器矩阵中的聚合代价需要全部更新为其他图像块的聚合代价数值时,相当于对新图像块的视差处理进行计算,这时需对移位寄存器矩阵中已存储的数据进行清除处理,使移位寄存器矩阵从第一个列周期的聚合代价数据进行处理。
实施中,串行WTA电路中的每个选择单元在列周期控制下,对应从移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中,确定并输出移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中的较小值。移位寄存器矩阵中对应列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价。
如图1所示,在第t个列周期,当对应列为第n+1列时,此时第n+1列的数据为参考像素p(x1,y)与对应目标像素p’(x1+d’,y)在视差搜索范围d=n+1范围的聚合代价值C (p(x1,y),p’(x1+d’,y)),即新加入的第n+1列中第1行至第n+1行,分别表示聚合代价Cn (p(x1,y),p’(x1+n,y))、Cn-1 (p(x1,y),p’(x1+n-1,y))……C1 (p(x1,y),p’(x1+1,y))、C0(p(x1,y),p’(x1+0,y));进一步可知在t-1个列周期移位寄存器矩阵首列(即图1中的第n列中)各寄存器自上而下分别存储参考像素p(x1-1,y)与对应目标像素p’(x1-1+d’,y)在视差搜索范围d=n+1范围的聚合代价值C (p(x1-1,y),p’(x1-1+d’,y)),即移位寄存器矩阵第n列中第1行至第n+1行,分别存储储参考像素p(x1-1,y)在视差搜索范围内的聚合代价Cn (p(x1-1,y),p’(x1-1+n,y))、Cn-1 (p(x1-1,y),p’(x1-1+n-1,y))……C1 (p(x1-1,y),p’(x1-1+1,y))、C0(p(x1-1,y),p’(x1-1+0,y));进一步可知在t-2个列周期移位寄存器矩阵首列(即图1中的第n-1列中)各寄存器自上而下分别存储参考像素p(x1-2,y)与对应目标像素p’((x1-2+d’,y)在视差搜索范围d=n+1范围的聚合代价值C (p((x1-2,y),p’((x1-2+d’,y)),即移位寄存器矩阵第n-1列中第1行至第n+1行,分别存储储参考像素p((x1-2,y)在视差搜索范围内的聚合代价Cn(p((x1-2,y),p’((x1-2+n,y))、Cn-1 (p((x1-2,y),p’((x1-2+n-1,y))……C1 (p((x1-2,y),p’((x1-2+1,y))、C0(p((x1-2,y),p’((x1-2+0,y));
在当前第t列周期时,移位寄存器矩阵中各列依次移向右移位一列,第n+1列的聚合代价存入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n列;数据载入移位寄存器矩阵时,矩阵第n列第一行[n/2n]的聚合代价Cn (p(x1-1,y),p’(x1-1+n,y))除向右一列输出外(即输出至第n-1列),还输出至串行WTA电路中的第一级选择单元中(即图1中串行WTA电路上方第一个选择单元),并与将要移入的第n+1列中的第二行[n+1/2n]中的聚合代价Cn (p(x1,y),p’(x1+n-1,y))通过第一级选择单元中的比较器进行比大小,其中聚合代价中较小值通过第一级选择单元的选择信号被控制输出至与其串联的寄存器存储单元reg:1中,其中上述各选择单元记为S_min,用于表示基于选择电路比较输出两个数中的较小数,为了便于后续区分和说明,由于该串行WTA电路包含n个选择单元S_min,因此后续将其自上而下每个选择单元可分别记为S_min_1、S_min_2……S_min_n并分别与其输出的较小值相对应;进一步的每个选择单元S_min对应一条移位寄存器矩阵对角线(即选择单元S_min_1对应移位寄存器矩阵首列第一行寄存器[n/2n]所在对角线,选择单元S_min_2对应移位寄存器矩阵首列第二行寄存器[n/2n-1]所在对角线,以此类推选择单元S_min_n对应移位寄存器矩阵首列第n行寄存器[n/n]所在对角线),则记S_min_1表示为第一对角线较小值、S_min_2表示为第二对角线较小值,以此类推S_min_n表示为第n对角线较小值,对于一个(n+1)×(n+1)的移位寄存器矩阵来说S_min_n为矩阵最大对角线最小值;
进一步的两个选择单元S_min之间通过一个寄存器reg:j(j∈1~n)耦合连接,每个选择单元S_min_j负责计算对应矩阵对角线上各聚合代价的较小值S_min_j(j∈1~n);在每个列操作周期,上一周期计算的对角线较小值S_min_j被输入至下一级选择单元S_min_j+1作为其中一个输入与当前选择单元S_min_j+1对应的对角线上对应列的数据进行大小比较,产生该对角线新的较小值S_min_j+1,进一步的由上述内容可知当新加列数据的持续载入,随着移位寄存器矩阵列数据向右移动,原对角线数据亦由图1矩阵左上方向右下方移动,因此每个列周期可实现原有对角线较小值与对应列所在该对角线上数据的大小比较输出,进一步可知每个列周期可输出一个最大对角线所在聚合代价的最小值;
进一步根据上述可知,在t列周期时,当前reg_j存储的第t-1列周期时对应的对角线较小值被输入至下一级选择单元S_min_j+1中,并与当前选择单元S_min_j+1对应的新加列输入数据进行比较计算结果输出至reg_j+1中;
举例来说,在第t列操作周期,对应列为第n+1列,且还未载入移位寄存器矩阵时,reg_1中存储的聚合代价数据为第t-1列操作周期时两个在矩阵对角线上的移位寄存器单元[n-1/2n-1],[n/2n-1]的聚合代价的较小值S_min_1被输入至选择单元S_min_2中,与当前新加入的第n+1列中第三行[n-1/2n-1]所表示的聚合代价Cn-2 (p(x1,y),p’(x1+n-2,y))进行比较,并将较小值结果输出至reg_2中,从上述计算过程中可看出目标像素均为同一像素p’(x1-2+n,y),而参考像素均为该目标像素视差搜索范围内的像素,因此我们可通过上述电路组合结构及控制方法完成目标像素在视差搜索范围内的聚合代价最小值的筛选,不需要额外单独计算该目标像素对应的匹配代价和最小聚合代价值;根据以上,我们可以更清楚知道在[n-1/2n-1]存储有第t-2列周期时移入的聚合代价Cn (p((x1-2,y), p’((x1-2+n,y)),在[n/2n-1]存储有第t-1列周期时移入的聚合代价Cn-1 (p(x1-1,y), p’(x1-1+n-1,y)),在[n/2n-2]存储有第t列周期时移入的聚合代价Cn-2 (p(x1,y),p’(x1+n-2,y)),进一步的我们可以看出对角线上的目标像素坐标均相同为p’((x1-2+n,y),而参考像素为该目标像素在视差搜素范围内的三个像素点。
当对应列为第n+2列时,即在第t+1列周期的控制下,移位寄存器矩阵中各列依次移向右移位一列,将第n+2列所表示参考像素p(x1+1,y)的聚合代价(Cn (p(x1+1,y), p’(x1+1+n,y))、Cn-1 (p(x1+1,y), p’(x1+1+n-1,y))……C1 (p(x1+1,y), p’(x1+1+1,y))、C0(p(x1+1,y), p’(x1+1+0,y)))输入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n列;此时移位寄存器矩阵中第n列所存储的第t周期加载的第n+1列数据(Cn (p(x1,y),p’(x1+n,y))、Cn-1 (p(x1,y),p’(x1+n-1,y))……C1 (p(x1,y),p’(x1+1,y))、C0(p(x1,y),p’(x1+0,y)))被移入至移位寄存器矩阵第n-1列中;同时在n+2列数据载入时,确定出新加入当前列第二行[n+1/2n]所表示的聚合代价Cn-1 (p(x1+1,y), p’(x1+1+n-1,y)与此时移位寄存器矩阵中第n列第一行[n/2n]中的聚合代价Cn (p(x1,y), p’(x1+n,y))通过选择单元S_min_1计算二者中较小值记为S_min_1,并将S_min_1存入至串行WTA电路中的第一个选择单元所输出的寄存器reg:1中,同时,当前寄存器reg:1存储的第t列周期计算的较小值被输出至下一级选择单元S_min_2中,并在选择单元S_min_2中与对应列第三行[n+1/2n-1]中的聚合代价进行比较运算获得较小值记为S_min_2。
进一步的每个较小值聚合代价S_min_j,除了包含当前较小聚合代价信息,还可包含对应的视差、像素坐标信息,可记为d_tar_j[聚合代价、视差值、坐标值],并被存入对应寄存器reg:j中。
以此类推,最终可获得对应列第n+2列中各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中最大对角线上的最小聚合代价,其中最大对角线为移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价。
根据以上的计算方式,在该图像块的后续计算中,移位寄存器矩阵可实现数据复用,比如在计算第n+2列第三行[n+1/2n-1]中聚合代价在该聚合代价所在第一对角线的最小聚合代价时,可复用上一列周期中的S_min_1或d_tar_1[聚合代价、视差值]与其相比较,可有效减少大量重复计算,提高整体处理效率;同时每个列操作周期均可在串行WTA电路最终输出端口输出一个移位寄存器矩阵最大对角线上各聚合代价最小的数据S_min_n或d_tar_n,即可获得矩阵最大对角线上目标像素与对应视差搜索范围内参考像素匹配聚合代价最小时的视差d_tar_n,以此来选择对应的参考像素及对应参考像素匹配聚合代价所在矩阵中的列。
需要说明的是,移位寄存器矩阵中数据输入方向可以设置为从左往右移位,也可以设置为从右往左移位,相对应的,移位寄存器矩阵的移位输入方式可以根据实际应用需要进行设置,这里不作限定。
在一些实施方式中,在列周期的控制下,当对应列存入移位寄存器矩阵中时,串行WTA电路同步开始运算。
实施中,串行WTA电路包括至少n个选择单元S_min,其中,相邻两个选择单元S_min之间,前一个选择单元S_min_j的输出作为后一个选择单元S_min_j+1的其中一个输入;每个选择单元包括第一比较器、数据选择器和与之对应的缓存寄存器reg:j,其中,第一比较器的两个输入端对应输入移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价,并输出比较结果;数据选择器的两个输入端对应输入移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价,数据选择器的选择控制信号端在比较结果的控制下,将移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中的较小值向缓存寄存器输出,其中较小值记为输入到选择单元的聚合代价所在第一对角线对应的缓存结果;缓存寄存器用于在当前列周期控制下,缓存选择单元的输出结果,以及在下一个列周期控制下,输出缓存的缓存结果。
如图1所示,当对应列为第n+1列时,在列周期的控制下,移位寄存器矩阵中各列依次移向右移位一列,第n+1列的聚合代价存入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n+1列;在存入时,通过第一比较器和数据选择器的配合使用,确定出第n+1列第二行[n+1/2n]的聚合代价与移位寄存器矩阵中第n列第一行[n/2n]的聚合代价中较小值记为S_min_1(需要说明的是在移位寄存器矩阵中第n列第一行[n/2n]的聚合代价向右矩阵第n-1列移动的同时被输出至第一选择单元S_min_1中),并将S_min_1存入至串行WTA电路中的第一个选择单元S_min_1对应的缓存寄存器reg:1中。
在实际处理过程中,移位寄存器矩阵中对应列的各个聚合代价所在第一对角线上的最小聚合代价可以复用,即每个列周期对角线上的当前最小聚合代价均被缓存至串行WTA电路中的各缓存寄存器reg:j中,每更新一列数据,将移位寄存器矩阵输入方向的首列移出(图1矩阵最右侧列),将对应列的聚合代价存入到移位寄存器矩阵输入方向的尾列(图1矩阵最左侧列),则前一个列周期中已计算的最小聚合代价值可复用,只需要比较对应列中聚合代价与相对应的串行WTA电路中寄存器中的最小聚合代价,即可确认出对应列的所在对角线上的第一最小聚合代价,各对角线上的最小聚合代价为各连续目标像素在视差搜索范围内与对应参考像素的匹配结果的最小聚合代价。
在一些实施方式中,在列周期的控制下,并行WTA电路用于获取移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价。
针对实施方式1,若当前移位寄存器矩阵为由[0:n]×[0:n]的移位寄存器构成时,则并行WTA电路包括多个并行子WTA电路WTA_i(i∈0~n)构成,每个并行子WTA电路与移位寄存器矩阵列相对应,其中每个并行子WTA电路包括第二比较器、最小数据选择器,并行子WTA电路被配置为:第二比较器的输入端对应输入移位寄存器矩阵中对应列中整列的的聚合代价,并输出整列数据的比较结果的选择控制信号;最小数据选择器的输入端对应输入移位寄存器矩阵中对应列中整列的聚合代价,最小数据选择器在选择控制信号的控制下,将移位寄存器矩阵中对应列中整列的聚合代价之中的最小值向行向移位寄存器组输出,其中最小值记为移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价。
具体地,如图1所示,当对应列为第n+1列时,在列周期的控制下,移位寄存器矩阵中各列依次移向右移位一列,第n+1列的聚合代价存入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n列;在存入时,确定并输出矩阵第n列中的第二最小聚合代价。
在一种实施方式中,需要说明的是,对于串行WTA电路可在每个列周期产生一个最大对角线上的第一最小聚合代价,然后整个电路同步根据该第一最小聚合代价所对应的视差值作为选择信号从对应矩阵列中选择对应的参考像素,而对于每个并行子WTA电路,需要接受整列参考像素对应的n+1个不同聚合代价数据,此时每个并行子WTA电路若采用分组竞赛的策略从n+1个数据中筛选出最小值,则整个并行时间复杂度为O(log 2 n),即在实际电路计算过程中需要最少需要log 2 n个比较周期完成整列数据的大小比较并输出最终结果,在该电路实际工作中可通过调整串行WTA电路和并行子WTA电路的时钟信号频率及采用状态机控制的方式实现计算结果对齐操作,以此避免因并行WTA计算电路的计算周期过长。
举例来说,由于串行WTA电路在每个列周期中均完成移位寄存器矩阵中对角线上的最小聚合代价的计算,因此至少会在一个系统时钟周期T输出一个最大对角线上第一最小聚合代价的计算结果,同步的视差选择电路需要根据上述第一最小聚合代价结果及其对应的视差选择信号选择并获取移位寄存器矩阵对应列的第二最小聚合代价及对应的其视差,若假设每个并行子WTA电路工作时钟周期亦为T,如图4所示,由于需要对n+1个并行输入数据筛选(一般实践过程中视差搜索范围为偶数,即n+1为偶数),则最多可采用(n+1)/2个并行的第二比较器,至少需要log2 n+1个系统时钟周期T内才能获得最终比较结果,如当n+1=64时,即通过32个并行比较器计算需要6T才能完成64个数据的对比,在这期间整个电路可能处于等待空闲状态。
因此,在一种实施方式中,通过提高并行WTA工作电路时钟频率,即可更快的完成一整列数据大小的比较,如采用6/T时钟频率时,则对于从64个数据求取最小值只需要在一个时钟周期T左右。
在另一种实施方式中,通过状态机控制实现快速并行WTA电路筛选,即当有视差选择信号筛选出的当前列a中的聚合代价最小值未筛选出时,除并行WTA电路工作外其他系统等待,同时刻其余各列中未完成最小值计算的并行子WTA电路继续工作,直至当前所选列a完成最小值结果输出,并完成左右一致性检验,然后控制新列进入移位寄存器矩阵;此时部分列还未完成最小值筛选工作(如上一周期进入移位寄存器矩阵的首列或近几个列周期进入的列),但通过前至少一个工作周期的筛选将筛选范围进一步缩小,可将当前筛选的中间最小值结果而非全部列数据移入至下一列,由于在前一操作周期筛选范围被大大缩小,因此可更快的计算出最小值结果。
举例来说,如当每列需要筛选的数据个数为64,通过32个并行比较器计算需要6T才能完成64个数据的对比,对于新加入的首列数据在当前第t周期未被选中,而当前被选中列还需要一个时钟周期T计算出对应最小值时,此刻首列数据可同步通过对应的并行子WTA电路在一个时钟周期T内完成第一次数据的筛选,并获得32个中间最小值结果,在一个周期T后被选中列最小值计算完成,并完成一致性校验,状态机执行第t+1列周期操作,将新加列进入移位寄存器矩阵首列,而第t列周期计算完成的首列32个中间最小值结果被移入下一列,并在下一列并行子WTA电路中只对当前32个中间最小值结果进行筛选处理,基于以上可大大降低系统空闲等待时间。
需要说明的是,第二比较器和最小数据选择器为计算出对应列整列中最小值,可根据实际需要,设置一个或多个第二比较器,也可以设置一个或多个最小数据选择器,第二比较器和最小数据选择器的数量这里不做限制。
在一些实施方式中,行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器,用于在列周期控制下,对并行WTA电路获得的第二最小聚合代价及其对应的视差值依次移位缓存,以对应记录移位寄存器矩阵中每列对应的第二最小聚合代价。
具体地,如图1所示,当对应列为第n+1列时,在列周期的控制下,移位寄存器矩阵中各列依次移向右移位一列,第n+1列中的聚合代价存入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n列,并行WTA电路确认并输出第n列的第二最小聚合代价至行向移位寄存器组的第一个移位寄存器Dr_reg_0中;当对应列为第n+2列时,在列周期的控制下,移位寄存器矩阵中各列依次移向右移位一列,第n+2列中的聚合代价存入至移位寄存器矩阵中数据输入方向的第一列,即图1中第n列,并行WTA电路确认并输出第n+2列的第二最小聚合代价至行向移位寄存器组的第一个移位寄存器Dr_reg_0中,同时,行向移位寄存器组的第一个移位寄存器Dr_reg_0存储的前一列周期计算的第n+1列的第二最小聚合代价依次右移移位存入到行向移位寄存器组的第二个移位寄存器Dr_reg_1中。以此类推,最终可获取移位寄存器矩阵中每列聚合代价的最小聚合代价。
在实际处理过程中,移位寄存器矩阵中对应列第二最小聚合代价可以复用,每更新一列数据,将移位寄存器矩阵输入方向的首列移出,将对应列的聚合代价存入到移位寄存器矩阵输入方向的尾列,同时,将行向移位寄存器组输入方向的首列移出,将对应列的第二聚合代价存入到行向移位寄存器组输入方向的尾列,则对应列只需要比较对应列的第二最小聚合代价,实现数据复用。
在一些实施方式中,移位寄存器矩阵在列周期控制下,将参考像素P(x,y)聚合代价C(P(x,y),P՛(x+d’,y))对应的视差信息记录于聚合代价C(P(x,y),P՛(x+d’,y))对应的移位寄存器中。
实施中,行向移位寄存器组对并行WTA电路获得的第二最小聚合代价依次移位缓存,即为对并行WTA电路获得的第二最小聚合代价对应的视差信息依次移位缓存,以对应记录移位寄存器矩阵中每列对应的第二最小聚合代价。
通过将聚合代价C(P(x,y),P՛(x+d’,y))对应的视差信息记录于聚合代价C(P(x,y),P՛(x+d’,y))对应的移位寄存器中,可对并行WTA电路获得的第二最小聚合代价对应的视差信息依次移位缓存,用于根据不同列周期每个对角线上的目标像素第一最小聚合代价及其视差,从当前行向移位寄存器组中选出对应的参考像素的第二最小聚合代价。
实施中,在列周期控制下,当对应列时,并行WTA电路计算并输出对应列的第二最小聚合代价,同时,行向移位寄存器组中每个寄存器中各列的聚合代价依次移位一列,行向移位寄存器组中输入方向的首部一列被移出。
在一些实施方式中,视差选择电路包括多路选择器、左右一致性检验电路构成,其中多路选择器每个输入端分别与行向移位寄存器组每个寄存器耦合连接,用于在列周期控制下,基于参考像素视差选择信号:d_tar,从行向移位寄存器组中的各个第二最小聚合代价之中,确定出第一最小聚合代价所在列上的第二最小聚合代价,并根据第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的第一最小聚合代价所在列上的第二最小聚合代价确定当前参考像素对应的第二视差值d_ref;举例来说,若第t列周期,由串行WTA电路计算输出的矩阵最大对角线上[3/n]寄存器中代表的聚合代价为第二最小聚合代价,记当前第一最小聚合代价对应的第一视差为d_tar_t=n-3(表示第t列周期,矩阵最大对角线代表目标像素聚合代价最小时其视差为n-3),此时则以d_tar_t=n-3作为当前目标像素对应参考像素的选择信号,控制多路选择器从对应的行向移位寄存器组中选择输出对应的参考像素所在列第二最小聚合代价及其参考像素的第二视差d_ref_t,然后将上述第一视差为d_tar_t和第二视差d_ref_t输入至左右一致性检验电路中,判断当前目标像素或参考像素的视差是否准确;如图5所示,其中左右一致检验电路包含一个绝对值减法电路和比较电路,具体的将上述第一视差和第二视差输入至绝对值减法器计算两者之间的差值,最后与阈值α作比较,如果小于α认为当前像素点视差有效,否则,认为当前像素点视差无效。
如图3所示,以视差搜索范围为10(即n=9)为例,此时移位寄存器矩阵由10×10的寄存器阵列组成,比如在一个列周期时,经过串行WTA电路计算输出移位寄存器矩阵中最大对角线[9/9:0/9]方向[3/9]所在的移位寄存器中存储的聚合代价为第一最小聚合代价,则当前移位寄存器[3/9]所示目标像素视差为d_tar=9-3=6,则将该视差d_tar=6作为选择信号选择行向移位寄存器组中Dr_reg_6中的数据作为对应参考像素视差;同时经过并行WTA电路计算可知行向移位寄存器组Dr_reg_6中存储的移位寄存器矩阵中列[3/3:3/12]中的聚合代价为第二最小聚合代价,其视差d_ref=6-3=3的数据。
进一步需要说明的是,在实际电路运算过程中,上述包括移位寄存器矩阵、行向寄存器组等存储单元,存储的数据包括各像素匹配的聚合代价、视差、像素坐标等信息中的一种或多种,在实际硬件电路计算过程中可通过程序指令、数据索址信息、固定数据通路、数据固定存储格式等方式实现对应数据的操控;其中以数据存储格式为例,上述每个单独寄存器或存储单元的存储可设计为高若干位存储聚合代价、中间若干位存储视差值、低若干位存储像素坐标,在进行WTA计算过程中,不管是串行WTA电路还是并行WTA电路,由于只需要计算各寄存器单元之间聚合代价的大小,因此只需要读取每个寄存器单元中高若干位代表聚合代价的数据进行比较计算操作即可,在完成比较完后将对应的其他位数据输出至相应的下一寄存器存储单元中。
在一些实施方式中,如图5所示,视差处理电路还包括左右一致性检验电路,左右一致性检验电路用于根据第一视差值和第二视差值进行左右一致性检验。
实施中,可根据预设阈值对第一视差值和第二视差值做左右一致性检验,判断视差值是否有效。
在一些实施方式中,可通过获取第一视差值和第二视差值的差值,与预设阈值进行比较,如通过比较器完成比较,快速对第一视差值和第二视差值做左右一致性检验。
在一些实施方式中,如图5所示,左右一致性检验电路包括绝对值减法器计算单元和比较单元;绝对值减法器计算单元用于计算第一视差值和第二视差值之间差值的绝对值;比较单元用于将输出的视差产值的绝对值与预设阈值α进行比较,并当比较结果满足预设条件时,保留第一视差值和第二视差值。
实施中,绝对值计算单元的输入端对应输入第一视差值d_tar和第二视差值d_ref,并输出第一视差值和第二视差值的差值绝对值;比较单元的输入端对应输入第一视差值和第二视差值的差值绝对值和预设阈值,并输出比较结果。当满足预设阈值时,检验视差值d_tar或d_ref有效,视差值保留。当不满足预设阈值时,检验视差值无效,视差值抛弃。
左右一直性检验过程要求来自左右视图的一对像素匹配对,只有在以左图和右图两次匹配过程中存在一致的匹配关系才认为是有效的匹配结果。由于当图像中的物体存在遮挡、有强光照射图像时,左右视图像素之间不存在对应关系。左右一致性检验电路可对于因遮挡、或强光照射图像等情况产生的错误匹配结果进行校验,有效地滤除无效视差,提高检测率和降低误检率。
在一些实施方式中,视差处理电路还包括视差优化电路,视差优化电路用于采用第一抛物线拟合在两个第一视差值之间插入新视差值;
实施中,通过WTA方法搜索到聚合代价最小的第一视差值是整数级的,而在真实世界中视差往往是连续的。为了得到更精确的第一视差值,将第一视差值通过二次曲线拟合插值变为小数视差,达到亚像素分辨率。其中,二次曲线是通过已得到的第一视差的整数视差值以及其相邻视差构成一条抛物线,则抛物线的最低点即为亚像素视差。
在一些实施方式中,视差优化电路用于采用第二抛物线拟合在两个第二视差值之间插入新视差值。
实施中,通过WTA方法搜索到聚合代价最小的第二视差值是整数级的,而在真实世界中视差往往是连续的。为了得到更精确的第二视差值,将第二视差值通过二次曲线拟合插值变为小数视差,达到亚像素分辨率。其中,二次曲线是通过已得到的第二视差的整数视差值以及其相邻视差构成一条抛物线,则抛物线的最低点即为亚像素视差。
在另一中实施方式2中,如图2所示,移位寄存器矩阵由一列、n+1行寄存器阵列构成,相比较实施方式1,本实施方案采用单列寄存器矩阵以及一个与之对应的并行子WTA电路,其中图2移位寄存器矩阵B区域取消了其他列寄存器组,图示中保留只是为了更好的理解本方案;需要说明的是,虽然变为单列矩阵形式,只是在并行WTA电路处理方面与实施方式1有所产区,其他计算方式及过程与实施方式1一致;具体的新加列进入当前矩阵列时,串行WTA电路只跟首列第一行寄存器存储的数据有关,因此每个列周期同实施方式1一样可获得最大对角线上的第一最小聚合代价,同步的矩阵列对应的并行子WTA电路计算该列第二最小聚合代价,并根据第一最小聚合代价对应的视差信号生成选择信号,从对应的行移位寄存器组种选择对应参考像素的第二最小聚合代价及其视差,完成左右一致性检验后,重新加载新的列,其中行移位寄存器中的数据同步向右移动。
本说明书实施例还提供一种视差处理系统,包括至少两个视差处理电路,视差处理电路为本说明中任意一个实施例的视差处理电路,其中至少两个视差处理电路用于构成新视差处理电路,新视差处理电路的视差范围整数倍于视差范围d。
实施中,在具体视差处理电路设计时可采用较小的视差搜索范围进行设计,实际应用中,可基于最小视差处理电路组合配置以适应更多的应用场景。
基于相同的发明构思,本说明书实施例还提供一种视差处理方法,如图6所示,包括:
在列周期控制下,将移位寄存器矩阵中各列的聚合代价依次移位一列,以及在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d’,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中移位寄存器矩阵至少包括一列由n+1行的寄存器组成的寄存器阵列,其中d’∈d,d’为视差值,视差范围d为[0:n],n为正整数;
实施中,每个寄存器中存储对应像素的匹配聚合代价和/或该像素的视差及坐标,在列周期控制下,每更新一列数据,移位寄存器矩阵输入方向首列的数据被移出,对应列的聚合代价存储到移位寄存器矩阵输入方向的尾列,实现数据在行向流动。
在列周期控制下,从移位寄存器矩阵中新加入列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价;
实施中,在列周期控制下,每更新一列数据,计算出对应矩阵对角线上各个聚合代价的较小值,如图1所示,在每个列操作周期,上一周期计算的对角线最小值被缓存至下一级并与对应列中对应的数据比较,产生新对角线的较小值;随着列数据的更新,移位寄存器矩阵中的数据依次向右移动,原对角线的数据亦由图1矩阵所示从左上方向右下方移动,因此,每个列周期可实现原有对角线较小值与对应列所在该对角线上数据的大小比较,得到每个列周期中一个最大对角线所在聚合代价的最小值,记为第一最小聚合代价。
在列周期控制下,获取移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价;
在列周期控制下,对获得的第二最小聚合代价及其对应的视差值依次移位缓存于行向移位寄存器组,以对应记录移位寄存器矩阵中每列对应的第二最小聚合代价,行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器;
实施中,在列周期控制下,计算并输出移位寄存器矩阵中对应列中整列的聚合代价之中的最小值,记为第二最小聚合代价,将获得的第二最小聚合代价及其对应的视差值缓存于行向移位寄存器组输入方向的尾列,每更新一列数据,对应列的第二最小聚合代价随着移位寄存器矩阵中对应列的移动方向依次移动;因此,在实际处理过程中,对应列只需要比较对应列的第二最小聚合代价,实现数据复用。
在列周期控制下,从行向移位寄存器组中的各个第二最小聚合代价之中,确定出第一最小聚合代价所在列上的第二最小聚合代价,并根据第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的第一最小聚合代价所在列上的第二最小聚合代价确定当前参考像素对应的第二视差值,然后基于第一视差值和第二视差值检验当前像素视差计算结果是否有效。
需要说明的是,移位寄存器矩阵中数据输入方向可以设置为从左往右移位,也可以设置为从右往左移位,移位寄存器矩阵的移位输入方式可以根据实际应用需要进行设置,同时移位寄存器中存储的数据不限于聚合代价,在一些立体匹配计算过程中通过初始匹配代价来完成像素视差的左右一致性检验,这里不作限定。
实施中,确定出第一最小聚合代价及第一视差值,确定出第一最小聚合代价所在列上的第二最小聚合代价及第二视差值;根据第一视差值和第二视差值进行左右一致性检验,即将第一视差值和第二视差值的差值绝对值与预设阈值做比较,检验当前像素视差计算结果是否有效,当比较结果满足预设条件时,判定计算结果有效,保留第一视差值和第二视差值;当不满足预设条件时,判定计算结果无效,第一视差值和第二视差值抛弃。
实施中,左右一直性检验过程中,只有当第一视差值和第二视差值的差值绝对值满足预设阈值时,认为参考像素和目标像素的匹配结果有效,可有效地滤除因遮挡、或强光照射图像等情况产生的错误匹配结果,提高检测率和降低误检率。
实施中,通过WTA方法搜索到聚合代价最小的第一视差值是整数级的,而实际应用中的视差值往往是连续的,通常可采用第一抛物线拟合在两个第一视差值之间插入新视差值,将第一视差值由整数级视差变为小数级视差,达到亚像素分辨率,从而得到更精确的第一视差值。其中,第一抛物线曲线是通过已得到的第一视差的整数视差值以及其相邻视差构成一条抛物线,抛物线的最低点即为亚像素视差。
实施中,通过WTA方法搜索到聚合代价最小的第二视差值是整数级的,而实际应用中的视差值往往是连续的,通常可采用第二抛物线拟合在两个第二视差值之间插入新视差值,将第二视差值由整数级视差变为小数级视差,达到亚像素分辨率,从而得到更精确的第二视差值。其中,第二抛物线曲线是通过已得到的第二视差的整数视差值以及其相邻视差构成一条抛物线,抛物线的最低点即为亚像素视差。
实施中,通过数据在移位寄存器矩阵中的流动,实现了在行方向和列方向的聚合代价数据的复用,实现了参考图像像素匹配代价和目标图像像素匹配代价的一次性获取,实现了对重复数据的有效复用,提高了计算效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的方法实施例而言,由于其与系统是对应的,描述比较简单,相关之处参见系统实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种视差处理电路,其特征在于,包括:移位寄存器矩阵、串行WTA电路、并行WTA电路、行向移位寄存器组和视差选择电路;
所述移位寄存器矩阵至少包括一列由n+1行的寄存器组成的寄存器阵列,在列周期控制下,将各列的聚合代价依次移位一列,以及在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d’,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中d’∈d,d’为视差值,视差范围d为[0:n],n为正整数;
所述串行WTA电路用于在所述列周期控制下,从所述移位寄存器矩阵中新加入列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出所述第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为所述移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价;
所述并行WTA电路用于在所述列周期控制下,获取所述移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价;
所述行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器,用于在所述列周期控制下,对所述并行WTA电路获得的所述第二最小聚合代价及其对应的视差值依次移位缓存,以对应记录所述移位寄存器矩阵中每列对应的所述第二最小聚合代价;
所述视差选择电路用于在所述列周期控制下,从所述行向移位寄存器组中的各个所述第二最小聚合代价之中,确定出所述第一最小聚合代价所在列上的所述第二最小聚合代价,并根据所述第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的所述第一最小聚合代价所在列上的所述第二最小聚合代价确定当前参考像素对应的第二视差值,然后基于第一视差值和第二视差值检验当前像素视差计算结果是否有效。
2.根据权利要求1所述的视差处理电路,其特征在于:
所述移位寄存器矩阵包括由[0:n]×[0:n]或[0:n]×1的移位寄存器组成的寄存器阵列构成;
所述移位寄存器矩阵在所述列周期控制下,将所述聚合代价C(P(x,y),P՛(x+d’,y))及对应的视差信息记录于所述聚合代价C(P(x,y),P՛(x+d’,y))对应的移位寄存器中。
3.根据权利要求2所述的视差处理电路,其特征在于,对所述并行WTA电路获得的所述第二最小聚合代价依次移位缓存,包括:对所述并行WTA电路获得的所述第二最小聚合代价对应的视差信息依次移位缓存。
4.根据权利要求1所述的视差处理电路,其特征在于,所述串行WTA电路包括至少n个选择单元,其中相邻两个所述选择单元之间,前一个所述选择单元的输出作为后一个所述选择单元的其中一个输入;
每个所述选择单元在所述列周期控制下,对应从所述移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中,确定并输出所述移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中的较小值。
5.根据权利要求4所述的视差处理电路,其特征在于,所述选择单元包括第一比较器、数据选择器和缓存寄存器;
所述第一比较器的两个输入端对应输入所述移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价,并输出比较结果;
所述数据选择器的两个输入端对应输入所述移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价,所述数据选择器的选择控制信号端在所述比较结果的控制下,将所述移位寄存器矩阵中对应列中的一个聚合代价和该聚合代价所在第一对角线的第一最小聚合代价之中的较小值向所述缓存寄存器输出,其中所述较小值记为输入到所述选择单元的聚合代价所在第一对角线对应的缓存结果;
所述缓存寄存器用于在当前所述列周期控制下,缓存所述缓存结果,以及在下一个所述列周期控制下,输出缓存的所述缓存结果。
6.根据权利要求1所述的视差处理电路,其特征在于,所述并行WTA电路包括至少一个并行子WTA电路;
所述并行子WTA电路包括至少一个第二比较器、最小数据选择器;
所述第二比较器的输入端对应输入所述移位寄存器矩阵中对应列中整列的聚合代价,并输出比较结果;
所述最小数据选择器的输入端对应输入所述移位寄存器矩阵中对应列中整列的聚合代价,所述最小数据选择器的选择控制信号端在所述比较结果的控制下,将所述移位寄存器矩阵中对应列中整列的聚合代价之中的最小值向所述行向移位寄存器组输出,其中所述最小值记为所述移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价。
7.根据权利要求1所述的视差处理电路,其特征在于,所述视差处理电路还包括左右一致性检验电路,所述左右一致性检验电路用于根据所述第一视差值和所述第二视差值进行左右一致性检验。
8.根据权利要求7所述的视差处理电路,其特征在于,所述左右一致性检验电路包括绝对值计算单元和比较单元;
所述绝对值计算单元用于计算所述第一视差值和所述第二视差值之间差值的绝对值;
所述比较单元用于将所述绝对值与预设阈值进行比较,并当比较结果满足预设条件时,保留所述第一视差值和所述第二视差值。
9.根据权利要求1所述的视差处理电路,其特征在于,所述视差处理电路还包括视差优化电路,所述视差优化电路用于采用第一抛物线拟合在两个第一视差值之间插入新视差值;
和/或,所述视差优化电路用于采用第二抛物线拟合在两个第二视差值之间插入新视差值。
10.一种视差处理系统,其特征在于,包括至少两个如权利要求1-9中任意一项所述的视差处理电路,其中至少两个视差处理电路用于构成新视差处理电路,所述新视差处理电路的视差范围整数倍于视差范围d。
11.一种视差处理方法,其特征在于,包括:
在列周期控制下,将移位寄存器矩阵中各列的聚合代价依次移位一列,以及在移位方向的尾部按列存入参考像素P(x,y)与视差范围d内各个目标像素P՛(x+d’,y)的聚合代价C(P(x,y),P՛(x+d’,y)),其中所述移位寄存器矩阵至少包括一列由n+1行的寄存器组成的寄存器阵列,其中d’∈d,d’为视差值,视差范围d为[0:n],n为正整数;
在所述列周期控制下,从所述移位寄存器矩阵中新加入列的各个聚合代价与该聚合代价所在第一对角线上的其他聚合代价之中,确定出所述第一对角线上的最小聚合代价,并输出最大对角线上的最小聚合代价及其对应的视差值,其中最大对角线为所述移位寄存器矩阵中对角最大对应的第一对角线,最大对角线上的最小聚合代价记为第一最小聚合代价;
在所述列周期控制下,获取所述移位寄存器矩阵中对应列的聚合代价中的最小聚合代价,记为第二最小聚合代价;
在所述列周期控制下,对获得的所述第二最小聚合代价及其对应的视差值依次移位缓存于行向移位寄存器组,以对应记录所述移位寄存器矩阵中每列对应的所述第二最小聚合代价,所述行向移位寄存器组包括由至少n+1个移位寄存器组成的一行寄存器;
在所述列周期控制下,从所述行向移位寄存器组中的各个所述第二最小聚合代价之中,确定出所述第一最小聚合代价所在列上的所述第二最小聚合代价,并根据所述第一最小聚合代价确定出当前目标像素对应的第一视差值,以及根据确定出的所述第一最小聚合代价所在列上的所述第二最小聚合代价确定当前参考像素对应的第二视差值,然后基于第一视差值和第二视差值检验当前像素视差计算结果是否有效。
CN202210583780.1A 2022-05-27 2022-05-27 一种视差处理电路和视差处理系统及其方法 Active CN114677261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210583780.1A CN114677261B (zh) 2022-05-27 2022-05-27 一种视差处理电路和视差处理系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210583780.1A CN114677261B (zh) 2022-05-27 2022-05-27 一种视差处理电路和视差处理系统及其方法

Publications (2)

Publication Number Publication Date
CN114677261A true CN114677261A (zh) 2022-06-28
CN114677261B CN114677261B (zh) 2022-08-26

Family

ID=82079193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210583780.1A Active CN114677261B (zh) 2022-05-27 2022-05-27 一种视差处理电路和视差处理系统及其方法

Country Status (1)

Country Link
CN (1) CN114677261B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117315003A (zh) * 2023-12-01 2023-12-29 常州微亿智造科技有限公司 基于双目光栅投影的三维测量方法、系统、设备及其介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180336686A1 (en) * 2015-04-13 2018-11-22 Gerard Dirk Smits Machine vision for ego-motion, segmenting, and classifying objects
CN110892408A (zh) * 2017-02-07 2020-03-17 迈恩德玛泽控股股份有限公司 用于立体视觉和跟踪的系统、方法和装置
WO2021043285A1 (zh) * 2019-09-04 2021-03-11 深圳市道通智能航空技术有限公司 一种双目立体视差确定方法、装置及无人机
CN214587004U (zh) * 2021-03-26 2021-11-02 绍兴埃瓦科技有限公司 一种立体匹配加速电路、图像处理器及三维成像电子设备
WO2022021912A1 (zh) * 2020-07-31 2022-02-03 南方科技大学 一种低功耗立体匹配系统及获取深度信息的方法
WO2022024793A1 (ja) * 2020-07-28 2022-02-03 京セラ株式会社 画像処理装置、ステレオカメラ装置、移動体、視差算出方法、及び、画像処理方法
CN114219699A (zh) * 2022-02-22 2022-03-22 绍兴埃瓦科技有限公司 匹配代价处理方法及电路和代价聚合处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180336686A1 (en) * 2015-04-13 2018-11-22 Gerard Dirk Smits Machine vision for ego-motion, segmenting, and classifying objects
CN110892408A (zh) * 2017-02-07 2020-03-17 迈恩德玛泽控股股份有限公司 用于立体视觉和跟踪的系统、方法和装置
WO2021043285A1 (zh) * 2019-09-04 2021-03-11 深圳市道通智能航空技术有限公司 一种双目立体视差确定方法、装置及无人机
WO2022024793A1 (ja) * 2020-07-28 2022-02-03 京セラ株式会社 画像処理装置、ステレオカメラ装置、移動体、視差算出方法、及び、画像処理方法
WO2022021912A1 (zh) * 2020-07-31 2022-02-03 南方科技大学 一种低功耗立体匹配系统及获取深度信息的方法
CN214587004U (zh) * 2021-03-26 2021-11-02 绍兴埃瓦科技有限公司 一种立体匹配加速电路、图像处理器及三维成像电子设备
CN114219699A (zh) * 2022-02-22 2022-03-22 绍兴埃瓦科技有限公司 匹配代价处理方法及电路和代价聚合处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YUAN GAO ET AL: "Parallax View Generation for Static Scenes Using Parallax-Interpolation Adaptive Separable Convolution", 《IEEE》 *
丁菁汀等: "基于FPGA的立体视觉匹配的高性能实现", 《电子与信息学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117315003A (zh) * 2023-12-01 2023-12-29 常州微亿智造科技有限公司 基于双目光栅投影的三维测量方法、系统、设备及其介质

Also Published As

Publication number Publication date
CN114677261B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
US5245550A (en) Apparatus for wire routing of VLSI
US20210073569A1 (en) Pooling device and pooling method
US4800425A (en) System for displacement vector searching during digital image analysis
CN114677261B (zh) 一种视差处理电路和视差处理系统及其方法
CN109743562B (zh) 基于Census算法的匹配代价计算电路结构及其工作方法
CN112633470B (zh) 优化神经网络卷积残差结构的方法、系统、设备及介质
CN114219699B (zh) 匹配代价处理方法及电路和代价聚合处理方法
CN114169514B (zh) 一种卷积硬件加速方法及卷积硬件加速电路
EP0819284B1 (en) Method and structure for performing motion estimation using reduced precision pixel intensity values
CN110321888B (zh) 一种基于fpga的星载红外小目标检测方法
CN214587004U (zh) 一种立体匹配加速电路、图像处理器及三维成像电子设备
US4783831A (en) Method for producing a standard pattern for pattern matching
JPH07203457A (ja) 動きベクトル検出装置
JPH0724071B2 (ja) 画像列における動き推定方法及び装置
US7756363B2 (en) System and method for image processing
JPH01291387A (ja) 画像処理装置
CN114255349A (zh) 一种全天时星敏感器实时星点提取方法
JP4859168B2 (ja) 動き検出装置及び動き検出方法
JP5113174B2 (ja) マルチサイトfmスクリーンドットを同時に生成する方法及び装置
CN118154452A (zh) 一种基于fpga的3×3均值滤波图像处理的装置
JPH05300497A (ja) 画像処理装置及びディジタル信号処理プロセッサ
CN110889814B (zh) 一种基于Sysgen的可见光图像直方图增强方法及装置
CN117314730B (zh) 一种用于加速数字图像处理的中值滤波计算装置及其方法
JP3483751B2 (ja) 動きベクトル検出装置及び動きベクトル検出方法
CN114694063B (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