洪鵬程,唐 垚,任 重
(西安郵電大學 通信與信息工程學院,西安 710121)
圖像拼接技術是將兩幅有部分重疊的圖像拼接成一幅視角更廣并且無拼接縫的圖像,以獲得更豐富、更精準的場景信息[1]。該技術通常被應用于監控安防、醫療圖像診斷、圖像識別與探測等區域,具有非常重要的研究意義與價值。
圖像拼接過程中,配準的方法一般分為兩種。一種是計算圖像灰度值匹配的方法。這種圖像拼接算法簡單,直接計算待拼接圖像的像素灰度值來進行匹配,實現較為容易,但是穩定性差,對光照度變化較敏感。另一種是基于特征的匹配方法[2-3],該方法具有較好的穩定性,能夠更好地克服圖像的光照度、旋轉、尺度等變化的影響,是目前適用性較強的一種圖像拼接方法[4-5]。
為了獲得更好的配準結果,近年來的研究熱點主要集中在SIFT(Scale-invariant Feature Transform)算法上,但是其算法匹配速度較慢。文獻[6]在SIFT的基礎上進行改進,提出了SURF(Speeded Up Robust Features)算法,替代了傳統的SIFT運算來提取特征,再通過快速雙向匹配進行圖像配準。雖然改進的SURF算法在一定程度上提高了運行速度,但是視角變換角度過大時匹配精度較低。文獻[7-8]對傳統的 SURF算法進行改進,在擁有匹配速度的同時提高了匹配正確率,但是在一些極限場景下效果并不理想。近幾年常用的配準方法中,SIFT算法對圖像匹配正確率較高[9-10],但是由于該算法對大量特征點都進行計算,導致算法耗時過長。SURF算法比SIFT算法在匹配耗時上具有明顯的提升[11-13],但是在匹配正確率方面較低,從而導致拼接效果不佳。
基于以上分析,本文提出了基于SURF描述符的圖像拼接方法。通過改進SURF算法,提出分割圓形區域構建描述符,通過降低特征描述符整體的維度提高算法的運行速率,減少特征點匹配耗時。并使用區域歸一化灰度均值和韋伯局部描述符得到新的擴展描述符,使其具有更多的灰度信息和邊緣細節信息[14],提高了特征匹配的精確度,使其具有更好的穩定性和魯棒性[15-16]。最后通過改進的RANSAC(Random Sample Consensus)算法[17],從不斷增大的最佳對應點集合中進行采樣,把每一個模塊中的誤匹配點剔除,提高精度,從而優化匹配效果[18]。
在SURF算法中,先計算海森(Hessian)矩陣行列式,求出其近似值,并構建高斯金字塔圖像,得到尺度空間。 然后采用盒式濾波器技術來近似高斯函數的二階微商,結合積分圖像來提高構建尺度空間的速度,再對盒式濾波器的尺度進行改變,以構造高斯圖像金字塔,使用海森(Hessian)矩陣行列式判別式進行特征點篩選,若其行列式的值大于設置的閾值,則該像素點被標定為備選特征點。最后在尺度空間和圖像空間中使用差值法來精確定位特征點。
以精確定位的特征點為中心、6尺度為半徑的圓,計算該區域內的Haar小波響應,并根據距離給這些小波響應進行賦值高斯權重系數,在圓形鄰域內做一個60°的扇形區域,統計其扇形區域內小波響應的總和,然后轉動扇形區域,再統計小波特征總和,得到最大的方向即為特征點主方向。
在選取的特征點周圍選取一個正方形,邊長為20尺度,將其劃分為16個區域(邊長為5尺度),每個區域統計25個像素的垂直方向(垂直方向值之和、垂直方向絕對值之和)和水平方向(水平方向值之和、水平方向絕對值之和)的Haar小波特征,這樣每一個區域有4個值,則每個正方形區域就有64維,即每一個特征描述子由64維特征矢量組成。
由上節可以看出,由于經典的SURF算法采用矩形特征區域進行特征描述符的計算,其缺點是,當特征點主方向確定時計算過程會出現誤差,如圖1(a)所示。假設需要圖像旋轉到(x1,y1)的位置,但是由于主方向角度產生誤差的原因,實際圖像只能旋轉到(x2,y2)的位置,這樣就會有一部分區域不重疊,原本需要統計的區域就會被忽略掉,而不需要統計的區域就會被統計到,以至于產生較大的誤差。相對比之下,采用圓形區域可以很好地解決這類問題,當主方向存在誤差時,圓形區域旋轉前后所覆蓋的像素點是一致的,如圖1(b)所示。本文把圓形的直徑選作正方形的邊長,就相當于去除掉正方形外圍受干擾的區域,使得其旋轉后的整體相似性增強。

