何 宏,劉 敖,邱 佳,朱子銳
(湖南工程學(xué)院 計(jì)算機(jī)與通信學(xué)院,湘潭 411104)
隨著社會(huì)發(fā)展與科技進(jìn)步,智能駕駛[1]行業(yè)得到了社會(huì)各方面的關(guān)注,而車道線檢測(cè)是智能駕駛必不可少的一部分.車道線檢測(cè)過(guò)程包含視覺(jué)傳感器采集圖像[2]、圖像預(yù)處理[3]、圖像分割和結(jié)果輸出等.實(shí)現(xiàn)車道線檢測(cè)的方法依照算法類型可歸為兩類:傳統(tǒng)的車道線檢測(cè)方法和基于深度學(xué)習(xí)的車道線檢測(cè)方法.對(duì)比傳統(tǒng)方法和深度學(xué)習(xí)方法[4]:傳統(tǒng)方法以車道線擬合為主,利用人工標(biāo)注,結(jié)合霍夫變換[5]和卡爾曼濾波器[6]實(shí)現(xiàn)車道線檢測(cè),這些方法簡(jiǎn)單快速,但易受環(huán)境影響,魯棒性差.隨著21 世紀(jì)深度學(xué)習(xí)興起,人們開始使用神經(jīng)網(wǎng)絡(luò)進(jìn)行車道線的識(shí)別:Neven 等提出一種基于CNN 的LaneNet 網(wǎng)絡(luò)車道線實(shí)例分割方法,結(jié)合聚類算法實(shí)現(xiàn)對(duì)車道線的分割[7-8];鄧天民等[9]提出一種改進(jìn)SegNet 的車道線檢測(cè)算法,摒棄傳統(tǒng)聚類過(guò)程,利用二值化圖像結(jié)合連通域約束對(duì)車道特征點(diǎn)進(jìn)行分類.FCN 圖像分割方法[10]同樣是目前的一種主流算法,該算法將CNN 最后的輸出層修改為卷積層,構(gòu)建出全卷積神經(jīng)網(wǎng)絡(luò).這種端到端的網(wǎng)絡(luò)可以接收任意尺寸的圖像,通過(guò)卷積和上采樣對(duì)圖像進(jìn)行分割,相比傳統(tǒng)方法而言,該算法魯棒性更強(qiáng),分割效果更好.
但FCN 的車道線檢測(cè)實(shí)驗(yàn)結(jié)果表明:FCN 在光線昏暗、車輛遮擋等復(fù)雜環(huán)境下,對(duì)車道線的檢測(cè)存在漏檢情況,且分割不夠細(xì)膩.針對(duì)此問(wèn)題,本文基于FCN 結(jié)構(gòu)基礎(chǔ),分別針對(duì)編碼和解碼部分進(jìn)行需求性的改進(jìn).在編碼部分構(gòu)建了混合的殘差神經(jīng)網(wǎng)絡(luò)[11],獲取多分辨率特征信息以滿足分割需求.該模型隨著網(wǎng)絡(luò)深入,逐漸并行生成分辨率子網(wǎng)絡(luò),并持續(xù)保持高分辨率特征圖,以此構(gòu)造多尺度網(wǎng)絡(luò)結(jié)構(gòu)[12].編碼過(guò)程中各子網(wǎng)絡(luò)之間相互交換信息,進(jìn)行多尺度融合,實(shí)現(xiàn)精細(xì)特征提取.解碼方面,為實(shí)現(xiàn)車道線圖像的細(xì)膩分割,本文設(shè)計(jì)了多尺度特征密集融合模塊MSFDF module,該模塊通過(guò)在解碼過(guò)程中多次融合低分辨率特征圖,實(shí)現(xiàn)強(qiáng)化特征表現(xiàn),以達(dá)到更優(yōu)的分割效果.
2015 年,加州大學(xué)伯克利分校的Long 等人在經(jīng)典分類網(wǎng)絡(luò)的基礎(chǔ)上提出了全卷積神經(jīng)網(wǎng)絡(luò)FCN,這種端到端的網(wǎng)絡(luò)可實(shí)現(xiàn)圖像的語(yǔ)義分割,且顯著提升了分割的計(jì)算效率和預(yù)測(cè)性能.FCN 簡(jiǎn)單輕便,如圖1 所示,但FCN 在復(fù)雜場(chǎng)景的分割效果還不夠理想:其一,F(xiàn)CN 的編碼結(jié)構(gòu)是單一的卷積神經(jīng)網(wǎng)絡(luò),僅通過(guò)卷積,池化操作降低圖像分辨率,而沒(méi)有保留高分辨率圖像,這就會(huì)導(dǎo)致部分信息永久性丟失,從而導(dǎo)致整體精確度不高;其二,本文發(fā)現(xiàn)FCN 的解碼部分采用高倍上采樣,特征圖尺寸的驟然提升會(huì)導(dǎo)致圖像丟失過(guò)多信息,影響最終的分割效果.這些不足會(huì)在智能車、智能駕駛等應(yīng)用領(lǐng)域產(chǎn)生重大影響,更有可能帶來(lái)無(wú)法估量的損失.
圖1 FCN車道線檢測(cè)結(jié)果
通過(guò)研究傳統(tǒng)FCN 網(wǎng)絡(luò)結(jié)構(gòu),本文分別從編碼、解碼兩部分加以改進(jìn),構(gòu)造出一種多尺度特征融合的圖像分割網(wǎng)絡(luò)MFD-FCN.
模型編碼器主要作用于圖像特征提取,F(xiàn)CN 編碼采用多層卷積提取圖像特征,這樣的編碼器結(jié)構(gòu)簡(jiǎn)單,且每次卷積都會(huì)丟失部分信息,從而導(dǎo)致特征缺失,檢測(cè)結(jié)果不夠準(zhǔn)確.本文通過(guò)改進(jìn)FCN 編碼結(jié)構(gòu),構(gòu)建一種多分辨率并行的主干網(wǎng)絡(luò)[12],網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,主干網(wǎng)絡(luò)包含4 個(gè)階段,主體為四個(gè)并行子網(wǎng),分辨率以2 為倍數(shù)等比例降低.第一階段包含5 個(gè)單元,前4 個(gè)單元每個(gè)分辨率進(jìn)行4次填充為1 的3×3 卷積,每個(gè)卷積后加一層BN(Batch Normalization)和一層ReLU 激活函數(shù),最后通過(guò)一個(gè)交換單元,即非填充3×3 卷積將特征圖大小減小為1/2,生成新的并行子網(wǎng).第二、三、四階段與第一階段類似,不同之處在于交換單元部分跨分辨率操作需要多個(gè)非填充3×3 卷積降低分辨率.
圖2 FCN與MFD-FCN對(duì)比圖
該網(wǎng)絡(luò)將高低分辨率子網(wǎng)絡(luò)并行連接,使網(wǎng)絡(luò)加深的同時(shí)持續(xù)保持高分辨率特征圖.在每個(gè)STAGE 模塊結(jié)點(diǎn),交換單元將相似類別及相同深度的分辨率特征圖進(jìn)行交互,高分辨率特征圖通過(guò)3×3 卷積降低尺寸和匹配通道數(shù),低分辨率特征圖通過(guò)1×1 卷積匹配通道數(shù),通過(guò)雙線性插值提高分辨率,并將同尺寸同通道特征圖像素相加融合.相比反卷積,雙線性插值無(wú)須訓(xùn)練,速度更快.前饋過(guò)程中高低分辨率重復(fù)地進(jìn)行多尺度融合,以此提升特征圖的表示效果.由此,原始圖像中的信息能夠得到更好地表達(dá).
關(guān)于網(wǎng)絡(luò)的解碼部分,不同于傳統(tǒng)FCN 直接通過(guò)高倍反卷積恢復(fù)原圖尺寸,本文參考一種跳級(jí)結(jié)構(gòu)的上采樣方法[10],在解碼部分設(shè)計(jì)了一種多尺度特征密集融合模塊MSFDF module 將深層預(yù)測(cè)與淺層預(yù)測(cè)結(jié)合.如圖3 所示,模塊中各級(jí)別分辨率特征圖fi先通過(guò)1×1 卷積統(tǒng)一通道數(shù),再與i-1 個(gè)低級(jí)別分辨率特征圖相加融合,得到新的同級(jí)別分辨率特征圖.最終的分辨率特征圖進(jìn)行上采樣和reshape,得到結(jié)果 Mask 圖 .
圖3 MSFDF模塊結(jié)構(gòu)圖
以下為模塊中各步驟操作表達(dá)式:
式(1)中,fi是指主干網(wǎng)絡(luò)的層次特征輸出圖,為圖 3 中的 f1至 f4,G 采用 1×1 卷積實(shí)現(xiàn)通道統(tǒng)一,θi為反卷積輸出特征圖像.
式(2)為各級(jí)特征圖融合公式,H 表示對(duì)特征圖像進(jìn)行上采樣操作,因?yàn)閮H融合低級(jí)特征,所有j取1 到i-1,統(tǒng)一圖像尺寸后相加融合得到τi.
式(3)中Φ 代指特征元素相加融合,將反卷積輸出特征θi與融合輸出特征τi進(jìn)行Φ操作得到第i級(jí)輸出特征圖Fi,本文模塊有四級(jí)輸出,即F1,F(xiàn)2,F(xiàn)3,F(xiàn)4.
式(2)中的上采樣實(shí)際是對(duì)特征圖進(jìn)行2i-j倍反卷積操作來(lái)統(tǒng)一特征圖尺寸,反卷積輸出尺寸計(jì)算公式如下:
其中o 表示反卷積輸出圖像尺寸,i 表示反卷積輸入圖像尺寸,p 為填充(padding)大小,s 為步長(zhǎng)(strides)大小,k 為反卷積核尺寸.
該模塊將網(wǎng)絡(luò)中各分辨率子網(wǎng)絡(luò)的輸出結(jié)果統(tǒng)一通道,分級(jí)上采樣,各級(jí)分辨率特征圖相交融合,防止了因特征圖大幅度尺寸變化和維度的驟然提升而導(dǎo)致的圖像信息丟失.后續(xù)實(shí)驗(yàn)驗(yàn)證了MSFDF 有助于網(wǎng)絡(luò)對(duì)車道線圖像分割更加細(xì)膩,由此可見(jiàn)該模塊對(duì)MFD-FCN 的重要性.
本文借用了深度學(xué)習(xí)相關(guān)理論知識(shí)和傳統(tǒng)圖像處理方法完成算法實(shí)現(xiàn).實(shí)驗(yàn)階段,本文使用PaddlePaddle 框架和OpenCV 庫(kù)函數(shù),通過(guò)CUDA7.0 與 CUDNN7.6,采用 python3.7 語(yǔ)言實(shí)現(xiàn)算法內(nèi)容.硬件方面,所用GPU 為V100,配置32 G 運(yùn)行內(nèi)存,100 G 存儲(chǔ)硬盤.
本文使用 CULane 數(shù)據(jù)集[13].CULane 數(shù)據(jù)集是一個(gè)大規(guī)模、用于車道線檢測(cè)學(xué)術(shù)研究并具有挑戰(zhàn)性的數(shù)據(jù)集.數(shù)據(jù)集分為88880 個(gè)訓(xùn)練集,9675 個(gè)驗(yàn)證集和34680 個(gè)測(cè)試集,圖片尺寸為1640×580.相比一般車道線數(shù)據(jù)集,CULane 數(shù)據(jù)集數(shù)據(jù)量更多,場(chǎng)景更復(fù)雜,更能體現(xiàn)模型性能.
為了提升模型的魯棒性和泛化能力,本文對(duì)已有數(shù)據(jù)進(jìn)行了數(shù)據(jù)增廣,手段包含鏡像、旋轉(zhuǎn)、對(duì)比度,如圖4 所示,同時(shí)為了滿足網(wǎng)絡(luò)尺寸要求,通過(guò)reshape 操作縮小了圖片尺寸,由 1640×580 縮小為1024×512.由于本文主要研究如何改進(jìn)網(wǎng)絡(luò)架構(gòu),所以簡(jiǎn)化訓(xùn)練目標(biāo),通過(guò)二值化標(biāo)簽圖來(lái)提取車道線特征如圖4 所示,僅實(shí)現(xiàn)二分類.為了更加直觀,將車道線的像素值提升為255,即背景值為0,車道線值為255.
圖4 數(shù)據(jù)增廣策略生成圖
本文使用Softmax 分類器對(duì)圖像像素點(diǎn)進(jìn)行分類,通過(guò)預(yù)測(cè)像素點(diǎn)為正負(fù)樣本的概率判斷該點(diǎn)為車道線或背景. Softmax 計(jì)算公式如式(5),其中C為類別個(gè)數(shù),f 為輸入向量,fy表示向量f 在類別y 上最終結(jié)果會(huì)是介于0 到1 的一個(gè)數(shù).
本文在損失計(jì)算部分使用交叉熵?fù)p失函數(shù)(Cross Entropy Loss Function).本文研究問(wèn)題是二分類問(wèn)題,在二分情況下,模型最后預(yù)測(cè)結(jié)果只有0,1 兩種情況.交叉熵?fù)p失函數(shù)公式如下:
式(6)為訓(xùn)練單批次總損失計(jì)算公式,其中L表示所有樣本訓(xùn)練損失之和.式(7)是計(jì)算單個(gè)樣本損失,其中Li為第i 個(gè)樣本的訓(xùn)練損失,y˙表示預(yù)測(cè)正確的概率,1-y˙表示預(yù)測(cè)錯(cuò)誤概率,y 為樣本標(biāo)簽值.
針對(duì)本文提出的基于深度學(xué)習(xí)的車道線檢測(cè)方法,對(duì)大量數(shù)據(jù)進(jìn)行了實(shí)驗(yàn),并記錄了模型在CULane 數(shù)據(jù)集上實(shí)驗(yàn)的結(jié)果.
圖 5 為 MFD-FCN 與 FCN 在 CULane 數(shù) 據(jù) 集上訓(xùn)練的損失下降對(duì)比圖,由圖可知,MFD-FCN較FCN,收斂速度更快,下降幅度更大,收斂后損失值更低,F(xiàn)CN 訓(xùn)練結(jié)束損失收斂至0.0786,本文模型訓(xùn)練結(jié)束損失收斂至0.0378.數(shù)據(jù)說(shuō)明MFDFCN 能在短時(shí)間內(nèi)訓(xùn)練出更好的效果,模型對(duì)數(shù)據(jù)擬合度更高.
圖5 LOSS對(duì)比圖
針對(duì) MIoU 和 ACC 指標(biāo),對(duì) MFD-FCN 和 FCN進(jìn)行訓(xùn)練數(shù)據(jù)對(duì)比,實(shí)驗(yàn)過(guò)程如圖6 所示.ACC 計(jì)算方式為計(jì)算判斷正確像素點(diǎn)數(shù)與全部像素點(diǎn)數(shù)之比,由于道路圖片中背景較車道線占更大比例,數(shù)據(jù)正負(fù)樣本差異大,且本文將圖片二值化,僅判別車道線與背景,而不是將每條車道線看作一個(gè)實(shí)體,進(jìn)一步簡(jiǎn)化實(shí)驗(yàn),所以兩種算法針對(duì)該指標(biāo)都有較高分?jǐn)?shù).而MIoU 是通過(guò)計(jì)算預(yù)測(cè)結(jié)果與標(biāo)簽的交并比得到分?jǐn)?shù),就MIoU 指標(biāo)而言,MFD-FCN在整個(gè)訓(xùn)練過(guò)程中都比FCN 分?jǐn)?shù)高,且MFDFCN 收斂更快,提升幅度更大,這說(shuō)明MFD-FCN較FCN 有更好的性能.
圖6 MIoU/ACC對(duì)比圖
表1 顯示了改進(jìn)的MFD-FCN 與原始的FCN在損失和MIoU 指標(biāo)的對(duì)比,可看出,訓(xùn)練結(jié)束時(shí),MFD-FCN 的 MIoU 比 FCN 提升了 8%,LOSS 比FCN 低了4.5%,這說(shuō)明改進(jìn)網(wǎng)絡(luò)比原始FCN 檢測(cè)更精準(zhǔn),分割更細(xì)膩,也從側(cè)面體現(xiàn)改進(jìn)的主干網(wǎng)絡(luò)和MSFDF 模塊對(duì)模型性能提升有很大幫助.
表1 模型MIoU/LOSS結(jié)果對(duì)比表
為體現(xiàn)本文算法模型的魯棒性,本文收集了不同情況下算法對(duì)車道線的檢測(cè)效果.圖7 所示為MFD-FCN 與 FCN 在 CULane 數(shù) 據(jù) 集 上 不 同 場(chǎng) 景的檢測(cè)結(jié)果圖像.
圖7 多種場(chǎng)景訓(xùn)練效果圖
對(duì)比三組不同情景的車道線檢測(cè)圖像:在光線充足,視野開闊的檢測(cè)場(chǎng)景,MFD-FCN 與FCN 都有較好的車道線檢測(cè)效果,檢測(cè)位置準(zhǔn)確,輸出圖像清晰;在光線不足的情況下,MFD-FCN 可以檢測(cè)到微弱光線處的車道線,且此部分車道線預(yù)測(cè)完整,而FCN 檢測(cè)不全;在車道線被遮擋時(shí),F(xiàn)CN 會(huì)忽略被遮擋部分的車道線,而MFD-FCN 能通過(guò)部分未遮擋車道線預(yù)測(cè)車道線的位置.
綜上所述,MFD-FCN 較FCN 分割更細(xì)膩,有更強(qiáng)的魯棒性.證實(shí)了多分辨率子網(wǎng)絡(luò)并行網(wǎng)絡(luò)結(jié)構(gòu)和MSFDF 模塊有利于細(xì)節(jié)特征提取和強(qiáng)化特征表達(dá).
車道線檢測(cè)是智能駕駛主要任務(wù)之一,為使智能駕駛系統(tǒng)對(duì)車道線的檢測(cè)更加精準(zhǔn),本文提出一種基于FCN 改進(jìn)的圖像分割網(wǎng)絡(luò)MFD-FCN.首先,該網(wǎng)絡(luò)在編碼器部分采用多分辨率子網(wǎng)絡(luò)并行結(jié)構(gòu),保持高分辨率特征圖標(biāo)準(zhǔn),進(jìn)行重復(fù)多尺度融合.另外,在解碼器部分加入特征密集融合模塊MSFDF module,對(duì)多尺度特征進(jìn)行處理,在采樣過(guò)程中進(jìn)行多尺度特征密集融合和車道線檢測(cè).與FCN 相比,MFD-FCN 具有更高的 MIoU 值和更細(xì)致的分割效果.本文算法在魯棒性和分割效果上有一定的提升,但在昏暗光線和車道線被遮擋的情景下,模型對(duì)車道線的檢測(cè)仍有欠缺.后續(xù),我們將針對(duì)該問(wèn)題做進(jìn)一步的研究.