专利名称:一种面向硬件加速器的图像匹配方法
技术领域:
本发明涉及图像匹配领域,特指一种支持硬件加速器的图像匹配方法。
背景技术:
图像匹配就是给定参考的模板图像后,在待匹配中搜索与模板图像最接近的目标点位置的过程。基于灰度值的相关匹配算法是图像匹配的常用方法。相关匹配算法直接利用模板图像和待匹配图像的灰度值信息进行相似性比较,在较高分辨率的待匹配图像上搜索模板图像的相似区域,实现在待匹配图像上的位置匹配。相关匹配算法运算的核心是对两幅图像相似性度量准则的运算。在基于灰度的相关匹配算法中,确定以灰度相似为基础的相似性度量函数是算法的重要环节。相似性度量函数是判断两幅图像相似度的标准。常见的灰度相关算法中的相似性度量函数包括最小绝对差算法,最小平方差算法,零均值平均绝对差算法,归一化互相关算法等。其中绝对差和平方差相似性度量相同,其值越大,说明两幅图像差异越大越不相似;反之,值越小,说明两幅图像越相似。对绝对差及平方差度量进行零均值化,可以克服帧间亮度变化对匹配造成的影响。归一化互相关度量没有伪极大值,且不受图像间刻度误差的影响。但其计算量大,影响到算法的实时性。目前基于灰度值相关的快速图像匹配算法的研究大多集中在软件实现层面,没有与硬件化运算相关联。 现有文献中已公开了一种归一化积相关图像匹配算法中的图像分块并行处理方法(李俊山沈续榜,归一化积相关图像匹配算法中的图像分块并行处理方法[J],小型微型计算机系统,2004,25 (11) =1986-1989),虽然能应用于归一化积相关图像匹配中,但是该算法采用的是块与块之间的数据按行或列平行移动的方法,导致了块与块之间存在着较高的通信复杂度。以绝对差累加和作为相似性度量函数的相关匹配算法是一种最基本的图像匹配算法。通常求待匹配图像和模板图像的绝对差累加和构成的相关系数矩阵时,是将模板在待匹配图像按照一定顺序滑动。模板覆盖到区域左上角顶点的相关系数则是模板覆盖到的所有点所在的图像上灰度值与匹配模板对应点灰度值的绝对差累加和。该匹配算法的运算量与模板图像分辨率成正比。绝对差累加和的相关匹配计算复杂度低,且能够实现硬件化提高算法速度。硬件加速器采用一个PE阵列结构和一个加法树结构加速绝对差累加和运算的执行。如图I所示,硬件加速器包括DMA接口、搜索窗口缓冲区(P_Buffer)、模板缓冲区(T_ Buffer)和计算结果缓冲(SAD_BufTer)、状态机(FSM)、AD阵列和加法树及累加结构。SAD 加速器通过外设总线和DMA总线同DSP核相连,通过外设总线对SAD加速器进行配置。DMA 总线在SAD加速器和DSP核间传输图像数据和计算结果。对64*64的搜索窗口与32*32的模板图像进行绝对差累加和的相关计算时,采用软件方式实现,得到相关系数矩阵的时间为3s,而采用硬件加速器运算,得到相同结果的时间仅需I. 37ms。从时间耗费来看,硬件化计算的优势相当明显,比软件计算的速度提高了 3个数量级。但是硬件化的相关计算也存在问题由于图像缓冲器的限制,SAD加速器只能支持计算64*64的待匹配图像与32*32的模板图像匹配,当模板图像的分辨率较大时,绝对差累加和匹配算法无法直接应用硬件化计算。在实际的应用中,面临的搜索窗口大小和模板大小往往是64*64和32*32的若干倍。 因此如何对图像和模板拆分,使之成为一系列的基本粒度单元运算是一个关键问题。同时要考虑到,拆分后的计算仍然覆盖到了整个图像和模板而没有遗漏,拆分后的计算量最小, 同时数据的搬运量最小。
发明内容
本发明所要解决的技术问题是针对现有技术存在的问题,本发明提供一种能实现图像相关匹配算法的,运算速度快、运算性能。为解决上述技术问题,本发明采用以下技术方案—种面向硬件加速器的图像匹配方法,包括以下步骤(I)将待匹配图像Wmw拆分成m*n个大小为B*B的基本方格,其中m = Μ/Β, η = Ν/Β ;将模板图像Tw拆分为p*q个大小为B*B的基本方格,其中P = P/B, q = Q/B ;(2)将待匹配图像中的每一个基本方格与其右侧、下侧、右下侧紧邻的三个基本方格合并,形成m*n个大小为2B*2B的组合方块;(3)将模板图像在待匹配图像上滑动,被覆盖区域为子图;将模板图像中的一个 B*B基本方格和其在滑动过程中覆盖子图的所有组合方块分别依次关联,根据相关性度量函数的算法形成(m-p)*(n-q)个相互独立的基本计算单元;(4)顺移到模板图像中的下一个B*B基本方格,重复步骤(3),直至得到 (m-p) * (n-q) *p*q个基本计算单元;(5)将所述(m-p)*(n-q)*p*q个基本计算单元均勻分配到硬件加速器的X个核上, 并行运算得到(m-p) * (n-q) *p*q个单元相关矩阵;(6)将覆盖同一子图对应的p*q个单元相关矩阵相加后得到一个相关系数子矩阵;(7)模板图像在待匹配图像上滑动得到(m-p)*(n-q)个子图,对应得到 (m-p)*(n-q)个相关系数子矩阵,将所有相关系数子矩阵按照模板图像在待匹配图像上滑动的顺序进行排列即可得到总相关系数矩阵;(8)根据所述总相关系数矩阵,即可得到模板图像在待匹配图像中的位置。作为本发明的进一步改进所述步骤(5)具体包括以下步骤(5. I)将待匹配图像和模板图像的完整数据复制到参与计算的硬件加速器的每一个核上;(5. 2)将所述(m-p) * (n-q) *p*q个基本计算单元平均分配到硬件加速器的x个核上进行计算,得到(m-p) * (n-q) *p*q个单元相关矩阵;(5.3)将得到的所有单元相关矩阵,存入到内存中的中间结果数组中。所述相关性度量函数为绝对差累加和,所述硬件加速器是能够计算待匹配图像中 2B*2B的组合方块与模板图像中的B*B的基本方格的以绝对差累加和的相关运算硬件加速器。以子图S的左上角顶点(x,y)为起始点,模板图像与子图S的绝对差之和d(x,y)的计算公式如下d(χ,γ) = ^^(/', j)-T(/',7')| = Wfvim (I TpitQ
i=l ;=1 ^ 1 )其中,Sx’y(i,j)为在待匹配图像上以(X,y)为左上角顶点的子图S中,横纵序列号分别为i,j的点的灰度值;T(i,j)为模板图像中横纵序列号分别为i,j的点的灰度值。与现有技术相比,本发明的优点在于本发明的面向硬件加速器的图像匹配方法,将图像相关匹配算法拆分成能够独立进行硬件化运算的基本粒度单元,实现了高分辨率图像在硬件加速器上计算,又实现了相关匹配算法的并行化计算,大大提高了相关匹配算法的运算效率,提高了匹配速度。
图I是典型的硬件加速器的结构示意图。图2是本发明的总流程示意图。图3是本发明的待匹配图像拆分成的基本方格示意图。图4是本发明的模板图像拆分成的基本方格示意图。图5是本发明的待匹配图像基本方格形成的组合方块示意图。图6是本发明的待匹配图像的组合方块和模板图像的基本方格关联形成的基本计算单元示意图。
具体实施例方式以下将结合说明书附图和具体实施例对本发明作进一步详细说明。如图2所示,一种面向硬件加速器的图像匹配方法,包括以下步骤I、将待匹配图像Wmw拆分成m*n个大小为B*B的基本方格,其中m = M/B, n = N/ B ;将模板图像Tw拆分为p*q个大小为B*B的基本方格,其中P = P/B, q = Q/B。由于硬件加速器只能计算2B*2B大小的待匹配图像与B*B大小的模板图像的相关运算。因此先将实际应用中的高分辨率待匹配图像和模板图像拆分成最小的基本粒度B*B。 如图3、图4所示,将待匹配图像Wmw拆分成m*n个B*B的基本方格,其中m = M/B,n = N/B。 拆分模板图像TP*Q为p*q个B*B的基本方格,其中P = P/B, q = Q/B。这p*q个基本方格是相互独立的,可满足硬件加速器对模板图像大小的要求。分块步骤只是逻辑上的分块,在实际的应用中,由于图像的灰度值以数组的形式存储在芯片中,当硬件加速器计算时,采用 DMA接口将要计算的B*B模板图像搬到模板缓冲区中。而DMA技术支持二维DMA中2D-1D 块同步的传输方式,即DMA可以直接从模板图像的原始数组中,抽取出符合要求的B*B基本方格,传输到运算缓冲区中。这样节省了图像分块占用的资源,提高了运算速度。2、将待匹配图像中的每一个基本方格与其右侧、下侧、右下侧紧邻的三个基本方格合并,形成m*n个大小为2B*2B的组合方块。由于硬件化计算要求待匹配图像大小为2B*2B。如图5所示,依次将待匹配图像的每一个基本方格,与其右侧,下侧,右下侧紧邻的三个基本方格组合。除最右侧一列方格和最下侧一行方格由于右侧或下侧已无方格而无法组合外,将得到个2B*2B个组合方块。如图5所示,每个圆圈所占据的四个基本方格的区域为一个组合方块,前后或上下两个组合方块之间有重合的部分。之所以这样组合的原因是当B*B大小的模板方格在 2B*2B大小的待匹配图像组合方块上平移,覆盖到的子图的左上角顶点一直处在组合方块左上角的基本方格中。也就是说模板方格和组合方块每进行一次匹配,得到的是组合方块左上角基本方格的基本相关矩阵。因此,考虑到计算结果的完整性,组合方块必须要重合, 这样重合的两个组合方块与相应的基本方格进行匹配,得到的结果正好是有重合的两个组合方块左上角基本方格的基本相关矩阵,相邻的两个基本方格就都被覆盖到了,既没有重复也没有遗漏。同样的,基本方格组合依然只是逻辑上的步骤,在实际应用中,通过DMA可以从待匹配图像数组中,直接抽取符合条件的2B*2B的组合方块,送入硬件加速器中计算。3、将模板图像覆盖在待匹配图像上,被覆盖区域为子图。如图6所示,将模板图像中的一个B*B基本方格和其在滑动过程中覆盖子图中的所有组合方块分别依次关联,根据相关性度量函数的算法形成(m-p)*(n-q)个相互独立的基本计算单元。模板图像在待匹配图像上滑动,每次覆盖到待匹配图像上的图像为子图S, 子图S的大小为p*q个基本方格。模板图像从头至尾滑过待匹配图像的方格数为(m-p)*(n-q)*p*q,即模板图像每个基本方格滑过的待匹配图像上的方格数为 (m-p) * (n-q)。本实施例中,相关性度量函数采用绝对差累加和,硬件加速器是能够计算待匹配图像中2B*2B的组合方块与模板图像中的B*B的基本方格的以绝对差累加和的相关运算硬件加速器。以子图S的左上角顶点(x,y)为起始点,模板图像与子图S的绝对差之和d(x, y)的计算公式如下
权利要求
1.一种面向硬件加速器的图像匹配方法,其特征在于包括以下步骤(1)将待匹配图像Wmw拆分成m*n个大小为B*B的基本方格,其中m= M/B, n = N/B ; 将模板图像拆分为p*q个大小为B*B的基本方格,其中P = P/B, q = Q/B ;(2)将待匹配图像中的每一个基本方格与其右侧、下侧、右下侧紧邻的三个基本方格合并,形成m*n个大小为2B*2B的组合方块;(3)将模板图像在待匹配图像上滑动,被覆盖区域为子图;将模板图像中的一个B*B基本方格和其在滑动过程中覆盖子图的所有组合方块分别依次关联,根据相关性度量函数的算法形成(m-p)*(n_q)个相互独立的基本计算单元;(4)顺移到模板图像中的下一个B*B基本方格,重复步骤(3),直至得到 (m-p) * (n-q) *p*q个基本计算单元;(5)将所述(m-p)*(n-q)*p*q个基本计算单元均勻分配到硬件加速器的X个核上,并行运算得到(m-p) * (n-q) *p*q个单元相关矩阵;(6)将覆盖同一子图对应的p*q个单元相关矩阵相加后得到一个相关系数子矩阵;(7)模板图像在待匹配图像上滑动得到(m-p)*(n-q)个子图,对应得到(m-p)*(n-q)个相关系数子矩阵,将所有相关系数子矩阵按照模板图像在待匹配图像上滑动的顺序进行排列即可得到总相关系数矩阵;(8)根据所述总相关系数矩阵,即可得到模板图像在待匹配图像中的位置。
2.根据权利要求I所述的面向硬件加速器的图像匹配方法,其特征在于,所述步骤(5) 具体包括以下步骤(5. I)将待匹配图像和模板图像的完整数据复制到参与计算的硬件加速器的每一个核上;(5. 2)将所述(m-p) * (n-q) *p*q个基本计算单元平均分配到硬件加速器的x个核上进行计算,得到(m-p) * (n-q) *p*q个单元相关矩阵;(5. 3)将得到的所有单元相关矩阵,存入到内存中的中间结果数组中。
3.根据权利要求I所述的面向硬件加速器的图像匹配方法,其特征在于,所述相关性度量函数为绝对差累加和,所述硬件加速器是能够计算待匹配图像中2B*2B的组合方块与模板图像中的B*B的基本方格的以绝对差累加和的相关运算硬件加速器。
4.根据权利要求3所述的面向硬件加速器的图像匹配方法,其特征在于,以子图S的左上角顶点(X,y)为起始点,模板图像与子图S的绝对差之和d(x,y)的计算公式如下
全文摘要
本发明公开了一种面向硬件加速器的图像匹配方法,包括以下步骤将待匹配图像和模板图像分别拆分为大小为B*B的基本方格;将待匹配图像中的每一个基本方格与其右侧、下侧、右下侧紧邻的三个基本方格合并形成(m-1)*(n-1)个大小为2B*2B的组合方块;将模板图像中的一个B*B基本方格和覆盖子图中的所有组合方块分别依次关联形成(m-p)*(n-q)个相互独立的基本计算单元;重复计算直至得到(m-p)*(n-q)*p*q个基本运算单元;将基本运算单元均匀分配到硬件加速器的x个核上并行运算得到(m-p)*(n-q)*p*q个单元相关矩阵;将覆盖同一子图所对应的p*q个单元相关矩阵相加后得到一个相关系数子矩阵;由(m-p)*(n-q)个子图对应得到(m-p)*(n-q)个相关系数子矩阵,将相关系数子矩阵顺序排布得到总相关系数矩阵,进而完成匹配。
文档编号G06T1/00GK102609937SQ20121000807
公开日2012年7月25日 申请日期2012年1月12日 优先权日2012年1月12日
发明者刘仲, 刘衡竹, 扈啸, 陈书明, 陈胜刚, 鲁建壮, 黄俊杰, 龚国辉 申请人:中国人民解放军国防科学技术大学