圖1 方形和圓形區域比較
由于圓形區域具有嚴格的旋轉不變性,本文提出了一種分割圓形區域,把圓形區域分割成扇形區域,這樣可以把各個扇形內的采樣點,從中心向四周各個方向進行覆蓋操作。然后,在分割出的扇形區域構建特征點,作為局部匹配特征。這樣,在進行旋轉操作時能有效避免復雜的計算量,從而提高算法的速度。具體做法如下:
(1)建立直角坐標系,以特征點為原點,分別對圓形區域進行8尺度、16尺度、32尺度劃分。由于劃分尺度增加,重疊的區域增加,算法運算速度逐漸降低,為了使算法具有更好的速率,所以取8尺度為半徑的圓形區域,根據像素點和原點主方向的夾角,可以均勻地劃分為8個扇形模塊,如圖2所示。

圖2 基于圓形分割的描述符
(2)計算這8個扇形模塊主方向x方向和y方向的Haar小波響應x′和y′,并進行小波變換,將所有變換之后的值進行累加,得到一個新的數值。每一個扇形模塊可以構成4維向量,以1號扇形模塊形成8個向量編號為1~8號向量,2號扇形模塊形成9~16號向量,3號扇形模塊形成17~24號向量,4號扇形模塊形成25~32號向量,形成32維描述符。
(3)對每個扇形模塊像素的梯度進行高斯加權,這樣能得到每一個像素點周邊像素的平均值,以降低外圍點的噪聲對邊緣特征值的影響。高斯加權系數為
(1)
式中:(x,y)和(x0,y0)為所求圖像區域中像素點和中心點在待描述圖像區域中的坐標,θ0為選定的常數。這樣,每一個像素特征點都被賦予高斯加權系數。
在SURF算法中,由于特征點的構造是Haar小波響應的值,導致兩幅需要配準的圖像灰度信息差異較大,匹配效果不佳,而本文在描述符的基礎上進行擴展,采用區域歸一化灰度均值算法,這種方法可以有效克服光照對配準的影響。具體做法如下:
首先,計算出分割之后的8個扇形區域的灰度值,統計出每一個像素點的最大灰度值Gmax和最小灰度Gmin,再使用式(2)計算出區域歸一化的值:
(2)
式中:G為原始灰度值。
同時,在圖像區域中,對每一個興趣點分配高斯加權系數,計算其與特征點的距離,若距離越遠,則加權系數越小,相應貢獻就越小,反之對描述符的貢獻越大。
最后,分別計算8個扇區內的區域歸一化后的灰度值的均值,組成特征向量,作為本文特征描述符的擴展。
為了更好地利用圖像的細節信息,以增強算法的穩健性和魯棒性,本文提出了將韋伯局部描述符用于特征描述符的擴展的方法。韋伯局部描述符能有效地描述圖像局部細節信息,更好地提升算法的穩定性。韋伯局部描述符包含差分激勵算子和方向算子。計算除邊緣像素點外的每個像素點的差分激勵算子和方向算子,并以其二維分布直方圖來共同表征圖像的紋理細節信息。
(1)差分激勵算子
差分激勵反應局部窗內灰度變化的強度信息。通過計算局部窗內鄰域像素點的灰度差值和中心像素點灰度值的比值U(xc),再使用反正切變換將分布在[-P,+∞]范圍內U(xc)映射到區間(-π/2,π/2)內,差分激勵ξ(xc)的計算式為
(3)
式中:xc和xi(i=0,1,…,P-1)分別表示中心像素點和鄰域像素點的灰度值,P表示鄰域像素點個數。
(2)方向算子
方向算子反映了局部窗內灰度變化的空間分布信息,通過局部窗內水平方向與垂直方向上鄰域像素點的灰度值比值的反正切變換來描述。其公式為
(4)
式中:DV和DH分別表垂直方向和水平方向中心像素點和鄰域像素點的灰度差異。
(3)韋伯局部描述符直方圖
韋伯局部描述符采用均勻量化技術,將方向γ(xc)均勻量化為T個方向,將差分激勵均勻地劃分為M個頻段,分別把圖像中的高頻、中頻和低頻信息做變換,再將劃分的每個頻段上差分激勵均勻地量化為N格,形成一個T×C=T×(M×N)的二維直方圖,并通過量化編碼將二維轉化成一維向量,用于表示圖像的紋理細節信息。
采用以上方法能夠得到一個新的描述符,該描述符既能有效克服光照度變化,也能精準地利用邊緣細節信息,使得本文的圖像拼接更具穩健性。最后在進行特征點匹配階段,取待配準圖像的特征點,并找到其與參考圖像中歐式距離最近的前兩個特征點,在這兩個特征點中,如果最近距離除以次近距離得到的比率小于閾值T=0.7(一般采用0.6~0.8),則認為兩點為正確匹配點對,遍歷所有特征點,得到全部匹配點對。再使用改進的RANSAC算法消除誤匹配點對,以獲得精確的匹配點對。
兩幅圖像拼接時,通常會有明顯位移、旋轉和光照度變化等情況。為實現圖像無縫拼接,本文采用投影變換的方法,在得到兩幅圖像變換關系之后,通過圖像特征點匹配和改進的RANSAC算法,找到至少4對匹配點,反算出3×3的單應矩陣H。將待配準圖像I′通過單應矩陣H進行變換后與待參考圖像I進行疊加,即將兩幅圖像變換到同一個坐標系上,這樣就可以把兩幅圖像拼接起來。

