孫棪伊,范文晶,曾遠帆,干興業(yè),湯日佳,韓 銳
(上海機電工程研究所,上海 201109)
現代戰(zhàn)爭中武器系統為適應自動化、快速化的作戰(zhàn)要求,裝填作業(yè)的快速化和智能化作為一項新興技術具有很大的發(fā)展空間,并作為一項融合多領域技術的熱門課題被各界廣泛研究[1]。這項技術現已在火炮裝填、艦載彈裝填、地空彈裝填中實現了應用,而對基于機器視覺的裝填定位方式的研究則剛剛起步[2]。機器視覺是指通過圖像攝取裝置得到圖像信號,然后將其傳輸給圖像處理系統以得到所需的目標信息,圖像處理系統對這些信號進行各種運算來抽取目標特征,進而根據處理結果采取不同的后續(xù)操作策略[3]。
對基于機器視覺的定位方法而言,選擇合適的圖像處理算法是識別精度與速度的決定因素之一,由于野外雨霧天氣影響需要對目標信號進行濾波處理來降噪,以減少后續(xù)對特征提取的干擾[4]。特征提取所包含的內容非常廣泛,近年來異軍突起的機器學習、卷積神經網絡等技術可自行提取特征,但這些算法通常非常復雜,又需要大量的樣本為訓練基礎。
根據靶標圖像的特點,選擇圖像處理中的角點特征進行靶標圖像的特征識別。角點特征具有梯度變化明顯、易于識別、偽角點篩查簡便,易定位,受光照影響小等優(yōu)點,適用于光照變化多樣、圖像需要快速識別的應用工程。
針對角點特征,角點檢測的鼻祖是Moravec算法,之后Harris在Moravec算子思想上提出Harris算法[5-6]。當前的角點檢測技術可以分為2類:第一類是基于圖像邊緣信息,此方法經過3個步驟才能完成,分別為圖像預分割、輪廓鏈碼提取及角點檢測(如基于邊界小波變換的角點檢測和基于邊界鏈碼的角點檢測等);第二類是基于圖像灰度信息,此方法主要通過計算梯度及邊緣曲率來判斷角點的存在性(如Harris算法和Susan算法等[7-9])。
算法通過計算目標像素在任意方向上的灰度變化以及目標像素的角點響函數(corner response function)來確定角點,其計算簡單,穩(wěn)定性強,具有對光照、相機姿態(tài)變化、旋轉和仿射均不變的特性,適用于野外裝填作業(yè)。
本文提出一種針對目標特征點的檢測方法,省去了絕大多數算法的圖像增強部分,降噪后可直接提取特征點信息。該算法可以極大提高識別與定位的速度,以適應武器系統野外作戰(zhàn)的機動性要求,是實現自動化、智能化作戰(zhàn)的關鍵一步。
裝填靶標圖像如圖1所示。
圖1 靶標原圖像Fig.1 Original target image
傳統算法利用高斯函數對圖像進行加權,用以消除孤立點和突起,越靠近中心點的像素,賦予越高的權重[10]。
可以定義一個n×n的模板,沿各個梯度改變方向移動這個模板,當模板內圖像灰度發(fā)生明顯變化則說明模版內存在特征點,如果灰度變化不明顯,則說明不存在特征點。
ω(x,y)為模板,ω決定像素周圍感興趣的區(qū)域,(Ix,y)為目標圖像,Ix、Iy為水平與垂直方向上的差分,[u,v]為模板的移動量。模板移動過程中產生的灰度變化可表示為一自相關函數E(u,v),如式(1)所示。
圖2所示為Ix、Iy的梯度直方圖,設矩陣M,然后將加權后的圖像進行泰勒展開,輻射任意方向梯度(近似)可表達為
圖2 靶標圖像梯度直方圖Fig.2 Gradient histogram of target image
如果忽略局部微小移動量[u,v],有近似二項式,如式(5)所示。
可得
M為偏導矩陣,可以進行對稱矩陣變化,由于矩陣M的2個特征值會隨局部特性變化而變化(矩陣M的特征值是自相關函數E(u,v)的一階曲率),分別設為α、β,如果梯度變化MI的特征值不再是0,特征不變MI值不變[10-13]。
忽略余項,近似得到
特征值大小關系可以對應靶標圖像上的3種情況。如果2個特征值一大一小,那么E(u,v)只在一個方向上突出,模板移動過程中,灰度只在一個方向有明顯變化;如果2個特征值均為很小的值,那么E(u,v)在各個方向均不突出,模板移動過程中,灰度值無明顯變化;如果2個特征值都大且2個特征值近似相等,則E(u,v)在所有方向突出,模板移動過程中梯度變化均很明顯[10-17]。
我們通過矩陣M的2個特征值的大小來進行圖像部分、邊緣、特征點的檢測分類。定義角點響應函數traceM、detM、R,traceM和detM為M的跡和行列式。
式中:k定義為經驗常數,近似表達一個閾值,傳統算法常?。?.04,0.06];M是梯度的協方差矩陣,由M決定角點函數R。如果R為正,且數值大于閾值則為角點;如果R為負數,但|R|大于閾值則為邊緣;如果|R|小于閾值則為平坦區(qū)域。
圖3所示為矩陣M特征值預交點分布的關系。
圖3 矩陣M特征值預交點分布的關系Fig.3 The distribution of the pre-intersection points of the matrix M
α、β都較大且相似,含角點;都較小且相似,則為平坦區(qū)域。圖4為傳統算法角點與區(qū)域的角點響應函數示意圖。
圖4 傳統算法角點與區(qū)域的角點響應函數示意圖Fig.4 Traditional algorithm corner and the region of the corner response function
為了提高裝填效率,為機械臂與抓取裝置提供更充裕的時間,降低主控計算機時間復雜度,本文提出了一種無需進行圖像增強的特征點檢測方法。改進算法基于Harris算法,縮短了算法運行時間。
圖1所示為靶標圖像,本文所用的特征點檢測方法可以有效保存圖像對于識別與檢測的重要信息,并排除一些不必要信息,從而提高主控計算機計算速度,可對識別到的靶標圖像進行實時處理。這種特征點提取在機器視覺范疇內的目標跟蹤、識別與圖像匹配中的均被廣泛應用。
特征點可以被定義為:兩個邊緣的交叉部分或鄰域內同時具有兩個主方向的像素。前者很大程度上依賴邊緣提取,如果圖像邊緣由于某種原因發(fā)生中斷,則會對特征點提取造成嚴重影響,還需進行前期的預處理從而影響計算速度。因此選擇鄰域內同時具有兩個主方向的像素作為特征點進行后續(xù)操作。
1)不同于傳統的Harris算法,改進后的算子采用小窗口的模板來改變靶標圖像灰度。高斯窗口過小時,會產生較多的偽角點,但在求得角點后,改進算法進行極大值抑制來去除偽角點。圖5為改進算法角點與區(qū)域的角點響應函數示意圖。
圖5 改進算法角點與區(qū)域的角點響應函數示意圖Fig.5 Schematic diagram of the improved algorithm corner point and regional corner point response function
2)同時,由于靶標圖像在水平與豎直方向上特征明顯,改進算法在計算自相關函數E(u,v)后不進行泰勒展開以輻射其他方向,只計算Ix、Iy水平與垂直方向上的差分,這樣就減少了算法運行時間。圖6為改進算法水平垂直方向差分分布。
圖6 改進算法水平垂直方向差分分布Fig.6 Improved algorithm for horizontal and vertical difference distribution
3)最后進行局部非極大值抑制去除被誤識別為角點的邊緣(或噪聲)。識別會產生多個結果,通過抑制不是極大值的元素搜索局部極大值。
選取1個3×3的模板,判斷中間的一個像素與周圍8值鄰域相比是否為最大值。計算該像素梯度方向,假設局部最大值分布在這一方向上,梯度方向與模板有2個焦點A和B,判斷這3個像素的灰度值,如果中心點像素灰度值不是最大的,則說明它不是極大值,就將該點排除。
這個模板可以包含2個可變參數,即鄰域的維數和大小。確定梯度幅值矩陣中目標像素點是否在鄰域內為最大值。
尋找像素點的局部極大值,置非極大值點的灰度值為0,進而保留最終角點結果。對靶標圖像的梯度幅值進行極大值抑制,幅值矩陣中的元素值越大意味著該點的梯度值也越大。
對比傳統harris與改進算法的響應函數示意圖,傳統算法識別出的角點偏移量明顯小于傳統算法。
圖7~10為實驗結果圖像,表1為實驗數據結果對比。
由圖7~8識別結果看出:傳統算法存在偽角點和角點偏移現象。傳統算法識別結果會增加后續(xù)靶標定位誤差,使靶標坐標出現偏移,影響后續(xù)裝填。
對比圖7~10及表1可知,改進算法分析結果較傳統算法相對準確,無偽角點產生,偏移量小,且算法精簡,運行時間短。
表1 實驗數據結果對比Tab.1 Comparison of experimental data result
圖7 傳統算法角點識別結果1Fig.7 Traditional algorithm corner recognition result 1
圖8 傳統算法角點識別結果2Fig.8 Traditional algorithm corner recognition result 2
圖9 改進算法角點識別結果1Fig.9 Improved algorithm corner recognition results 1
圖10 改進算法角點識別結果2Fig.10 Improved algorithm corner recognition results 2
在智能裝填靶標識別的過程中,針對靶標圖像特征,結合Harris角點算法本身具有旋轉不變性、對光照不敏感等特點,經過改進的特征點檢測算法很好地規(guī)避了傳統算法檢測后存在偽角點的問題,提高了對目標識別的精度。
通過對梯度計算的處理,改進算法縮短了傳統算法第一步的運行時間,為裝填作業(yè)爭取了足夠的時間,提高了算法的實時性。但算法仍有局限,改進的檢測算法仍未能解決傳統算法不具備尺度不變性這一不足,有待后續(xù)改進。