CN103400390A - 可变支撑区域立体匹配算法的硬件加速结构 - Google Patents

可变支撑区域立体匹配算法的硬件加速结构 Download PDF

Info

Publication number
CN103400390A
CN103400390A CN201310349180XA CN201310349180A CN103400390A CN 103400390 A CN103400390 A CN 103400390A CN 201310349180X A CN201310349180X A CN 201310349180XA CN 201310349180 A CN201310349180 A CN 201310349180A CN 103400390 A CN103400390 A CN 103400390A
Authority
CN
China
Prior art keywords
module
accumulation
row
stereo matching
mini
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
CN201310349180XA
Other languages
English (en)
Other versions
CN103400390B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201310349180.XA priority Critical patent/CN103400390B/zh
Publication of CN103400390A publication Critical patent/CN103400390A/zh
Application granted granted Critical
Publication of CN103400390B publication Critical patent/CN103400390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

本发明提出一种可变支撑区域立体匹配算法的硬件加速结构。本发明采用的可变支撑区域立体匹配算法能够产生合适的匹配区域,显著地提升匹配精度。针对可变支撑区域立体匹配算法累积时需要占用大量行缓存器硬件资源这一关键问题,本发明采用了先列方向累积后行方向累积次序,通过使用行缓存器对图像进行缓存输出,极大地减少了内部各并行视差处理中所需的行缓存器的数量,节约了硬件存储资源。此外,本发明采用了积分图的思想,使得累积操作适合硬件实现,并在此基础之上使用了混合并行的计算方式,实现了累积时在行方向和列方向的数据复用。以上技术手段使得高分辨率图像的高精度实时立体匹配成为了现实。

Description