(5)
式中:(x′,y′)和(x,y)分別為待配準圖像I′和參考圖像I的匹配點對。
考慮到拼接之后的圖像具有明顯的拼接縫,需要利用漸入漸出加權平均法對拼接縫進行均勻過渡,達到無縫拼接的圖像。設I1(x,y)和I2(x,y)分別為參考圖像和待配準圖像的像素灰度值,I(x,y)為融合后的像素灰度值,則漸入漸出加權平均法的公式如下:
(6)
式中:k1、k2為權值,且k1+k2=1。通常k1=i/w,i∈(0,w),w為重疊區域的寬度。
綜上所述,圖像拼接算法流程如圖3所示。

圖3 算法流程
為了驗證本文方法的有效性和可靠性,選擇了3組圖像來進行試驗。針對這3組圖像,分別使用經典的SURF算法、改進的SURF算法和本文算法進行拼接。
本文算法運行環境如下:CPU為Intel core i5-3450,主頻為3.3 GHz,內存為4 GB的PC機,64位Win7操作系統,在Visual Studio 2015上采用VC++編程軟件實現。
3.2.1 運算時間
使用分割圓形區域構建描述符算法,減少特征匹配耗時,提高運行速度。對圖4所示圖像進行測試。

圖4 不同場景下拍攝
本文算法與經典的SURF算法和改進的SURF算法(文獻[8]的方法)在匹配耗時情況下進行了比較,結果如表1所示。

表1 運算時間
從表1可以看出,本文算法比經典的SURF算法和改進的SURF算法耗時更少,其中經典的SURF算法則降低了提取特征點的數量,提高了匹配速率,而改進的SURF算法采集的特征點相對較多,導致匹配耗時較長。本文算法在提取特征點上對改進的SURF算法進行優化,在此基礎上使用分割圓形區域構建描述符進行降維,很大程度上減少了特征描述符提取和匹配時間,因此本文算法具有速度優勢。
3.2.2 匹配正確率
為了在匹配速率的優勢上,確保匹配正確率,本文使用區域歸一化的灰度均值,克服光照對配準點的影響,得到精度更高的特征點。然后使用韋伯局部描述符算法,增加圖像的細節信息,使兩幅圖像的特征點配準更精確,并提高整體算法的穩定性。對圖4所示圖像進行特征點匹配測試,由于特征點匹配較多,為了能直觀地反應匹配效果,只顯示50對匹配點,結果如圖5所示,可以看出兩幅圖之間的匹配點對是非常精準的。

圖5 不同場景的匹配
對本文算法與經典的SURF算法和改進的SURF算法的匹配正確率進行比較,結果如表2所示。

表2 匹配正確率(正確匹配點對/匹配點對)
從表2可以看出,經典的SURF算法在旋轉、視角變化、光照方面性能較差,提取出的特征點較少并且匹配正確率低,匹配效果較差。改進的SURF算法相對提高了匹配正確率,但是效果不太突出。而本文算法由于加入區域歸一化的灰度均值與韋伯局部描述的細節紋理信息,得到新的描述符更具穩健性,所以匹配正確率要高于改進的SURF算法,對旋轉、視角變換、光照變化均有顯著提高,所以匹配效果更好。
綜合表1和表2可以得出,傳統的SURF算法在匹配效果上較差,但是匹配速率較高,能滿足一些需求,而改進的SURF在經典的SURF基礎上雖然提高的匹配正確率,進而提高了匹配效果,但是在匹配速率上有明顯滑落。本文算法兼顧了以上兩種算法的優點,既提高了匹配正確率,也相應提高了匹配速率。
利用SURF算法、改進的SURF算法和本文算法,分別對圖4中的圖像進行拼接和融合,拼接效果如圖6~8所示。為了保證更好的視覺效果,拼接圖均為裁剪邊緣之后的圖像,裁剪掉的部分不影響算法之間的對比。

圖6 對圖4(a) 的拼接算法結果對比

圖7 對圖4(b) 的拼接算法結果對比

圖8 對圖4(c) 的拼接算法結果對比
從圖6~8可以看出,改進的SURF算法出現了明顯的拼接縫,亮度不均勻,而采用本文算法,實現了亮度變化均勻、無明顯拼接縫、保真度高的圖像拼接。由圖8可以看出,改進的SURF算法對旋轉的圖像進行拼接,出現了圖像扭曲的現象,而本文算法可以把旋轉的兩幅圖像矯正成無扭曲的拼接圖像。
本文提出了一種基于SURF分割圓形區域的圖像拼接方法,采用圓形區域的特征描述符提取方法提高了算法的運行速度和匹配效率。針對經典的SURF和改進的SURF算法存在旋轉及光照變化配準效果差的問題,提出了區域歸一化的灰度均值和韋伯局部描述符算法,更充分地利用圖像的細節信息,使該算法具有更高的效率。本文算法兼顧了經典SURF算法和改進的SURF算法的優點,既提升了圖像的匹配準確性,也提高了圖像匹配的速率。
實驗結果表明,本文的圖像拼接方法相較于改進的SURF算法的拼接技術更具適用性,是一種既能滿足實時性要求又具備匹配精確度高的圖像拼接新方法。