?

面向無人船的天空區域檢測算法

2021-03-11 02:01高志遠詹文強元海文
中國航海 2021年4期
關鍵詞:陸地亮度水面

高志遠, 詹文強, 元海文

(1.廣東理工學院 工業自動化系, 廣東 肇慶 526100; 2.武漢理工大學 航運學院, 湖北 武漢 430063; 武漢工程大學 電氣信息學院, 湖北 武漢 430223)

水面無人船是一種能夠在湖泊、江河及海洋環境下自主航行,并完成各種任務的水面運動平臺[1]。無人船作為一種智能化、機動化、網絡化的水面交通工具,具有價格便宜、靈活機動、環境適應能力強等優點。無人船已經廣泛應用于各種場景執行不同任務,可以代替人工在危險情況下執行特殊任務[2]。無人船要在復雜環境下具備自主航行的能力,首先需要實時準確感知自身狀態信息和周圍環境信息。根據空間位置的不同,水上航行場景可分為天空、陸地和水面三個區域,識別這些區域在無人船視覺圖像中的分布,不僅可以增強無人船對周圍環境的感知,同時也能通過參考這些信息對自身狀態進行感知[3-4]。

針對無人船水上視覺場景感知,一些研究者嘗試通過進行水天線的檢測,來輔助估計自身俯仰角和橫滾角,并通過水天線來優化水上目標檢測,因為實際環境中水上目標大部分會出現在水天線附近[5-6]。這些水天線的檢測主要針對的是海上航行環境,因為在海上場景中,圖像主要由天空和海面區域構成,水面邊界只和天空連接[7-8]。而對于一些民用無人船,大部分應用場景為內河和湖泊,水面邊界不僅包括與天空的連接,還包括與陸地的連接區域[9]。因此一些研究者針對湖泊區域,提出水岸線檢測方法[10-11]。內河和湖泊水上場景復雜,特殊情況下一些算法常常會失效,特別在倒影和水波特別明顯的情況下。根據無人船在內河和湖泊中航行時與岸邊的距離,可以把場景分為近距離、中距離和遠距離三個類別,遠距離場景類似海上環境,陸地區域在圖片所占區域極小,圖像主要由水面和天空區域構成,圖像簡單,許多算法都能在這種情況下取得較好結果。在中間距離場景,陸地在圖像中占有一定區域,水面也出現有水波和倒影構成的復雜紋理,使得許多基于邊界和梯度的算法在這種情況下失效。在近距離場景,天空區域縮小成很小的部分,陸地在圖像中占更大區域,水面倒影嚴重,使得基于顏色紋理的算法很難區分水面和陸地區域。

對于內河和湖泊場景,水面區域紋理存在復雜多變性,在復雜環境中直接進行水面區域的檢測很難取得穩定有效的結果。為了提高無人船在內河和湖泊航行場景中的視覺感知能力的穩定性和準確性,本文從天空區域入手,提出多信息融合的水上天空檢測算法,為無人船進一步的信息處理提供有用信息。為準確有效檢測出天空區域,首先采集大量水上場景照片,對水上場景的圖像數據進行深入分析。利用水上不同區域在圖像中的分布特性,初步估計出水面、陸地和天空在圖像所在的位置,然后結合分割算法準確找到天空區域。

1 天空檢測算法

1.1 算法流程設計

無人船在航行過程中,水上場景的天空檢測算法流程如圖1所示。為了減少圖像噪聲對算法流程中圖像分割結果的影響,采用基于變分的優化算法對圖像進行平滑處理。使用基于圖的圖像分割算法,根據顏色和邊界信息,將圖像分割成不同區域。同時對水上視覺特性進行分析,將圖像從RGB(Red Green Blue)空間映射到HSV(Hue,Saturation,Value)空間,對天空、陸地和水面不同區域的亮度進行統計分析。根據水上視覺特點,對天空區域位置進行初步估計。最后根據圖像分割的結果,在圖像中準確找到天空區域。

圖1 天空檢測算法流程圖

1.2 基于變分法的水上圖像去噪

在后續的分割算法中,希望將天空、陸地和水面分割不同區域,并且分割區域盡可能少,從而減少算法流程的區域合并計算量。但是由于噪聲影響,一個具有相同顏色的信息區域可能被分割成不同區域。并且由于天空中的云和水面上的波浪具有復雜的紋理,這將使得圖片在這些區域可能被分割為許多細小的區域,降低算法的效率。為此對圖像進行分割前,需要進行預處理,減少噪聲和局部復雜紋理的影響。