可变支撑区域立体匹配算法的硬件加速结构
技术领域
本发明属于计算机电子技术领域,具体涉及一种可变支撑区域立体匹配算法的硬件加速结构。
背景技术
立体匹配是图像处理的重要内容之一,双目立体匹配则是立体匹配中较为传统的方法。双目立体匹配利用位置存在偏差的双摄像头采集双目图像,查找双目图像中点的对应关系,利用对应点的位置关系推倒出空间点的三维信息。
双目立体匹配算法的主要目的是查找双目图像中点的对应关系。在匹配之前双目图像要经过校正的过程,保证图像中的对应点都在同一行。由于相机位置的差异,双目图像中一幅图像的点比另一幅整体存在右移;我们以整体右移的图像为参考图像,记为L;另一幅为候选图像,记为R。
立体匹配方法从整体上可以分为两类,全局方法和局部方法。全局方法考虑图像的二维连通性关系,通过优化一个全局能量方程来实现匹配;局部方法逐一计算每个像素点的匹配代偿,并在一个有限的区域内进行累积,从各路视差中选出累积代偿最小的视差作为匹配的结果。全局方法的计算方式导致了算法的时间复杂性较高,且并不适合于硬件实现。有学者在硬件上实现了全局方法,但***性能离实时性还相去甚远,无法应用于实际场景。相比之下,局部方法的计算量显著降低,计算方式相对固定,并且各路视差的计算模式完全相同,利用硬件的并行计算等特性进行加速是获取***实时性的有效方法。而局部方法在准确度上面的缺点也可以通过使用一些算法来弥补,它与全局方法在准确度上面的差距正在逐渐缩小。
局部方法的基本思想是:将参考图像中的每点与候选图像中一定范围内的点进行比较,取候选图像中最相似的点为匹配点。首先根据应用场景约定对应点在双目图像中位置的偏差存在最大值,记为D_MAX,这样就限制了匹配点的查找范围。对图像建立二维坐标,其中x轴坐标由左至右递增,y坐标由上至下递增;对于参考图像中坐标为(x,y)的点P,在候选图像中选定对应匹配范围内所有的点{Qi(x–i,y)}(其中i=0,1,2,…,D_MAX),比较P与Qi的匹配程度。最匹配的点Qk被作为是P的匹配点,k称为P点的视差。对参考图像中所有的点重复此步骤,即可得到整幅图像的匹配关系。
由于图像噪声的存在,基于单点的比较往往容易出现错误匹配,因此需要在点的周围选出一定尺寸的图像块,称作支撑区域,对这样的区域中的像素进行匹配,可以减少图像噪声的影响。可变区域算法根据邻域内像素点的亮度关系,为每个像素点配置一个十字交叉的区域。即设定最大支撑臂长L_MAX,每个像素点的支撑交叉可以描述为上下左右四个臂长所组成的四元组{l,r,u,d},每个臂长在0~L_MAX之间。经过沿着臂长方向的累积,相邻像素点的支撑交叉最终会形成一个不规则的支撑区域,最大可能将是一个边长为L_MAX*2+1的正方形。相比固定支撑区域的算法,可变区域算法将会有效地去除一些处在深度不连续的位置的像素点,使得支撑区域内尽可能地包含来自相同深度的像素点,从而提高了匹配的准确性。
在代偿的计算方式上面,传统的直接取差的绝对值的方法可能会受到一些眩光或者辐射的影响。Mini-Census变换是一种将像素的绝对亮度值转变为相对信息的变换。对于一个5*5的像素矩阵,在Mini-Census变换中将中心像素点与周围选定的六个位置的像素点的亮度进行比较,若小于则记为1,否则记为0。比较后可以得到一个6维的0-1向量,作为中心像素点变换后的数值,匹配采用计算汉明距的方式进行。一方面从绝对转为相对的记录可以有效地应对光照不均匀的情况,另一方面变换后的数值考虑了局部的结构,提高了匹配的可靠性。
在计算了图像中所有像素点的支撑区域和Mini-Census变换之后,对于左、右两图当中的一个点对,取它们支撑区域的交集,并逐点计算这个区域内点对的匹配代偿(汉明距)。然后在支撑区域内对这些代偿进行累积,最终除以区域内的像素数作为当前点对的归一化匹配代偿。如前所述,对左图中的每一个像素点都要计算它与右图中0~D_MAX–1范围内像素点的匹配代偿。当得到了这D_MAX个归一化匹配代偿之后,选其中最小代偿所对应的视差作为最佳匹配。
在硬件的加速结构中,最为直接的思路是将D_MAX路视差的计算并行化进行。然而可变支撑区域立体匹配算法对硬件的加速结构还提出了新的挑战。第一,由于区域在两个维度上面可变,在硬件计算的过程中并不方便,如何利用相邻像素点的计算结果是一个困难。第二,可变区域的列方向可变性使得常用的行方向滑动窗式的计算方式,即列方向上使用新的一行结果替换最早的结果,变得不再可用。为了实现列方向的累积,我们必须在每一路视差的计算中使用大量的行缓存器,它的长度等于图像的宽度,而列方向上需要L_MAX*2+1个。设想一个图像尺寸为1920*1080,视差为256的应用环境,L_MAX为15,行缓存器中存储的单元为6-bit向量,那么所需的存储空间将达到(log6+log(L_MAX*2+1))*1920*(L_MAX*2+1)*256=121.90Mbits。这个数字远远超出了当下最先进的现场可编程门阵列(FPGA)的资源配置。因此,针对硬件的优化势在必行。
发明内容
本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。为此,本发明的目的在于提出一种具有匹配速度快,匹配结果精度高的可变支撑区域立体匹配算法的硬件加速结构。
根据本发明实施例的可变支撑区域立体匹配算法的硬件加速结构,包括:存储控制器,所述存储控制器与片外的DRAM相连,用于输入来自所述DRAM的原始的左、右路图像,以及用于输出最终处理后的视差图像给所述DRAM;Mini-Census变换模块,所述Mini-Census变换模块与所述存储控制器相连,所述Mini-Census变换模块用于对左、右路图像分别进行Mini-Census变换,计算每个像素点的Mini-Census向量;可变支撑区域建立模块,所述可变支撑区域建立模块与所述存储控制器相连,所述可变支撑区域建立模块用于对左、右路图像分别进行支撑区域建立,计算每个像素点在四个方向上的支撑臂长;立体匹配模块,所述立体匹配模块与所述Mini-Census变换模块和可变支撑区域建立模块相连,所述立体匹配模块用于进行立体匹配和代偿累积计算;以及视差选择模块,所述视差选择模块与所述立体匹配模块相连,所述视差选择模块用于选择出具有最小归一化匹配代偿的视差,进行输出。
在本发明的实施例中,还包括:两个Mini-Census向量行缓存器,所述两个行缓存器与所述Mini-Census变换模块相连,分别用于将左、右两路变换后的图像分别经过行缓存器转为L_MAX*2+1为一列的列形式输出给汉明距计算模块,其中,L_MAX为算法预设的最大支撑臂长。
在本发明的实施例中,在所述立体匹配模块中,将右路Mini-Census向量行缓存器输出列图像延时出D_MAX–1路,D_MAX为双目图像中位置最大偏差值,分别与左路Mini-Census向量行缓存器输出列图像的当前列进行匹配,形成了D_MAX个完全独立的匹配和代偿累积计算子模块,在所述匹配和代偿累积计算子模块中,首先对左、右两列图像求汉明距,求得初始匹配代偿,然后使用积分图算法沿列方向进行累积,再根据列方向的两个支撑臂长计算出所需的部分,每个时钟周期得到对应一列的累积结果,在行方向累积的过程中,依然采取积分图算法,首先将每个周期得到的列结果和前一周期写入RAM的数据进行相加,继而将结果存入到RAM中,当得到了对应的行方向支撑臂长之后再根据地址的偏移从RAM中将两端的累积结果取出做差,以求出需要的行方向累积结果。
在本发明的实施例中,所述列方向累积时,采用层级化加法树,以使在三个时钟周期内完成对一列像素的累积。
在本发明实施例的可变支撑区域立体匹配算法的硬件加速结构中,所述行方向累积时,首先使用长度为L_MAX*2+1双口RAM对每个时钟周期输入的累积数据进行循环缓存,当得到行方向支撑臂长信息之后从RAM中读出对应位置的数据进行做差,其中,需要不断地移动RAM的基地址以计算新的像素点。由上可知,本发明至少具有下列有益的效果:i)与先行方向后列方向的累积顺序相比,本发明显著降低了***对于存储资源的使用,并改进了数据通路,实现了流水处理。ii)通过使用积分图算法使得***可在相同的时间内完成对任意支撑区域的处理,从而提升了***的可靠性和可预知性。iii)与只采用行方向复用的方式相比,本发明利用少量资源的增加获得了新的并行度,提高了数据的复用度。并且在***的设计中提供了新的调节杠杆。综合地,本发明的硬件加速结构能够产生合适的匹配区域,显著地提升匹配精度,使得高分辨率图像的高精度实时立体匹配成为了现实。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的可变支撑区域立体匹配算法的硬件加速结构的整体结构框图;
图2为先行方向后列方向累积的硬件结构框架图;
图3为先列方向后行方向累积的硬件结构框架图;
图4为行方向累积结构示意图;
图5为行方向并行在列方向累积过程中的应用;
图6为列方向累积的硬件结构图;和
图7为行方向累积的硬件结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
为使本领域技术人员更好地理解本发明,先对本发明的原理做简要介绍。
针对背景技术中的问题,本发明拟从三个方面进行创新改进:i)调整了代偿累积的次序,使得行缓存器的使用大大降低;ii)结合了积分图算法,实现了相邻像素计算的数据复用,进而实现了硬件的流水处理;iii)引入了混合的并行方式,在硬件的存储和寄存器资源之间提供了一个调整的杠杆。
如前所述,可变区域算法在列方向上的不确定性决定了我们必须舍弃传统的滑动滤波的方式。为了满足列方向可变的需求,我们需要使用行缓存器将图像由行方向的输入转为按列方向地输入以按照支撑臂的长度完成累积。如果我们仍然按照常规的先行方向后列方向的顺序进行累积,如图2所示,在每一路视差中都需要使用这种累积结果行缓存器,由此带来的存储开销难以承受。针对这种情况,本发明提出了一种先列方向后行方向的累积次序,如图3所示,即左、右两路图像的数据先经过一个行缓冲器,以完成列方向的累积,而后进入到各路视差当中完成行累积的操作。从整体上讲,顺序上的改变将分布在各路视差当中的行缓存器集中在了各路视差之前完成,从而将行缓存器的数量从D_MAX个降低到了两个。
在计算列方向和行方向的累积过程中,本发明使用了积分图算法,即事先对0~L_MAX*2+1范围内的代偿进行累加求和,然后根据当前待考察点的支撑臂长来选择对应的和做差,以求出某一段范围内像素点的累积代偿。在行方向的累积过程中,由于列方向的累积结果是依次输入的,我们采用如图4的结构,在原地进行累加,并始终仅保存前L_MAX*2+1个结果,当得到支撑臂长之后完成对应累加和的做差操作。积分图的算法使得行方向累积的数据可以在相邻像素点的计算当中得到复用,对于L_MAX*2+1之内的像素点之间不再需要完全重新累加,从而节省了内部的计算和带宽。并且,在积分图的算法下,不论某一像素点的支撑区域是什么样的形状,***都可以在相同的时间之内完成。在此基础之上***才能够实现对任意支撑区域的流水处理。
此外,本发明引入了混合的并行方式,视差并行与行并行。视差并行充分利用了硬件的资源,将相互之间没有数据依赖的各路视差的计算并行化地进行。而行并行通过同时计算多行的方式提高了列累积过程中的数据复用度。由于相邻行在计算列累积时会存在很多的重复使用的数据,因此我们可以通过同时计算多行的方式将这些共用的数据利用起来。在图5中,我们在原有的单行结构上加入了3个额外的像素,以及对应的根据支撑臂长做差的逻辑结构,即可实现同时计算4行列累积的目的。同时,行累积的模块也要相应地增加,即同时完成4行的行累积。因而,我们从每时钟周期计算来自一行的一个像素点的视差,变为了每时钟周期计算来自四行的四个像素点的视差。这就意味着,在保持总并行度不变的前提下,视差并行度可以相应地变为原来的四分之一,在这部分将可以节省75%的硬件资源。尽管随之增加的列累积、行累积结构以及行缓存器将会使得存储的开销上升,但总体可以节省的寄存器资源仍然相当可观。
下面结合说明书附图对本发明的具体实施方式做详细描述。图1为本发明实施例的可变支撑区域立体匹配算法的硬件加速结构的整体结构框图。如图1所示,该硬件加速结构包括:存储控制器100,存储控制器100与片外的DRAM相连,用于输入来自DRAM的原始的左、右路图像,以及用于输出最终处理后的视差图像给DRAM;Mini-Census变换模块200,Mini-Census变换模块200与存储控制器100相连,Mini-Census变换模块200用于对左、右路图像进行Mini-Census变换,计算每个像素点的Mini-Census向量;可变支撑区域建立模块300,可变支撑区域建立模块300与存储控制器100相连,可变支撑区域建立模块300用于对左、右路图像进行支撑区域建立,计算每个像素点在四个方向上的支撑臂长;立体匹配模块400,立体匹配模块400与Mini-Census变换模块200和可变支撑区域建立模块300相连,立体匹配模块400用于进行立体匹配和代偿累积计算;以及视差选择模块500,视差选择模块500与立体匹配模块400相连,视差选择模块500用于选择出具有最小归一化匹配代偿的视差,进行输出。
简言之,本发明的双目立体匹配硬件加速结构中,原始图像及处理后的视差图像在片外动态随机存储器(DRAM)中保存。原始图像以流的方式输入到立体匹配***,在立体匹配***中依次通过,存储控制器100、Mini-Census变换模块200,可变支撑区域建立模块300,立体匹配模块400,和视差选择模块500这几个模块,处理后的视差图像以流的方式从立体匹配***输出到DRAM。其具体过程如下:
首先,输入到***中的左、右两路图像要经过两个相同的行缓存器,将按行顺序流入的图像转为以L_MAX*2+1为一列进行输出。在Mini-Census变换模块200和可变支撑区域建立模块300中经过延时可以得到图像矩阵,在矩阵中完成Mini-Census变换和可变支撑区域建立。可变支撑区域建立过程中,我们使用图像中像素的亮度来估计不同的像素点是否来自相同的深度,即设定一个支撑交叉的阈值t,若在某一方向上面当前待考察的像素点与中心像素点的亮度之差小于t,则支撑臂长加一,否则就将当前的像素点的前一个点到中心像素点的距离作为该方向上面的支撑臂长。经过Mini-Census变换模块200和可变支撑区域建立模块300之后,就可以顺序地得到每个像素点的Mini-Census向量和四个方向支撑臂长。
每个像素点的Mini-Census向量数据经过Mini-Census向量行缓存器之后重新整理为L_MAX*2+1的长度进行列输出。在立体匹配模块400中,我们将右路Mini-Census向量行缓存器输出列图像延时出D_MAX–1路,分别与左路Mini-Census向量行缓存器输出列图像的当前列进行匹配,形成了D_MAX个完全独立的匹配和代偿累积计算模块。在这些模块中,首先对左、右两列图像求汉明距,求得初始匹配代偿。而后使用积分图算法沿列方向进行累积,再根据列方向的两个支撑臂长计算出所需的部分,这时每个时钟周期可以得到对应一列的累积结果。在行累积的过程中,首先将每个周期得到的列结果和前一周期写入RAM的数据进行相加,继而将结果存入到RAM中,当得到了对应的行方向支撑臂长之后再根据地址的偏移从RAM中将两端的累积结果取出做差,以求出需要的行方向累积结果。对于支撑区域内像素点的计数也采用完全相同的结果,只是位宽不同。
经过以上的累积计算之后,可以在一个周期内获得全部D_MAX路视差的代偿累积结果Rawcost和像素数量PixCount。在视差选择模块500中,可以使用一个树形的比较结构从D_MAX路结果中选出一路具有最小归一化匹配代偿的视差。在两两比较中,为了避免除法的计算,可以采用了如下的代换:
Raw cos t i PixCount i ~ Raw cos t j PixCount j ⇔ RawCost i × PixCount j ~ RawCost j × PixCount i
由此可以在每个时钟周期计算出对应于左图中的一个像素点的视差值。得到视差之后经过插值和中值滤波进一步提高精度之后即可输出到DRAM中进行保存。
在列方向累积过程中,由于涉及到一列像素的相加,很难在一个时钟周期内完成。本发明使用了一种层级化的加法树,可以在三个时钟周期之内完成对一列像素的累积(结构如图6所示)。首先,根据实际使用中对频率的要求,我们选定八个像素为一组,在第一个时钟周期内使用简单的加法树进行累积。而后在第二个时钟周期内对各组的部分和使用加法树进行累积,得到总和。由此,在得到了支撑臂长信息之后我们可以取出对应的总和相减,再加上对应的部分和即可完成对某一部分的累积。当引入了行并行之后,我们可以很简单地在原有的硬件结构上面新加入几个像素,相应地在选择做差的部分加入相同的逻辑,即可完成多行列累积的同时计算,每个周期可同时输出多行列累积的结果。
由于行累积的数据是逐周期输入的,因此需要数十个周期才能完成对一个像素点的行累积。如图7所示,本发明使用了和列累积完全不同的硬件结构,首先使用一个长度为L_MAX*2+1双口RAM对每个时钟周期输入的数据进行循环缓存。当得到行方向支撑臂长信息之后从RAM中读出对应位置的数据进行做差。这里需要不断地移动RAM的基地址以计算新的像素点。由于我们只需要两个列方向累积结果的差值,RAM的字宽也可以降低至列累积结果的最大位宽,而不需要关心溢出。为了支持行并行,本发明中使用了多个如上的行累积结构,以同时累积多行的结果。
基于如上的硬件加速结构,本发明可以在多种不同的分辨率和视差范围的配置下实现实时处理,测试结果如表1所示。
表1实验结果
图像尺寸 视差范围 帧率 MDE/s
1920*1080 256 47.6 25242
1024*768 128 129 13076
640*480 64 357 7028
352*288 64 1121 7279
注:MDE/s为million disparity estimated per second(每秒建立的百万视差数)
本发明提出的先列方向后行方向的累积次序显著地降低了***的硬件开销,使得一个全高清1920*1080分辨率以及很大的视差范围的立体匹配***仍然可以实现在现有的大部分FPGA器件上。实验数据表明,若采用先行方向后列方向的累积方式,将使用约五倍于本发明所使用的存储资源,这是现有FPGA器件难以支持的。此外,本发明使用了混合的并行方式,在维持总并行度不变的条件下,调整视差并行度和行并行度可以实现在逻辑资源和存储资源之间的调配。
由上可知,本发明至少具有下列有益的效果:i)与先行方向后列方向的累积顺序相比,本发明显著降低了***对于存储资源的使用,并改进了数据通路,实现了流水处理。ii)通过使用积分图算法使得***可在相同的时间内完成对任意支撑区域的处理,从而提升了***的可靠性和可预知性。iii)与只采用行方向复用的方式相比,本发明利用少量资源的增加获得了新的并行度,提高了数据的复用度。并且在***的设计中提供了新的调节杠杆。综合地,本发明的硬件加速结构能够产生合适的匹配区域,显著地提升匹配精度,使得高分辨率图像的高精度实时立体匹配成为了现实。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (5)

