孟祥環(huán),羅素云
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海201620)
圖像中的天空像素檢測(cè)一直以來(lái)都是計(jì)算機(jī)視覺(jué)技術(shù)的挑戰(zhàn),并且具有廣泛的應(yīng)用,例如:自主車輛或無(wú)人機(jī)導(dǎo)航、實(shí)時(shí)天氣分類、圖像編輯、天空替換和場(chǎng)景解析。在城市氣候研究方面也發(fā)揮著重要作用,如:使用魚(yú)眼攝影計(jì)算天空視角因子(SVF),用于城市的氣象監(jiān)測(cè)[1]。
在計(jì)算機(jī)視覺(jué)的相關(guān)研究中,天空檢測(cè)技術(shù)大體上可以分為以下幾種,一種是遍歷圖片中的所有像素點(diǎn),逐像素地尋找與天空相關(guān)的像素點(diǎn)。這種方法側(cè)重于尋找與天空相關(guān)聯(lián)的單個(gè)像素,如采用一種基于物理的方法,利用圖片中的顏色變化來(lái)識(shí)別天空[2];基于顏色值和每個(gè)顏色通道的二維多項(xiàng)式生成天空像素概率圖,進(jìn)而進(jìn)行天空的識(shí)別[3];另一種方法則側(cè)重于尋找天空和地面邊界,利用改進(jìn)的能量函數(shù)優(yōu)化和圖像的梯度信息來(lái)優(yōu)化提取天空邊界線[4],然而實(shí)際的城市場(chǎng)景中,天空部分容易被建筑物、旗幟或其他障礙物隔開(kāi),造成天空區(qū)域不連續(xù),使天空區(qū)域的識(shí)別變得十分困難[5]。隨著深度學(xué)習(xí)的快速發(fā)展,多層卷積網(wǎng)絡(luò)被廣泛的應(yīng)用于各種場(chǎng)景之中,它通過(guò)使用訓(xùn)練好的語(yǔ)義分割卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,對(duì)室外圖像中的不同類別(如天空、建筑物、樹(shù)木和汽車)進(jìn)行分類,例如SegNet和模型框架,但是它并不是專門(mén)為天空像素識(shí)別而設(shè)計(jì)的,這種方法需要大量的數(shù)據(jù)集和高性能的計(jì)算機(jī)做支撐。
不同的天空識(shí)別方法間進(jìn)行橫向?qū)Ρ仁呛芾щy的。首先,在大多數(shù)的研究報(bào)告中并沒(méi)有準(zhǔn)確度指標(biāo);其次,很多論文使用不同的指標(biāo)和基準(zhǔn)數(shù)據(jù)集進(jìn)行報(bào)告。如:有報(bào)告得出90.4%的藍(lán)天像素正確檢測(cè)和13%的錯(cuò)誤檢測(cè)的結(jié)論[2];有論文得到了魚(yú)眼圖像中標(biāo)記的SVF均方根誤差(RMSE)為0.06[6];有論文得到80%的驗(yàn)證圖像的準(zhǔn)確度為0.90,75%的圖像的準(zhǔn)確度為0.95[7];有論文使用SegNet,得到了天空像素識(shí)別的準(zhǔn)確度為0.96[8]。
考慮到天空檢測(cè)的復(fù)雜性,本文提出了像素偏轉(zhuǎn)模型,利用該模型可以在廣泛的照明和天氣條件下對(duì)圖片中的天空部分進(jìn)行識(shí)別,相比以往算法,具有自適應(yīng)性。本文在Camvid語(yǔ)義分割數(shù)據(jù)上測(cè)試一些現(xiàn)有的天空像素識(shí)別方法,并證明了這種新的自適應(yīng)算法在識(shí)別天空時(shí)具有更高的精確度。
計(jì)算機(jī)儲(chǔ)存圖像時(shí)是以像素為基本單位的。為了更好的描述BRG三通道圖像像素灰度值的特點(diǎn),本文提出了像素偏轉(zhuǎn)模型如圖1所示,通過(guò)像素偏轉(zhuǎn)角可以簡(jiǎn)單快速的找到亮度值差異比較大的像素點(diǎn),這些像素點(diǎn)多代表天空、雪、河流等白色場(chǎng)景物體。
圖1 像素偏轉(zhuǎn)模型Fig.1 Pixel deflection model
BRG三通道圖像單個(gè)通道的最大灰度值為255,圖1將3個(gè)通道的灰度值放在三維坐標(biāo)系中表示,即X軸正方向代表B通道的像素值;Y軸正方向代表G通道的像素值;Z軸正方向代表R通道的像素值。則像素點(diǎn)的三維坐標(biāo)可以表示為b(x b,0,0),g(0,y g,0),r(0,0,z r)。
3個(gè)通道的最大灰度值點(diǎn)在三維空間構(gòu)成了一個(gè)三角形,如圖1(a)。這個(gè)三角形所在平面的法向量為定義此向量為三通道像素平面標(biāo)準(zhǔn)法向量,所有其它像素點(diǎn)構(gòu)成的三角形都應(yīng)該在空間體o-bgr內(nèi)部,其構(gòu)成的平面的法向量為=(z r y g,z r x b,y g x b),如圖1(b)所示。具體的公式推導(dǎo)過(guò)程如下:
設(shè)空間中有三點(diǎn)的坐標(biāo)為:p1=(x1,y1,z1),p2=(x2,y2,z2),p3=(x3,y3,z3)。則該平面內(nèi)有向量y3-y1,z3-z1)。 平面的法向量為式(1):
其中:a,b,c為式(2):
將點(diǎn)b,g,r代入平面的法向量方程得出像素平面的法向量,式(3):
像素平面法向量和標(biāo)準(zhǔn)像素法向量的夾角為式
(4):
θ即為像素偏轉(zhuǎn)角,arccos為反余弦函數(shù)。像素偏轉(zhuǎn)角可以反應(yīng)某一點(diǎn)像素在3個(gè)通道的分布規(guī)律。當(dāng)像素偏轉(zhuǎn)角比較大時(shí),3個(gè)通道的像素值偏差較大。當(dāng)像素偏轉(zhuǎn)角較小,接近于0時(shí),說(shuō)明此像素點(diǎn)3個(gè)通道的灰度值十分接近。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要大量的數(shù)據(jù)作為支撐,為了使本文的天空識(shí)別算法得到良好的識(shí)別效果,制作了一個(gè)包含3 231張照片的數(shù)據(jù)集,如圖2所示。這個(gè)數(shù)據(jù)集里的圖片來(lái)源于Corel1k數(shù)據(jù)集,SVT谷歌數(shù)據(jù)集,CityStreet城市街景數(shù)據(jù)集和實(shí)景拍攝。數(shù)據(jù)集中包含了豐富的場(chǎng)景,如:城市街道場(chǎng)景、高速行駛場(chǎng)景、空曠自然風(fēng)光、雨天陰天特殊場(chǎng)景和郊區(qū)林蔭道等。將其天空部分和非天空部分進(jìn)行提取,組合成天空和非天空提取圖片(分辨率為3 096×5 504),用于天空特征的提取和訓(xùn)練。
圖2 特征訓(xùn)練提取數(shù)據(jù)照片F(xiàn)ig.2 Image of feature training data extraction
待訓(xùn)練的特征經(jīng)過(guò)提取,特征包括三通道的像素值,像素偏轉(zhuǎn)角和像素點(diǎn)灰度最小值,經(jīng)過(guò)篩選得到319 552條數(shù)據(jù),部分?jǐn)?shù)據(jù)見(jiàn)表1,并將天空部分像素標(biāo)簽設(shè)置為10,非天空部分標(biāo)簽設(shè)置為0。
表1 訓(xùn)練過(guò)程中所用到的特征Tab.1 Features used in the training process
BP神經(jīng)網(wǎng)絡(luò)模型是一種基于誤差反向傳播算法的多層前饋網(wǎng)絡(luò),是目前建立變量與因變量之間關(guān)系最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,適用于本文通過(guò)特征參數(shù)預(yù)測(cè)能見(jiàn)度,其基本結(jié)構(gòu)由輸入層、隱藏層、輸出層組成。
其主要的公式如式(5)~式(10):
其中:輸入層用字母X定義,下標(biāo)用i表示,X i為輸入節(jié)點(diǎn);隱藏層用字母Y定義,下標(biāo)用j表示,Y j為隱藏層節(jié)點(diǎn);輸出層用字母Z定義,下標(biāo)用k表示,Z k為輸出節(jié)點(diǎn);式中為輸入層到隱藏層的權(quán)重為隱藏層到輸出層的權(quán)重,f為激活函數(shù);q1為隱藏層各個(gè)節(jié)點(diǎn)闕值,q2為輸出層各個(gè)節(jié)點(diǎn)闕值;L為誤差函數(shù),為數(shù)據(jù)中實(shí)際值,Z k為輸出節(jié)點(diǎn);η∈(0,1)為學(xué)習(xí)率,負(fù)號(hào)表示梯度下降的方向?yàn)樘荻认陆抵怠?/p>
輸入層即有5個(gè)輸入量,分別為X1、X2、X3、X4、X5,分別代表的是B G R三通道的像素值,V(x)三通道中最小的像素值和像素偏轉(zhuǎn)角θ。五個(gè)特征參數(shù),即輸入層為5個(gè)節(jié)點(diǎn)。
隱藏層的節(jié)點(diǎn)沒(méi)有明確的標(biāo)準(zhǔn),通常是通過(guò)公式來(lái)確定。在實(shí)際問(wèn)題中,隱含層節(jié)點(diǎn)數(shù)的選擇首先是參考公式(11)來(lái)確定節(jié)點(diǎn)數(shù)的大概范圍,然后用試湊法確定最佳的節(jié)點(diǎn)數(shù)。
其中,i為輸入層節(jié)點(diǎn)數(shù);j為隱含層節(jié)點(diǎn)數(shù);k為輸出層節(jié)點(diǎn)數(shù);a為0~10之間的常數(shù)。
對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行多次仿真訓(xùn)練,發(fā)現(xiàn)隱含層節(jié)點(diǎn)數(shù)為10時(shí),能夠達(dá)到最優(yōu)的預(yù)測(cè)效果。
基于圖片的特征參數(shù)及對(duì)應(yīng)的訓(xùn)練目標(biāo)值作為神經(jīng)網(wǎng)絡(luò)的輸入和輸出,隨機(jī)選取70%(223 686個(gè)樣本)的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,15%(47 933個(gè)樣本)的數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的驗(yàn)證,15%(47 933個(gè)樣本)的數(shù)據(jù)進(jìn)行模型的測(cè)試評(píng)估。通過(guò)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值的回歸分析如圖3所示,可以看出數(shù)據(jù)的訓(xùn)練結(jié)果優(yōu)秀,多元統(tǒng)計(jì)系數(shù)R2為0.971 22,預(yù)測(cè)值與實(shí)際值的一致性較好。因此,基于天空偏轉(zhuǎn)模型的BP神經(jīng)網(wǎng)絡(luò)天空識(shí)別準(zhǔn)確可靠。
圖3 BP神經(jīng)網(wǎng)絡(luò)的回歸分析Fig.3 Regression analysis of BP neural network
圖片中會(huì)有小部分的明亮干擾點(diǎn),這些干擾點(diǎn)極易被誤識(shí)別為天空像素。這些干擾點(diǎn)的主要來(lái)源有:白色建筑、斑馬線、反光玻璃、大理石雕刻、白色廣告牌,白色車輛和穿白色衣服的行人等。為了準(zhǔn)確的識(shí)別出天空,去除個(gè)別像素點(diǎn)的干擾,對(duì)錯(cuò)誤識(shí)別的像素點(diǎn)進(jìn)行剔除。首先,經(jīng)過(guò)BP神經(jīng)網(wǎng)絡(luò)模型得到二分類圖片(天空和非天空);其次,對(duì)二分類圖片進(jìn)行連通域計(jì)算;最后,舍棄連通域面積小于10的像素點(diǎn)。誤識(shí)別像素剔除效果如圖4所示。
圖4 誤識(shí)別像素剔除效果Fig.4 Error recognition pixel culling effect
通過(guò)圖4中的二分類圖片可以看出由于白色建筑和斑馬線的存在,造成了較多天空區(qū)域像素點(diǎn)的錯(cuò)誤識(shí)別。在經(jīng)過(guò)本文算法處理后的二分類圖像中,可以看出誤識(shí)別的像素點(diǎn)被很好的剔除掉了,并準(zhǔn)確的識(shí)別到了天空部分。
本文的算法流程如圖5所示。首先對(duì)待檢測(cè)的圖像I進(jìn)行遍歷,得到初步的二分類圖像I1;計(jì)算二分類圖像的連通域,刪除面積小于10的連通域,得到精確的二分類圖像I2;利用公式(12)得到最終的識(shí)別結(jié)果。
圖5 算法的流程圖Fig.5 Flow chart of the algorithm
其中:I為待檢測(cè)圖像;I2為精確的二分類圖像;R為識(shí)別結(jié)果。
Camvid是第一個(gè)帶有語(yǔ)義標(biāo)簽的視頻集合數(shù)據(jù)集,提供了ground truth標(biāo)簽,將像素與32個(gè)語(yǔ)義種類相關(guān)聯(lián)。該數(shù)據(jù)集從行駛汽車的視角進(jìn)行捕捉,解決了算法之間進(jìn)行定量評(píng)估時(shí)實(shí)驗(yàn)數(shù)據(jù)集的不統(tǒng)一的問(wèn)題。Camvid的32個(gè)語(yǔ)義種類中包括天空,數(shù)據(jù)集中天空部分標(biāo)注的像素為:R=128,G=128,B=128,因此可以對(duì)不同算法的天空識(shí)別準(zhǔn)確率進(jìn)行定量評(píng)估。
在進(jìn)行語(yǔ)義分割結(jié)果評(píng)價(jià)時(shí),常常將預(yù)測(cè)出來(lái)的結(jié)果分為4個(gè)部分:true positive,false positive,true negative,false negative,其中negative就是指非物體標(biāo)簽的部分(可以直接理解為背景),positive就是指有標(biāo)簽的部分,如圖6所示。prediction圖被分成4個(gè)部分,其中大塊的白色斜線標(biāo)記的是true negative(TN,預(yù)測(cè)中真實(shí)的背景部分),紅色線部分標(biāo)記是false negative(FN,預(yù)測(cè)中被預(yù)測(cè)為背景,但實(shí)際上并不是背景的部分),藍(lán)色的斜線是false positive(FP,預(yù)測(cè)中分割為某標(biāo)簽的部分,但是實(shí)際上并不是該標(biāo)簽所屬的部分),中間熒光黃色塊就是true positive(TP,預(yù)測(cè)的某標(biāo)簽部分,符合真值)。
IoU指標(biāo)就是交并比,在語(yǔ)義分割中一直作為標(biāo)準(zhǔn)度量被使用。交并比不僅僅在語(yǔ)義分割中使用,在目標(biāo)檢測(cè)等方向也是常用的指標(biāo)之一,如圖7所示。其定義為式(13):
圖6 預(yù)測(cè)結(jié)果Fig.6 Prediction results
圖7 語(yǔ)義分割的評(píng)價(jià)指標(biāo)——IoUFig.7 Evaluation index of semantic segmentation--IoU
將本文算法與Otsu算法、YeHu算法、Graphcut算法和Mask-Rcnn算法進(jìn)行比較。對(duì)比實(shí)驗(yàn)基于ubuntu系統(tǒng),Python語(yǔ)言和Camvid數(shù)據(jù)集實(shí)施,識(shí)別結(jié)果如圖8所示。
圖8 算法主觀評(píng)價(jià)Fig.8 Subjective evaluation of the algorithm
從圖8可以看出Otsu和Yehu算法的識(shí)別效果最差,graph-cut和Mask Rcnn的識(shí)別效果較好,本文的識(shí)別效果最為出色。Otsu和Yehu算法存在天空錯(cuò)誤識(shí)別的問(wèn)題,具體表現(xiàn)在白色物體的錯(cuò)誤識(shí)別,均有較大面積的非天空區(qū)域被錯(cuò)誤識(shí)別;Grapncut算法對(duì)天空部分的識(shí)別優(yōu)于Otsu和Yehu算法,但是對(duì)天空細(xì)節(jié)的識(shí)別不夠精確,建筑的誤識(shí)別也比較嚴(yán)重;Mask Rcnn算法識(shí)別的準(zhǔn)確度較高,基本沒(méi)有錯(cuò)誤識(shí)別,但是天空和背景的邊界不夠清晰,過(guò)于簡(jiǎn)單;本文算法的處理結(jié)果優(yōu)于本文提到的其他算法,能夠在準(zhǔn)確識(shí)別圖片中天空部分的同時(shí)排除白色背景的干擾,能夠準(zhǔn)確找到天空和背景的邊界,尤其是天空和樹(shù)木間的復(fù)雜邊界部分,本文算法相比于其他算法結(jié)果優(yōu)秀。
為了定量的分析算法的識(shí)別結(jié)果,本文對(duì)不同算法在Camvid數(shù)據(jù)集上的識(shí)別結(jié)果進(jìn)行了統(tǒng)計(jì),結(jié)果見(jiàn)表2。從表2可以看到,5種算法均能將圖片中的天空部分識(shí)別出來(lái),但是不同算法對(duì)非天空部分的錯(cuò)誤識(shí)別差別較大;Otsu算法、YeHu算法、Graph-cut算法的IoU值較低,這主要是因?yàn)?種算法錯(cuò)誤識(shí)別的天空像素點(diǎn)比較多;Mask-Rcnn算法相比于其他算法,錯(cuò)誤識(shí)別的天空部分面積最小,但是由于該算法識(shí)別到的天空像素總量相對(duì)較少,IoU的值并沒(méi)有很高;本文算法正確識(shí)別到的天空像素最接近Camvid數(shù)據(jù)集里原有天空像素面積,算法的天空識(shí)別效果較為出色,IoU值最高,達(dá)到了91.7%。
表2 算法的定量分析Tab.2 Quantitative analysis of the algorithm
本文提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的天空區(qū)域檢測(cè)算法,并創(chuàng)新性的提出了天空偏轉(zhuǎn)模型,利用該模型成功的描述了天空像素點(diǎn)的特征。本文整理了多場(chǎng)景條件下的天空數(shù)據(jù)集,收集了不同天氣情況下的天空像素特征,并成功用于BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到了很好的識(shí)別結(jié)果;將本文算法與Otsu算法、YeHu算法、Graph-cut算法和Mask-Rcnn算法進(jìn)行主觀評(píng)價(jià)和定量分析,從主觀評(píng)價(jià)可以看出本文算法在對(duì)天空邊緣細(xì)節(jié)的處理和排除背景中白色物體的干擾方面,相比與其他算法表現(xiàn)突出;從算法的定量分析可以看出本文算法的交并比領(lǐng)先于其他算法,達(dá)到了91.7%。