專利名稱:一種面向硬件加速器的圖像匹配方法
技術領域:
本發明涉及圖像匹配領域,特指一種支持硬件加速器的圖像匹配方法。
背景技術:
圖像匹配就是給定參考的模板圖像后,在待匹配中搜索與模板圖像最接近的目標點位置的過程。基于灰度值的相關匹配算法是圖像匹配的常用方法。相關匹配算法直接利用模板圖像和待匹配圖像的灰度值信息進行相似性比較,在較高分辨率的待匹配圖像上搜索模板圖像的相似區域,實現在待匹配圖像上的位置匹配。相關匹配算法運算的核心是對兩幅圖像相似性度量準則的運算。在基于灰度的相關匹配算法中,確定以灰度相似為基礎的相似性度量函數是算法的重要環節。相似性度量函數是判斷兩幅圖像相似度的標準。常見的灰度相關算法中的相似性度量函數包括最小絕對差算法,最小平方差算法,零均值平均絕對差算法,歸一化互相關算法等。其中絕對差和平方差相似性度量相同,其值越大,說明兩幅圖像差異越大越不相似;反之,值越小,說明兩幅圖像越相似。對絕對差及平方差度量進行零均值化,可以克服幀間亮度變化對匹配造成的影響。歸一化互相關度量沒有偽極大值,且不受圖像間刻度誤差的影響。但其計算量大,影響到算法的實時性。目前基于灰度值相關的快速圖像匹配算法的研究大多集中在軟件實現層面,沒有與硬件化運算相關聯。 現有文獻中已公開了一種歸一化積相關圖像匹配算法中的圖像分塊并行處理方法(李俊山沈續榜,歸一化積相關圖像匹配算法中的圖像分塊并行處理方法[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日
發明者劉仲, 劉衡竹, 扈嘯, 陳書明, 陳勝剛, 魯建壯, 黃俊杰, 龔國輝 申請人:中國人民解放軍國防科學技術大學