孟祥環(huán),羅素云
(上海工程技術(shù)大學(xué)機(jī)械與汽車(chē)工程學(xué)院,上海 201620)
地面機(jī)器人自主導(dǎo)航系統(tǒng)中最重要的問(wèn)題是對(duì)周?chē)h(huán)境的感知與理解[1]。圖像中的天空區(qū)域?yàn)榈孛鏅C(jī)器人提供了水平和背景信息,對(duì)于基于視覺(jué)的地面機(jī)器人導(dǎo)航具有重要意義。自主地面機(jī)器人中最常用的傳感器大致可分為兩類(lèi):主動(dòng)式傳感器和被動(dòng)式傳感器。主動(dòng)式傳感器,如雷達(dá)、激光雷達(dá)和聲納等都已得到了大規(guī)模應(yīng)用[1-2]。隨著電子技術(shù)的發(fā)展,攝像機(jī)等無(wú)源傳感器具有更小的體積、更低的價(jià)格及功耗,并且可以提供豐富的環(huán)境信息[3],目前攝像機(jī)等視覺(jué)傳感器在自主地面機(jī)器人中也已實(shí)現(xiàn)普及[4-5]。天空區(qū)域是室外圖像的重要組成部分,對(duì)于室外機(jī)器人導(dǎo)航系統(tǒng)而言,對(duì)天空區(qū)域的檢測(cè)是非常必要的[6-9],利用檢測(cè)到的天空區(qū)域可以在圖像中估計(jì)出地平線(xiàn)。由斯坦福大學(xué)開(kāi)發(fā)的一種天空區(qū)域檢測(cè)算法,不僅可以改善道路檢測(cè)結(jié)果,還可以粗略估計(jì)機(jī)器人傾斜角度,搭載該算法的斯坦利無(wú)人駕駛車(chē)輛榮獲2005 年DARPA 挑戰(zhàn)賽冠軍。
Shen 等[10]對(duì)天空部分進(jìn)行了研究,提出地面區(qū)域平均亮度比天空平均亮度暗,天空區(qū)域在圖像上側(cè)、地面區(qū)域在圖像下側(cè),且天空區(qū)域比較平滑的假設(shè)。在此前提下對(duì)圖像的像素進(jìn)行遍歷,通過(guò)不斷調(diào)整梯度閾值得到不同邊界,然后通過(guò)計(jì)算所有邊界的能量函數(shù)得到最優(yōu)邊界,并進(jìn)行優(yōu)化,最終得到了天空區(qū)域。
目前天空識(shí)別方法主要分為基于閾值的分割方法、基于區(qū)域的分割方法和基于邊緣的分割方法[11-12]:
(1)基于閾值的分割方法。基本思想是根據(jù)圖像灰度直方圖的像素分布設(shè)定閾值,通過(guò)合理的閾值設(shè)置分割圖像中的物體和背景。該類(lèi)算法在物體和背景灰度差異明顯的情況下分割結(jié)果準(zhǔn)確,但對(duì)噪聲比較敏感,使用場(chǎng)景較為受限。
(2)基于區(qū)域的分割方法[13]。該方法通過(guò)使用區(qū)域生長(zhǎng)和合并分裂兩類(lèi)算法進(jìn)行天空識(shí)別,將區(qū)域像素的一致性作為分割依據(jù),滿(mǎn)足區(qū)域一致性的像素被認(rèn)為是同一區(qū)域。該算法克服了閾值分割方法未考慮像素空間特征的缺點(diǎn),但是計(jì)算成本太高。
(3)基于邊緣的分割方法。該方法考慮到圖像中景物邊界處灰度值變化較大的特點(diǎn),利用Robert 算子、Canny 算子與Sobel 算子提取圖像梯度信息,通過(guò)設(shè)置閾值判斷區(qū)域是否屬于天空。但由于使用的邊緣檢測(cè)算子對(duì)噪聲比較敏感,識(shí)別出的結(jié)果常常包含大量噪聲。此外,對(duì)于一些濃霧場(chǎng)景和遠(yuǎn)景物體,由于灰度圖不清晰,導(dǎo)致邊緣檢測(cè)結(jié)果不完整。
通過(guò)本文提出的天空區(qū)域檢測(cè)算法,可以準(zhǔn)確識(shí)別圖像中的天空區(qū)域。相比傳統(tǒng)算法,本文通過(guò)分析天空區(qū)域的像素點(diǎn)特點(diǎn),將天空先驗(yàn)與像素偏轉(zhuǎn)模型相結(jié)合,不僅降低了計(jì)算量,而且能夠得到更加精確的天空邊緣,但也存在對(duì)一些非天空區(qū)域的白色物體錯(cuò)誤識(shí)別的現(xiàn)象。
計(jì)算機(jī)儲(chǔ)存圖像時(shí)以像素為基本單位,為了更好地描述BRG 三通道圖像像素灰度值特點(diǎn),本文提出了像素偏轉(zhuǎn)模型(見(jiàn)圖1)。通過(guò)像素偏轉(zhuǎn)角可以簡(jiǎn)單、快速地找到亮度值差異較大的像素點(diǎn),這些像素點(diǎn)多代表天空、雪、河流等白色場(chǎng)景物體。
Fig.1 Pixel deflection model圖1 像素偏轉(zhuǎn)模型
BRG 三通道圖像單個(gè)通道的最大灰度值為255,圖1 將3 個(gè)通道的灰度值放在三維坐標(biāo)系中表示,即x軸正方向代表B通道的像素值,y軸正方向代表G通道的像素值,z軸正方向代表R通道的像素值,則像素點(diǎn)三維坐標(biāo)可表示為b(xb,0,0),g(0,yg,0),r(0,0,zr)。
3 個(gè)通道的最大灰度值點(diǎn)在三維空間構(gòu)成了一個(gè)三角形,該三角形所在平面的法向量為=(1,1,1),定義該向量為三通道像素平面的標(biāo)準(zhǔn)法向量,所有其它像素點(diǎn)構(gòu)成的三角形都應(yīng)該在空間體o-bgr 內(nèi)部,其構(gòu)成的平面法向量為=(yg xb,zr xb,zr yg)。
該三角形所在平面法向量為N,此向量即為三通道像素平面的標(biāo)準(zhǔn)法向量,所有其它像素點(diǎn)構(gòu)成的三角形都應(yīng)該在空間體o 內(nèi)部,其構(gòu)成的平面法向量為M。
設(shè)空間中有三點(diǎn)的坐標(biāo)為:p1(x1,y1,z1)、p2(x2,y2,z2)、p3(x3,y3,z3),則該平面內(nèi)有向量=(x2-x1,y2-y1,z2-z1)=(x3-x1,y3-y1,z3-z1)。平面的法向量為:
將點(diǎn)b、g、r代入平面的法向量方程,得到像素平面的法向量為:
像素平面法向量與標(biāo)準(zhǔn)像素法向量的夾角為:
式中,θ 為像素偏轉(zhuǎn)角,atan2 為反正切函數(shù)。像素偏轉(zhuǎn)角可以反映某一像素在3 個(gè)通道的分布規(guī)律。當(dāng)像素偏轉(zhuǎn)角較大時(shí),3 個(gè)通道的像素值偏差較大。當(dāng)像素偏轉(zhuǎn)角較小且接近于0 時(shí),說(shuō)明該像素點(diǎn)3 個(gè)通道的灰度值十分接近。
天空先驗(yàn)理論是基于對(duì)大量無(wú)霧圖像統(tǒng)計(jì)后得到的結(jié)果。本文制作了一個(gè)包含3 231 幅天空區(qū)域的圖片樣本集,其中包含自然景觀(guān)、城市景觀(guān)等多種類(lèi)型圖片。為了清晰、直觀(guān)地表現(xiàn)天空區(qū)域具有的統(tǒng)計(jì)特征,本文將樣本集中的圖片人工切割成天空和非天空部分,各得到3 231幅圖片,并用圖表統(tǒng)計(jì)了像素點(diǎn)概率分布情況。其中,圖2、圖3 統(tǒng)計(jì)的是圖像中非天空區(qū)域的像素特征。通過(guò)圖2非天空區(qū)域像素偏轉(zhuǎn)角分布直方圖可以發(fā)現(xiàn),在圖像中的非天空區(qū)域部分,像素偏轉(zhuǎn)角數(shù)值分布范圍較廣,在5~55之間均有分布,5~20 區(qū)間像素偏轉(zhuǎn)角的占比遠(yuǎn)小于區(qū)間20~54,絕大部分分布在20~54 區(qū)間。結(jié)合圖3 非天空區(qū)域像素最小灰度值分布直方圖可以看出,在非天空區(qū)域,像素點(diǎn)灰度的最小值主要分布在0~120 區(qū)間,并集中分布在0~50 區(qū)間;圖4、圖5 統(tǒng)計(jì)的是圖像中天空區(qū)域的像素點(diǎn)特點(diǎn)。通過(guò)圖4 天空區(qū)域像素偏轉(zhuǎn)角分布直方圖可以發(fā)現(xiàn),在圖像中的天空區(qū)域部分,像素偏轉(zhuǎn)角數(shù)值分布范圍較窄,集中分布在0~20 區(qū)間。從圖5 天空區(qū)域像素最小灰度值分布直方圖可以看出,天空區(qū)域像素點(diǎn)灰度最小值主要分布在105~255 區(qū)間,其中集中分布在180~230 區(qū)間。
王維是盛唐時(shí)期的山水田園派詩(shī)人,也是一個(gè)做過(guò)官、會(huì)作畫(huà)的全能“佛系”大師。因?yàn)樗脑?shī)句非常富有禪意,所以后世也叫他“詩(shī)佛”。從他早期渾厚氣派的《漢江臨眺》《使至塞上》,到后期恬靜閑適的《辛夷塢》《鳥(niǎo)鳴澗》,我們會(huì)感到他在人生不同階段的經(jīng)歷對(duì)藝術(shù)創(chuàng)作的影響。王維的另一個(gè)重要身份便是畫(huà)家,被稱(chēng)為“南宗畫(huà)之祖”。無(wú)論寫(xiě)詩(shī)還是作畫(huà),王維都有著自己一以貫之的“佛系審美”:用簡(jiǎn)單的語(yǔ)句和筆墨,去構(gòu)造悠遠(yuǎn)、遼闊的世界。
Fig.2 Histogram of pixel deflection angle distribution in non-sky region圖2 非天空區(qū)域像素偏轉(zhuǎn)角分布直方圖
Fig.3 Histogram of the distribution of the minimum gray value of pixels in the non-sky region圖3 非天空區(qū)域像素最小灰度值分布直方圖
Fig.4 Histogram of pixel deflection angle distribution in sky region圖4 天空區(qū)域像素偏轉(zhuǎn)角分布直方圖
Fig.5 Histogram of the distribution of the minimum gray value of pixels in the sky region圖5 天空區(qū)域像素最小灰度值分布直方圖
通過(guò)圖像天空區(qū)域與非天空區(qū)域像素特點(diǎn)的對(duì)比可以發(fā)現(xiàn),天空區(qū)域相比非天空區(qū)域,像素的偏離程度較低,最小灰度值較大。低像素偏轉(zhuǎn)角和高像素灰度最小值將作為本文分割天空的基本依據(jù),可總結(jié)公式如下:
其中,θ(x)為x像素點(diǎn)的像素偏轉(zhuǎn)角,S為天空區(qū)域像素偏轉(zhuǎn)角的最大值,Vmin為天空區(qū)域像素點(diǎn)灰度最小值,V(x)為x像素點(diǎn)處的灰度值。
為了更好地驗(yàn)證本文算法的可行性,使用合適的基準(zhǔn)數(shù)據(jù)集評(píng)估天空區(qū)域的分割精度,本文制作了自己的數(shù)據(jù)集。該數(shù)據(jù)集由3 個(gè)子部分組成(數(shù)據(jù)集里的圖片來(lái)源于Corel1k 數(shù)據(jù)集、SVT 谷歌數(shù)據(jù)集、CityStreet 城市街景數(shù)據(jù)集與實(shí)景拍攝)。數(shù)據(jù)集每個(gè)子部分詳細(xì)信息如下:
(1)原始數(shù)據(jù)集。MSRC 圖像集來(lái)自微軟研究院,其中包含一個(gè)Sky 類(lèi)??紤]到本文算法的使用場(chǎng)景,本文刪除了包含室內(nèi)場(chǎng)景、特定交通標(biāo)志和非常大面積水體的圖像。在此基礎(chǔ)上,增加了Corel1k 數(shù)據(jù)集中的部分圖片,并結(jié)合實(shí)景拍照,制作了一個(gè)包含3 231 個(gè)圖像的數(shù)據(jù)集。它們都是分辨率為320×213 的彩色圖像。
(2)天空數(shù)據(jù)集。本文在原始數(shù)據(jù)集基礎(chǔ)上,通過(guò)手動(dòng)分割得到了一個(gè)只包含天空區(qū)域的數(shù)據(jù)集,數(shù)據(jù)集中有1 000 張圖片,可用來(lái)分析天空區(qū)域像素灰度值的特點(diǎn)。
(3)非天空數(shù)據(jù)集。本文在原始數(shù)據(jù)集基礎(chǔ)上,通過(guò)手動(dòng)分割得到了一個(gè)不包含天空區(qū)域的數(shù)據(jù)集,數(shù)據(jù)集中有1 500張圖片,可用來(lái)分析非天空區(qū)域像素灰度值的特點(diǎn)。
本文算法代碼是在ubuntu 系統(tǒng)上利用C++語(yǔ)言實(shí)現(xiàn)的,將本文算法與文獻(xiàn)[7]中提出的算法進(jìn)行比較。選擇該算法作為本文的對(duì)比算法,是因?yàn)槠湓谝淮沃髁鲿?huì)議上發(fā)表,并具有較好的識(shí)別結(jié)果,且該算法所需參數(shù)是通過(guò)最大化測(cè)試數(shù)據(jù)集的性能進(jìn)行設(shè)置的。
式中,p為天空檢測(cè)偏差,sky檢測(cè)為算法檢測(cè)到的天空區(qū)域像素點(diǎn)數(shù)量,sky圖像為檢測(cè)圖片中實(shí)際天空部分的像素點(diǎn)數(shù)量。
該公式將檢測(cè)到的天空部分像素點(diǎn)與標(biāo)準(zhǔn)圖像天空部分像素點(diǎn)進(jìn)行除法運(yùn)算,得到檢測(cè)精度,但該公式的檢測(cè)結(jié)果可能超過(guò)100%,這是因?yàn)闄z測(cè)出的天空區(qū)域面積可能大于標(biāo)準(zhǔn)圖像的天空面積,因此本文對(duì)式(6)進(jìn)行了修改。首先,對(duì)算法檢測(cè)到的天空區(qū)域與標(biāo)準(zhǔn)圖像的天空區(qū)域兩部分面積作差(這里將區(qū)域中的像素?cái)?shù)量等效為區(qū)域面積),然后,對(duì)上一步結(jié)果取絕對(duì)值(定義為天空檢測(cè)偏差)。通過(guò)表1 可看出式(6)中分子與分母的數(shù)量級(jí)差別很大,天空檢測(cè)偏差的數(shù)值將會(huì)很小,不利于進(jìn)行定量對(duì)比分析。
Table 1 Algorithm test results表1 算法測(cè)試結(jié)果
于是本文引入了指數(shù)函數(shù),從而將天空檢測(cè)偏差集中在較小范圍內(nèi)。天空區(qū)域精度公式如式(7)所示。
算法識(shí)別結(jié)果如圖6 所示。結(jié)合表1 和圖6,可看到本文算法表現(xiàn)良好,6 張圖片的識(shí)別精度均達(dá)到96%以上。橫向?qū)Ρ让繌垐D片的天空識(shí)別效果,本文算法均明顯優(yōu)于文獻(xiàn)[7]的算法。
Fig.6 Algorithm recognition results圖6 算法識(shí)別結(jié)果
在圖片1 中,原圖中的天空部分顏色比較單一,兩種算法識(shí)別效果均較好,但是文獻(xiàn)[7]的算法對(duì)圖片中左側(cè)路燈區(qū)域的天空并未識(shí)別成功。而本文算法不僅對(duì)天空部分識(shí)別比較精細(xì),在天空的整體觀(guān)感上也明顯好于文獻(xiàn)[7]的算法。其他圖片中天空部分的云層比較復(fù)雜,但沒(méi)有對(duì)兩種算法的天空識(shí)別造成太大干擾,證明了算法的有效性。在圖6 的所有圖片中,本文算法都能可靠地檢測(cè)到天空區(qū)域。在圖片2-圖片4 中,由于建筑物和樹(shù)木的影響,天空區(qū)域邊界十分復(fù)雜,文獻(xiàn)[7]的算法在這些區(qū)域存在較大的檢測(cè)誤差,而本文算法在這些天空邊界復(fù)雜的區(qū)域可以準(zhǔn)確地檢測(cè)出天空。通過(guò)表1 可看出本文算法對(duì)圖片2-圖片4 的識(shí)別精度明顯高于文獻(xiàn)[7]的算法。在圖片6中,圖片右下角的天空區(qū)域與地面的邊界不明顯,而且天空區(qū)域的亮度跨度相當(dāng)大。這些困難對(duì)本文算法的檢測(cè)結(jié)果沒(méi)有任何影響,但對(duì)文獻(xiàn)[7]的算法造成了較大影響。
另一方面,本文算法也有不足之處,本文算法依賴(lài)于對(duì)每個(gè)像素的數(shù)值進(jìn)行分析,所以圖片中的明亮區(qū)域很容易被誤分類(lèi)為天空區(qū)域。如在圖片1 中,右側(cè)窗戶(hù)上方白色墻壁附近的明亮區(qū)域被錯(cuò)誤分類(lèi)為天空區(qū)域;在圖片1-圖片3 中,可看到部分道路車(chē)道線(xiàn)被誤檢測(cè)為天空;在圖片4 和圖片5 中,汽車(chē)白色車(chē)頂?shù)囊徊糠直徽`分類(lèi)為天空區(qū)域。
以下將討論如何選擇本文算法中的參數(shù):天空區(qū)域像素偏轉(zhuǎn)角的最大值S,以及天空區(qū)域像素點(diǎn)灰度的最小值Vmin。S 和Vmin的物理意義非常清楚,本文在保證其中一個(gè)變量不變的前提下,通過(guò)改變另一變量的值研究識(shí)別結(jié)果的變化。
為此,本文收集了不同于第3.1 節(jié)所述數(shù)據(jù)集的額外圖片進(jìn)行測(cè)試,該圖片均為索尼XZP 相機(jī)(IMX400,底=1/2.3,像素1 900W,單位像素1.22,G 鏡頭,光圈2.0)拍攝的彩色圖片,且裁剪為640×480 像素大小。
從圖7(彩圖掃OSID 碼可見(jiàn))中可以得出結(jié)論,當(dāng)S=25,Vmin=180 時(shí)可以得到令人滿(mǎn)意的結(jié)果,天空檢測(cè)精度能夠達(dá)到98%。保持S=20,觀(guān)察Vmin的變化可以發(fā)現(xiàn),天空檢測(cè)精度隨著Vmin的增大逐漸提高,當(dāng)Vmin=180 時(shí)達(dá)到最高,然后逐漸降低;保持Vmin=180,觀(guān)察S的變化,天空檢測(cè)精度首先逐漸提高,直到S=20 后開(kāi)始減小。在天空先驗(yàn)中發(fā)現(xiàn)天空區(qū)域像素偏轉(zhuǎn)角集中在0~20 之間,天空像素最小值集中在105~255 之間。通過(guò)圖7 的實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),實(shí)驗(yàn)結(jié)果基本與本文提出的天空先驗(yàn)理論吻合。
本文提出一種基于先驗(yàn)知識(shí)的單幅圖像天空檢測(cè)算法,該算法主要利用天空先驗(yàn)知識(shí)和像素偏轉(zhuǎn)模型對(duì)天空像素進(jìn)行識(shí)別,并提出一種可以定量分析天空檢測(cè)實(shí)驗(yàn)結(jié)果的標(biāo)準(zhǔn)。與現(xiàn)有算法相比,該算法具有較強(qiáng)的魯棒性,不僅能夠識(shí)別邊界清楚的天空區(qū)域,而且對(duì)于邊界復(fù)雜的天空區(qū)域也有較好的識(shí)別效果。算法識(shí)別結(jié)果也證明了天空先驗(yàn)和像素偏轉(zhuǎn)模型的正確性,但是依靠單一的天空特征對(duì)圖片進(jìn)行識(shí)別,算法的適用性很難滿(mǎn)足要求,導(dǎo)致模型和算法的應(yīng)用范圍受到很大限制。因此,將像素偏轉(zhuǎn)角和其它天空像素特征作為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)特征進(jìn)行訓(xùn)練,利用多種特征綜合識(shí)別天空將彌補(bǔ)單一特征帶來(lái)的算法適用性差的問(wèn)題,將是下一步的研究方向。
Fig.7 Relationship of sky area detection accuracy with Vminand S圖7 天空區(qū)域檢測(cè)精度與Vmin和S 的關(guān)系