傳統的圖像去噪算法,例如中值濾波和高斯濾波算法,雖然能取得很好的平滑效果,但是卻容易使圖像丟失邊界細節信息,使圖像中的天空、陸地和水面邊界變得模糊。需要平滑不同區域內的紋理,使得不同類別區域內像素能盡可能被分割成一個大的區域,同時保留不同區域的結構信息,保證不同類別的像素被分割到不同區域中去。為了達到這個效果,本文提出了基于變分法的圖像去噪算法。傳統的變分方法是一種基于雙向懲罰函數的整體優化模型,其模型可以表示為

(1)

式中:I表示輸入圖像;下標p表示像素索引;S表示最后優化的輸出圖像。

(2)

式中:R(p)表示以像素p為中心的局部區域;q為局部區域的像素點;D(p)為像素p局部窗口內的梯度絕對值統計量;wp,q作為一個權值因子,用來表示窗口內其他像素和像素p的空間位置權重關系,可以表示為

(3)

式中:(xp,yp)和(xq,yq)為兩像素坐標;σ用來控制局部窗口的空間尺寸大小。

優化過程中盡可能使式(2)的梯度絕對統計值變小,從而使窗口內的像素趨于一致,達到平滑局部豐富多變的紋理的效果。但是當像素位于不同區域邊界時,需要保留這些信息。為此提出了梯度相對統計量,其可以表示為

(4)

L(p)直接對窗口內的梯度量進行相加,然后取絕對值。當窗口在同一紋理區域時,假設窗口內顏色亮度值出現周期性規律變化,但是整體保持一致,梯度出現正負交替變化,整體相加后,L(p)最后由于不同項相互抵消而趨近于零。當窗口在不同紋理區域時,由于存在亮度值的跨越變化,L(p)的不同項不能相互抵消,而保持較大的數。為了保留更多邊界結構信息,要盡量使L(p)取最大。為此,結合D(p)和L(p)改進規則化項,目標優化函數最后表示為

(5)

1.3 基于圖的圖像分割算法

利用圖論算法,以圖像的每個像素作為節點C,像素間關系作為邊E,建立節點圖G。在算法初始化時,將每個像素作為一個獨立區域,然后根據邊界信息,將相同小區域不斷合并成大的區域,不斷迭代,直到所有區域滿足算法特定要求。使用區域內差異性因子和區域間差異因子來控制不同區域的合并。其中,區域內差異性因子定義為

(6)

式中:gi(Ci,Ei)表示某塊獨立區域;Int(C)表示該區域內最大的邊界值。區域間差異因子定義為

(7)

式中:Ci和Cj表示兩個不同區域;e(via,vjb)表示兩個區域相鄰的邊。其目標是找到兩個不同區域相鄰邊的最小值。對于不同區域,區域內差異性因子Int(·)要小于區域間差異性因子Dif(·)。不同區域的合并條件可以定義為

(8)

式中,MInt(Ci,Cj)表示取兩個不同區域內差異最小值。

MInt(Ci,Cj)=min (Int(Ci)+τ(Ci),

Int(Cj)+τ(Cj))

(9)

(10)

式中:τ用來控制分割大小;k為控制常量;σI為圖像的整體方差。τ越大,則表示不同區域邊界需要非常顯著,否則將被合并成一個大的區域,最后將得到大的分割區域。τ通過σI自動控制參數大小,使得算法在不同對比度場景中都能取得很好效果。

1.4 水上場景HSV空間特性分析

將圖像從RGB空間轉換到HSV空間,對HSV空間每個通道進行分解,得到圖2所示結果。從圖中可以看到,由于環境不同,以及在拍攝過程中相機為達到最好的拍攝效果做的底層自動化處理,最終得到的色度通道圖在顏色相近區域出現劇烈變化,特別是在飽和度低的區域。很難通過色度對不同區域進行區分,特別是天空亮白區域或者岸上的黑暗區域,很容易在色域內進行跳變。而在飽和度圖層中,陸地區域由于顏色信息明顯,其飽和度在整個圖像中值最大,水面由于陸地倒影的影響,也會出現飽和度值比較大的情況。在亮度值中,可以假設自然界光源都來自天空,陸地和水面的光線來自不同方向的反射,因此天空亮度最大。水面由于反射率較高,其亮度略低于天空。而陸地容易吸收照射過來光線,在圖像中形成亮度最低區域。因此通過飽和度圖和亮度圖,可以初步估計出陸地和天空區域。

