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