袁靖肖,汪 洋
(天津大學(xué),天津 300072)
為實現(xiàn)無人機與無人機、無人機與載人機之間的空中加油、物資輸送任務(wù),需要識別無人機的位姿從而進行調(diào)整,其識別精度和識別速度,直接影響到后續(xù)的姿態(tài)調(diào)整效果。
飛行器的位姿按照原理可以分為非視覺識別和視覺識別兩類。非視覺識別法是利用慣性測量傳感器和超聲波傳感器等進行數(shù)據(jù)采集和計算,優(yōu)點是采樣頻率高且動態(tài)響應(yīng)快,缺點是采集信息時使用頻繁的積分進行計算,這樣導(dǎo)致偏差累計大,同時超聲波傳感器在復(fù)雜條件下容易受到影響,無人機位姿計算精確度無法滿足要求[1][2]。視覺識別方法包括基于深度學(xué)習(xí)的識別和傳統(tǒng)飛行器外置特征點識別兩種方法。深度學(xué)習(xí)在當下的研究越來越成熟,展現(xiàn)了較高的可靠性,但是傳統(tǒng)的識別的方法比神經(jīng)網(wǎng)絡(luò)算法依舊可靠很多。傳統(tǒng)飛行器外置特征點識別方法是采用將LED燈、特殊顏色燈安置在無人機上采集紅外的數(shù)據(jù)進行位姿解算,比如德國農(nóng)工大學(xué)的VisNav系統(tǒng)[3],比薩大學(xué)的Pollini等人的研究[4]和北京航空航天大學(xué)的對錐套的質(zhì)心點的解算[5],其最大的特點是圖像處理相對簡單,實時性較強,且精確度較高。
本項目基于傳統(tǒng)飛行器外置LED燈識別方法,其中高速且準確地定位LED燈的質(zhì)心點是關(guān)鍵的一步。在實際識別環(huán)境中,LED燈源的像素占比率小,又存在著大量的噪聲以及大尺寸黑子遮擋而導(dǎo)致光點缺損的問題,這些都將嚴重影響質(zhì)心點的識別精度。
為了讓算法能夠?qū)恻c像素占比率小的圖片進行準確的分割,且具備高速且抗干擾的能力,本文提出了一種改進的小尺寸光點質(zhì)心定位算法。對Otsu算法進行算法和閾值糾偏的改進,之后將得到的光源邊緣點進行多層次隨機分段,進行最小二乘橢圓擬合得到多個質(zhì)心,再利用數(shù)學(xué)統(tǒng)計學(xué)方法將得到的多個質(zhì)心進行剔除離群點操作,最后得到最佳的質(zhì)心坐標。在適應(yīng)性實驗和抗干擾性實驗中進行了多種算法的模擬測試和實際光點測試,結(jié)果表明,該算法能準確地對小尺寸光點圖片進行準確的閾值分割,同時本身具備實時檢測性能和較強的抗干擾能力。
本文改進了Otsu算法和傳統(tǒng)的橢圓擬合法,提出了小尺寸光點質(zhì)心定位算法,當攝像頭采集到特征光源的圖像之后,對每一幀圖像進行處理,依次進行圖像灰度化,閾值分割,圖像二值化,圖像去噪處理,邊緣檢測,擬合等操作計算其光點質(zhì)心。實現(xiàn)的流程圖如下圖1所示。
圖1 光點質(zhì)心定位流程
本文采用Otsu閾值分割法對圖像區(qū)域分割,用以提取光點區(qū)域。Otsu算法是以圖像的灰度直方圖為依據(jù),通過目標和背景之間的平均灰度的最大類間方差來進行閾值的選取[6]。傳統(tǒng)的Otsu閾值分割法是通過最大類間方差公式:
(1)
其中,p0和p1分別為圖像被閾值T劃分的兩個灰度塊的像素值占全像素值的概率,C0和C1為兩個灰度塊的平均灰度,μ為整張光點圖像的平均灰度值。
2.1.2 改進的閾值選取方法
傳統(tǒng)的一維Otsu閾值分割方式計算簡單,但是T值遍歷區(qū)域范圍太大,常規(guī)遍歷效率太低,不適合實時分割,因此本文進行了如下改進:
本工程屬于光點質(zhì)心尋找,在設(shè)備上會將非光點區(qū)域的一切背景過濾為低灰度值,目標為光點,其灰度值高于背景灰度值,因此對于最佳閾值的確定區(qū)間可以極大地縮小。過程如下
計算整張圖像的平均灰度值Tmean
(2)
總平均灰度值將圖像化作兩個部分,第一個部分是[0,Tmean],第二個部分是[Tmean,L-1]。
通過理論分析和實驗驗證,因光點較小,因此光點的最佳灰度閾值是一定大于大量低灰度值黑色背景所影響的圖像平均灰度值Tmean,因此將Tmean作為迭代運算的起點。因本文研究的光點圖屬于典型的雙峰圖,其類間方差函數(shù)是一個凸函數(shù),可以在縮小的閾值定義域[Tmean,L-1]中采用二分迭代法:
求出[Tmean,L-1]的中間值
Tmid=(Tmean+L)/2
(3)
傳統(tǒng)Otsu閾值分割算法所依據(jù)的最大類間方差公式只利用了目標和背景的像素均值,沒有充分考慮到目標與背景值之間的像素值之間的差異帶來的閾值分割誤差,傳統(tǒng)的Otsu算法在目標像素數(shù)與背景像素數(shù)相差較大時,得到的最佳閾值T會偏向像素值最大的區(qū)域,而在光點圖像中,LED燈所占高亮度像素部分在整個圖像的比重必然是非常小,得到的閾值T偏小,會將整個光點乃至周圍的光暈和衍射部分(干擾質(zhì)心點提取)全部分割出來,這將嚴重影響質(zhì)心點的提取。
本文將最大類間方差公式改進如下
(4)
其中
(5)
(6)
其中α本文選取0.7,通過減小兩者像素差,可以最好調(diào)整最佳閾值,在本實驗中,因亮點所占像素點較小,傳統(tǒng)的Otsu法所計算的閾值偏低,而本次改進,將其閾值適當提高,不會將亮度較暗的光暈或者其它衍射光也分割出來,具備較好的效果。
本文采用先膨脹后腐蝕的開運算操作對二值化圖像進行降噪處理[7],消除一些噪點,這些噪點往往就是一些游離于目標光點之外的小亮點,并且在不改變物體形狀的前提下對圖像進行平滑操作。
利用輪廓查找函數(shù)尋找出二值化圖片中光點輪廓,之后采用質(zhì)心定位法。
傳統(tǒng)的質(zhì)心定位方法一般有三種方法:包括灰度質(zhì)心法,Hough變換法以及圓或橢圓擬合法。
灰度質(zhì)心法是以灰度值為權(quán)重進行質(zhì)心點的直接計算,灰度質(zhì)心法的計算速度快,對于一般均勻光源點的識別準確,但是在實際片源中,由于各種衍射反射干擾,其定位精度差[8]。
Hough變換法是將圖像空間坐標轉(zhuǎn)換為任意曲線的參數(shù)空間,從而進行任意曲線的檢測,但是即便是簡單的圓,其參數(shù)空間也為三維,其計算相當高,不滿足實時檢測的要求[9]。本文在實際光點實驗中比對Hough圓檢測法時,將采用霍夫梯度法進行算法優(yōu)化。
圓的擬合方式與橢圓擬合相似,都是采用最小二乘法的原理,速度極快,精度高,但抗噪能力差[10]。本工程光點圖像一般呈現(xiàn)類橢圓型,同時為了結(jié)合下文改進方法,這里采用橢圓擬合法:
如下是橢圓擬合的一般性方程
x2+Axy+By2+Cx+Dy+E=0
(7)
由上可知,要解算其方程,需要知道A,B,C,D,E五個未知數(shù)的值。
這里可以采用最小二乘原理,結(jié)合橢圓的一般方程,得其目標函數(shù)
F(A,B,C,D,E)
(8)
從目標函數(shù)的最小值進行計算,可以得到A,B,C,D,E五個參數(shù)值。
由此可以解算其質(zhì)心點坐標(X,Y)
(9)
(10)
但橢圓擬合法在實際應(yīng)用中容易受到噪點影響,并且在黑子遮擋等環(huán)境下定位十分不準確,這對于需要高精度的檢測是不適用的,因此這里對該方法做出改進。采用多批量檢測剔除離群點的方法對擬合算法進行改進。
本文改進的擬合原理:
這里算法的理論是基于光點本身是類橢圓光點這個設(shè)定,而這一設(shè)定也是在進行大量實際拍攝過程中定下來的最符合的依據(jù),因此需要對其光點進行最佳的橢圓擬合。
這里不采用一次性輪廓點代入,而是將輪廓點分成多個段,每個小段進行一次橢圓擬合,這樣可以獲得一個質(zhì)心點(或者橢圓)集合,最后利用數(shù)學(xué)統(tǒng)計學(xué)方法和數(shù)學(xué)上的剔除離群點的思想,將那些離的比較密集的質(zhì)心點作為一個類(這一類質(zhì)心點都是離絕對質(zhì)心點最近的質(zhì)心點),計算這一類質(zhì)心點的重心,該重心便是最佳質(zhì)心點。為了使得算法在速度上滿足高速的要求,采用機器學(xué)習(xí)聚類的方式對計算量要求較高,因此本文采用統(tǒng)計學(xué)中位數(shù)計算方法對離群點進行剝離。
本文的擬合算法步驟:
1)對光點圖2進行前期處理,獲得光源輪廓點,將收集到的光源點輪廓點保存起來,并保存原先順序集合I1,再進行第二次隨機打亂I2;對I1,I2進行分段,設(shè)置分段點數(shù)量batch,分段的取樣方式為間隔點周期取樣,如圖3所示。
圖2 待處理圖像
圖3 光源輪廓點分組
2)每個batch個點進行一次最小二乘法橢圓擬合,最終得到n個質(zhì)心,使之為一個質(zhì)心集合,如圖3所示;本文采用分段數(shù)為20段,間隔3點取樣,橢圓擬合效率極高,20次的橢圓擬合只增加了4ms左右的時間。
圖4 質(zhì)心點集合
3)同時對質(zhì)心集合的x方向和y方向進行MAD算法剔除離群點操作,首先計算所有質(zhì)心方向x的中位數(shù)Xmedian;
4)計算所有質(zhì)心方向x與中位數(shù)的絕對偏差:bias= |Xi-Xmedian|;
5) 取得絕對偏差的中位值MAD=biasmedian;
6)取Xmedian-nMAD與Xmedian+nMAD內(nèi)質(zhì)心集合的質(zhì)心點,同時對y方向也如上進行,保存最后的質(zhì)心點集合;
7)最后的質(zhì)心點集合的均值即為最后所得的LED質(zhì)心,如果需要獲取其橢圓輪廓,則分別保存每一個擬合橢圓的長短軸及偏轉(zhuǎn)角,最后采用就近原則取其參數(shù)。
為了研究本文改進算法和傳統(tǒng)算法在噪聲圖片中的識別精度,用計算機生成10張已知光點質(zhì)心位置的高斯光點圖像,大小為400*400,光點為小尺寸光點,添加相同級別的隨即椒鹽噪聲。分別采用本文的算法和傳統(tǒng)的算法(本文算法即改進Otsu閾值分割算法以及改進的橢圓擬合算法,傳統(tǒng)的算法即傳統(tǒng)的Otsu閾值分割算法和傳統(tǒng)的橢圓擬合算法)進行光點質(zhì)心計算,獲得小尺寸光點質(zhì)心計算誤差,為了避免計算系統(tǒng)誤差,每張圖像均進行100次計算獲取誤差(算法提取的質(zhì)心數(shù)據(jù)與真實質(zhì)心數(shù)據(jù)的差值)的平均值,結(jié)果如圖所示。
圖5 噪聲環(huán)境下兩種算法質(zhì)心誤差分布
如圖5所示,橫軸代表光點圖像數(shù),縱軸代表每張圖片每種算法100次運行下的誤差的平均值,小三角代表的是本文改進算法的定位誤差,圓點代表的是傳統(tǒng)算法的定位誤差。從圖中可以清晰地看到,本文改進算法的定位誤差要小于傳統(tǒng)的算法誤差。
本文改進算法在10張圖片中的質(zhì)心定位誤差平均為0.228像素,平均耗時為7.763ms,傳統(tǒng)算法的質(zhì)心定位誤差平均為0.405像素,平均耗時為38.776ms。分析可知,本文算法在定位精度上提升了43.69%,時間延遲上提升了79.97%,由此可知,本文改進算法具備更高的精度和更快的識別速度。
為了檢測算法適應(yīng)真實光點的情況,多次采集了LED燈圖片進行實驗,如圖6真實光點所示。
圖6 部分實際光點圖
3.2.1 常規(guī)干擾環(huán)境下算法的檢測和對比
取其中一張光點圖的放大圖7進行實驗展示,圖7為濾片下真實LED光點,CCD采集圖片,選擇光強最強處為光點質(zhì)心位置,光點質(zhì)心位置為(185.0183,150.8967)。實驗中采集的LED光點可以看到,其具備衍射,反射光暈現(xiàn)象,還伴隨一定的噪點。
圖7 原圖像灰度圖放大圖
首先為了將改進的Otsu算法和傳統(tǒng)的Otsu算法進行對比,采用三種算法對光點進行輪廓繪制,采取了控制變量法,分別是:
a)傳統(tǒng)的Otsu算法改進的橢圓擬合算法
b)Hough圓檢測算法
c)改進的Otsu算法改進的橢圓擬合算法
如圖8所示,可以看出傳統(tǒng)的Otsu算法在對小型光點圖片進行閾值分割時,其閾值偏低,會將光點周圍產(chǎn)生的光暈同時分割出來,這將嚴重影響后期質(zhì)心位置的定位。而本文改進的Otsu算法能夠較好地將光點分割出來。
圖8 三種圓/橢圓檢測算法繪制的輪廓
采用五種算法對圖7光點圖片進行識別,其采用了控制變量法,分別是:
1)本文的改進Otsu且改進橢圓擬合雙改進算法;
2)傳統(tǒng)Otsu改進橢圓擬合算法;
3)改進Otsu傳統(tǒng)橢圓擬合算法;
4)灰度質(zhì)心法;
5)Hough圓檢測算法。
共5種算法。綜合5種算法的實驗數(shù)據(jù)對傳統(tǒng)的Otsu和改進的Otsu算法,傳統(tǒng)的橢圓擬合算法和改進的橢圓擬合算法做分別對比。
將五種算法流程測得的實驗數(shù)據(jù)列表1所示。
表1 五種算法的數(shù)據(jù)(單位:像素)
如表1所示,比對第一和第二算法情況可以發(fā)現(xiàn),改進的Otsu算法作為閾值分割方式在速度和精度上都要遠遠強于傳統(tǒng)的Otsu算法。
對比第一和第三算法的情況可以發(fā)現(xiàn),改進的橢圓擬合算法同樣具備抗噪優(yōu)勢,其精確度要強于傳統(tǒng)的橢圓算法。
灰度質(zhì)心法的抗干擾能力很差,在負面環(huán)境下很難測出精確值,Hough圓算法精度不及本文算法,同時擬合時間也要高于本文算法。
3.2.2 光點遮擋缺損條件下LED光點的識別同傳統(tǒng)方式的對比
在實際光點中,除了出現(xiàn)本身含有大量噪點和衍射等現(xiàn)象外,光點本身在采集的過程中,會因采集攝像設(shè)備或者外界環(huán)境,而出現(xiàn)黑子遮擋的情況。
大量實驗驗證,光點的質(zhì)心始終在類橢圓的圓心之中,針對這一情況,進行了如下黑子遮擋的實驗,這里對圖7添加了光點黑子,如圖9所示。
圖9 原圖像灰度圖
首先為了將改進的橢圓擬合算法和傳統(tǒng)的橢圓擬合算法進行對比,采用三種算法對光點進行輪廓繪制,采取了控制變量法,分別是:
a)改進的Otsu算法傳統(tǒng)的橢圓擬合算法;
b)Hough圓檢測算法;
c)本文改進的Otsu算法改進的橢圓擬合算法。
如圖10中可以明顯看出,被黑子遮擋的光點在傳統(tǒng)橢圓算法的識別下,其質(zhì)心誤差較大,受邊緣缺損遮擋的情況比較嚴重,且不能很好得識別初始輪廓。Hough圓檢測算法以及本文算法,均能夠克服黑子遮擋,其識別效果較好。
圖10 三種圓/橢圓檢測邊緣輪廓算法對比
同樣的采用了控制變量法,因上組實驗中改進的Otsu算法優(yōu)勢明顯,本次實驗均采用改進的Otsu算法,用四種算法如下:
1)本文的改進的Otsu算法改進橢圓擬合算法;
2)改進的Otsu算法傳統(tǒng)橢圓擬合算法;
3)灰度質(zhì)心法;
4)Hough圓檢測。
四種算法對圖9進行質(zhì)心測量,制成表格如下表2所示
表2 四種算法數(shù)據(jù)(單位:像素)
從表2中可以看出,本文算法可以很精確地識別出質(zhì)心的位置,能夠克服遮擋缺角情況,較傳統(tǒng)橢圓質(zhì)心法有顯著優(yōu)勢。同時在精度和速度方面優(yōu)于灰度質(zhì)心法和Hough圓檢測算法。
為了識別無人機的空中位姿信息,本文針對飛行器外置特征點光源識別方法展開研究,提出了一套針對小尺寸光點質(zhì)心定位的算法,同時對前期的Otsu閾值分割算法和后期的橢圓擬合算法進行了雙重改進,結(jié)論如下:
1)本文改進的算法在計算機模擬的的小尺寸光點識別中,其算法精度和速度都要優(yōu)于傳統(tǒng)的算法,在精度方面提升了43.69%,在速度方面提升了79.97%。
2)在真實光點中,改進的Otsu算法在小尺寸光點圖像中閾值分割合理,適用于目標與背景像素值相差巨大的情況,能很好地將目標光點與環(huán)境分割。而改進的橢圓擬合算法在常規(guī)噪聲,黑子遮擋等負面識別環(huán)境下,都具備顯著優(yōu)勢。
3)本文提出的一套光點質(zhì)心識別算法,計算速度快,達到7ms/幀,能夠克服負面環(huán)境,具備高精度識別能力,因此能夠適用于搭載小型CPU的無人機,進行空中外置特征光源質(zhì)心識別任務(wù),同時對其它需要實時檢測光點質(zhì)心的工程也有著不錯的前景。