方遒,李偉林,梁卓凡,陳韜陽
(1.廈門理工學院 福建省客車先進設計與制造重點實驗室,福建,廈門 361024;2.廈門大學 航空航天學院,福建,廈門 361005)
隨著人們對汽車需求的提高和人工智能技術的快速發(fā)展,高級駕駛輔助系統(tǒng)(advanced driver assistance system, ADAS)得到了快速的發(fā)展[1?2].ADAS 包括了自適應巡航、車道偏移報警、車道保持、碰撞避免等功能[3].車道線檢測作為ADAS 獲取外界信息的基本步驟之一,在其中發(fā)揮著至關重要的作用.一個準確且可靠的車道線檢測方法可以幫助軌跡規(guī)劃[4]、行為決策等其他模塊做出正確的決策[5].
當前的車道線檢測方法大致可以分為兩類:一類是基于傳統(tǒng)機器視覺的車道線檢測方法,另外一類基于深度學習的車道線檢測方法.
傳統(tǒng)的方法主要通過提取人為設計的特征來檢測車道線.常用的特征有邊緣特征[6?8]、顏色特征[9?11]、消失點特征[12?14]等.此外,在車道線模型的選擇上也可以分為直線模型[15?16]、曲線模型[17]、混合模型[18?20]等.人為設計的特征和模型作為檢測的基礎雖然更加符合人類的視覺感受,但是對于以計算機為基礎的計算機視覺往往不是最優(yōu)解.當面對復雜環(huán)境比如遮擋、車道線缺失、光照不均勻等時,傳統(tǒng)視覺方法往往無法穩(wěn)定正確地檢測出車道線.
基于深度學習的車道線檢測方法主要通過卷積神經網絡來提取特征并進行識別.不同于傳統(tǒng)方法的是,其特征設計是由機器學習得來的,而非人為設計.這樣學習得到的特征更容易達到計算機視覺提取信息的目的.
一些學者將機器學習和傳統(tǒng)圖像處理想結合,希望能夠將兩者的優(yōu)點結合.LI 等[21]對圖像進行預處理,然后通過CZF-VPGNet 網絡檢測預處理后圖像中的車道線.PIZZATI 等[22]選擇ERFNet 作為第一個網絡來獲得車道線的實例分割圖像,然后通過第二個CNN 網絡來檢測人為設計好的不同大小的描述符來對車道線進行分類.LI 等[23]通過LPU 單元以線路建議作為參考來定位準確的交通曲線,迫使系統(tǒng)學習整個交通線路的全局特征表示.這些方法在使用深度學習進行信息處理的同時保留了部分人為干預在其中,人為設計因素對網絡輸出結果影響較大.
LaneNet[24]提出將車道線檢測問題轉化為實例分割問題.通過將車道線檢測問題轉化為實例分割問題,不僅擺脫了人為設計特征的限制,而且使車道線檢測網絡可以參考較為成熟的實例分割領域的網絡.在其基礎上,GUO 等[25]引入雙注意力機制來增強車道線特征的表示,ZHANG 等[26]利用ResNeSt 提出的分離注意力機制改進了車道標線的細長和稀疏的特征,可以檢測沒有數量限制的車道.盡管與其他成熟網絡結構相結合帶來了車道線檢測效果的提升,但是依然無法達到車道線檢測的要求.SCNN[27]提出一種新的圖像信息傳遞方式,使信息不僅可以在一般深度學習的層與層之間傳遞,也可以在行與行、列與列之間傳遞.該方法網絡結構充分考慮了車道線在圖像中的特點,但是網絡運行速度緩慢,對設備要求嚴格.PINet[28]結合關鍵點檢測與點云實例分割的方法成功實現(xiàn)了新的車道線處理算法,可適用于任意場景、檢測任意數量的車道線.通過統(tǒng)一全部通道數使參數量大大減小,將特征提取模塊設計為可選個數的沙漏模塊,使其在不同計算能力的設備上可以選擇最符合需求的模型.
近年來,相較于同樣參數的一般卷積,可以在不增加運算時間的同時根據需求擴大感受野的空洞卷積被大量使用.DING 等[29]以VGG16 網絡為基礎,通過空洞卷積代替最后三個卷積層提取車道線特征,以計數器池的方式對編碼器進行上采樣,實現(xiàn)語義分割,最終實現(xiàn)實例分割和虛實識別.LIU 等[30]將空間卷積和空洞卷積組合成信息交換塊,增強像素之間的信息傳遞,更有效地利用垂直空間特征,更好地檢測被遮擋的車道線,提高了算法的穩(wěn)健性.CAI等[31]為解決目標像素數和背景像素數的不平衡的問題,通過合理組合感受野提取特征,避免圖像過度分段的同時減少了環(huán)境的干擾,并為其提出了專門的評分機制.但是,這些空洞卷積在這些網絡中的應用效果并不理想.這是因為,當為了獲取更大感受野而選取較大空洞率時,卷積核每個計算點之間的距離會變得過大,從而導致對空間信息的利用效果下降.而在車道線檢測中,網絡往往需要較大的感受野才能高效率的提取其特征信息.
基于以上情況,提出一種基于多尺度復合卷積和圖像分割融合的車道線檢測算法.所使用的網絡在下采樣后使用多尺度復合卷積提取特征并在之后通過圖像分割融合模塊增強全局特征.結合空洞卷積、全卷積和標準卷積得到的多尺度復合卷積可以在更大感受野上有效地利用圖像信息.引入語義分割分支的圖像分割融合模塊提高實例分割網絡的全局信息利用.在CULane 數據集中的實驗表明:本文算法相比現(xiàn)有算法做出了一定的改進,評價指標得到提高.
本節(jié)概述了使用多尺度復合卷積獲取更大感受野的車道線檢測神經網絡.網絡整體結構如圖1 所示,網絡整體流程如圖2 所示,網絡的整體框架由4部分組成,包括下采樣模塊、多尺度復合卷積模塊、圖像分割融合模塊和解碼器模塊.下采樣模塊將圖像的特征信息進行壓縮,降低后續(xù)網絡的計算量.網絡采用主流方式的下采樣方式,即卷積層后接最大池化層的方式.網絡一共對圖像進行4 次壓縮,即采用4 個下采樣模塊,每個模塊按照信息壓縮的需求配置不同層數的卷積層和最大池化層.多尺度復合卷積模塊對下采樣后的圖像進行進一步的特征提取,為了進一步提高精度,將2 個復合卷積模塊串聯(lián).多尺度復合卷積模塊有5 個分支,每個分支提取不同大小的特征.圖像分割融合模塊利用語義分割分支輔助實例分割分支,從而提高最終實例分割的效果.上采用模塊采用轉置卷積層和普通卷積層結合的方式實現(xiàn).相比下采樣階段,上采樣階段使用更少的卷積層,以提高網絡的運行速度.網絡對圖像進行實例分割,不僅區(qū)分圖像中每個像素屬于車道線還是背景,而且將每個車道線像素歸類到具體每條車道線所屬的類別中.根據所使用的數據集的圖像標記,本文算法最多同時可檢測到4 條車道線,這足夠應對大多數行車環(huán)境.網絡各層輸入輸出如表1 所示.
表1 網絡各層輸入輸出Tab.1 Input and output of each layer of the network
圖1 網絡整體結構Fig.1 Overall structure of the network
圖2 算法整體流程Fig.2 Overall process of algorithm
特征金字塔作為一種提取大范圍特征信息的手段被許多車道線檢測網絡使用.在特征金字塔中,通過組合不同空洞率的卷積層來達到獲取不同尺度的特征.由于空洞率過大時候容易導致提取信息松散、特征提取差的情況,特征金字塔無法采取太大的空洞率而選擇增加卷積層數的方法來提取特征.但這也導致了網絡參數增加、網絡結構加深,使得網絡更加復雜和難以訓練.
從特征金字塔的應用可以看出,不同局域之間的局部特征和圖像整體的全局特征之間的信息傳遞有助于實例分割的實現(xiàn).一個有利于更大范圍的局部特征和全局特征融合的網絡是有必要的.為了能夠在更大范圍上應用空洞卷積,而且避免信息的丟失,本文提出一種多尺度復合卷積.此結構不同于特征金字塔,為了拓展特征提取的感知領域,在網絡中的多種尺度的空洞卷積后面均再進行額外的卷積.與特征金字塔相比,多尺度復合卷積可以在更大尺度上進行特征提取,有效地收集不同層次的特征信息.
多尺度復合卷積的原理如圖3 所示,相較于一般的空洞卷積在擴張后造成卷積位置信息的分散,多尺度復合卷積在空洞卷積后首先通過一次全卷積對不同通道的信息進行整合,然后根據擴張的比例在卷積位置再進行一次標準卷積,彌補空間信息的丟失.在網絡的構建中,為了更有效地提取信息并且防止卷積層之間的信息冗余,各個復合卷積層的第一層空洞率和第三層卷積尺寸均有不同的組合.
圖3 各卷積原理圖Fig.3 Schematic diagram of each convolution
如圖3(a)所示,一個標準3×3 卷積具有3×3 的感受野和9 個參數.如圖3(b)所示,一個尺寸為3×3、空洞率為4 的空洞卷積具有9×9 的感受野和9 個參數.當空洞率為1 時,空洞卷積退化為標準卷積.如圖3(c)所示,一個全卷積具有1×1 的感受野和1 個參數.感受野計算公式如式(1)所示
式中:W和H分別為卷積核的寬和高;R為空洞率.W和H一般取相同的數值,這樣方便計算且更加符合人們的直觀感受.
多尺度復合卷積效果如圖4 所示,在圖像進行空洞卷積之后再進行一次全卷積和標準卷積.由于第一次卷積后的每個像素實際上提取了卷積前3×3像素的信息,全卷積不改變信息范圍,因此進行第三次卷積時,感受野相對于卷積前圖像為11×11.在獲取相同11×11 感受野的情況下,空洞卷積的卷積核尺寸為3×3、空洞率為5,雖然相比多尺度復合卷積計算更快,但是提取到的信息密度大幅度下降;標準卷積的卷積核尺寸為11×11,具有最高的信息密度,但是其參數量和計算量遠遠大于多尺度復合卷積.本文網絡多尺度復合卷積模塊的參數如圖5 所示,其中每個分支采用不同空洞卷積和標準卷積的組合,空洞卷積的空洞率和標志卷積的尺寸決定提取特征的大小和主要效果,空洞卷積的尺寸均為3×3.網絡使用兩個多尺度復合卷積模塊提高效率.
圖4 復合卷積原理圖Fig.4 Composite convolution schematic diagram
圖5 多尺度復合卷積模塊Fig.5 Multiscale composite convolution module
在文獻[31] 中,將車道線檢測任務分為語義分割任務和實例分割任務,并由網絡分別輸出兩者的檢測結果.這是因為相比實例分割而言,將圖像視為語義分割任務(車道線和背景)更為簡單,并且容易取得良好的效果.但是這樣人為的將檢測任務分為兩個不同的任務反而加大網絡的訓練難度.因此,在文獻[32]中,將車道線檢測任務直接視為實例分割任務,并將每個輸出通道視為一類.這樣設計網絡簡化了解碼器結構,但是將一個輸出通道視為一個類別使得每個通道更加關心自己的所屬類別而減少了對全局信息的關注,這對車道線檢測來說是不利的.
圖像分割融合模塊結構如圖6 所示.全連接層對多尺度復合卷積模塊輸出的圖像特征信息進行分類后分別給出實例分割分支和語義分割分支的特征圖像,兩者與跳躍分支拼接后輸入解碼器中.實例分割分支和語義分割分支的特征圖像分別經過一次雙線性插值調整到與真值圖相同尺寸,并各自通過一次卷積調整通道后計算損失函數.在車道線檢測中,漏檢和誤檢往往是由于在解碼器初始階段全局信息的缺失,引入的語義分割圖像相比實例分割圖像更加注重全局特征,可以有效改善該情況.
圖6 圖像分割融合模塊Fig.6 Image segmentation fusion module
網絡的訓練就是根據損失函數對預測結果和真值的差距對參數進行更新,因此損失函數的選擇對網絡的訓練至關重要.本文網絡將車道線檢測任務視為實例分割任務,因此選擇實例分割任務中常用的交叉熵作為損失函數.
在網絡的預測圖像中,每個像素包含5 個通道,分別代表該像素屬于背景和4 條車道線的置信度.為了得到每個像素上預測的類別序號,首先對預測圖像使用softmax 函數使像素各類別的置信度歸一化到區(qū)間[0,1] 且和為1,然后對該維度進行max 運算選取置信度最大的類別序號作為預測類別
式中:Ti為某個輸出分支的真值圖的像素:Ci為該分支置信度圖像的像素;yi為像素所屬類別.
在許多網絡設計中,往往單獨計算解碼器最終輸出的預測圖像和真值圖像之間的損失函數.然而,這無法對解碼器其他尺寸的預測圖像進行有效的反饋,使得網絡在其他同尺寸上對車道線的預測偏離真值.為了提高網絡對各尺度車道線的預測效果并對圖像分割融合模塊進行監(jiān)督.本文選擇一個權值交叉熵損失函數
式中:wi和li分別為各實例分割分支的權值和交叉熵損失;wc和lc分別為語義分割分支的權值和交叉熵損失;lall為網絡總的交叉熵損失.該方法可以有效地提高反卷積層對車道線的復現(xiàn)能力,并充分考慮語義分割分支所體現(xiàn)的全局特征信息,特別是在第一層反卷積層中更好地定位到各條車道線的位置,降低了小尺度上的特征遺漏導致的最終車道線的漏檢率和過度擬合導致的誤檢率.
車道線檢測常用到的公開數據集有TuSimple 數據集和CULane 數據集.其中TuSimple 數據集包括3 626 張帶注釋的訓練圖片和2 782 張測試圖片.這些圖片是在交通量很少且車道標記透明的受限場景下拍攝的,且未標記磨損和被阻擋的車道線.同時由于圖片數量的限制,其區(qū)分不同網絡性能的能力不足.因此本文選擇數據量更大,更富有挑戰(zhàn)性的CULane 數據集.
CULane 數據集由安裝在6 輛由北京不同駕駛員駕駛的不同車輛上的攝像頭收集的.其收集了超過55 h 的視頻,并提取了133 235 幀.數據集分為88 880張訓練集圖片,9 675 張驗證集圖片和34 680 張測試集圖片,分為Noramal 和8 個具有挑戰(zhàn)性的類別:Crowd、Dazzle、Shadow、No Line、Arrow、Curve、Cross和Night,每個場景的比例如圖7 所示.對于每一幀,CULane 數據集使用三次樣條曲線手動注釋行車道,當車道標記被車輛遮擋或看不見時,會根據上下文將車道線從消失位置一直標記到圖像最下方.數據集默認圖片分辨率為1 640×590,這樣扁長的圖片來源于車載的廣角攝像頭,但這對于深度學習是不利的.因此,本文在將圖片輸入網絡前,對圖片進行了尺寸的調整和像素數值的歸一化.
圖7 CULane 數據集比例Fig.7 CULane dataset scale
在車道線檢測中,車道線的漏檢和誤檢是造成事故的重要原因,也是人們關心的算法指標.通常在目標檢測任務中,采用準確率和召回率作為評價車道線檢測模型的指標.在車道線檢測任務中,準確率反映了漏檢車道線的占比,召回率反映了誤檢車道線的占比,但是這些單個指標不能綜合地體現(xiàn)出模型的好壞.因此,為了更好地對我們的模型做出評價,并方便與其他研究者的工作進行對比,本文選擇CULane 官方提供的評價標準F1measure.另外,為了提高最終的評價指標,LaneNet 通過傳統(tǒng)圖像算法對網絡輸出的圖像進行后續(xù)處理[24].但是,這樣不能客觀地評價網絡的性能,因此在后續(xù)性能比較中,本文網絡輸出的圖像不進行后續(xù)處理.
式中:T/F表示真/假,表示預測是否正確;P/N表示正/負,表示預測結果為正或負;γ的值設置為1.當預測圖像與真值圖像的交并比(intersection over union,IOU)大于閾值時,判斷為TP,否則為FP.IOU 閾值通常選取0.3 或0.5.
選取更大的IOU 閾值可以獲取質量更好的預測圖像,但是也容易將圖像判定為假.如圖8 所示,圖中用不同顏色標記了檢測到的車道線,當選取IOU閾值為0.5 時,黃色車道線由于被前車遮擋導致檢測效果不佳而被判為FP,而當選取IOU 閾值為0.3 時,其依然可以判為TP.從表2 可以看出,當選取0.3 作為閾值時,本文算法的整體F1measure高于選取0.5 作為閾值.但是為了獲取更高的圖像質量和方便與其他算法進行比較,后續(xù)實驗均選取0.5 作為閾值.
表2 算法不同性能指標Tab.2 Different performance indicators of the algorithm
圖8 算法檢測結果Fig.8 Algorithm detection results
本文提出的算法通過與其他算法比較在CULane 數據集上的F1measure值來驗證其有效性.表3 展現(xiàn)了本文算法與LaneNet[24]、DeepLabV2[33]、ResNet-101[34]、Res34-VP[35]、Res101-SAD[36]和SCNN[27]算 法的比較結果[32?36].實驗結果表明,本文算法在整體性能上優(yōu)于其他比較算法.在多種路況中,由于引入多尺度復合卷積和圖像分割融合模塊提取更大范圍的信息,檢測結果有明顯提升,整體的F1measure達到74.9%,運行時間達到22.3 ms.在Noramal、Crowd、Dazzle、No Line、Cross 場景和Total 中均優(yōu)于其他對比算法.
表3 算法整體比較結果Tab.3 Overall comparison results of algorithms
圖9 給出了在多種困難場景下網絡的檢測結果,圖中用4 種顏色標記了檢測到的車道線,圖片每行按照Normal、Crowd、Dazzle、Shadow、No Line、Arrow、Curve、Cross 和Night 順序排列,第1 列為輸入圖像,第2 列為預測圖像,第3 列為真值圖像.以上測試結果可以看出,本文算法在多種困難場景下均可有效檢測出圖片中的車道線,無論是Noramal 場景中還是在挑戰(zhàn)性條件下.本文提出的車道線檢測算法在Dazzle、Shadow 和Arrow 等帶有強烈環(huán)境干擾的場景中可以克服環(huán)境的干擾,在圖像中提取和識別到車道線的正確特征并檢測出正確的車道線位置.在Crowd、No Line 和Night 等車道線缺失、被遮擋等場景中可以做出一定的邏輯推理,準確找到圖像中待檢車道線的位置.在需要檢測曲線段的Curve 場景中,網絡可以將斜率較大部分視為曲線進行檢測,將斜率較小的部分仍然視為直線,最終檢測出車道線的正確位置.在沒有車道線的Arrow 場景中,雖然圖像中經常會出現(xiàn)明顯的線段(比如人行橫道等),但是該線段并非需要檢測的車道線類別,需要網絡對其進行判斷.從圖中可知,本文提出的車道線檢測網絡在Arrow 場景中可以正確地將錯誤線段排除出車道線類別,沒有在圖片中誤檢出車道線.
圖9 不同場景檢測結果比較Fig.9 Comparison of detection results in different scenarios
圖10 分別列出了輸入圖像(圖10(a))、真值圖像(圖10(b))、語義分割圖像(圖10(c))和各實例分割圖像(圖10(d)~圖10(h),各已轉換為概率灰度圖方便顯示.由圖10 可知,第一張實例分割圖像(圖10(d))更加注重車道線的局部特征,但也因此減少了對全局信息的關注而容易誤檢.語義分割圖像(圖10(c))相比實例分割圖像更加注重車道線整體與背景的關系.圖像分割融合模塊(圖10(e))將兩者和跳躍分支的信息融合,后續(xù)上采樣模塊結合跳躍分支給出的信息逐步提高預測圖像的分辨率和準確率,最終輸出網絡預測的車道線實例分割圖像.
圖10 各分支輸出分析Fig.10 Output analysis of each branch
在本文中,為了擴大網絡的感受野和彌補大空洞率造成的信息丟失,提出了一種多尺度復合卷積;為了進一步加強全局信息的利用設計了語義分割和實例分割信息融合的圖像分割融合模塊;為了在不同尺度上擬合真值圖像,并對各分支進行訓練,提出了一個權值交叉熵損失函數.
實驗結果表明,在CULane 數據集上,本文算法無論是在整體性能上,還是在單獨一個場景中相比其他算法均有不錯的表現(xiàn).數據集整體F1measure達到74.9%,在多個場景應用中相比其他對比算法取得最優(yōu)表現(xiàn).因此,本文提出的方法可以為車道線檢測的應用提供參考.
在未來的工作中,希望可以采用更好的設備來提高網絡的訓練速度和優(yōu)化網絡的參數,以達到提升車道線檢測準確性和速度的目的.同時探索更大的空洞率的可能性及其對網絡造成的影響.