(臺州職業(yè)技術(shù)學院,浙江 臺州 318000)
在復雜背景下如何找出目標物體,是機器人視覺伺服控制系統(tǒng)研究所要解決的問題之一。目前,圖像特征匹配是解決這個問題采用的較多的方法。圖像特征匹配按方法可以分為基于灰度的特征匹配、基于頻域的特征匹配、基于特征點的特征匹配三類?;陬l域特征的匹配計算量大,耗時多,受圖像旋轉(zhuǎn)和縮放的影響較大?;谔卣鼽c的圖像配準[1-3]由于具有魯棒性強、運算量小、速度快等優(yōu)點成為當前圖像配準熱點研究方向。圖像配準按步驟又可以分特征提取、特征匹配、圖形變換這幾個過程,其中特征匹配是關(guān)鍵步驟,特征匹配就是尋找兩幅圖像之間相似的特征點之間的距離,其中最近鄰距離比值法是最常用的方法。
近年來,較為經(jīng)典的基于局部特征匹配算法[4-7]是張銳娟等人提出的一種改進的 SURF 算法,首先用 SURF 算法提取特征點,然后用最近鄰匹配法進行匹配,相對SIFT 算法速度快、計算量小,有一定的理論和應用價值。文獻[8]針對 SURF 檢測速度做了改進,文獻[9]根據(jù)高斯顏色模型進行目標匹配,文獻[10]將SURF 算法與卡爾曼濾波器結(jié)合來追蹤目標,文獻[11]通過 SUSAN 算法來提取特征點,文獻[12]通過單應性矩陣來進行匹配,匹配精度較好,但特征點檢測速度會有所下降。文獻[13]通過 Harris 提取特征點,加快特征檢測。
SURF圖像匹配與目標識別等眾多領(lǐng)域有所應用,因此,本文以SURF 算法為研究基礎,提出了一種改進的SURF 算法,即根據(jù)圖像大小構(gòu)建動態(tài)高斯金字塔圖層,提高特征點的提取效率,減少特征提取和特征匹配時間的同時有效地對非極大值進行抑制。采用RANSAC算法進行精匹配并且求出變換矩陣H。對于匹配后出現(xiàn)的偽匹配,利用提取特征點中正確匹配點與偽匹配點偏移程度進行去除。通過仿真實驗,可以得出該算法金可實現(xiàn)匹配的準確性求,同時具有計算量小、計算速度快的優(yōu)點,而且,該算法是尺度和旋轉(zhuǎn)不變的,對尺度、旋轉(zhuǎn)和平移參數(shù)具有更強的魯棒性。
與SIFT算法相比,SURF算法并不適用于DoG,而是適用于尺度空間金字塔中的Hessian矩陣,圖像和尺度空間中矩陣行列式的局部極大值構(gòu)成關(guān)鍵點的候選。與SIFT算法類似,SURF算法通過亞像素插值提高精度,首先計算主梯度方向,得到了描述子的旋轉(zhuǎn)不變性。在4×4區(qū)域的圖像細分也類似于SIFT,但在這種情況下,計算Haar小波來描述頻域內(nèi)的局部梯度,每個子區(qū)域計算四個描述符,得到4×4×4=64個條目/分。SURF的計算時間比其他類似于SIFT的算法要短,并且易于提取大量的關(guān)鍵點(即,可以在多個圖像對(多個特征)中觀察到的候選點)。假設函數(shù)為f(x,y),某個像素點的 Hessian 矩陣公式可表示為:
(1)
使用方格濾波模板后,式(1)的行列式值如下:
Det(H)=DxxDyy-α(Dxy)2
(2)
式中,α為權(quán)系數(shù),一般取α=0.9。利用公式(2)計算像素的極值點。
SURF 將尺度空間劃分成若干組,尺度空間被象征性的表述為一個圖像金字塔,而金字塔的每層稱為 Octave, Octave 的值一般是人為設定的。特征點檢測出后需要進行特征描述,利用計算的Haar小波響應系數(shù)構(gòu)建一個新向量,再將坐標軸轉(zhuǎn)到主方向,將正方形窗口劃分為4×4個子窗口。用變量采樣間隔,得到子窗口內(nèi)x和y方向上的小波響應分別為和。對子窗口的系數(shù)累加構(gòu)造四維向量
ν=(∑dx,∑dy,∑|dx|,∑|dy|)
(3)
為了提高圖像特征點匹配的效率,本文選用漸入漸出的加權(quán)融合方法。加權(quán)融合的公式如下:
f(x,y)=
(4)
其中:W1+W2=1;0 在圖像融合的過程中,可設重疊區(qū)域的W1由 1 線性變化為 0,則W2由 0 變化為 1,圖 1表示具體的權(quán)值函數(shù)變化。 圖1 漸入漸出法權(quán)值函數(shù) SURF算法是SIFT算法的改進,其特征點檢測性能相對而言有很大的提高,但是仍然存在很多不足之處:構(gòu)建圖像尺度空間,其圖像層數(shù)Octave是人為設定的圖像,如果 Octave值過低,則所提取的最優(yōu)特征點偏少,使得匹配誤差較大;若Octave的值偏大,則提取特征點耗時多,實時性差;對于細節(jié)豐富的圖像,提取的特征點會明顯增加,導致匹配時間增加,而且過于密集的特征點會造成匹配精度降低;SURF算法在匹配后會出現(xiàn)偽匹配點。 針對以上提出的問題,設計的改進SURF算法的圖像特征匹配的系統(tǒng)流程,見圖2。由圖2的流程圖可以看出,本文的主要工作是:根據(jù)圖像大小,動態(tài)構(gòu)建高斯金字塔圖層,得到合適的Octave值;對得到的初始特征點進行優(yōu)化,即在提取特征點時,通過設置閾值去除密集的特征點,使得在后續(xù)特征點匹配減少時間損耗;根據(jù)偽匹配點與正確匹配點的坐標的差異性較大,引入衡量差異性的系數(shù),將高于這個系數(shù)的點視為偽匹配點。 圖2 系統(tǒng)流程圖 SURF 算法在計算積分圖像后,會構(gòu)建高斯金字塔,其中高斯金字塔的每層為 Octave。傳統(tǒng)的 SURF 算法構(gòu)建的Octave 為人為設定的固定值,使得兩幅大小不同的圖像不具有自適應性。針對以上情況,文中了提出了一種計算Octave 的方法,即: (5) (6) 其中:O為金字塔的Octave 值,N=min{H,W}。其中,H是圖像的高度,W是圖像的寬度,M為常數(shù),本文取M=3。由實驗可知,式(3)中進行減3操作是比較合適。 構(gòu)建高斯金字塔層的步驟如下: 1) 獲取讀入圖片的尺寸大小,其高和寬分別賦值到變量H,W; 2) 根據(jù)式(6)比較H,W的大小,將最大值賦值到變量N; 3) 根據(jù)式(5)計算 Octave 的值; 4) 由步驟3)得到的值,建立高斯金字塔圖像層; 步驟3)計算 Octave 值的過程中,按四舍五入取整,如果計算出的值在[3,5]之間,則 Octave 取計算出的值,若計算的值<3或>5,則 Octave 取3 或 5,因為若 Octave 值過小則無法獲得足夠的特征點,過多則影響實時性。 SURF算法對細節(jié)豐富的圖像進行匹配時,會獲取大量的特征點。為了提高圖像特征匹配的效率,必須對提取的特征點優(yōu)化。特征點優(yōu)化的具體步驟為: 1) 設置特征點數(shù)量閾值C和距離閾值L; 2)SURF算法檢測特征點,輸出特征點集P,數(shù)量為N; 3) 判斷特征點數(shù)量是否大于閾值C,若小于閾值C,則直接得到特征點;若大于閾值C,則對特征點進行優(yōu)化; 4) 選定特征點Pi,計算Pi與PN-i的距離,若距離小于閾值L,則將此點從點集P中刪除; 5) 當特征點數(shù)量不大于閾值C時,停止計算,輸出優(yōu)化后的特征點。初始特征點經(jīng)過優(yōu)化后,可以去除分布密集的點,通過最近鄰距離比值法找到合適的匹配對,為后續(xù)特征點匹配節(jié)約了時間。 根據(jù)人眼的特殊結(jié)構(gòu),視頻圖像如果想要體現(xiàn)流暢性,則其播放速度必須保持在每秒鐘24幀以上,常規(guī)的PAL制式是每秒25幀。從傳統(tǒng)的拼接算法分析可知,如果直接利用SURF 算法對所獲得圖像進行拼接,則較難解決視頻拼接的實時性問題。 傳統(tǒng)的圖像匹配過程中是對整幅圖像進行特征提取,再對所有提取到的特征點進行篩選找到特征匹配對,這樣產(chǎn)生的計算量將會很大,嚴重影響效率。圖像拼接是一般是對重疊區(qū)域達到30%以上的圖像進行處理的。為了提高效率,可以首先計算兩幅待匹配圖像的重疊區(qū)域,然后在該重疊區(qū)域內(nèi)進行特征提取,這樣就可以大大減小了特征提取的時間。SURF 特征點的匹配是通過計算兩個特征點描述符之間的歐式距離得到的[16],這種匹配方法雖然簡單快捷,但會產(chǎn)生誤匹配。一般情況下,兩幅待匹配的圖像存在旋轉(zhuǎn)、縮放等仿射變換,仿射變換影響了描述符的準確性;在匹配的過程中,需要人工設定閾值(通常取 0.7)閾值的大小影響匹配結(jié)果;另外,圖像中存在的噪聲點和運動模糊等也會影響匹配結(jié)果。通過實驗仿真可以發(fā)現(xiàn)傳統(tǒng)的匹配后還會出現(xiàn)還可能會出現(xiàn)一些錯誤的匹配對,針對這個情況本文采用對匹配對的距離先進行排序,優(yōu)先選取前20對最優(yōu)的匹配對,然后再用RANSAC對這20對匹配點進行精匹配,計算出變換矩陣H。綜上所述,本文對于圖像的拼接可以總結(jié)為以下步驟: 1)對待拼接的圖像進行預處理。包括校正、去噪等步驟; 2)計算出待拼接圖像的重疊區(qū)域ROI; 3)在重疊區(qū)內(nèi)采用本文改進的SURF算法進行特征提?。?/p> 4)對匹配點對距離進行排序,選取距離最短的前20對,標記為good匹配對,再進行RANSAC剔除錯誤匹配對,計算出變換矩陣H; 5)采集漸入漸出的融合方法進行融合,得到無縫拼接圖。 假設兩幅待配準圖像經(jīng)過 SURF 算法匹配后沒有偽匹配點,而且兩幅圖像不存在旋轉(zhuǎn)仿射變換。兩幅圖像相匹配的特征點之間會存在一定的斜率,記為K,所有匹配特征點斜率的平均值記為Ka。如果匹配過程中存在誤匹配點,即偏離正確匹配點的位置,這樣斜率K便會相對變大,隨著斜率的平均值Ka也會增大,但是K值的增長速度相對于Ka的增長速度要快的多,所以可以將K的值與ωKa值相比較,將K值大于ωKa的點視為偽匹配點。其中,ω為常系數(shù)。如圖3所示,(p1,q1)(p2,q7)(p3,q3)(p4,q4)(p5,q5)(p6,q6)(p7,q2)為已經(jīng)檢測出來的匹配點,而(p2,q7)(p7,q2)為錯誤匹配點。從圖中可以看出,這兩對偽匹配點的存在,會使得七對匹配點之間的斜率平均值增大,(p2,q7)(p7,q2)之間斜率的增量要比整體平均值大的多,可以通過比較所有匹配點的斜率與平均斜率的大小來去除偽匹配點。 圖3 特征點匹配示意圖 設圖像I1和I2為兩幅待匹配的圖像匹配結(jié)果最終是以兩幅圖像拼接顯示,(pi,qi)和(pj,qj)(i,j=0,1,2,3……n,n為兩幅圖像中的匹配特征點個數(shù))分別為兩幅圖像中通過 SURF 算法得到的匹配點,則每對匹配點之間相對傾斜程度可以表示為: (7) 其中:W為圖像I1的寬。所有匹配點斜率的平均值可表示為: (8) 由式(7)和(8)計算ki,ka后,偽匹配點的去除如式(9)所示: ki>ωka (9) 式中,ω是常數(shù),本文取 0.3,根據(jù)具體實驗選擇合適的值。當特征點中計算結(jié)果滿足式(9)的點視為偽匹配點。式中并不是將ki與ka直接做比較,一方面考慮到ka容易受到極端值影響,會造成偽匹配點的誤判;另一方面,可以增強算法的通用性,可以根據(jù)具體匹配圖像來合理調(diào)整誤匹配點的評判界限。 為了驗證本算法的正確性和有效性,仿真實驗在 CPU 為 Intel Core i5-5200U 2.20 GHz,操作系統(tǒng)為 Windows 10,環(huán)境為 MATLABR2015b 的計算機上進行的。因為自然條件下采集的圖像都是處在復雜環(huán)境下,而匹配的目的是識別出目標物,故本文選擇的待匹配圖像來自復雜環(huán)境。實驗針對圖像特征點的提取、匹配算法在時間性能和準確性方面,將本文算法與 SURF 算法進行分析比較。圖像特征點提取實驗首先進行的實驗是基于不同尺寸的圖像,分別做上述兩種算法處理。在尺寸大小為800×600的圖像中,由式(5)(6)計算可得到本文算法中的Octave 值為 3, SURF 算法中的 Octave 值取為 4。實驗效果如圖4所示。由圖4可以看出, SURF 算法提取的特征點存在聚集現(xiàn)象,而本文提出的算法由于經(jīng)過特征點優(yōu)化處理,因此相對于SURF算法來說,提取的特征點數(shù)量要少的多,分布較為均勻。圖像在不同尺寸條件下,兩種算法提取特征點數(shù)量和時間如表1所示。 圖4 效果對比圖 表2中,隨著圖像尺寸的增大,兩種算法提取到的特征點數(shù)量逐漸增多。其中,SURF 算法提取的特征點數(shù)量比較多,本文算法經(jīng)過特征點優(yōu)化后,提取的特征點數(shù)量明顯較少,提取時間也相應減少,但隨著特征點數(shù)量大幅增加,本文算法在時間上相對 SURF算法不具有明顯優(yōu)勢了。 表1 特征點數(shù)量與提取時間對比 為了驗證本文算法去除偽匹配點的有效性,本文以尺寸為640×480的圖像為參考圖像,待匹配圖像大小分別為 640×480,800×600,1280×1024,1600×1200。其中,圖5和圖6中待匹配圖像的大小為640×480,分別是 SURF 算法和本文算法對特征點的匹配效果。由匹配效果可以看出,本文算法的特征點匹配效果要好。不同尺寸下,這兩種算法的實驗數(shù)據(jù),如表 2 所示。 圖5 SURF 算法匹配結(jié)果 圖6 本文算法匹配結(jié)果 由表2實驗數(shù)據(jù)可知,本文算法相對于傳統(tǒng)的 SURF 算法,特征點匹配精度高,耗時短。 本文針對 SURF 算法的缺點,提出了一種改進的算法,即構(gòu)建動態(tài)高斯金字塔圖像層數(shù),通過設置閾值的方式對特征點進行優(yōu)化,利用衡量偽匹配點偏離正確匹配點的程度系數(shù)去除偽匹配點。實驗結(jié)果表明,提出的改進方法更為簡單有效,減少了特征點匹配的誤差,能夠有效縮短圖像配準時間。通過這種方法不僅可以提高特征提取的效率,得到更加明顯的特征點,為下一步的特征匹配也減小不少運算量,同時還可以有效地解決極值點群分布問題。實驗仿真證明相比于其他復雜的非極大值抑制算法,本文的改進方法更為簡單有效,更好的提高了拼接效率,為整個過程的實時性作出了重要貢獻。 表2 兩種算法特征點匹配實驗對比2 改進的 SURF 算法
2.1 算法改進的總體思路
2.2 高斯金字塔圖像層的動態(tài)構(gòu)建
2.3 特征點的優(yōu)化
3 偽匹配點的去除
3.1 算法思想
3.2 算法實現(xiàn)
4 仿真實驗
5 結(jié)論