圖2 HSV彩色空間分析

1.5 天空區域檢測

在無人船正常航行過程中,天空區域在圖像的最上區域,水面區域在圖像的最下區域,陸地區域在圖像的中間區域。根據HSV空間對水上場景分析,可以將亮度值較大且在圖像最上方的區域作為天空區域,而飽和度最大的區域為陸地區域。雖然受到倒影的影響,水面倒影也可能包括在飽和度值較大的區域,但是本文研究的重點不是陸地檢測,其目的是通過預測陸地區域來估計天空區域的邊界,因此包含水面倒影區域的陸地檢測結果對本文天空檢測結果不產生影響。在估計天空區域的空間位置后,下一步需要進一步準確確定天空區域的邊界。

通過圖像分割算法,將顏色亮度相近的聚成一塊區域,分割結果表示為S={s1,s2,…,sn}。通過對圖像分析可以知道,天空與陸地或水面的相交邊界相對比較明顯。本文采用的分割算法,是基于邊界的分割算法,對于紋理不是很明顯的云,能將大部分天空聚成一塊區域,同時根據天空與其他區域分界線,將不同類別區域分割成不同的區域。然后計算每個區域中飽和度和亮度的平均值、中心點位置。將飽和度、亮度值和區域位置作為每個分割區域的特征。對于某一個分割區域si,該分割區域的特征可以表示為xi={xis,xiv,xix,xiy}。xis和xiv分別是si中平均飽和度和亮度,xix和xiy分別是區域中心點位置的橫坐標和縱坐標值。然后使用支持向量機(support vector machines, SVM)構建分類器,用來對每個分割區域進行天空區域檢測。首先選取幾張圖像,并分割不同區域,對不同分割區域進行標注,制作訓練樣本數據{(x1,y1),(x2,y2)…(xn,yn)},xi為輸入特征,yi為輸出目標,最優超平面為wTxi+b=0,其中i=0,1,…,n,則需要滿足以下約束條件:

yi(wTxi+b)≥1-β

(11)

式中,β為松弛變量。

SVM分類器的目標為找到一個分類錯誤率最小的優化超平面,優化問題可表示為

(12)

式中,C為懲罰系數。

2 實驗分析

為了驗證算法的有效性,本章節設計了三個實驗,分別測試算法設計過程的合理性,算法對不同場景的有效性,以及和其他算法效果的比較。

2.1 天空檢測過程

本實驗對算法的各過程進行單獨研究分析,探討每個過程對整個算法的作用和影響,以便對算法有進一步了解,實驗的結果如圖3所示。其中每一列為不同數據,每一行為算法中間各過程的中間結果。圖3a為原始圖像。圖3b是陸地區域定位結果,根據圖像HSV空間中的飽和度通道圖層,利用聚類方法,將圖像分成三類,其中飽和度值最大的區域作為陸地可能性最大區域。由圖3b最后一個結果圖可以看到,由于岸上反射以及自身水體顏色影響,部分水上也被歸類為陸地,但是對最后結果并不影響。圖3c是天空區域定位結果,根據圖像HSV空間中的亮度通道圖層,同樣使用聚類方法,將圖像分成三類,其中亮度值最大的區域作為天空可能性最大區域。其結果如圖3c所示,由于天空亮度分布不均勻,僅僅依靠亮度值,并不能將所有天空區域檢測出來。圖3d是圖像的分割結果,根據邊界信息,將圖像分割成不同區域。圖3e是檢測結果,根據HSV空間對陸地和天空區域初步估計和分割結果,最后得到天空區域的準確區域。

a) 原始圖像

2.2 不同場景實驗效果

為了驗證無人船在不同場景下的效果,使用距離岸邊不同距離的圖像數據對算法進行測試,結果如圖4所示。

圖4 算法在不同場景的效果

當無人船航行在湖泊中不同位置時,算法都能很好地檢測出天空位置。在靠近岸邊時,陸地在圖像中占的區域較大,而天空區域較小。隨著離岸邊距離不斷增大,天空區域所占大小也不斷增大。當無人船在湖泊中心時,天空區域達到最大,陸地區域只有很小一部分,而天空邊界線可以近似看作一條直線。在不同場景中,無人船相對太陽的方位不同,以及水面出現的紋理不同,這給基于水面的檢測方法帶來一定難度。而面對天空的檢測方法,主要解決的是天空中云、光暈和水霧造成邊界不明顯帶來的問題。本文提出的算法,很好地解決了上述問題,面對不同環境取得了穩定的效果。

