王燦進,孫 濤,陳 娟
(1.中國科學(xué)院 長春光學(xué)精密機械與物理研究所激光與物質(zhì)相互作用國家重點實驗室,吉林 長春130033;2.中國科學(xué)院大學(xué),北京100049)
圖像匹配是指在不同視點的兩幅圖像中尋找對應(yīng)的同名點,以確定兩幅圖像之間的空間變換關(guān)系的過程,其在圖像檢索[1]、寬基線匹配[2]、圖像配準(zhǔn)[3-5]、目 標(biāo) 識 別[6-8]、全 景 圖 拼 接[9]、星 點 匹配[10]、電子穩(wěn)像[11]、三維重建[12]等領(lǐng)域得到廣泛的應(yīng)用。就目前的匹配技術(shù)而言,主要分為基于灰度的圖像匹配方法和基于特征的圖像匹配方法?;诨叶鹊钠ヅ浞椒▽τ谠肼暫凸庹盏聂敯粜暂^弱,已逐漸不再使用。
基于特征的圖像匹配方法中,局部不變特征因?qū)τ诠庹兆兓?、由目?biāo)和相機相對運動引起的圖像模糊、噪聲、遮擋有很好的魯棒性,對于透視變換、尺度縮放等具有不變性而得到廣泛的使用。局部不變特征在近十年來發(fā)展迅速,著名的算法包括2004年Lowe提 出 的SIFT[8]、2007 年Bay提 出 的SURF[13]、2010 年Calonder 等 提 出 的BRIEF[14],2011 年Stefan 等 提 出 的BRISK[15]、Rublee等提出的ORB[16]、2012年Alahi等人提出的FREAK[17]等。SIFT 和SURF 的特征點檢測過程都是對LOG 算子的近似加速,生成特征向量時,SIFT 計算的是采樣點周圍的梯度方向直方圖,而SURF計算的是Haar特征的累加和,最后計算特征向量的歐式距離進行匹配。而BRIEF等算子則采用不同的采樣模式,生成二進制描述子,依靠計算漢明距離(異或)進行匹配。尤其是FREAK 算子,其采樣點的模式接近于人類視網(wǎng)膜(Human Retina)的拓撲結(jié)構(gòu),在匹配過程中模擬人類視覺的掃視搜索,取得了很好的性能。模擬人類視覺系統(tǒng)是目前計算機視覺的一個重要的發(fā)展方向。為此本文首次將FREAK 算子應(yīng)用在圖像匹配中,取得快速有效的配準(zhǔn)結(jié)果。
然而當(dāng)圖像像素數(shù)目增大或者背景變得復(fù)雜時,提取出的特征點增加,特征向量的生成和匹配的時間也隨之增加,使局部不變特征算法尤其是SIFT 和SURF難以運用在實時系統(tǒng)中。根據(jù)局部不變特征的局部性和特征點檢測、特征向量生成和特征向量匹配3個過程的獨立性,本文提出一種并行處理的機制對局部不變特征算法進行加速:對待匹配圖像進行有重疊的分塊,對于每一塊子圖像在新的線程中進行特征點的檢測、特征描述向量的生成和特征向量的匹配;對于特征點的檢測、描述向量的生成和特征向量匹配過程也可并行在3個線程中同時處理。這樣的并行處理機制能夠大大加速局部不變特征描述方法的計算過程,在多核PC 機上實驗表明本文方法可以在保證匹配精度的同時大大縮短匹配時間。
本文主要采用經(jīng)典的SIFT、SURF算法和最新的FREAK 算法進行實驗。3種算法均主要均包括3個步驟:感興趣點檢測、特征向量的提取和特征向量匹配。SIFT 和SURF的算法過程不加贅述,重點介紹FREAK 描述子。
FAST 算子是近年來發(fā)展出的一種新的角點算子[18],因為其快速性被廣泛采用。將FAST 算法推廣到尺度空間,就可以用于FREAK 局部不變特征算法的特征點檢測。FAST 特征點定義如下:在以當(dāng)前像素為圓心,3.4個像素為半徑的圓上的16個像素中,若至少有9個連續(xù)的像素比中心像素亮或者暗,則當(dāng)前像素就是一個FAST 特征點(如圖1所示)。
首先建立尺度空間金字塔。尺度空間金字塔包含n 層(octaves)ci和n 個內(nèi)層(intra-octaves)di,i=0,1,…,n-1,實驗中n 取4。c0為原始圖像,d0由c0降采樣1.5倍得到。ci由ci-1隔半采樣得到,di也是由di-1隔半采樣得到,di位于ci和ci+1之 間。假 設(shè)t 表 示 尺 度,則t(ci)=2i,t(di)=2i×1.5。
在每層找到FAST 特征點作為候選特征點,對于這些點計算其FAST 得分s:
式中:Ip表示中心像素值,Ii表示中心點周圍比Ip像素值大的連續(xù)區(qū)域的像素值,Ij表示中心點周圍比Ip像素值小的連續(xù)區(qū)域的像素值,τ是固定的閾值。
圖1 多尺度FAST 特征檢測算子Fig.1 multi-scale FAST detector
接著使用FAST得分對這些點在尺度空間進行非極大值抑制:特征點的s在同一層和相鄰上下層中必須大于它的26鄰域。對于滿足這些條件的點,在圖像和尺度的三維連續(xù)空間進行插值和連續(xù)尺度細化:首先對相鄰三層的FAST得分塊擬合成二次函數(shù),得到3個細化的極大值位置。接著對這些細化的得分沿著尺度軸擬合成拋物線,在拋物線的極值點得到其得分和尺度的估計值。最后在真實尺度附近的層上對得分塊的坐標(biāo)進行插值,就得到最后的特征點的精確位置和真實尺度。這樣得到的像素位置具有亞像素級的定位精度。
FREAK 描述子模擬人類視網(wǎng)膜的模型,建立了如圖2所示的采樣結(jié)構(gòu)。
圖2 FREAK 算子的采樣點結(jié)構(gòu)Fig.2 Illustration of the FREAK sampling pattern
圖2中,每個圓心代表一個采樣點,圓代表感受域的范圍,離中心點越遠,模糊的高斯核半徑越大,并且采樣點感受域之間有重疊。
最終生成的FREAK 描述子是二進制比特串,由采樣點對的感受域強度比較結(jié)果級聯(lián)而成。假設(shè)F 為描述符,則:
式中:Pa是感受域?qū)?,N 是描述子的維數(shù)
式中:I(Pr1a)是感受域平滑后的強度。
假設(shè)采樣點數(shù)為N,則最終可以生成的描述子一共有C2N維。一些維度包含的信息量較大,而其余維度包含的信息量較小。為選出信息量較大的維度,首先計算每一維的方差,挑選出方差最大的那一維,計算剩下維度和它的協(xié)方差,保留協(xié)方差最小的那一維,以此類推。實驗證明保留下的點對都是由外圍的采樣點對構(gòu)成,這和人類視網(wǎng)膜周邊區(qū)識別目標(biāo)的輪廓這一特性是一致的[19]。
對于SIFT 和SURF 算法,一般是采用計算歐式距離,隨后采用最近鄰和次近鄰的比值來確定匹配點。
式中:r為事先確定的閾值。
FREAK 算子生成的是0和1組成的二進制描述符,描述符之間的距離采用漢明距離計算,即異或操作。當(dāng)2個描述符之間的漢明距離小于閾值T 時,認(rèn)為其是匹配的一對特征點??梢韵缺容^前16個比特的漢明距離,隨后使用后面的比特進行精確匹配。因為越是靠前的特征維度,越能提供大量的信息,通過前16個比特已經(jīng)可以去除90%以上的誤匹配點。這種匹配方法和人類視覺的掃視模型也很類似,也就是先在場景中確定目標(biāo)的位置和輪廓,再進行精確判斷。
最后使用RANSAC 算法消除錯誤匹配。RANSAC 是一種模型假設(shè)檢驗方法[20],使用較少的初始數(shù)據(jù)構(gòu)建模型對全部數(shù)據(jù)進行正確篩選,其對于噪聲和特征點提取誤差都具有較強的魯棒性。
待配準(zhǔn)圖像間的仿射變換關(guān)系可以由如下的方程表示:
確定方程中的6個參數(shù),至少需要3對匹配點。相應(yīng)的RANSAC檢驗步驟如下:
(1)在距離篩選之后的匹配點中任意找出3對,計算變換參數(shù)(M,T);
(2)對于剩下的每一對變換點(xi,yi)(ui,vi),將(xi,yi)通過變換矩陣計算出(u)。如果||<ε,|vi’-vi|<ε,則認(rèn)為這一對點滿足變換參數(shù)(M,T),將計數(shù)count加1。(3)另外選取三對點,重復(fù)(1)、(2)。
(4)計算若干次后,選擇count次數(shù)最大的參數(shù)(M,T)為最終變換參數(shù),滿足該參數(shù)的點集為正確匹配的點集。
SIFT、SURF、FREAK 方法對于特征點的檢測、特征向量的提取都僅僅使用了特征點局部的灰度信息。為此把圖像分成大小合適的塊,將不會影響上述步驟的執(zhí)行。對每一個分塊得到的子圖像而言,其計算速度比源圖像要快得多。例如對于實驗中的512×512 的graffiti圖像,SURF平均匹配時間大約為1 160ms,而一幅300×300的圖像使用同樣的算法,時間可以縮短至480ms左右。這種采用同一程序的多個實例在不同數(shù)據(jù)上運行的方法,稱為單程序多數(shù)據(jù)(SPMD)計算模型。這樣均勻的數(shù)據(jù)劃分能保證各個線程之間的負載平衡。
對于SIFT,需要使用3σ的鄰域像素計算主方向,使用16×16的正方形計算特征向量。如果分割之后一個特征點恰好在子圖像的邊緣,那么其鄰域值會受到影響。為此分割圖像需要有重疊的部分,重疊尺寸為τ個像素。對于SIFT 取τ=16。對于SURF,計算主方向的鄰域為6σ,生成特征向量的鄰域為20σ 的正方形,如果Hessian金字塔有四組四層,那么20σ的最大值為520,如果重疊部分取這么大,則分塊已經(jīng)沒有意義??紤]到不同位置的部分需要進行高斯加權(quán),取重疊部分為高斯函數(shù)系數(shù)3.3σ 的最大值86。而對于FREAK 描述子,τ 的大小取決于采樣點的個數(shù)。注意分塊不能太小,否則會使特征點的提取和特征向量的計算都不準(zhǔn)確。對于512×512的圖像可以分為大小相等的四塊,每塊為(512+86)/2=299,實驗中取為300。圖像的重疊分塊如圖3所示。
圖3 圖像重疊的分塊Fig.3 Image overlapping division
流水線技術(shù)是目前微處理器常用的加速技術(shù),它將一條指令分為取指令、調(diào)度、譯碼、取操作數(shù)、執(zhí)行以及存儲等階段,每個時鐘周期MCU 的不同部件處理多個指令的不同階段,這樣處理器可以在一個時鐘周期內(nèi)同時執(zhí)行多條指令,即并行處理。
局部圖像特征算子分為特征點的檢測、特征向量的提取和特征向量的匹配3個階段。每個階段是相對獨立的,只需要用到前一階段的結(jié)果即可。這類似于計算機的一條指令的3個階段。為此可以采用類似流水線的技術(shù)并行執(zhí)行。具體過程如下:
(1)為特征點的檢測、特征向量的提取和特征向量的匹配3個階段各單獨開辟一個線程,分別記為Thread1,Thread2和Thread3。
(2)在Thread1中,每檢測出一個特征點,將特征點的位置和尺度交給Thread2,并打開Thread2,Thread2據(jù)此計算出該特征點對應(yīng)的特征向量,計算完畢暫停Thread2。
(3)Thread2 每計算出一個特征向量,交給Thread3,和預(yù)先提取出的模板圖像的特征向量集進行匹配,匹配完畢暫停Thread3。
流水線示意圖如圖4所示。
圖4 局部不變特征匹配的流水線技術(shù)Fig.4 Pipelining of local invariant feature matching
假設(shè)3個過程所用的時間均為T,那么處理一幅圖像需要時間為3T,串行處理3幅圖像需要時間為9T,而采用圖中所示流水線技術(shù)3幅圖像只需要5T。但是特征點檢測、特征描述和特征點匹配耗時不一致,會導(dǎo)致線程等待,造成一些微小的時間損耗。
在Intel Core2Quad 4核處理器,內(nèi)存2G,主頻2.67GHz,操作系統(tǒng)windowsXP環(huán)境下使用VC2008結(jié)合Opencv 類庫編程實現(xiàn)。從PASCAL數(shù)據(jù)庫中選擇旋轉(zhuǎn)和尺度縮放、亮暗和視角變化的3組圖像進行匹配實驗如圖5所示。將圖像統(tǒng)一轉(zhuǎn)化為512×512的大小,首先提取出變換之前的圖像的特征向量集作為模板,存儲在全局?jǐn)?shù)據(jù)空間,所有的線程對該數(shù)據(jù)都有只讀權(quán)限。運行時只對變換后的圖像進行處理,這樣便于比較匹配結(jié)果。
對于SIFT、SURF和FREAK 方法分別進行4個有重疊的分塊加速,對于SIFT,τ取16,對于SURF,τ取86,F(xiàn)REAK 算子τ 取50。實驗結(jié)果如表1~表3所示。
從表1、2、3可見,F(xiàn)REAK算法的運算時間要遠遠小于其余兩種算法。對于第一幅圖像,分塊前SIFT和SURF算法耗時是FREAK 的44.2和7.7倍,分塊后是FREAK算法的35.5和6.6倍。
表1 SIFT匹配分塊前后性能比較Tab.1 Performance of SIFT before and after blocking
表2 SURF匹配分塊前后性能比較Tab.2 Performance of SURF before and after blocking
續(xù)表
表3 FREAK 匹配分塊前后性能比較Tab.3 Performance of FREAK before and after blocking
SIFT 的 最 大 加 速 比 達 到2.51,SURF 的 最大加速比達到2.42,F(xiàn)REAK 的最大加速比達到2.02。并且可以看出檢測出的特征點數(shù)越多,處理時間越長,加速比越大。理論上最大能達到的加速比應(yīng)該等于線程數(shù)4,但是由于分塊之間有重疊以及四幅子圖像的處理時間不可能完全一致造成線程等待,導(dǎo)致加速比的下降。
從表格看出分塊后的特征點數(shù)和匹配點數(shù)均增加,這是因為在重疊區(qū)域有可能兩個子圖像在同一位置均檢測和匹配出特征點,但這種重復(fù)不會影響匹配結(jié)果。但分塊不可避免的會導(dǎo)致靠近分塊邊緣的特征點鄰域發(fā)生變化,解決方法是加大重疊尺寸τ。
采用流水線技術(shù)進行加速。結(jié)果如表4所示。
SIFT 的 最 大 加 速 比 達 到2.07,SURF 的 最大加速比達到2.21,F(xiàn)REAK 的最大加速比達到2.16。同樣處理時間越長,加速比越大。
表4 流水線處理前后結(jié)果比較Tab.4 Comparison of matching result before and after pipeling
采用流水線技術(shù)只是調(diào)整了計算順序,使3個過程可以并行執(zhí)行,并沒有影響特征點檢測和特征向量生成的數(shù)據(jù),因此只是加速了處理時間,匹配結(jié)果完全一致。此處的耗時可以認(rèn)為是整個圖像在特征點檢測、特征描述子計算和特征點匹配這3個過程所用的最大時間。經(jīng)過測試,對于SIFT 這個時間與描述向量的匹配時間相當(dāng);而對于SURF 和FREAK,這個時間與特征描述子計算的時間相當(dāng)。這證明對于SIFT 方法,匹配是3個步驟中最耗時的過程;而對于SURF 和FREAK,特征描述子的計算是3個步驟中最耗時的過程。
對于采樣成512×512大小的圖像,可以劃分為k2(k=1,2,…)塊,劃分的塊數(shù)越多,每塊圖像越小,單塊的處理時間越短。但是一方面由于處理器硬件的限制,能同時執(zhí)行的線程數(shù)有限,線程再多只能由操作系統(tǒng)調(diào)度分時間片執(zhí)行。另一方面由前面的分析可知,分塊變小對于其鄰域有影響,提取的特征點數(shù)量和位置都會有變化。如果分塊很小甚至?xí)崛〔怀鼍植刻卣鼽c。采用圖5(C)進行實驗。
圖5 實驗圖像Fig.5 Experimental images
從圖6可以看到在k=2時,運行時間下降得最快。而隨后k=3到8之間3種算法均略有下降,SIFT 算法在k=8之后處理時間會上升。這是因為使用的處理器為4核,若分塊數(shù)大于4,一個線程將串行處理多個分塊,雖然每個分塊的處理時間減少,但這多個分塊疊加起來卻比4分塊時要大,再加上由于線程之間的通信以及線程的啟動停止等步驟會耗去一部分的時間,因此處理時間增加。
圖6 運行時間與分塊數(shù)的關(guān)系Fig.6 Relationship between the running time and the number of sub-block
分塊增加,重疊的部分累加起來也會增加,導(dǎo)致重復(fù)檢測和匹配的特征點增多。為了驗證檢測出的特征點的有效性,若不同分塊檢測出的特征點距離小于3,則認(rèn)為是相同的特征點,只取其中之一。最終匹配的特征點如圖7所示。
可見3種算法隨著分塊的增加匹配點數(shù)都會下降,而SURF在k=7以后匹配點數(shù)變?yōu)?。這是因為分塊增加,則會有更多的特征點的鄰域提取不完整,特征向量的計算出現(xiàn)誤差最后導(dǎo)致匹配的失效。相比較之下SIFT 算法鄰域較小,對于分割的魯棒性更好。
圖7 匹配特征點數(shù)與分塊數(shù)的關(guān)系Fig.7 Relationship between the number of matching feature points and the number of sub-block
由以上分析可知,時間性能并不是始終隨著分塊的增加而減小的,而是要考慮處理器的硬件配置,而匹配性能隨著分塊的增加會有所下降。為此在運行時間足夠小的前提下取盡量小的分塊數(shù)目,以保留足夠多的有效特征點進行匹配。在本文實驗中4分塊是比較好的選擇。
為了解決傳統(tǒng)的局部特征描述子對大尺度圖像匹配過于耗時的問題,本文首先引入一種新的FREAK 局部不變特征,其次提出使用并行計算的思想為局部不變特征算法進行加速,即大圖像分塊的并行計算和特征點檢測、特征向量生成和特征向量匹配過程的流水線技術(shù)。作為一種具有人類視覺模型結(jié)構(gòu)的二進制描述子,F(xiàn)REAK 算法擁有良好的計算實時性和匹配準(zhǔn)確性。而對SIFT、SURF 和FREAK 算法的實驗證明本文的并行計算思想能夠取得較好的加速效果。
這種并行思想同時也適用于其他的模式識別算法,例如模板匹配、Haar特征分類等。當(dāng)單個PC機無法滿足硬件要求時,可以組建局域網(wǎng)計算,通過共享內(nèi)存或者以消息傳遞的方式進行通信。推廣到嵌入式系統(tǒng)上,可以采用多個DSP芯片并行執(zhí)行。這里需要考慮并行處理的粒度,并不是粒度越小越好,因為識別算法需要使用周圍像素的信息,粒度太小可能導(dǎo)致信息的丟失,同時線程之間的相互通信也會增加處理時間。為此在算法的分解上需要綜合考慮處理時間和算法有效性二者之間的平衡。這種并行的思想為圖像處理算法的加速提供了一種通用的思路。
[1] Mikolajczyk K,Schmid C.Indexing based on scale invariant interest points[C]∥8th IEEE International Conference on Computer Vision,Montbonnot,F(xiàn)rance:ICCV,2001:525-531.
[2] Tuytelaars T,Gool L.Matching widely separated views based on affine invariant regions[J].International Journal of Computer Vision,2004,59(1):61-85.
[3] 劉向增,田錚,史振廣,等.基于FKICA-SIFT 特征的合成孔徑圖像多尺度配準(zhǔn)[J].光學(xué)精密工程,2011,19(9):2186-2196.Liu X Z,Tian Z,Shi Z G,et al.SAR image multi-scale registration based on FKICA-SIFT features[J].Opt.Precision Eng.,2011,19(9):2186-2196.(in Chinese)
[4] 趙立榮,朱瑋,曹永剛,等.改進的加速魯棒特征算法在特征匹配中的應(yīng)用[J].光學(xué)精密工程,2013,21(12):3263-3271.Zhao L R,Zhu W,Cao Y G,et al.Application of improved SURF algorithm to feature matching[J].Opt.Precision Eng.,2013,21(12):3263-3271.(in Chinese)
[5] 蘇可心,韓廣良,孫海江.基于SURF 的抗視角變換圖像匹配算法[J].液晶與顯示,2013,28(4):626-632.Su K X,Han G L,Sun H J.Anti-Viepoint Changing image matching algorithm based on SURF[J].Chinese Journal of Liquid Crystals and Displays,2013,28(4):626-632.(in Chinese)
[6] 賈平,徐寧,張葉.基于局部特征提取的目標(biāo)自動識別[J].光學(xué)精密工程,2013,21(7):1898-1905.Jia P,Xu N,Zhang Y.Automatic target recognition based on local feature extraction[J].Opt.Precision Eng.,2013,21(7):1898-1905.(in Chinese)
[7] 李英,李靜宇,徐正平.結(jié)合SURF 與聚類分析方法實現(xiàn)運動目標(biāo)的快速跟蹤[J].液晶與顯示,2011,26(4):544-550.Li Y,Li J Y,Xu Z P.Moving target fast tracking using SURF and cluster analysis method[J].Chinese Journal of Liquid Crystals and Displays,2011,26(4):544-550.(in Chinese)
[8] Lowe D.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[9] Brown M,Lowe D.Automatic panoramic image stitching using invariant features[J].International Journal of Computer Vision,2007,74(1):59-73.
[10] 翟優(yōu),曾巒,熊偉.基于不變特征描述符實現(xiàn)星點匹配[J].光學(xué)精密工程,2013,20(11):2531-2539.Zhai Y,Zeng L,Xiong W.Star matching based on invariant feature descriptor[J].Opt.Precision Eng.,2013,20(11):2531-2539.(in Chinese)
[11] 吳威,許廷發(fā),王亞偉,等.高精度全景補償電子穩(wěn)像[J].中國光學(xué),2013,6(3):378-385.Wu W,X T F,Wang Y Wet al.High precision digital image stabilization with full frame compensation[J].Chinese Optics,2013,6(3):378-385.
[12] Noah S,Steven M,Richard S.Photo tourism:exploring photo collections in 3D[J].ACM Trans on Graphics,2006,25(3):835-846.
[13] Bay H,Tuvtellars T,Gool V.SURF:speeded up robust features[C]∥Proceedings of the European Conference on Computer Vision,Graz,Austria:ECCV,2006:404-417.
[14] Calander M,Lepetit V,Strecha Cet al.BRIEF:Binary robust Independent elementary features[C]∥European Conference on Computer Vision,Crete,Greece:ECCV,2010:778-792.
[15] Stefan L,Margarita C,Roland S.BRISK:binary robust invariant scalable keypoints[C]∥Proceedings of the IEEE International Conference on Computer Vision,Barcelona,Spain:ICCV,2011:2548-2555.
[16] Rublee E,Rabaud V,Konolige K,et al.Orb:an efficient alternative to sift or surf[C]∥Proceedings of the IEEE International Conference on Computer Vision,Barcelona,Spain:ICCV,2011:2564-2571.
[17] Alahi A,Ortiz R,Vandergheynst P.FREAK:FAST Retina keypoint[C]∥Computer Version and Pattern Recognition,Providence,RI,USA:CVPR,2011:510-517.
[18] Rosten E,Drummond T.Machine learning for highspeed corner detection[C]∥9th European Conference on Computer Vision,Graz,Austria:ECCV,2006:430-443.
[19] Field D,Gauthier J,Sher A,et al.Functional connectivity in the retina at the resolution of photoreceptors[J].Nature,2010,467(7316):673-677.
[20] 龔衛(wèi)國,張璇,李正浩.基于改進局部敏感散列算法的圖像匹配[J].光學(xué)精密工程,2011,19(16):1375-1383.Gong W G,Zhang X,Li Z H.Image registration based on extended LSH [J].Opt.Precision Eng.,2011,19(6):1375-1383.(in Chinese)