1.一种可变支撑区域立体匹配算法的硬件加速结构,其特征在于,包括:
存储控制器,所述存储控制器与片外的DRAM相连,用于输入来自所述DRAM的原始的左、右路图像,以及用于输出最终处理后的视差图像给所述DRAM;
Mini-Census变换模块,所述Mini-Census变换模块与所述存储控制器相连,所述Mini-Census变换模块用于对左、右路图像分别进行Mini-Census变换,计算每个像素点的Mini-Census向量;
可变支撑区域建立模块,所述可变支撑区域建立模块与所述存储控制器相连,所述可变支撑区域建立模块用于对左、右路图像分别进行支撑区域建立,计算每个像素点在四个方向上的支撑臂长;
立体匹配模块,所述立体匹配模块与所述Mini-Census变换模块和可变支撑区域建立模块相连,所述立体匹配模块用于进行立体匹配和代偿累积计算;以及
视差选择模块,所述视差选择模块与所述立体匹配模块相连,所述视差选择模块用于选择出具有最小归一化匹配代偿的视差,进行输出。
2.如权利要求1所述的可变支撑区域立体匹配算法的硬件加速结构,其特征在于,还包括:
两个Mini-Census向量行缓存器,所述两个行缓存器与所述Mini-Census变换模块相连,分别用于将左、右两路变换后的图像分别经过行缓存器转为L_MAX*2+1为一列的列形式输出给汉明距计算模块,其中,L_MAX为算法预设的最大支撑臂长。
3.如权利要求2所述的可变支撑区域立体匹配算法的硬件加速结构,其特征在于,在所述立体匹配模块中,将右路Mini-Census向量行缓存器输出列图像延时出D_MAX–1路,D_MAX为双目图像中位置最大偏差值,分别与左路Mini-Census向量行缓存器输出列图像的当前列进行匹配,形成了D_MAX个完全独立的匹配和代偿累积计算子模块,在所述匹配和代偿累积计算子模块中,首先对左、右两列图像求汉明距,求得初始匹配代偿,然后使用积分图算法沿列方向进行累积,再根据列方向的两个支撑臂长计算出所需的部分,每个时钟周期得到对应一列的累积结果,在行方向累积的过程中,依然采取积分图算法,首先将每个周期得到的列结果和前一周期写入RAM的数据进行相加,继而将结果存入到RAM中,当得到了对应的行方向支撑臂长之后再根据地址的偏移从RAM中将两端的累积结果取出做差,以求出需要的行方向累积结果。
4.如权利要求3所述的可变支撑区域立体匹配算法的硬件加速结构,其特征在于,所述列方向累积时,采用层级化加法树,以使在三个时钟周期内完成对一列像素的累积。
5.如权利要求3所述的可变支撑区域立体匹配算法的硬件加速结构,其特征在于,所述行方向累积时,首先使用长度为L_MAX*2+1双口RAM对每个时钟周期输入的累积数据进行循环缓存,当得到行方向支撑臂长信息之后从RAM中读出对应位置的数据进行做差,其中,需要不断地移动RAM的基地址以计算新的像素点。
CN201310349180.XA 2013-08-12 2013-08-12 可变支撑区域立体匹配算法的硬件加速结构 Active CN103400390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310349180.XA CN103400390B (zh) 2013-08-12 2013-08-12 可变支撑区域立体匹配算法的硬件加速结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310349180.XA CN103400390B (zh) 2013-08-12 2013-08-12 可变支撑区域立体匹配算法的硬件加速结构

