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