王 霞,左一凡,李磊磊,陳家斌
(1.光電成像技術(shù)與系統(tǒng)教育部重點實驗室,北京理工大學光電學院,北京 100081;2.北京理工大學自動化學院,北京 100081)
近幾年,無人機在軍用和民用領(lǐng)域均有較大發(fā)展,其在軍事偵察、勘探、搜救、大氣探測、無人農(nóng)業(yè)、城市測繪等領(lǐng)域都發(fā)揮了重要作用[1]。現(xiàn)階段主流的無人機導(dǎo)航方法主要依靠慣性導(dǎo)航系統(tǒng)(Inertial Navigation System,INS)以及全球定位系統(tǒng)(Global Position System,GPS)進行導(dǎo)航,但是由于慣性導(dǎo)航積分的過程存在累計誤差,且需要進行導(dǎo)航初始化,而GPS信號容易受到地形遮擋和信號干擾等因素的影響[2-3],所以發(fā)展可以補償慣導(dǎo)和GPS不足的導(dǎo)航方式極為重要。
有研究發(fā)現(xiàn),鳥類以及昆蟲能夠利用光流來判斷速度、實現(xiàn)避障等,所以將光流的概念引入到無人機、無人車、機器人等相關(guān)領(lǐng)域的導(dǎo)航中[4]。之后大量計算機視覺以及生物學專家提出了各種光流算法,包括基于梯度的Lucas-Kanade算法[5]和Horn-Shunck算法[6],以及基于SIFT特征的光流算法[7-8]等。其中稠密光流算法由于精度較高,可獲得稠密光流圖像的特點被廣泛使用。此外,通過研究大量蜜蜂飛行實驗發(fā)現(xiàn),蜜蜂感知飛行距離還受到顏色、紋理和對比度等影響[3]。同樣,在光流算法中,對于圖像上紋理欠豐富區(qū)域中的特征點,由于區(qū)域內(nèi)像素灰度變化不明顯,會降低光流跟蹤時的計算精度[9]。
稠密光流在進行全局計算時,受到圖像紋理的影響尤為明顯。因此,本文提出了一種基于自適應(yīng)圖像紋理復(fù)雜度提升光流精度的方法,該方法通過灰度共生矩陣對圖像紋理復(fù)雜度做出評價,再計算Farneback光流[10],通過最小二乘法建立紋理復(fù)雜度與光流精度之間的函數(shù)關(guān)系,通過此函數(shù)關(guān)系可有效提升在弱紋理圖像中的光流精度,進而提升仿生光流導(dǎo)航精度。
光流是三維空間運動的二維投影,當物體運動時,其在二維圖像上的亮度會同時發(fā)生變化,光流就是這種圖像亮度模式的運動。根據(jù)連續(xù)圖像前后幀之間的像素在時間上的變化和其相關(guān)性,可求得前后幀之間的一一映射關(guān)系,進而求得兩幀之間物體的運動信息,這種方法叫做光流法[11]。
設(shè)在t時刻某幀圖像在點(x,y)的亮度值為E(x,y,t),在t+ 1時刻圖像上像素間位移為(dx, dy),可求得水平和垂直速度分別為
u=dx/dt
(1)
v=dy/dt
(2)
通過Δt時間間隔后,此位置相應(yīng)的亮度為E(x+Δx,y+Δy,t+Δt),假設(shè)圖像的亮度改變是平滑的,可將上式進行Taylor公式展開得
E(x+Δx,y+Δy,t+Δt)=
(3)
忽略式(3)中二階無窮小項,同時假定Δt是極小量,并認為同一目標點在不同圖像幀中的亮度不變,化簡式(3)得
(4)
Exu+Eyv+Et=0
(5)
求解此方程可得到速度u和v的值。
根據(jù)上述光流計算公式可知,光流精度和圖像梯度有緊密聯(lián)系,下面通過仿真實驗,分析實際應(yīng)用中兩種影響光流計算精度的情況。一是相同場景下不同的模糊退化程度和大氣條件對光流精度的影響,這是由于傳遞函數(shù)的改變影響了圖像梯度變化,從而使光流精度受到影響;二是相同模糊退化程度和大氣條件下,不同紋理特性場景對光流精度的影響,這是由于圖像本身缺乏紋理,從而導(dǎo)致圖像梯度不足造成光流計算不能得到理想的結(jié)果。
本文選取TOPS場景仿真軟件中晴天天氣下的遙感圖像,太陽高度角為53.85°,時間為14:00,通過相機平行移動獲取100組實驗圖像,為減少計算量,選取圖像中心500×500的區(qū)域進行計算。
首先進行模糊退化程度對光流影響的仿真實驗。高斯模糊的過程是將圖像中每個像素都與其周圍像素根據(jù)卷積核做加權(quán)平均,中心像素有最大權(quán)重,距離中心像素越遠權(quán)重越小,通過卷積核的不斷移動,遍歷整個圖像,從而將整幅圖像模糊。所以本文使用高斯模糊模擬不同程度模糊退化對光流精度的影響。使用圖1(a)所示晴天仿真圖像進行仿真實驗,設(shè)置模糊半徑為2,標準差為1,統(tǒng)計3次不同模糊程度下100組圖像的光流平均精度,發(fā)現(xiàn)模糊程度與光流精度確實存在關(guān)系,模糊程度越高,光流精度越低,其結(jié)果如表1所示。
表1 圖像模糊程度與光流精度關(guān)系Tab.1 Relationship between image blur level and optical flow accuracy
本文選取同一場景、時間和太陽高度角,對三種不同大氣條件下的圖像進行光流計算,分析其對光流精度的影響。選取晴天、薄霧(下文統(tǒng)稱霧天)和陰天3種大氣條件,如圖1所示,分別統(tǒng)計每種大氣條件下100組圖像的光流平均精度,統(tǒng)計結(jié)果如表2所示??梢钥闯?,晴天和霧天光流精度較好,而陰天光流精度較差。
(a)晴天
(b)霧天
(c)陰天圖1 不同大氣條件下的遙感圖像Fig.1 Remote sensing images under different atmo-spheric conditions
表2 不同大氣條件對光流精度的影響Tab.2 Effects of different atmospheric conditions on optical flow accuracy
最后,本文選取圖1(a)所示晴天條件遙感圖像中的三種典型紋理特性區(qū)域,構(gòu)建農(nóng)田、城鎮(zhèn)以及森林場景,如圖2所示。其中,農(nóng)田的紋理明顯少于其余兩種場景。分別統(tǒng)計每種場景中100組圖像的光流平均精度,對比紋理對光流精度的影響,如表3所示。結(jié)果表明,農(nóng)田場景的光流精度明顯低于其他兩種場景。
(a)農(nóng)田
(b)城鎮(zhèn)
(c)森林圖2 不同場景對比圖Fig.2 Comparison of different scenes
表3 不同場景圖像對光流精度的影響Tab.3 Effects of different scene images on optical flow accuracy
綜上所述,圖像模糊退化、大氣條件變化以及不同紋理特性場景都可以影響光流精度,但其本質(zhì)都是圖像紋理復(fù)雜度的變化導(dǎo)致圖像梯度發(fā)生改變,進而影響光流精度。
無論是圖像模糊程度還是大氣條件變化或場景選取都和圖像紋理復(fù)雜度息息相關(guān)。圖像紋理的本質(zhì)就是相鄰像素值的變化,而這也正是光流計算的關(guān)鍵問題。所以,本文選擇一種描述圖像紋理的方法,并擬合其和光流精度的關(guān)系,這是光流優(yōu)化以及仿生視覺導(dǎo)航算法精度提升的重要步驟。
在灰度圖像中,在一定距離內(nèi)的像素間存在一定聯(lián)系[12],這是描述紋理的主要思路。在多種描述紋理的方法中,灰度共生矩陣通過對圖像像素間關(guān)系進行統(tǒng)計,可描述灰度空間的聯(lián)系,并可對紋理特征進行量化表述[13]。這種量化表述方法與光流計算圖像間像素位移有一定聯(lián)系,因此,本文選取灰度共生矩陣作為描述紋理的方法。
首先,將一幅圖像的灰度分為多個等級,根據(jù)灰度等級和像素間隔構(gòu)建灰度共生矩陣。Haralick等[13]在共生矩陣的基礎(chǔ)上定義了14個特征參數(shù)用于紋理分析,其中對比度反映了圖像的清晰度和紋理溝紋深淺的程度,紋理的溝紋越深,反差越大,效果清晰;反之,對比值小,則溝紋淺,效果模糊。而光流計算則是判斷圖像灰度值的位移,溝紋越多,位移量計算越準確。所以,對比度參數(shù)可以很好地反映圖像紋理的情況,以及在不同模糊程度下紋理復(fù)雜度和光流精度的關(guān)系。因此,本文選擇14個特征參數(shù)中的對比度參數(shù)進行紋理復(fù)雜度的分析。
光流算法采用Farneback光流法,該算法是Farneback[10]提出的一種稠密光流計算方法,其精度高于Lucus-Kanade光流法[14]。Farneback算法通過設(shè)定圖像梯度和局部光流恒定的方法[11],把輸入圖像用二維函數(shù)表示,并通過二維函數(shù)的變化推出光流值。
計算三種不同場景不同模糊程度的100組圖像的光流精度和圖像紋理復(fù)雜度,并繪制統(tǒng)計圖。以霧天大氣條件下一次高斯模糊圖像為例,其紋理復(fù)雜度和光流精度關(guān)系如圖3所示,可以看出,光流精度與紋理復(fù)雜度呈現(xiàn)近似線性關(guān)系。
圖3 霧天大氣條件下高斯模糊圖像紋理復(fù)雜度與光流精度的關(guān)系Fig.3 Relationship between texture complexity and optical flow accuracy of the Gaussian blur image in foggy atmospheric conditions
通過評價圖像的紋理復(fù)雜度,可以建立其與光流精度的關(guān)系。與圖3示例類似,三種大氣條件和三種模糊度下都存在近似一次函數(shù)的關(guān)系,說明可以通過擬合函數(shù)進行光流精度的優(yōu)化。
低紋理復(fù)雜度的圖像具有較低的圖像梯度,從而對光流的計算造成困難。針對不同紋理復(fù)雜度的圖像進行稠密光流計算發(fā)現(xiàn),紋理復(fù)雜度與光流精度基本呈線性關(guān)系。根據(jù)這一現(xiàn)象,本文設(shè)計了一種基于紋理復(fù)雜度的稠密光流優(yōu)化算法。首先,采用Farneback算法計算光流;然后,根據(jù)灰度共生矩陣對比度評價圖像紋理復(fù)雜度;第三,使用光流真值除以計算得到的光流值得到光流的補償系數(shù);最后,利用最小二乘法建立圖像紋理復(fù)雜度和光流補償系數(shù)之間的函數(shù)關(guān)系?;谠摵瘮?shù)關(guān)系,實際運動圖像可以根據(jù)紋理復(fù)雜度確定光流補償系數(shù),從而修正光流值,獲得高精度的光流計算結(jié)果。算法流程如圖4所示。
圖4 基于紋理復(fù)雜度的光流優(yōu)化算法流程圖Fig.4 Flow chart of optical flow optimization algorithm based on texture complexity
基于TOPS場景仿真軟件平臺,仿真輸出三種模糊退化程度和三種大氣條件場景,對基于紋理復(fù)雜度的光流精度優(yōu)化效果進行了仿真實驗驗證。
在第一組仿真實驗中,選取晴天遙感圖像作為仿真場景,如圖5所示。模擬無人機獲取的圖像數(shù)據(jù),設(shè)置拍攝高度300m,俯仰角度90°,即垂直向下拍攝,地面分辨率0.3m,拍攝幀頻10幀/s,飛行速度15m/s。由于計算速度原因,每次選取圖像中心500×500的區(qū)域作為實驗圖像,并進行1~3次高斯模糊,設(shè)置模糊半徑為2,標準差為1,模糊后結(jié)果如圖6所示。
圖5 晴天遙感圖像Fig.5 Remote sensing image on a clear day
(a)原始圖像
(b)一次高斯模糊
(c)兩次高斯模糊圖6 不同程度高斯模糊圖像Fig.6 Gaussian blur images with different degree
由圖6可知,不同程度高斯模糊后的圖像在肉眼觀測下并無較大差異,但是通過擬合后可知,其對光流精度產(chǎn)生較大影響。選取100組仿真圖像,并剔除光流值精度小于25%的數(shù)據(jù),通過對不同程度高斯模糊的一系列圖像進行Farneback光流法計算,求得對應(yīng)的光流優(yōu)化系數(shù);同時通過灰度共生矩陣計算對比度后作為紋理復(fù)雜度,再用最小二乘法擬合得到光流優(yōu)化系數(shù)和紋理復(fù)雜度的關(guān)系圖,如圖7所示。
(a)原始圖像
(b)一次高斯模糊
(c)兩次高斯模糊圖7 紋理復(fù)雜度與光流優(yōu)化系數(shù)關(guān)系圖Fig.7 Relationship between texture complexity and optical flow optimization coefficient
從數(shù)據(jù)擬合的結(jié)果可以看出,模糊程度越高,即整體紋理復(fù)雜度越低的情況下,直線斜率的絕對值越大,表明整體紋理復(fù)雜度越低,光流精度對紋理復(fù)雜度變化越敏感。同一模糊程度下光流精度與紋理復(fù)雜度呈線性關(guān)系,不同模糊程度圖之間沒有線性關(guān)系。因此實際應(yīng)用中,需要根據(jù)具體場景,擬合紋理復(fù)雜度和光流補償系數(shù)函數(shù),從而更好地提升光流計算精度。
根據(jù)圖7所示紋理復(fù)雜度與光流優(yōu)化系數(shù)關(guān)系,選擇仿真圖像中同等模糊程度的不同圖像區(qū)域進行優(yōu)化前后光流精度提升效果對比實驗。測試區(qū)域與擬合函數(shù)區(qū)域不重疊,但場景類似,不去除任何異常值,每組模糊程度取100組數(shù)據(jù)求平均值,優(yōu)化前后光流平均精度對比結(jié)果如表4所示。
表4 三種不同模糊程度光流精度對比Tab.4 Comparison of optical precision flow in three different blur conditions
測試結(jié)果表明,隨著模糊程度的加深,光流平均精度逐漸下降,基于紋理復(fù)雜度和光流優(yōu)化系數(shù)擬合函數(shù)優(yōu)化后,光流平均精度均有較大程度的提升。
通過設(shè)定3000組實驗圖像,計算出相機飛行1272.79m時不同模糊程度光流導(dǎo)航的定位誤差對比如表5所示。
表5 三種不同模糊程度定位誤差對比Tab.5 Comparison of position error results in three different blur conditions
第2組仿真實驗選取晴天、霧天以及陰天的遙感圖像作為仿真場景,仿真設(shè)置與第一組一致,不進行高斯模糊。實驗結(jié)果如表6所示。
表6 三種不同大氣條件光流精度對比Tab.6 Comparison of optical precision flow in three different atmospheric conditions
實驗結(jié)果表明,不同大氣條件下光流精度都可以得到相應(yīng)的提升,陰天情況下由于紋理復(fù)雜度較低,其精度提升效果更好。表7給出了三種不同大氣條件下1272.79m飛行距離的定位誤差。
表7 三種不同大氣條件定位誤差對比Tab.7 Comparison of position error results in three different atmospheric conditions
本文針對紋理復(fù)雜度對光流精度產(chǎn)生影響的問題,仿真了幾種不同紋理復(fù)雜度的圖像,并分別擬合了對應(yīng)的光流補償函數(shù),建立了基于自適應(yīng)紋理復(fù)雜度的稠密光流優(yōu)化模型。實驗結(jié)果表明:
1)多數(shù)情況下,當整體紋理復(fù)雜度越低,本文方法對光流精度的提升越明顯。這是由于低紋理復(fù)雜度的情況下光流計算值遠低于真實值,所以擬合函數(shù)的大斜率可以更好地補償光流計算的不足,從而得到更好的效果。
2)光流精度與紋理復(fù)雜度呈線性關(guān)系,可以有效補償?shù)图y理復(fù)雜度時的光流計算誤差,仿真實驗結(jié)果表明,優(yōu)化后的光流精度均有較明顯的提升。
3)本文方法需要根據(jù)少量數(shù)據(jù)擬合特定場景的光流補償函數(shù),然后在此場景圖像獲取條件下實現(xiàn)光流精度的提升,若成像條件發(fā)生變化需要重復(fù)上述工作。
后續(xù)工作將會開展以本文算法應(yīng)用于機械臂水平運動的光流導(dǎo)航或者無人機平穩(wěn)飛行等場景下的應(yīng)用研究,重點解決算法的實時性問題,擴大適用場景,克服其局限性。