Publications (2)

Publication Number Publication Date
CN103400390A true CN103400390A (zh) 2013-11-20
CN103400390B CN103400390B (zh) 2016-02-24

Family

ID=49564002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310349180.XA Active CN103400390B (zh) 2013-08-12 2013-08-12 可变支撑区域立体匹配算法的硬件加速结构

Country Status (1)

Country Link
CN (1) CN103400390B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110706146A (zh) * 2019-09-26 2020-01-17 北京机电工程研究所 图像处理方法和装置
CN113436057A (zh) * 2021-08-27 2021-09-24 绍兴埃瓦科技有限公司 数据处理方法及双目立体匹配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100142828A1 (en) * 2008-12-10 2010-06-10 Electronics And Telecommunications Research Institute Image matching apparatus and method
CN103220545A (zh) * 2013-04-28 2013-07-24 上海大学 一种立体视频实时深度估计***硬件实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100142828A1 (en) * 2008-12-10 2010-06-10 Electronics And Telecommunications Research Institute Image matching apparatus and method
CN103220545A (zh) * 2013-04-28 2013-07-24 上海大学 一种立体视频实时深度估计***硬件实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁菁汀 等: "基于FPGA的立体视觉匹配的高性能实现", 《电子与信息学报》, vol. 33, no. 3, 31 March 2011 (2011-03-31) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110706146A (zh) * 2019-09-26 2020-01-17 北京机电工程研究所 图像处理方法和装置
CN113436057A (zh) * 2021-08-27 2021-09-24 绍兴埃瓦科技有限公司 数据处理方法及双目立体匹配方法
CN113436057B (zh) * 2021-08-27 2021-11-19 绍兴埃瓦科技有限公司 数据处理方法及双目立体匹配方法

