代進洪,向振文,喻會福
(貴州航天天馬機電科技有限公司,貴州 遵義 563000)
圖像識別定位系統(tǒng)通過圖像采集系統(tǒng)采集目標圖像,然后通過圖像處理系統(tǒng)提取圖像中的特征信息進行識別和定位[1]。該技術在公共安全、生物、工業(yè)、農業(yè)、交通以及醫(yī)療等領域都具有廣泛應用,例如車牌識別、食品質檢和工業(yè)流水線檢測等[2]。但目前圖像識別系統(tǒng)大多在室內穩(wěn)定環(huán)境、固定工況下運行,在室外環(huán)境的干擾下特別是目標被部分遮擋等情況易導致目標定位識別失敗,因此本文針對室外干擾環(huán)境下遮擋目標的識別定位進行了研究。
基于Apriltag的室外抗干擾識別定位系統(tǒng)主要由定位靶標、視覺相機、數(shù)據(jù)交換機、數(shù)據(jù)處理系統(tǒng)以及控制面板組成。如圖1所示,視覺相機采用大恒圖像MER2-302-37GM型工業(yè)相機,數(shù)據(jù)處理系統(tǒng)采用研華MIC-7700型工控機,定位靶標基于Apriltag設計。Apriltag在AR、機器人和相機校準領域廣泛使用,通過使用圖像梯度來檢測高對比度邊緣,對陰影和光照變化具有魯棒性,相比于其他靶標,其檢測距離更長,可在更遠距離、較差光線和更扭曲的圖像環(huán)境下被檢測到[3]。此外,Apriltag設計具有高的定位精度,可以計算Apriltag相對于相機的精確三維位置[4]。
圖1 系統(tǒng)組成Figure 1. System composition
系統(tǒng)利用單目視覺原理,通過視覺相機采集定位靶標圖像,然后將采集圖像經數(shù)據(jù)交換機傳入數(shù)據(jù)處理系統(tǒng)進行靶標信息處理和解算,最終得到與定位靶標相關聯(lián)目標的坐標位置信息,完成對目標的識別和定位。系統(tǒng)整體算法流程主要分為系統(tǒng)標定、圖像校準、圖像處理、靶標識別和目標參數(shù)計算等步驟,最終獲取靶標的空間坐標,包括各角點坐標和中心點坐標。系統(tǒng)流程以及關鍵技術簡介如圖2所示。
圖2 系統(tǒng)算法流程Figure 2. Flow of system algorithms
Apriltag檢測算法主要由3個階段組成:1)使用梯度算法檢測圖像中的各種邊緣;2)在邊緣圖像中找出所需的四邊形圖案;3)對四邊形圖案內部色塊進行編碼和解碼。
2.1.1 邊緣檢測
Apriltag采用黑白色塊設計,具有顯著的邊緣信息[5]。Apriltag檢測首先使用Canny運算符來檢測包含Apriltag圖像中的所有邊緣。通過該算子檢測能得到簡潔的圖像邊緣,減少邊緣圖像中的噪聲。然后對邊緣圖像進行濾波以消除背景干擾等,強調和凸出Apriltag邊緣信息。
2.1.2 四邊形檢測
通過對包含Apriltag的目標圖像進行邊緣檢測得到其二值化邊緣圖像。但其中包含的邊緣信息較多,還需利用多邊形分析方法來找出Apriltag的邊緣。
首先,對二值化邊緣圖像進行拓撲結構分析,以此確定其中包含的多邊形,同時確定二值化圖像邊緣之間的周圍關系,即確定多邊形之間的包絡嵌套關系。由于圖像的二值化邊緣與原圖一一對應,所以此時可以用邊緣圖像來代替原始圖像[6]。
其次,通過多邊形的凸包算法得到多邊形自身的凸包面積和多邊形面積[7],然后通過面積比較規(guī)則來有效排除不需要的多邊形。具體比較規(guī)則為:
1)多邊形面積大于凸包面積,排除該多邊形;
2)多邊形面積小于凸包面積的0.8倍,排除該多邊形。
最后,將通過上一輪篩選并在二值化邊緣圖像中保留下來的多邊形進行四邊形逼近,此處采用Douglas-pucker算法,流程如下所示[8]:
步驟1獲得曲線的兩個端點A和B以及曲線之間的弦,即線段AB;
步驟2設C是從線段AB到曲線的最遠距離位置,并確定距離值d;
步驟3若距離d小于閾值,則將直線曲線,不作處理;若距離d大于閾值,則利用C點將曲線分為AC、BC兩部分,然后各自再執(zhí)行步驟1~3,直至處理完成;
步驟4通過步驟1~3將所有曲線進行處理,直到所有曲線在處理前都能夠被近似看作是直線,將它們依次連接,并且排除并頂點數(shù)不等于4的多邊形。
2.1.3 編碼和解碼
由于四邊形的檢測結果滿足要求,因此有必要對上一步獲得的矩形進行編碼、匹配和檢查[9]。對于獲得的四邊形,必須首先確定網格。圖3是一種二維黑白框正方形編碼,其邊長為6,最外側是寬度為1的黑邊,有效編碼區(qū)域是去除外圍黑邊的內部黑白塊部分[10]。通過檢測內部黑白快的灰度值并與動態(tài)閾值進行比較,根據(jù)比較結果對該塊賦值為0或1來完成編碼,最后將黑白塊編碼依次組合,成為該Apriltag的唯一編碼序列和ID。
圖3 Apriltag編碼位置Figure 3. Apriltag encoding location
通過對四邊形內部進行編碼,可以獲得二進制編碼序列,此編碼表示此狀態(tài)Apriltag的編碼,但錯誤的四邊形會生成錯誤編碼。由于錯誤編碼與閾值范圍內的相應ID不匹配,因此可以通過計算和比較排除無效編碼。
為保證編碼的可靠和穩(wěn)定,將得到的編碼進行旋轉,得到各個方向上的編碼序列,并對每個方向上的編碼與標準編碼庫進行比較,求解編碼之間相應的漢明距離(Hamming Distance)[11]。如果編碼和標準庫中編碼之間的漢明距離小于預定閾值,則將編碼的ID設置為標準庫中對應的ID,并記錄漢明距離。如果匹配的編碼不在標準編碼庫中,則確定該編碼錯誤,并丟棄相應的編碼序列[12]。
通過對編碼進行篩選和驗證,可以確定該編碼的ID和旋轉角度,進一步計算編碼的其他參數(shù),包括編碼的旋轉方向和與原始編碼的相似程度等。最后通過單應矩陣(Homography Matrix)以及攝像機的標定參數(shù)信息計算該Apriltag的位姿信息[13]。
在遮擋情況下,目標識別的主要過程如圖4所示,其中標準圖像是被測目標的灰度模板圖像,目標圖像是包含目標的實際拍攝圖像。目標圖像包含系統(tǒng)的背景干擾、光學畸變等影響因素,但其局部特征仍然穩(wěn)定[14]。算法首先將目標圖像與標準圖像分別執(zhí)行特征檢測、特征描述子生成和排序、過濾等步驟,然后將各自特征進行相似匹配,實現(xiàn)遮擋目標的識別。算法的核心步驟是特征檢測和特征匹配[15]。
圖4 遮擋目標識別流程Figure 4. Obscure target recognition process
2.2.1 特征檢測
特征檢測的目的是通過特征描述子(特征點和特征描述向量)來描述遮擋目標圖像的局部特征。在局部特征匹配算法中,特征描述子的有效性直接影響匹配效果。在實際使用中,目標圖像受各自旋轉角度和背景干擾等影響,因而特征描述子的旋轉不變性和可區(qū)分性較重要[16]。因此,具備旋轉不變性和可區(qū)分性的特征描述子設計是特征檢測的關鍵。在許多局部特征檢測算法中,SURF(Speeded Up Robust Features)算法具有良好的魯棒性和檢測速度[17]。SURF特征檢測算法不僅具有快速性,也具有尺度不變性。該算法對照明變化、仿射變化和透視變化具有較強的適應能力[18]。
SURF算法特征檢測過程主要分為基于Hessian矩陣的特征點檢測和SURF特征描述子生成兩部分。
SURF算法檢測過程具有兩大特點:1)利用近似Hessian矩陣,通過求解其在三維空間中的極值點來檢測特征點;2)利用盒狀濾波器來加速在特征點檢測中計算較耗時的高斯二階偏導數(shù)卷積,因此該特征檢測算法具有良好的檢測速度[19]。
首先,算法需要進行圖像積分計算,設原圖I(x,y)的像素點(x,y)在積分圖像中的值為I∑(x,y)。積分圖像I∑(x,y)可以表示為圖像矩形框內所有像素點之和[20],如式(1)所示。
(1)
為獲取積分圖像,需進行次加法/減法運算來獲得圖像矩形區(qū)域中像素值的總和。如圖5所示,矩形區(qū)域中像素點的總和∑=A-B-C+D,可以使盒狀濾波器的卷積運算速度加倍,這也是SURF算法檢測特征點更快的一個重要原因[21]。為了獲得尺度不變的特征點,需計算不同尺度的Hessian矩陣的局部極值,并反映在SURF的尺度不變性中。σ尺度下的Hessian矩陣如式(2)所示
圖5 圖像積分Figure 5. Image integral
(2)
(3)
Hessian矩陣的行列式為
(4)
根據(jù)Hessian矩陣的行列式判斷極值點規(guī)則為:若行列式為正,表明其特征值為同號,說明該點為極值點;若行列式為負,表明其特征值為異號,說明該點不是極值點[22]。因此,當通過Hessian矩陣得到三維空間極值點后則可找到所需特征點。
其次,由于在進行Hessian矩陣計算時涉及到高斯函數(shù)的二階偏導數(shù)計算以及圖像的積分運算,該運算過程較耗時,所以SURF算法采用盒狀濾波器方法來減少計算量,實現(xiàn)加速。盒濾波器用于近似高斯函數(shù)的二階偏導數(shù),如圖6所示。左右分別代表Y方向與混合二階高斯偏導數(shù)模版對應的盒狀濾波器。該矩形濾波模板可以提高卷積運算的速度,減少計算量,加快特征提取速度[23]。
圖6 盒狀濾波器近似Figure 6. Box filter approximation
利用盒狀濾波器代替復雜卷積運算之后,設卷積后的結果分別為Dxx、Dxy、Dyy,并且用它們來代替式(2)中的Lxx、Lxy、Lyy。Hessian矩陣Happrox行列式為
det(Happrox)=DxxDyy-(ωDxy)2
(5)
其中,ω為權重系數(shù),一般取ω=0.9。
然后,構建尺度空間。在實際應用中,原始圖像一般不宜隨便改變大小,以防丟失關鍵信息,所以可通過改變盒狀濾波器大小來構建SURF特征提取所需要的圖像尺度金字塔[24],如圖7所示。
圖7 SURF圖像尺度金字塔Figure 7. SURF image scale pyramid
尺度金字塔通常有4層,每層需要4次濾波。初始設置時,濾波器模板為邊長9像素,尺度參數(shù)σ為1.2。在第1層每次濾波后,模板邊長增加6像素,而下一層在每次濾波后模板邊長增加12像素。依此類推,則每次增加24像素,第4層為每次增加48像素并始終保持濾波器大小與尺度參數(shù)的關系為σ=(1.2×N)/9,其中N為模板尺寸。
通過上述圖像金字塔計算并記錄整個卷積計算過程中每個點的行列式值,就可以得到不同尺度下的響應圖并形成三維尺度空間。在三維尺度空間中的每個點都被非極大抑制,僅當其在26個鄰域中為最值時,才為敏感特征點。檢測到目標特征點后進行三維二次函數(shù)擬合,從而得到該特征點的位置和尺度。
SURF特征描述子的生成如圖8所示。首先獲取特征點的主方向,具體步驟如下:
圖8 特征點描述向量Figure 8. Feature point description vector
步驟1以特征點為中心、半徑為6s(s為特征點的尺度)構建圓形區(qū)域;
步驟2用4s的Haar小波模板處理圖像得到其X、Y方向的Haar小波響應;
步驟3通過以特征點為中心的高斯函數(shù)對Haar小波響應進行加權處理,并將響應表示為空間點。橫坐標為水平響應強度,縱坐標為垂直響應強度;
步驟4利用以特征點為中心的60°扇形區(qū)域掃描圓形區(qū)域,計算扇形區(qū)內的Haar小波響應向量和。經統(tǒng)計比較后選擇最大向量作為特征點的主方向。
然后生成描述子向量,具體步驟如下:
步驟1在特征點周圍設置邊長為20s的正方形鄰域,并使鄰域方向與特征點主方向一致;
步驟2將該鄰域分為4×4的子區(qū)域,并在每個子區(qū)域進行Haar濾波,計算Haar小波響應值及其分量,用dx表示水平方向,用dy表示垂直方向;
步驟3對每個分量通過高斯響應函數(shù)進行加權處理,并計算Haar小波響應和∑dx、∑dy,同時提取其絕對值和∑|dx|、∑|dy|,以獲取強度變化信息;
步驟4通過步驟1~3,每個子區(qū)域都可得到4維描述子向量V=(∑dx,∑dx,∑|dx|,∑|dy|),然后將4×4子區(qū)域連接起來提取出了64維的描述子向量[25]。
2.2.2 特征匹配
BF(Brute-Force)特征匹配方法在目標圖像與標準圖像分別執(zhí)行完特征檢測、特征描述子生成和排序、過濾等步驟后,根據(jù)獲取的特征點描述子依次進行完全匹配,通過測試兩幅圖像描述子之間的距離來確定它們是否匹配。該匹配方法嘗試所有可能的匹配,最終找到一個最佳匹配結果。
FLANN(Fast Library for Approximate Nearest Neighbors)特征匹配采用基于大型數(shù)據(jù)集以及高維特征的一種最近鄰搜索算法集合。該匹配算法是一種近似方法,與BF匹配不同,其不進行完全匹配策略,而是追求快速找到一種最近鄰匹配結果[26]。因此,當需要找到一個相對較好的匹配但不需要其為最佳匹配時,常使用FLANN匹配。
基于上述系統(tǒng)和算法原理開發(fā)基于Apriltag的室外抗干擾識別定位系統(tǒng)和算法。系統(tǒng)優(yōu)先運行Apriltag檢測算法,當目標處于被遮擋或其他嚴重干擾條件下時自動切換為遮擋目標識別算法。通過分析室外環(huán)境主要干擾因素,選取最為常見且影響較大的不同光照、淋雨和遮擋等工作環(huán)境條件以及不同工作距離、靶標位置(橫向位移)、偏轉角度等工況進行識別定位實驗研究。
在室外環(huán)境中改變光照條件,依次從10~105lx增加光照強度,同時改變工作距離、靶標橫向距離和偏轉角度進行實驗,識別定位效果和定位誤差分別如圖9和圖10所示。系統(tǒng)在XY平面內的定位誤差均小于2 mm,其中X方向誤差均值為1.6 mm,Y方向誤差均值為1.1 mm。光照強度改變對X、Y方向定位誤差影響不大,Y方向誤差基本持平,X方向誤差有小幅度波動,最大波動值約為0.5 mm。
圖9光照實驗定位效果(a)光照強度10 lx (b)光照強度102 lx (c)光照強度103 lx (d)光照強度104 lx (e)光照強度105 lxFigure 9. Positioning effect of illumination experiment(a)Light intensity 10 lx (b)Light intensity 102 lx(c)Light intensity 103 lx (d)Light intensity 104 lx(e)Light intensity 105 lx
圖10 光照實驗定位誤差Figure 10. Positioning error of illumination experiment
在室外環(huán)境中施加淋雨,降雨強度分別為1.25 mm·h-1和2.5 mm·h-1,降雨角度分別為0°、25°和45°,同時改變工作距離、靶標橫向距離和偏轉角度進行實驗,識別定位效果和定位誤差分別如圖11和圖12所示。其中,XY平面的定位誤差均小于2 mm,X方向誤差均值為1.7 mm,Y方向誤差均值為1.2 mm。定位誤差隨降雨強度增加而增加,但整體影響較小,波動值小于0.4 mm。
圖11 淋雨實驗定位效果(a)降雨強度1.25 mm·h-1,角度0 ° (b)降雨強度2.5 mm·h-1,角度25 ° (c)降雨強度2.5 mm·h-1,角度45 °Figure 11. Positioning effect of rain experiment(a)Rainfall intensity 1.25 mm·h-1, angle 0°(b)Rainfall intensity 2.5 mm·h-1, angle 25°(c)Rainfall intensity 2.5 mm·h-1, angle 45°
圖12 淋雨實驗定位誤差Figure 12. Positioning error of rain experiment
在室外環(huán)境中對靶標進行部分遮擋,遮擋面積分別為10%、30%和50%,同時改變工作距離、靶標橫向距離和偏轉角度進行驗證實驗,識別定位效果和定位誤差分別如圖13、圖14所示。系統(tǒng)在XY平面的定位誤差均小于3 mm,其中X方向誤差均值為1.8 mm,Y方向誤差均值為2.3 mm。
圖13 遮擋實驗定位效果(a)遮擋面積為10% (b)遮擋面積為30% (c)遮擋面積為50%Figure 13. Positioning effect of occlusion experiment(a)Covered area is 10% (b)Covered area is 30%(c)Covered area is 50%
圖14 遮擋實驗定位誤差Figure 14. Positioning error of occlusion experiment
實驗表明,當遮擋面積達到50%時,識別成功率明顯降低,此時系統(tǒng)處于不穩(wěn)定狀態(tài),因此在實際應用中應避免遮擋面積大于50%,否則可能導致識別定位失敗。
在室外環(huán)境中施加各種干擾背景,包括反光、雜亂背景和多靶標干擾,同時改變工作距離、靶標橫向距離和偏轉角度進行驗證實驗,識別定位效果和定位誤差分別如圖15、圖16所示。系統(tǒng)在XY平面的定位誤差均小于1 mm,其中X方向誤差均值為0.4 mm,Y方向誤差均值為0.7 mm。此外,實驗表明干擾背景對X、Y方向的定位誤差影響較小。
圖15 背景干擾實驗定位效果(a)反光背景 (b)雜亂背景 (c)2靶標 (d)3靶標Figure 15. Positioning effect of background interference experiment(a)Reflective background (b)Chaotic background(c)2 similar targets (d)3 similar targets
圖16 背景干擾實驗定位誤差Figure 16. Positioning error of background interference experiment
除背景干擾外,在室外環(huán)境下通常因為振動、風載等因素造成目標移動,使工作距離不再是定值。在該情況下對相機景深和系統(tǒng)穩(wěn)定性具有較高要求。因此,本文對靶標處于相機焦平面前后0.5 m范圍內的各種工作情況進行了實驗。在室外環(huán)境下選擇初始工作距離為1.5 m,使相機聚焦,然后調整工作距離,調整范圍為±0.5 m,驗證相機在焦點±0.5 m范圍內的識別定位情況。同樣改變工作距離、靶標橫向距離和偏轉角度,得到識別定位效果和定位誤差分別如圖17、圖18所示。實驗結果表明,系統(tǒng)在相機焦距平面±0.5 m范圍內均能有效識別和定位,在XY平面的定位誤差小于3.0 mm,其中X方向誤差均值為1.7 mm,Y方向誤差均值為1.5 mm。
圖17 失焦實驗定位效果(a)工作距離1 000 mm (b)工作距離1200 mm (c)工作距離1 400 mm (d)工作距離1 600 mm (e)工作距離1 800 mm (f)工作距離2 000 mmFigure 17. Positioning effect of out of focus experiment(a)Working distance 1 000 mm (b)Working distance 1 200 mm(c)Working distance 1 400 mm (d)Working distance 1 600 mm (e)Working distance 1 800 mm (f)Working distance 2 000 mm
圖18 失焦實驗定位誤差Figure 18. Positioning error of out of focus experiment
在各工況下識別定位誤差均值如圖19所示。在靶標被部分遮擋工況下,XY方向的定位誤差都較大,最大為2.7 mm。在背景干擾工況下,XY方向的定位誤差均小于1 mm,在其余工況下誤差均小于2 mm。
圖19 各工況定位誤差均值Figure 19. Mean value of positioning error for each working condition
將整個系統(tǒng)的平均識別定位誤差與平均識別時間進行統(tǒng)計,如表1所示。
表1 系統(tǒng)平均識別定位誤差與識別時間
由表1可以看出,系統(tǒng)在室外干擾環(huán)境下XY平面的定位誤差分別為1.44 mm和1.36 mm,識別時間為90 ms。系統(tǒng)定位誤差均小于2 mm,計算耗時小于100 ms,表明該識別定位系統(tǒng)具有高精度和快速性。
此外,在室外環(huán)境下分別選取光照、淋雨、遮擋、多靶標、雜亂背景以及反光背景等典型工況進行多次重復實驗,并記錄每次實驗X、Y方向上的定位誤差,如表2所示。各工況下多次實驗的誤差均值與前述一致,并且定位誤差的最大波動幅度均不大于0.5 mm,表明系統(tǒng)具有穩(wěn)定性。
表2 各工況下誤差均值與最大波動幅度
本文對基于Apriltag的室外抗干擾識別定位系統(tǒng)進行了研究?;趩文恳曈X原理構建識別定位系統(tǒng),并根據(jù)Apriltag檢測算法和遮擋目標識別算法原理實現(xiàn)全天候、抗干擾的室外目標識別和定位。針對室外常見且影響較大的干擾環(huán)境和工況進行識別定位實驗研究,在室外干擾環(huán)境下XY平面的定位誤差分別為1.44 mm和1.36 mm,識別時間90 ms,表明該系統(tǒng)具有高精度和快速性。此外,經多次重復實驗得到系統(tǒng)的定位誤差最大波動幅度不大于0.5 mm,表明系統(tǒng)具有穩(wěn)定性。
綜上所述,基于Apriltag的室外抗干擾識別定位系統(tǒng)能夠實現(xiàn)在室外環(huán)境干擾條件下的全天候工作,并且具有高精度和快速性,能有效替代針對平面目標的圖像識別定位系統(tǒng)。目前該識別定位系統(tǒng)在平面范圍內得以實現(xiàn),但還未在三維空間實現(xiàn)高精度識別和定位。后續(xù)將進一步研究和拓展,實現(xiàn)三維空間內坐標和姿態(tài)測量,形成三維目標精準識別和定位。