石旭東,黃加旺,黃 琨,徐 萌
(中國(guó)民航大學(xué) 電子信息與自動(dòng)化學(xué)院,天津 300300)
傳統(tǒng)飛機(jī)維修依賴紙質(zhì)維修資料使得維修效率普遍不高,且飛機(jī)維修要保證飛機(jī)航行絕對(duì)安全,對(duì)維修失誤零容忍[1]。針對(duì)以上問題,增強(qiáng)現(xiàn)實(shí)[2](augmented reality,AR)與飛機(jī)維修結(jié)合可提供給維修人員實(shí)時(shí)、準(zhǔn)確的維修引導(dǎo),而實(shí)時(shí)、準(zhǔn)確的引導(dǎo)關(guān)鍵在于圖像識(shí)別算法的速度和精度。本文重點(diǎn)研究圖像識(shí)別中的角點(diǎn)檢測(cè)環(huán)節(jié),傳統(tǒng)角點(diǎn)檢測(cè)算法速度較慢,閾值選取不當(dāng)會(huì)提取到偽角點(diǎn)或產(chǎn)生冗余、不足,越來越多的學(xué)者開始對(duì)傳統(tǒng)算法進(jìn)行優(yōu)化。文獻(xiàn)[3,4]中蘭紅等用聚類算法馬氏距離代替SURF算法歐氏距離,張立亭等提出基于灰度差分與模板的快速Harris算法,兩種方法均提高了算法準(zhǔn)確性,且后者相比前者降低了算法時(shí)間復(fù)雜度。文獻(xiàn)[5,6]中朱聰?shù)忍岢龌谙嗨葡袼豀arris算法,徐振武等提出多閾值圓形非極大值抑制法,賦予算法尺度和旋轉(zhuǎn)不變性,后者相比前者優(yōu)化了閾值選取環(huán)節(jié)。Lei Fei等[7]結(jié)合K-D樹和RANSAC算法,濾去大量誤匹配,但算法速度提升不明顯。R.Manoranjitham等[8]提出雙邊Harris角點(diǎn)檢測(cè)器,優(yōu)化后魯棒性增強(qiáng)。Songqi Han等[9]用B樣條函數(shù)濾波獲得初始點(diǎn)集,但閾值選取方法還需優(yōu)化。陳洪等[10]提出自適應(yīng)灰度差閾值的SUSAN算法,Ly算子探測(cè)概略角點(diǎn)集,得到精確角點(diǎn)特征。
本文從提高速度精度和可匹配性方面入手,首先用維納濾波復(fù)原圖像和8鄰域比較法篩選初始點(diǎn)集。然后為算法找出最優(yōu)的角點(diǎn)質(zhì)量等級(jí)和相鄰角點(diǎn)最小距離限度,用具有最優(yōu)參數(shù)的Harris算法對(duì)點(diǎn)集進(jìn)行再篩選,快速得到準(zhǔn)確分散的目標(biāo)角點(diǎn)集。
關(guān)于角點(diǎn)的定義,到目前為止沒有明確的數(shù)學(xué)定義,可以認(rèn)為角點(diǎn)是定區(qū)間內(nèi)的極值點(diǎn),是一些某方面屬性特別突出的點(diǎn),或是在某些屬性上強(qiáng)度最大或者最小的孤立點(diǎn)、線段的終點(diǎn),或者是曲線上局部曲率最大的點(diǎn)[11]。
(1)
高斯取樣窗口函數(shù)W(x,y) 可表示為
(2)
根據(jù)二維泰勒級(jí)數(shù)展開灰度函數(shù)I(x+u,y+v),得到
A(u,v)≈∑W(x,y)[I(x,y)+uIx+vIy-I(x,y)]2=
∑W(x,y)[uIx+vIy]2
再化為二次型的形式,得到
(3)
然后我們令矩陣Mat
(4)
運(yùn)用Sobel算子求兩個(gè)方向上的梯度,其中,Ix是灰度圖像在x方向的梯度,Iy是在y方向的梯度,?表示卷積。
Mat矩陣特征值的大小與特征點(diǎn)的性質(zhì)相關(guān),計(jì)算出矩陣的兩個(gè)特征值e1、e2,分別求出矩陣的行列式det(Mat)=e1e2,矩陣的跡trace(Mat)=e1+e2。
可以計(jì)算Harris角點(diǎn)響應(yīng)函數(shù)
CRFH=det(Mat)-k(trace(Mat))2
(5)
一般k取0.04-0.06。得出CRFH后,需要設(shè)定合適的閾值,篩選出大于閾值的點(diǎn)即為角點(diǎn)候選點(diǎn)。這就是Harris角點(diǎn)檢測(cè)法的基本原理。
Harris算法存在著一定的局限性:
(1)在非極大值抑制過程中,閾值選取的隨意性導(dǎo)致特征點(diǎn)的冗余或不足。
(2)傳統(tǒng)算法中乘法的計(jì)算量大,所以整體算法耗時(shí)較長(zhǎng)。
(3)算法的可靠性不足,會(huì)出現(xiàn)偽角點(diǎn)。
對(duì)于增強(qiáng)現(xiàn)實(shí)誘導(dǎo)飛機(jī)維修系統(tǒng),維修對(duì)象識(shí)別的準(zhǔn)確性是系統(tǒng)性能的關(guān)鍵,維修對(duì)象樣本圖片質(zhì)量的好壞也是圖像識(shí)別能否準(zhǔn)確的基礎(chǔ)。維修現(xiàn)場(chǎng)光照條件惡劣,同時(shí)采集的對(duì)象圖片存在噪點(diǎn),要用濾波方法濾去圖像中的噪點(diǎn),保證圖像識(shí)別過程的準(zhǔn)確性,為整體算法的改進(jìn)做鋪墊。
步驟1 對(duì)維修對(duì)象樣本圖片進(jìn)行維納濾波,去除噪聲復(fù)原圖像。此外,維納濾波的效果和與高斯濾波的對(duì)比圖已展示在第2.2節(jié)“優(yōu)化算法實(shí)驗(yàn)結(jié)果分析”中。
步驟2 利用8鄰域比較法,對(duì)初始點(diǎn)集進(jìn)行篩選,獲得候選點(diǎn)集Collection1。
所謂8鄰域比較法,即以各像素點(diǎn)(除第一行、第一列、最后一行、最后一列外所有的點(diǎn))為中心構(gòu)建一個(gè)3×3的方形區(qū)域,計(jì)算周圍8鄰域像素點(diǎn)與中心像素點(diǎn)之差Δ的絕對(duì)值,設(shè)定一個(gè)閾值Tsim(Tsim>0,其中sim取自similar,表相似),當(dāng)Δ (6) (7) S(i,j) 是標(biāo)記函數(shù),以 (i,j) 為中心對(duì)其8鄰域內(nèi)像素點(diǎn)相似記1,不相似記0。 容易得知:Nsim(i,j)∈[0,8] 內(nèi)的整數(shù)。 分析Nsim(i,j) 的值,可以推斷: (1)Nsim(i,j)=8時(shí),說明中心像素點(diǎn)周圍像素點(diǎn)都是相似關(guān)系,所以判斷該點(diǎn)不是角點(diǎn)。 (2)Nsim(i,j)=7時(shí),說明鄰域內(nèi)只有一個(gè)點(diǎn)與中心像素點(diǎn)不相似,此類情形下中心像素點(diǎn)不能被確定為角點(diǎn)。 (3)Nsim(i,j)=1時(shí),與情況(2)互為反事件,在鄰域內(nèi)與中心像素點(diǎn)相似的點(diǎn)只有一個(gè),此點(diǎn)可能是角點(diǎn)。但圖1中不能確定各灰色方塊間是否相似,如果8鄰域內(nèi)相似的灰色方塊數(shù)量大于4時(shí),證明灰色方塊之間灰度變化較平坦,所以與之不相似的中心像素點(diǎn)可能是孤立的噪聲點(diǎn),此類像素點(diǎn)應(yīng)排除。 圖1 Nsim(i,j)=1時(shí)中心點(diǎn)與鄰域的相似關(guān)系 (4)Nsim(i,j)=0時(shí),該中心像素點(diǎn)為孤立像素點(diǎn)或者是噪聲點(diǎn),應(yīng)排除此類像素點(diǎn)。 (5)Nsim(i,j)=(2,3,4,5,6) 時(shí),將這類像素點(diǎn)列為候選點(diǎn),對(duì)其計(jì)算角點(diǎn)響應(yīng)函數(shù)進(jìn)行篩選。 經(jīng)過8鄰域比較法篩選得到候選點(diǎn)集這一步驟,過濾了大約60%的非特征點(diǎn),大大降低了算法的時(shí)間復(fù)雜度和空間復(fù)雜度。 步驟3 對(duì)Collection1利用Sobel算子對(duì)候選點(diǎn)集分別進(jìn)行對(duì)x方向和y方向的梯度求算,得到Ix,Iy。Sobel算子具有一定的優(yōu)勢(shì),計(jì)算簡(jiǎn)單且分割速度快,能夠更多地提取圖像的細(xì)節(jié)信息[12]。它還是一種加權(quán)平均的算子,距離不同有著不同的權(quán)值,一般來講,距離越遠(yuǎn),影響越小。光照等自然環(huán)境的改變不會(huì)影響Sobel算子的計(jì)算值,Sobel算子的魯棒性更強(qiáng)。 步驟4 利用求出的每對(duì)Ix、Iy計(jì)算矩陣Mat。求出特征值e1,e2。利用Harris角點(diǎn)響應(yīng)函數(shù)公式計(jì)算出角點(diǎn)響應(yīng)函數(shù)CRFH值,找出CRFH的最大值CRFHMAX。令閾值TH=Q×CRFHMAX。利用閾值TH篩選點(diǎn)集,得到Collection2。 步驟5 在得到點(diǎn)集Collection2后,利用該算法可自行設(shè)置一個(gè)可識(shí)別到的最大角點(diǎn)數(shù),并為該點(diǎn)集設(shè)定一個(gè)角點(diǎn)質(zhì)量等級(jí)Q,再選取一個(gè)相鄰角點(diǎn)最小距離限度值Dmin,使選取的角點(diǎn)更加稀疏,更加準(zhǔn)確,易于后期的圖像配準(zhǔn),最后角點(diǎn)集TargetCollection即為所得。 圖2是算法總體流程。 圖2 算法總體流程 然而,找到最優(yōu)的角點(diǎn)質(zhì)量等級(jí)和最優(yōu)的最小距離限度值是算法整體品質(zhì)提升的關(guān)鍵。角點(diǎn)質(zhì)量等級(jí)Q(QualityLevel)控制著截止閾值的大小,有以下關(guān)系 TH=Q×CRFHMAX (8) Q越大識(shí)別到的角點(diǎn)質(zhì)量越高,反之就越來越粗糙;與此同時(shí),隨著Q的變化,得到的角點(diǎn)數(shù)量也會(huì)隨之變化,Q越大,得到的角點(diǎn)數(shù)量就越少,維持角點(diǎn)質(zhì)量和數(shù)量的動(dòng)態(tài)平衡是算法品質(zhì)的關(guān)鍵。 另外,角點(diǎn)成群出現(xiàn)的現(xiàn)象會(huì)影響后期特征點(diǎn)匹配的過程,所以要為相鄰角點(diǎn)間設(shè)定一個(gè)最小距離限度值Dmin(下標(biāo)min表minimum,意為最小)。和角點(diǎn)質(zhì)量等級(jí)Q的選取一樣,Dmin的選取也會(huì)引起角點(diǎn)識(shí)別數(shù)量的變化,角點(diǎn)識(shí)別準(zhǔn)確率和相鄰角點(diǎn)最小距離限度的平衡也是需要考慮在內(nèi)的。 設(shè)一個(gè)角點(diǎn)群有3個(gè)點(diǎn),分別為A(x1,y1)、B(x2,y2)、C(x3,y3),有下式 (9) 根據(jù)需求,確定最小距離限度值Dmin。從角點(diǎn)集只有3個(gè)點(diǎn)的情況入手,求出角點(diǎn)集內(nèi)任意兩點(diǎn)間距離并將其與給定的Dmin作比較,將比較結(jié)果與表1的8種情況進(jìn)行對(duì)照,對(duì)角點(diǎn)進(jìn)行分析和有選擇性的保留。對(duì)于“留其一”的情況,此類點(diǎn)要與集外相鄰角點(diǎn)重復(fù)進(jìn)行上述步驟,層層篩選,可得到最終的角點(diǎn)集。 表1 3個(gè)角點(diǎn)的保留情況 了解了角點(diǎn)的保留情況,再利用控制變量的思想,確定最大可識(shí)別到角點(diǎn)數(shù)量為300,設(shè)定相鄰角點(diǎn)最小距離Dmin=10 pixel(因?yàn)榻屈c(diǎn)是通過圓圈標(biāo)記的,圓圈具有一定的半徑,當(dāng)Dmin=10 pixel時(shí),是滿足圓圈不相切不交疊的最小距離Dmin=9 pixel和Dmin=10 pixel情況下的對(duì)比如圖3所示,在圖3(a)中可以發(fā)現(xiàn)白色圓圈內(nèi)還存在角點(diǎn)標(biāo)記的交疊相切現(xiàn)象,圖3(b)中沒有此現(xiàn)象,所以選取Dmin=10 pixel)。改變變量角點(diǎn)質(zhì)量等級(jí)Q的取值,在Visual Studio 2015環(huán)境下借助OpenCV函數(shù)庫運(yùn)行改進(jìn)Harris算法。步驟如下:從0開始(最大角點(diǎn)個(gè)數(shù)300,角點(diǎn)識(shí)別準(zhǔn)確率80.7%),以0.01為步長(zhǎng),直至0.3為止(Q=0.3時(shí)只能得到25個(gè)角點(diǎn),以后的數(shù)據(jù)無意義),改變Q的取值在算法中運(yùn)行得到角點(diǎn)質(zhì)量等級(jí)與最大角點(diǎn)個(gè)數(shù)和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系,見表2。將表2數(shù)據(jù)用Matlab進(jìn)行圖象繪制,如圖4所示。 表2 角點(diǎn)質(zhì)量等級(jí)與最大角點(diǎn)數(shù)量和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系 圖4 角點(diǎn)質(zhì)量等級(jí)與最大角點(diǎn)數(shù)量和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系 雖然圖像后段的識(shí)別準(zhǔn)確率較高,但識(shí)別到的角點(diǎn)很少,根據(jù)式(10)可知,求取的R值不能滿足圖像識(shí)別的需要??紤]到角點(diǎn)數(shù)量和角點(diǎn)識(shí)別準(zhǔn)確率的平衡,只有兩個(gè)點(diǎn)符合要求,分別是(0.14,261,89.2%)和(0.15,243,89.3%),相比之下Q=0.15時(shí)對(duì)應(yīng)的準(zhǔn)確率是鄰域內(nèi)的極值,所以得到最優(yōu)角點(diǎn)質(zhì)量等級(jí)Q=0.15。那么同樣地,控制變量Q=0.15,相鄰角點(diǎn)最小距離從0開始(此時(shí),最大角點(diǎn)個(gè)數(shù):281;角點(diǎn)識(shí)別準(zhǔn)確率:80.4%),以2 pixel為步長(zhǎng),直至60 pixel為止(當(dāng)設(shè)定的相鄰角點(diǎn)距離值大于60 pixel時(shí),角點(diǎn)個(gè)數(shù)小于55,以后的數(shù)據(jù)無意義),得到相鄰角點(diǎn)最小距離與最大角點(diǎn)個(gè)數(shù)和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系,見表3。將表3數(shù)據(jù)用Matlab進(jìn)行圖象繪制,如圖5所示。 表3 相鄰角點(diǎn)最小距離與最大角點(diǎn)數(shù)量和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系 圖5 相鄰角點(diǎn)最小距離與最大角點(diǎn)數(shù)量和角點(diǎn)檢測(cè)準(zhǔn)確率的關(guān)系 從中選取了3個(gè)點(diǎn)(14,237,83.9%)、(16,211,85.3%)、(18,187,86.0%)作為候選,依照增強(qiáng)現(xiàn)實(shí)工具Vuforia中的“五星”增強(qiáng)現(xiàn)實(shí)標(biāo)記(“五星”說明圖像在增強(qiáng)現(xiàn)實(shí)系統(tǒng)中圖像識(shí)別效果極好),如圖6:該圖像素為320×212,特征點(diǎn)(圖中用“十字”符號(hào)表示)179個(gè),那么特征點(diǎn)占比 (10) 圖6中R=179/(320×212)=0.264%。 圖6 增強(qiáng)現(xiàn)實(shí)標(biāo)記 維修樣本圖片的像素為260×314,那么 RDmin=14=237/(260×314)=0.290% 可以發(fā)現(xiàn)RDmin=16=0.258%與圖6特征點(diǎn)占比R=0.264%最為接近、吻合。反觀Dmin=14和Dmin=18兩種情況,當(dāng)Dmin=14時(shí),通過觀察表3得知此時(shí)角點(diǎn)識(shí)別準(zhǔn)確率為83.9%,相對(duì)于Dmin=16時(shí)較低;當(dāng)Dmin=18時(shí),雖然角點(diǎn)識(shí)別準(zhǔn)確率為86.0%相對(duì)于Dmin=16時(shí)較高,但是此時(shí)獲得的角點(diǎn)數(shù)量較少,同時(shí)0.229%的占比和標(biāo)準(zhǔn)特征點(diǎn)占比R=0.264%相比差距過大,對(duì)圖像的識(shí)別效果有一定影響,所以權(quán)衡多個(gè)要素最后選取Dmin=16作為最優(yōu)相鄰角點(diǎn)最小距離限度。 上述部分主要運(yùn)用了控制變量的思想,充分考慮角點(diǎn)準(zhǔn)確性與分散程度的平衡,分析得出了最優(yōu)的角點(diǎn)質(zhì)量等級(jí)Q=0.15和最優(yōu)的相鄰角點(diǎn)最小距離限度Dmin=16 pixel。 將兩個(gè)最優(yōu)參數(shù)帶入新算法進(jìn)行實(shí)驗(yàn)。 針對(duì)1.1節(jié)傳統(tǒng)Harris算法所提出的3點(diǎn)弊端,優(yōu)化后的算法可以從以下3個(gè)方面彌補(bǔ)傳統(tǒng)方法的不足: (1)在優(yōu)化算法中,選取最優(yōu)角點(diǎn)質(zhì)量等級(jí),即為選取最優(yōu)閾值,規(guī)避了閾值隨意選取導(dǎo)致特征點(diǎn)冗余或不足的現(xiàn)象。 (2)維納濾波濾除噪點(diǎn),8鄰域比較法篩去約占總像素點(diǎn)60%的非特征點(diǎn),所以進(jìn)入算法的特征點(diǎn)僅為總像素點(diǎn)的約40%,Harris算法中包含大量的乘法運(yùn)算,行列式運(yùn)算和導(dǎo)數(shù)運(yùn)算,如果每個(gè)像素點(diǎn)都經(jīng)過一遍算法流程,那算法時(shí)間會(huì)過于冗長(zhǎng),初篩特征點(diǎn)這一過程大大提高了算法的運(yùn)行速度。且8鄰域比較法中的運(yùn)算主要是加減法運(yùn)算和比較運(yùn)算,以16位二進(jìn)制數(shù)為例,相對(duì)于乘法運(yùn)算,加減法的運(yùn)算負(fù)擔(dān)小了很多,加減法的運(yùn)算速度約是乘法的10倍甚至更多,所以綜上,優(yōu)化算法總體速度有了顯著提高。 (3)在選取最優(yōu)角點(diǎn)質(zhì)量等級(jí)和最優(yōu)相鄰角點(diǎn)最小距離后,角點(diǎn)的分布更加準(zhǔn)確分散,在很大程度上杜絕了偽角點(diǎn)、冗余角點(diǎn)的出現(xiàn)。 以某型飛機(jī)電子艙的圖片為例,對(duì)該圖片進(jìn)行灰度處理并添加模糊和噪聲,分別運(yùn)用維納濾波法和高斯濾波法在MATLAB環(huán)境下對(duì)處理后的圖片進(jìn)行濾波處理,兩種濾波方法的效果對(duì)比如圖7所示,可以看出經(jīng)過維納濾波復(fù)原的圖像更加清晰且還原度更高,高斯濾波復(fù)原圖相比之下更加模糊,仍然存在少量噪聲,所以維納濾波濾去的噪聲點(diǎn)遠(yuǎn)比高斯濾波濾去的要多。實(shí)驗(yàn)結(jié)果表明,對(duì)于圖像預(yù)處理,濾波方法應(yīng)優(yōu)選為維納濾波法。 圖7 高斯濾波與維納濾波的比較 在增強(qiáng)現(xiàn)實(shí)誘導(dǎo)飛機(jī)維修系統(tǒng)中,發(fā)動(dòng)機(jī)的檢查與維修也是其中的關(guān)鍵流程,所以以飛機(jī)發(fā)動(dòng)機(jī)的特征識(shí)別為例,在Visual Studio 2015環(huán)境下,利用配置好的計(jì)算機(jī)視覺函數(shù)庫OpenCV(版本:3.1.0),在Harris角點(diǎn)檢測(cè)算法的基礎(chǔ)上對(duì)算法進(jìn)行編寫和修繕。實(shí)驗(yàn)結(jié)果如圖8所示,圖8(b)、圖8(c)、圖8(d)的角點(diǎn)標(biāo)記均為白色圓圈。 圖8 實(shí)驗(yàn)結(jié)果 對(duì)于圖8(b)可以看出,傳統(tǒng)Harris算法識(shí)別出來的角點(diǎn)不是很分散,偽角點(diǎn)較多,存在角點(diǎn)成群甚至重疊的冗余現(xiàn)象,與此同時(shí)也存在著角點(diǎn)漏檢的現(xiàn)象。 如圖8(c)中所示是參數(shù)為Q=0.05和Dmin=8 pixel的默認(rèn)情況,圖中白色圓圈標(biāo)出了角點(diǎn)簇的分布,這種現(xiàn)象表明角點(diǎn)分散的效果不理想,為后期圖像匹配制造了障礙。從圖8(d)中可以看出,在Harris算法的基礎(chǔ)上,同時(shí)在角點(diǎn)質(zhì)量等級(jí)Q=0.15和相鄰角點(diǎn)最小距離限度Dmin=16 pixel后,檢測(cè)出來的角點(diǎn)更加準(zhǔn)確,更加分散,選取的角點(diǎn)清晰,這樣一來對(duì)圖像的特征點(diǎn)匹配更加有利,在很大程度上減少了誤匹配的發(fā)生。 根據(jù)表4可以發(fā)現(xiàn),本文優(yōu)化算法首先在時(shí)間復(fù)雜度上僅為傳統(tǒng)Harris算法的53.6%。在準(zhǔn)確性上分別比傳統(tǒng)算法和默認(rèn)情況下分別提高了14.7%和3.7%。綜上所述,本文優(yōu)化算法在速度和精度方面都有很大程度的提高。 表4 3種算法的性能比較 綜上所述,本文針對(duì)傳統(tǒng)角點(diǎn)檢測(cè)算法存在的弊端對(duì)算法進(jìn)行了優(yōu)化,與傳統(tǒng)的Harris算法相比,角點(diǎn)更加分散且清晰,改進(jìn)后的算法在準(zhǔn)確度上有了很大程度的提高。 (1)維納濾波和高斯濾波相比在圖像復(fù)原方面有著更強(qiáng)的性能,去除噪點(diǎn)的效果更好。8鄰域比較法濾掉了將近60%的非特征點(diǎn),使得算法時(shí)間復(fù)雜度降低至傳統(tǒng)算法的將近一半。 (2)角點(diǎn)質(zhì)量等級(jí)和相鄰角點(diǎn)最小距離的最優(yōu)選取滿足了角點(diǎn)數(shù)量、角點(diǎn)分散程度和角點(diǎn)識(shí)別準(zhǔn)確率的最佳平衡。 (3)準(zhǔn)確、快速的角點(diǎn)識(shí)別和清晰分散的角點(diǎn)分布可以滿足后期樣本圖片與維修現(xiàn)場(chǎng)的匹配。2 實(shí)驗(yàn)過程與結(jié)果分析
2.1 最優(yōu)參數(shù)求取過程
RDmin=16=211/(260×314)=0.258%
RDmin=18=187/(260×314)=0.229%2.2 優(yōu)化算法實(shí)驗(yàn)結(jié)果分析
3 結(jié)束語