2.3 算法結果比較

本實驗與類似工作的相關算法進行對比性能測試,結果如圖5所示。每一列為不同的實驗數據,每一行為不同算法對應的結果圖。圖5a為輸入的原始圖像數據。圖5b為采用基于邊緣檢測的算法來對天空邊緣進行檢測結果。實驗中對該方法進行改進,采用Canny算法提取區域的顯著邊緣點,然后保留每一列在圖像最上面的點作為天空邊緣點。檢測的顯著邊緣點在圖中用白色顯示,而最終的天空檢測邊緣點用黑色顯示。結果表明該方法在復雜場景,比如水面波浪明顯的場景,很容易失效。圖5c為基于聚類算法的天空檢測結果,該方法將圖像轉換成灰度圖像,然后使用基于K-mean的聚類算法來檢測天空區域,檢測天空區域用純白顯示。在該算法中,對于亮度分布不均勻的寬動態場景,基于聚類方法依然不能很好地檢測出天空區域。圖5d表示基于亮度的方法的檢測結果,該方法將圖像轉換到HSV空間,然后使用亮度通道圖層,根據亮度值將像素平局分為三個類別,選擇亮度最大區域作為天空區域,檢測天空區域同樣用純白顯示。該方法和基于聚類的方法類似,在寬動態亮度不均勻場景,不能有效檢測天空區域。圖5d為本文提出的方法的檢測結果,檢測天空區域用純白顯示。結果表明,無論在有波浪倒影的復雜場景,還是場景亮度分布均勻情況,本文所提出的算法依然能取得較好效果。

a) 原始圖像

圖5b的結果圖顯示,在大部分天氣晴朗、陸地邊界清晰情況下,該算法能取得很好的效果。當在有霧情況下,遠處陸地邊界不明顯,很難提取足夠多的邊界點。在離岸邊較近距離處,并不是每一行都有天空區域,并且水面處倒影嚴重,噪聲點影響算法的穩定性。根據圖5c和圖5d的結果圖,無論采用聚類方法,還是基于亮度的方法,當無人船正對太陽時,亮度分布不均勻,天空亮度以太陽為中心呈現圓環梯度變化,同時水面由于反射作用,也有較大的亮度值,最后得到的天空檢測結果具有較大誤差。而本文提出的方法,則很好地解決了上述問題,取得較好的結果。

為了進一步量化各種算法的效果,由遠及近將數據分成四個不同場景,分別統計各種算法的預測精度,其準確性為

(13)

式中:ptp表示準確檢測為天空的像素點個數;pfp表示錯誤地將非天空區域檢測為天空的像素點個數。

各算法的檢測結果如表1所示。場景1為距離岸邊最近的場景,場景2為距離岸邊較近的場景,場景3為距離岸邊較遠的場景,場景4為在湖泊中間距離岸邊最遠的場景。實驗結果表明,不管在什么場景下,本文提出的算法都能取得較好的結果。

表1 不同場景下各算法檢測準確性

3 結 語

本文提出一種穩定的天空檢測算法,旨在為無人船自主航行提供有用信息。首先,提出基于變分法的圖像處理方法,去除圖像的細節紋理信息,保留圖像的不同區域的結構信息。然后使用基于圖的分割算法,將圖像分割成不同的區域,這些區域具有相似的顏色信息。其次,對水上場景圖像在HSV顏色空間分布進行深入分析,根據飽和度和亮度信息對天空區域在圖像中的位置進行初略估計。最后,根據分割結果和初步估計的天空位置信息,準確得到天空區域。實驗結果表明,本文提出的算法在不同場景中都能取得較好的效果,驗證了算法的有效性和穩定性。這為后續無人船視覺感知提供穩定參考信息,利用天空區域在圖像占據的像素大小估計無人船相對岸邊的距離,以及天空區域亮度變化特點判斷太陽相對無人船的方位。根據天空邊界線的位置平移和旋轉變化,實時估計無人船的姿態動態變化,可以為慣導等姿態傳感器數據的噪聲過濾過程提供有用信息。

猜你喜歡
陸地亮度水面
陸地探測一號01組衛星
水黽是怎樣浮在水面的
陸地開來“宙斯盾”
亮度調色多面手
創造足以亂真的水面反光
陸地上的“巨無霸”
亮度一樣嗎?
爭奪水面光伏
基于斬波調制的LED亮度控制
人生的亮度
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合