Also Published As

Publication number Publication date
CN103400390B (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
CN111199273B (zh) 卷积计算方法、装置、设备及存储介质
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
CN111931918B (zh) 神经网络加速器
KR102655086B1 (ko) 파이프라인 실행을 최적화하기 위한 방법들, 시스템들 및 장치
CN101841730A (zh) 一种基于fpga的实时立体视觉实现方法
CN110175670B (zh) 一种基于FPGA实现YOLOv2检测网络的方法及***
KR20180123846A (ko) 합성곱 신경망을 위한 논리적 3차원 구조의 재구성형 연산 가속기
Fan et al. F-C3D: FPGA-based 3-dimensional convolutional neural network
CN103414853A (zh) 支持多自由度运动的视频图像序列实时稳定装置与方法
Dai et al. Adaptive disparity candidates prediction network for efficient real-time stereo matching
Li et al. High throughput hardware architecture for accurate semi-global matching
CN105931256A (zh) 基于cuda的大幅面遥感影像快速分割方法
CN107679117B (zh) 一种全场稠密点快速匹配***
CN106101712A (zh) 一种视频流数据的处理方法及装置
CN103400390B (zh) 可变支撑区域立体匹配算法的硬件加速结构
Ding et al. Improved real-time correlation-based FPGA stereo vision system
WO2023184754A1 (zh) 可配置实时视差点云计算装置及方法
CN103809177A (zh) 一种基于fpga的雷达成像并行化方法
CN103279973A (zh) 基于混合并行的立体图像匹配***
Roszkowski et al. FPGA design of the computation unit for the semi-global stereo matching algorithm
CN108197613B (zh) 一种基于深度卷积级联网络的人脸检测优化方法
Qamar et al. Analysis and implementation of the semi-global matching 3d vision algorithm using code transformations and high-level synthesis
Menant et al. An automatized method to parameterize embedded stereo matching algorithms
CN103179398A (zh) 一种提升小波变换fpga实现的方法
Zhang et al. An ultra-high-speed hardware accelerator for image reconstruction and stereo rectification on event-based camera

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant