王懷章, 蔡立志, 張 娟
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620; 2.上海計(jì)算機(jī)軟件技術(shù)開發(fā)中心,上海 201112)
近年來,隨著私家車的普及,交通事故頻繁發(fā)生,因此駕駛安全問題變得尤為重要。隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,自動(dòng)駕駛技術(shù)引起廣泛關(guān)注。對(duì)于自動(dòng)駕駛而言,最重要的就是找到道路區(qū)域,因此道路檢測技術(shù)顯得尤為重要。為了穩(wěn)定、準(zhǔn)確地檢測道路區(qū)域,人們開發(fā)出許多使用附加傳感器進(jìn)行道路檢測的算法[1],例如使用全球定位系統(tǒng)(GPS)獲取位置信息。但在現(xiàn)實(shí)生活中,人們可以通過眼睛獲得復(fù)雜的交通信息并安全駕駛。因此,本文的重點(diǎn)是挖掘更深層次的視覺信息。
隨著傳感器和計(jì)算機(jī)硬件的迅速發(fā)展,高精度檢測方法得以實(shí)現(xiàn)。Chen Z等人[2]在貝葉斯網(wǎng)絡(luò)框架內(nèi),提出了可以同時(shí)檢測道路和邊界的深度神經(jīng)網(wǎng)絡(luò)。Yuan Y等人[3]設(shè)計(jì)了一種在線架構(gòu)學(xué)習(xí)的方法,可以從視頻序列中提取可行駛道路區(qū)域,該方法結(jié)合了密集尺度不變特征變換(scale-invariant feature transform,SIFT)、方向梯度直方圖(histogram of oriented gradient,HOG)和局部二值模式(local binary pattern,LBP)的特征,并且顯著增強(qiáng)了灰度變化和陰影的魯棒性。Zhang W[4]使用高斯差分濾波器將激光雷達(dá)掃描區(qū)域分為道路區(qū)域和非道路區(qū)域。
深度學(xué)習(xí)近年來在許多領(lǐng)域都取得了較好的成績,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)也引起了學(xué)者的廣泛關(guān)注。Oliveira G L等人[5]提出了一種利用語義分割檢測道路區(qū)域并解決道路場景分割的方法。Long J等人[6]提出全卷積網(wǎng)絡(luò)(fully conwolutional network,FCN)后,許多研究人員開始使用具有相同的結(jié)構(gòu)方法來進(jìn)行道路檢測。Caltagirone L等人[7]將激光雷達(dá)(LiDAR)點(diǎn)云轉(zhuǎn)換為2D頂視圖圖像,并在分割道路時(shí)將2D頂視圖圖像作為FCN的輸入。最近,Asvadi A等人[8]開發(fā)了一種將激光雷達(dá)和彩色相機(jī)數(shù)據(jù)集成到深度學(xué)習(xí)框架中的車輛檢測系統(tǒng)。
此外,Bellone M等人在具有挑戰(zhàn)性場景的3D云數(shù)據(jù)道路檢測中使用了支持向量機(jī)(support vector machines,SVM)[9]。Zhou S等人[10]使用SVM來構(gòu)建支持在線學(xué)習(xí)的道路檢測算法,這意味著該方法可以更新訓(xùn)練數(shù)據(jù)并減少分類錯(cuò)誤的可能性。另外,道路檢測的任務(wù)不僅限于傳統(tǒng)的道路場景,還涵蓋了一些復(fù)雜而嚴(yán)峻的場景,例如濕滑的道路和惡劣的天氣。
Goodfellow I等人提出的生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)[11]引起極大關(guān)注,并迅速應(yīng)用于各個(gè)領(lǐng)域。GAN的核心是一種生成對(duì)抗性損失,它使生成的圖像盡可能與原始圖像相似。人們?cè)贕AN的基礎(chǔ)上提出了各種對(duì)抗網(wǎng)絡(luò)。Zhao J等人[12]提出一種雙判別器周期一致的GAN(double-discriminator cycle-GAN,DD-CycleGAN),將有霧圖像轉(zhuǎn)換為無霧圖像。
本文使用DD-CycleGAN作為全文的基礎(chǔ)框架網(wǎng)絡(luò),學(xué)習(xí)原始圖像的道路區(qū)域與標(biāo)注圖像的道路區(qū)域之間的映射函數(shù),實(shí)現(xiàn)對(duì)道路區(qū)域的檢測。接著,將殘差密集塊[13]以及空間CNN[14]添加到生成器中,利用殘差密集塊和空間CNN進(jìn)一步增強(qiáng)生成器的特征提取能力。最后,本文提出一種自適應(yīng)的優(yōu)化模型,對(duì)于轉(zhuǎn)換后存在小孔洞的圖片,使用膨脹與腐蝕算法自動(dòng)檢測并填充孔洞。
本文使用的神經(jīng)網(wǎng)絡(luò)模型(如圖1所示)建立在DD-CycleGAN框架之上,該模型可以提取道路特征并完成道路檢測的任務(wù)。
本文實(shí)驗(yàn)部分使用了2個(gè)生成器,每個(gè)生成器配備了2個(gè)具有相同結(jié)構(gòu)的判別器。通過增加1個(gè)具有相同結(jié)構(gòu)的判別器,模型可以更好地逼近最佳判別器,并減少原始CycleGAN對(duì)道路區(qū)域的誤判。向生成器添加空間CNN和殘差密集塊增強(qiáng)生成器提取特征的能力。
如圖1(a)所示,本文的網(wǎng)絡(luò)模型具有兩個(gè)映射功能:第一個(gè)是G映射,第二個(gè)是F映射。對(duì)于G映射,其映射過程可以表示為:G:X→Y,即G(x)=y。類似地,F(xiàn)映射的映射過程可以表示為:F:Y→X,即F(y)=x。判別器DX1和DX2的目的是找到X域中的圖像x與映射的圖像F(y)之間的差異。同樣,判別器DY1和DY2的目的是找出Y域中的圖像y與映射圖像G(x)之間的差異。
圖1(b)為網(wǎng)絡(luò)的正向訓(xùn)練過程。生成器G生成圖像y時(shí),輸入到生成器G中的圖像是X域中的圖像x。生成器F生成圖像x時(shí)的輸入圖像是生成器G的輸出圖像。最終輸出圖像要與輸入圖像難以區(qū)分開,即x→G(x)→F(G(x))≈x。
如圖1(c)所示的是網(wǎng)絡(luò)的反向訓(xùn)練過程。生成器F生成圖像x時(shí),輸入到生成器F中的圖像是Y域中的圖像y。生成器G生成圖像y時(shí)的輸入圖像是生成器F的輸出圖像。最終輸出圖像要與輸入圖像難以區(qū)分開,即y→F(y)→G(F(y))≈y。
圖1 整體網(wǎng)絡(luò)模型
Deepak P等人的研究[15]表明,提高網(wǎng)絡(luò)性能的有效方法之一是向網(wǎng)絡(luò)中添加損失函數(shù)。本文利用L1損失函數(shù)[16]測量循環(huán)一致性損失,循環(huán)一致性損失函數(shù)設(shè)置為
Lcyc(G,F)=Ex~pdta(x)[‖F(xiàn)(G(x))-x‖1]+
Ey~pdta(y)[‖G(F(y))-y‖1]
(1)
式中G和F為兩個(gè)映射函數(shù)。這兩個(gè)函數(shù)應(yīng)滿足循環(huán)一致性:對(duì)于X域中的圖像x,在映射后仍可以映射回原始圖像。類似地,對(duì)于Y域中的圖像y,在映射后仍可以映射回原始圖像。
對(duì)于生成器G及其兩個(gè)判別器DY1和DY2,判別器DY1損失函數(shù)設(shè)置如下
LGAN(G,DY1,X,Y)=Ey~pdta(y)[logDY1(y)]+
Ex~pdta(x)[log(1-DY1(G(x)))]
(2)
映射函數(shù)G的目的是使生成的圖像G(x)與Y域中對(duì)應(yīng)的圖像盡可能相似。同時(shí),G期望最小化損失函數(shù)。類似地,判別器DY2的損失函數(shù)如下
LGAN(G,DY2,X,Y)=Ey~pdta(y)[logDY2(y)]+
Ex~pdta(x)[log(1-DY2(G(x)))]
(3)
生成器G的目標(biāo)損失設(shè)置為
LGAN(G,DY1,DY2,X,Y)=λ1LGAN(G,DY1,X,Y)+
(1-λ1)LGAN(G,DY2,X,Y)
(4)
綜上,最終目標(biāo)損失函數(shù)設(shè)定如下
L(G,F,DX1,DX2,DY1,DY2)=LGAN(G,DY1,DY2,X,Y)+LGAN(F,DX1,DX2,Y,X)+λ3Lcyc(G,F)
(5)
其中,λ1,λ2和λ3分別表示
LGAN(G,DY1,X,Y),LGAN(G,DX1,Y,X)和Lcyc(G,F)的權(quán)重。
本文的最終目標(biāo)是
L(G,F,DX1,DX2,DY1,DY2)
(6)
式中 生成器G和F期望最終目標(biāo)損失函數(shù)最小,判別器D期望損失函數(shù)最大。
1)生成器架構(gòu)
生成器由三部分組成:編碼器,轉(zhuǎn)換器和解碼器。首先,編碼器對(duì)輸入圖像進(jìn)行下采樣提取特征;然后,轉(zhuǎn)換器將輸入圖像的特征向量轉(zhuǎn)換為目標(biāo)域的特征向量;最后,由解碼器進(jìn)行上采樣從特征向量中獲得低層特征。網(wǎng)絡(luò)如圖2所示。
圖2 生成器結(jié)構(gòu)
本文的生成器網(wǎng)絡(luò)與原始CycleGAN之間的區(qū)別在于:本文在編碼器后加入了空間CNN模塊,使得空間信息能在同層神經(jīng)元上傳遞,增強(qiáng)了空間信息的傳遞。在轉(zhuǎn)換器部分,使用殘差密集塊替代了原始的殘差塊,進(jìn)一步提高生成器生成目標(biāo)圖像的能力。
2)判別器架構(gòu)
判別器使用的是70×70 的PatchGAN,其目的是,確定每個(gè)大小為70×70圖像補(bǔ)丁是否由生成器生成。與使用完整圖像的判別器相比,使用這種補(bǔ)丁級(jí)別的判別器參數(shù)更少,并且可以將其應(yīng)用于任意大小的圖像做完全卷積。本文使用的雙分支判別器網(wǎng)絡(luò)如圖3所示。
圖3 判別器結(jié)構(gòu)
3)優(yōu)化器
GAN生成的道路區(qū)域可能存在小孔洞或誤檢的問題,這會(huì)降低道路檢測的準(zhǔn)確性。為了解決這個(gè)問題,提高道路檢測的精度,本文提出一種自適應(yīng)的優(yōu)化方法來檢測和優(yōu)化GAN輸出的結(jié)果。具體過程如圖4所示。
自適應(yīng)的優(yōu)化模型將自動(dòng)檢測圖像中的道路區(qū)域是否存在孔洞,若檢測到孔洞存在,優(yōu)化模型會(huì)使用膨脹和腐蝕算法自動(dòng)填充孔洞。解決孔洞問題后,自適應(yīng)模型將繼續(xù)檢測圖像中是否存在誤檢的道路區(qū)域。誤檢的道路區(qū)域是指圖像中沒有道路被誤認(rèn)為是道路的區(qū)域。檢測到誤檢的道路區(qū)域,自適應(yīng)模型將使用連通域檢測方法[17,19]來優(yōu)化結(jié)果。道路區(qū)域誤檢的原因是因?yàn)橹車矬w的顏色和紋理與道路區(qū)域相似,因此誤檢道路區(qū)域通常是連通且規(guī)則的。完成這些操作后,模型將生成最終結(jié)果。
圖4 優(yōu)化模型
本文使用KITTI道路基準(zhǔn)數(shù)據(jù)集來評(píng)估所提出的道路檢測方法。該數(shù)據(jù)集包括289張帶標(biāo)注圖像的訓(xùn)練圖像以及290張測試圖像。此外,這些圖像的像素大小約為375×1 242。評(píng)估模型的性能使用以下標(biāo)準(zhǔn)
(7)
(8)
(9)
(10)
KITTI服務(wù)器根據(jù)指標(biāo)maxF對(duì)提交的方法進(jìn)行排名,其公式如下所示
(11)
式中τ為分類閾值,使用該閾值可最大化F(Fmeasure)。
實(shí)驗(yàn)使用配備2.5 GHz,64核CPU,GTX 1080Ti GPU和128 GB內(nèi)存的服務(wù)器,訓(xùn)練環(huán)境是TensorFlow 1.12.0,Python3.6.0。全文實(shí)驗(yàn)過程中,設(shè)置λ1=0.5,λ2=0.5,λ3=10。本文選用批量大小為1的Adam優(yōu)化器,設(shè)置學(xué)習(xí)率為0.000 2。
最終的實(shí)驗(yàn)結(jié)果提交給KITTI服務(wù)器,以便將本文最終的實(shí)驗(yàn)結(jié)果與其他道路檢測的結(jié)果進(jìn)行比較。在提交之前,需要將實(shí)驗(yàn)結(jié)果轉(zhuǎn)換到BEV(bird’s eye view)空間,因?yàn)镵ITTI服務(wù)器評(píng)估實(shí)驗(yàn)結(jié)果必須在BEV空間中進(jìn)行。表1是近年來提交方法和本文方法的比較。
表1 方法比較 %
從表1中方法的比較可以發(fā)現(xiàn),雖然本文方法在評(píng)估指標(biāo)AP上與Road Segmentation有一定差距,但在maxF,PRE(precision)和假真正類(FPR)三個(gè)主要指標(biāo)上,本文方法都有較為顯著的提高。對(duì)于RD-CycleGAN,從表中可以看出,本文方法相較于RD-CycleGAN在各個(gè)指標(biāo)上都有較為顯著的提升。此外,雖然mAP和Multi-task CNN在個(gè)別指標(biāo)上略微領(lǐng)先本文方法,但是在其他幾個(gè)主要指標(biāo)上,本文方法都有比較明顯的提升。
圖5為本文方法在KITTI基準(zhǔn)服務(wù)器上的最終測試結(jié)果。從圖中可以看出,本文提出的模型可以較好地提取圖像中的道路區(qū)域,而且誤檢以及漏檢的區(qū)域也比較少。此外,在不同場景中本文提出的模型都可以有效地提取出道路區(qū)域,具有較強(qiáng)的泛化能力。綜上,本文的模型在大多數(shù)情況下都可以有效提取出圖像中的道路區(qū)域,所以本文方法具有一定的研究意義與應(yīng)用價(jià)值。
圖5 KITTI基準(zhǔn)服務(wù)器測試結(jié)果
本文提出一種結(jié)合深度學(xué)習(xí)算法和自適應(yīng)算法的道路檢測方法。引入DD-CycleGAN作為全文的基礎(chǔ)框架網(wǎng)絡(luò)來完成道路檢測任務(wù)。DD-CycleGAN中的雙判別器共同作用,使輸出無限接近最優(yōu)解。為了增強(qiáng)生成器的特征提取能力,在生成器中添加了空間CNN以及殘差密集塊。GAN的輸出圖像存在一些小孔洞和誤檢區(qū)域,針對(duì)這些問題,本文設(shè)計(jì)了一種自適應(yīng)優(yōu)化模型。該優(yōu)化模型使用傳統(tǒng)算法自動(dòng)檢測和填充GAN輸出結(jié)果中的小孔洞,并去除誤檢道路區(qū)域。最終實(shí)驗(yàn)結(jié)果提交給KITTL服務(wù)器,并在KITTI道路基準(zhǔn)測試中取得了較好的成績。整體的最大F測度為90.46 %,精度為92.15 %。該數(shù)據(jù)說明本文方法明顯優(yōu)于傳統(tǒng)道路檢測算法,能夠較為準(zhǔn)確有效地完成道路檢測任務(wù),具有一定的研究和應(yīng)用價(jià)值。