趙振東,邵振洲,謝劼欣,施智平,關 永
1(首都師范大學 信息工程學院,北京 100048)2(首都師范大學 輕型工業機器人與安全驗證北京市重點實驗室,北京 100048)3(成像技術北京市高精尖創新中心,北京 100048)
E-mail:zshao@cnu.edu.cn
作為自動駕駛環境感知的關鍵任務之一,車道線檢測引起了越來越多專家和學者的關注,已成為科研院所和相關企業的研究熱點.目前,基于攝像頭的車道檢測是環境感知的重要方法之一,它在確保車輛在車道內正確行駛的同時,對后續的車道變換或軌跡規劃也至關重要,主要應用于車輛車道偏離預警、導航等.因此,基于視覺的車道檢測是實現完全自動駕駛的關鍵驅動因素.
近年來,深度學習在計算機視覺領域取得突破性發展,越來越多的基于深度學習的車道線檢測方法被提出.Huval等人[1]基于OverFeat框架[2]設計了一個端到端的目標檢測網絡DriveNet,用于處理高速公路這類簡單場景下的車道線檢測,但當車道線數量變化時,網絡檢測性能不佳.Neven等人[3]將LaneNet與H-Net兩個網絡配合使用,來處理道路場景中車道線數量不固定的情況,但難以識別車道線被遮擋的情況.Pan等人[6]對CNN網絡的最高隱藏層特征設計了SCNN架構,通過對特征圖按特定方向進行更新,賦予模型提取目標空間信息的能力,以應對車道線被遮擋的情況.但是,這一方法[6]需要搭配專門的小型網絡來接收模型輸出的概率圖并給出最終結果,網絡結構復雜且難以訓練.Lee等人[4]在文獻[2]和文獻[5]的基礎上提出了端到端的多任務網絡模型VPGNet,通過在模型中加入消失點預測子任務,來提取場景的空間上下文信息,用以同時處理復雜場景下的車道線檢測和類型識別.但隨著子任務的增加,網絡訓練的難度也增大,此外還需要對數據進行額外的消失點標注.盡管以上方法嘗試去提取和利用車道線的空間信息,但是當場景中存在多條車道線時,處于場景兩側位置的車道線因易受光照變化等影響變得模糊,使得網絡難以識別甚至出現誤檢測,如圖1所示.

圖1 真實標簽與現有方法車道線檢測對比Fig.1 Comparison between ground truth and network output of the state-of-the-art method
為解決上述問題,本文提出一個端到端的空間特征編碼多任務神經網絡LDNet-SFE(Lane Detection Network with Spatial Feature Encoding),如圖2所示,它由目標檢測和邊框回歸兩個子網絡協同處理車道線的檢測任務.這既利用了多任務網絡的優勢,又不增加訓練難度和額外工作.為處理兩側車道線模糊導致檢測準確性差的問題,本文設計了空間特征編碼模塊,通過對三維特征張量進行橫向切分,借鑒傳統的卷積網絡中卷積層到卷積層的連接形式,將切分后的每一片視為新的卷積層,并進行縱向連接,以此來提取豐富的空間信息,使網絡更好地捕獲車道線的空間連續性的特征,增強網絡對像素空間信息的利用,提高場景兩側車道線的檢測精度.我們對多任務網絡的特征提取器進行改進,通過設計更小的卷積核尺寸,更短的步長,使其學習并保留更多的淺層特征.由于淺層的卷積層能學習到物理輪廓、邊緣和紋理等特征,對多任務網絡而言,更好地淺層特征能為子網絡帶來更豐富的空間信息,提高模型的檢測性能.

圖2 網絡整體結構Fig.2 Overall network structure
傳統的車道檢測方法依靠專業化的手動設計的特征來檢測目標的形狀,然后擬合車道線[7-13].這些手動設計的方法[14,15,17,19]可以與霍夫變換[20,22]或者卡爾曼濾波器[24,25]相結合,當識別出車道線之后,利用后處理技術過濾掉誤檢和成組分割在一起的情況以得到最終車道線.Naftel等人[18]通過分析由目標追蹤系統獲得的車輛運動軌跡,來檢測車道線并進行分類.Wu等人[16,21]設計自適應方法,用以識別不同寬度的車道,以及加速車道線檢測.Tao等人[23]通過提取多個感興趣區域作為MSER[26],再由HOG[27]特征為道路標記建模.雖然這些傳統方法在簡單場景下表現良好,但是它們很容易由于道路場景變化而導致魯棒性下降.
隨著深度學習在計算機視覺領域得到越來越多的應用[36],研究人員嘗試用深度網絡取代傳統的手工標記,通過構建特征檢測器進行車道線的預測.Gopalan等人[28]使用像素級特征描述符來建模,并且使用增強算法來選擇用于檢測車道標記的相關特征.Kim和Lee[29]將卷積神經網絡(CNN)與RANSAC算法結合起來以檢測車道線.其中CNN主要用于圖像增強,并且僅當在道路場景復雜時才會使用.He等人[30]提出了DVCNN框架,將前視圖和俯視圖作為網絡輸入,來提高車道線的檢測和識別能力.Huval等人[1]對OverFeat框架[2]進行改進,設計了邊框回歸和目標掩碼與滑動窗口進行結合的檢測模塊,來解決多目標檢測時的歧義性問題,模型最終用于高速公路駕駛,以執行端到端的車道線檢測.考慮到車道線的外形細長,單條車道線在空間上具有連續性這一特點.Li等人[31]使用多任務卷積神經網絡,用來尋找車道線的幾何屬性,然后再通過循環神經網絡(RNN)來檢測車道線.Pan等人[6]提出空間CNN網絡模型,通過對網絡的最高隱藏層進行特定方向的特征更新,使網絡來處理車道線被遮擋時的檢測.此外,傳統的像素級標注的車道線數據比較窄,在網絡的特征提取階段,經過卷積和池化操作后易造成特征信息損失甚至消失.為了增加車道線的特征,Lee等人對像素級標注的車道線數據進行了網格化處理.隨后,Lee在TSDC[5]多任務模型的基礎上設計了VPGNet[4],通過添加消失點預測(VPP)[32]子任務來提供全局幾何上下文信息,使得多任務網絡能夠在具有挑戰的環境下同時檢測車道線和識別其類型.上述的車道線檢測模型有的需要添加額外的子任務,有的則需要搭配專門的小型網絡來提取車道線的空間特征并對車道線進行檢測,這樣的網絡結構復雜且難以訓練.此外,需要注意的是,在面對位于道路場景兩側位置的車道線時,由于這類車道線之間的距離更近,且更易受光照變化等影響變得模糊,使得現有的網絡難以準確檢測甚至出現誤檢測,這對自動駕駛的安全造成重大隱患.
LDNet-SFE由主干網絡和兩個分支網絡構成,如圖2所示.主干網絡通過前向傳播來提取共享特征.兩個分支網絡為邊框回歸網絡和目標檢測網絡,分別用于處理車道線定位和檢測任務.LDNet-SFE采用OverFeat框架,這使得我們的網絡在處理定位、檢測任務聯合訓練學習時是經濟且有效的[2].同時LDNet-SFE為全卷積結構[33],這有助于網絡提取特征的空間信息.在此結構上,我們對邊框回歸的最高隱藏層進行空間特征編碼,以此來探索圖像在豎直方向上的空間特征,使網絡更適用于檢測車道線這類有著較強空間信息的目標,從而提升網絡對道路兩側位置處的車道線的檢測性能.
多任務學習是對特征提取器捕獲的特征進行共享,檢測器的性能很大程度上依賴于特征提取器的性能[34],即更好的主干網絡可以帶來更好的檢測性能.LDNet-SFE的主干網絡的首層卷積層的步長為2,并采用7×7的卷積核尺寸,通過設計更小的步長和卷積核尺寸來學習更多的淺層特征[35];第二層卷積層的步長為2,使模型滿足網絡輸出所需要的大小;為了進一步精簡網絡,我們的主干網絡沒有局部響應歸一化操作.不含空間特征編碼的多任務網絡的參數如表1所示.

表1 不含空間特征編碼的多任務網絡的結構Table 1 Structure of multi-task network without spatial feature encoding
本文采用網格級標注對原始標注的數據進行預處理,將車道線的點標注轉換成網格標注.其原理為,將車道線用一系列的8×8的網格覆蓋,當網格中的任意一個像素位于某類車道線的標注框內時,則整個網格都會被標記為該類.這樣的標注方法增加車道線的特征信息的同時,也將車道線與其他物體檢測統一,為以后網絡的擴展提供可能.本文的網絡輸入為640×480,網絡輸出為160×120,縮放系數為1/4.

圖3 網格級掩碼Fig.3 Grid-level mask
邊框回歸任務指在使單個框匹配特定的對象,但車道線這種細長的目標不能用單個框表示.受VPGNet啟發,我們使用了一種利用網格級掩碼的替代回歸方法[4],如圖3所示,通過使用高效“滑動窗口”檢測器與掩碼檢測器結合,生成對象掩碼并執行邊界框回歸,網格上的點回歸到最近的網格單元,將相鄰的網格回歸成一個目標.
目標檢測任務是利用4×4的“滑動窗口”滑過整張圖片,窗口內部看作一個物體的中心區域.該模塊定義了網絡分辨的最小區域.回歸時不用逐點回歸,而是對4×4大小的網格進行回歸.其輸出的每個結果表示輸入圖像中的某個4×4像素區域包含車道線的概率.
訓練時總的損失函數由兩個子任務各自的損失函數加權組成,其表示為式(1):
Loss=W1Lreg+W2Lob
(1)
其中,Lreg表示邊框回歸網絡的L1損失,Lob表示目標檢測網絡的交叉熵損失.我們通過修改W1和W2的數值,來平衡兩個子任務的訓練.開始時將W1和W2分別取值為3和1,在訓練過程中,當子任務對應的損失值相差較大時,暫停訓練,手動取各自損失值的倒數作為其新的權值,然后繼續訓練,直至網絡收斂.
車道線的外形細長,單條車道線在空間上有一定的連續性.不同區域的道路場景差異性大,當場景中存在多條車道線時,現有的網絡模型難以應對位于道路兩側的車道線檢測.如何去對多任務網絡的空間關系進行建模,以賦予模型充分探索空間連續性的特征,增強網絡對圖像上像素在空間信息的利用,這對于網絡模型能否更好地檢測邊緣位置的車道線至關重要.
LDNet-SFE網絡的車道線檢測任務由邊框回歸和目標檢測協同完成,其中邊框回歸對車道線的位置檢測最為重要;同時,由于最高隱藏層含有豐富的語義特征信息,我們僅對邊框回歸的最高隱藏層進行空間特征編碼,將特征圖的每一行視作新的卷積層,使用卷積加非線性激活,把逐層卷積操作的原理應用到逐行卷積中,從而實現在同一行中的像素信息能在行之間按特定方向進行消息傳遞.
具體操作如圖4所示,以尺寸C×H×W的三維張量為例,其中C、H和W分別表示信道、行數和列數.將其按行數H進行橫向切分,得到H個片.然后將第一個片發送到尺寸為C×w的卷積核中進行卷積操作,這里w是卷積核寬度.經過卷積和ReLU操作之后,將輸出的結果和第二個片的對應元素進行求和操作,來更新第二個片.此時第二個片已經獲得來自第一個片的特征信息.然后將更新后的第二個片發送到下一個卷積核,重復上述過程,直到最后一個片被更新,從上向下方向的空間信息傳遞全部結束.
第H個片包含之前H-1個片的從上往下逐層傳遞的空間信息,將其作為初始位置,進行從下向上方向的更新,重復之前的連接和更新過程,直到第一個片被更新.
最后,將更新后的H個片輸入到concat層,在維度為高度的方向進行拼接,得到更新后三維張量.經過上述操作,任意第N個片,包含前N-1個片從上向下傳遞來的信息,同時,也含有H-N個片從下向上傳遞來的信息.假設指定的一個三維張量K,信息傳遞可由式(2)計算:
(2)
其中Ki,j,k記為最后一片中通道i的元素和當前的片中通道j的元素之間的權重,這兩個元素之間偏移為k列.同樣的將Xi,j,k記錄為張量X的元素,其中i,j,k分別指代通道、行、列.f是非線性激活函數ReLU.X′表示更新后的值,所有的片共享一組卷積核.

圖4 空間特征編碼Fig.4 Spatial feature encoding
本部分主要驗證本文提出的LDNet-SFE的車道線檢測的性能.首先,我們分析新主干網絡和空間特征編碼對模型性能的影響,通過對比傳統方法、DriveNet、VPG和僅更新主干網絡的模型,來驗證更好地學習和保留淺層特征對檢測性能帶來的提升;通過對比LDNet-SFE與其他不含空間特征編碼的模型,來驗證空間特征編碼對空間特征的捕獲以及對檢測性能的提升.然后,我們設置不同核寬度的空間特征編碼,來分析其對空間信息的利用.
實驗使用加州理工學院車道線公開數據集,其包括在一天中的不同時間在加利福尼亞州帕薩迪納附近的街道上拍攝的四個剪輯.我們選用其中的Cordova1和Washington1兩個子數據集[1,4].網絡采用隨機梯度下降法的訓練策略,初始學習速率為0.01,動量項為0.9,網絡的輸入大小為640×480,訓練時采用批處理的大小為24,采用的最大迭代次數為5萬次.網絡的運行環境和相關的訓練參數如表2所示.

表2 網絡運行環境和參數Table 2 Network operating environment and parameters
本文研究的車道線檢測算法屬于檢測和定位任務的結合,F1分數作為準確率和召回率的調和平均數,可以用來評價模型的綜合性能.本文采用的網格級車道線標注,其標注的形式為(xmin,ymin,xmax,ymax,class),考慮到車道線初始由點標注,因此采用基于距離判定的方式計算檢測結果.任意預測點(x,y),只要與標簽點組成的網格中心坐標距離在一定范圍之內即判定檢測結果正確,TP加 1.
(3)
上式中,中心點坐標為起始點加上邊長的一半,由于正方形網格邊長為8,故取4.N值等于車道線的平均寬度的一半,根據實驗經驗,本文設置為20.為了使評價指標更加一般化,本文分別計算測試集上每一張圖片的各個指標,最后求出平均值.
本文對主干網絡的前兩層卷積層進行修改,更新后的多任務模型取名為LDNet-No-SFE.分別在Cordova1和Washington1數據集下進行對比實驗,結果如表3所示.
表中的LDNet-SFE為在LDNet-No-SFE基礎上對邊框回歸進行空間特征編碼后的網絡模型.通過表3可知,基于深度學習的車道線檢測算法性能遠高于基于傳統方法的車道線檢測算法,其F1分數比傳統方法高10%左右.在基于深度學習的方法之中,與DriveNet和VPG-2task進行對比,我們的LDNet-No-SFE的F1分數提高了0.8%.對比VPG-3task,我們的網絡在不添加額外子任務的前提下,F1分數依然提高了0.5%.這表明首層卷積層提取到的淺層特征能有效提高網絡的性能,更小的卷積核與步長可以使特征提取器學習并保留更多的淺層特征,從而提高檢測任務的性能.

表3 在Cordova1數據集下各個模型的F1分數Table 3 F1 scores of each model in Cordova1
對比LDNet-SFE和LDNet-No-SFE,前者的F1分數比后者提高了0.3%.這表明通過對邊框回歸的最高隱藏層處進行空間特征編碼,能使模型學習到更多在豎直方向的空間連續性特征,這對于網絡檢測車道線的位置,提高整體檢測性能尤為重要.

表4 在Washington1數據集下各個模型的F1分數Table 4 F1 scores of each model in Washington1
表4為在Washington1數據集下進行實驗的F1分數對比,表中LDNet-No-SFE比VPG-3task性能提升了0.8%,略低于VPG-2task,值得注意的是VPG-3task比VPG-2task性能下降了1.3%,這表明對多任務網絡來說,更多的子任務不一定帶來性能的提升,在面對復雜場景時模型的魯棒性較差.值得注意的是,本文提出的LDNet-SFE的在Washington1和Cordova1數據集下均表現良好,取得最佳F1分數.
卷積核寬度表示像素可以接收其他像素的信息數量,卷積核寬度的大小影響著空間信息的提取.為了進一步測試空間特征編碼對模型性能的影響,本文在LDNet-SFE模型的基礎上,選取核寬度為1、3、5、7、9的模型,分別在Cordova1和Washington1數據集下進行實驗.

圖5 網絡輸出對比Fig.5 Comparison with the network output
表5中LDNet-SFE-S1表示空間特征編碼的卷積核寬度為1,以此類推.由表5可知,在Cordova1數據集下,當卷積核寬度為3時,模型的F1分數最高,達到了0.878.隨著卷積核寬度的增加,模型的檢測性能出現了稍許下降,對比最優的LDNet-SFE-S3模型,性能下降0.1%到0.2%之間.這是由于Cordova1數據集中道路環境相對簡單,核寬度較小的空間特征編碼能有效提升空間信息利用.

表5 在Cordova1數據集下,不同核寬度的F1分數Table 5 F1 scores of different kernel width in Cordova1

表6 在Washington1數據集下,不同核寬度的F1分數Table 6 F1 scores of different kernel width in Washington1
由表6可知,在Washington1數據集下,當卷積核寬度為7時,模型的F1分數最高,達到了0.867.而當卷積核寬度為3時,模型的F1分數為0.863,對比最優的LDNet-SFE-S7模型,性能下降了0.4%.這是由于Washington1數據集中復雜場景的路況較多,需要像素接收來自遠端的像素的信息,提取和利用更多的空間特征,已達到模型性能的提升.
以上兩組實驗表明,不同的卷積核寬度在面對不同的數據集時,會對網絡的檢測性能造成一定的影響.值得注意的是,LDNet-SFE-S5模型在Washington1數據集下的F1分數為0.866,僅比最優的LDNet-SFE-S7模型低0.1%.同樣,在Cordova1數據集下,LDNet-SFE-S5模型比性能最優的LDNet-SFE-S3模型低0.1%,其F1分數為0.877.基于上述實驗結果,最終本文決定采用LDNet-SFE-S5模型作為我們網絡的最終模型LDNet-SFE.
網絡推理時間是衡量網絡模型性能的重要指標之一,我們在NVIDIATeslaK40C顯卡下測試不同模型的推理時間,我們分別計算測試集上每一張圖片的推理時間,最后求出平均值,對比結果如表7所示.

表7 不同模型的推理時間對比Table 7 Comparison of inference time of different models
由表7可知,LDNet-SFE的網絡推理時間達到了45.6毫秒,比LDNet-No-SFE網絡推理時間增加了4.1毫秒,但是對比DriveNet和VPG-3task,LDNet-SFE的網絡推理時間分別縮短了1.6毫秒和4.5毫秒.與現有方法的對比表明,我們的LDNet-SFE能在提高檢測性能的同時,使網絡推理時間進一步縮短.
圖5為VPG-2Task、LDNet-No-SFE、LDNet-SFE三個網絡模型的網絡輸出同真實標簽的對比,對比第一行圖片,LDNet-SFE在面對位于道路兩側位置的車道線時,可以提取到更豐富的車道線特征.對比第二行圖片,當道路兩側位置的兩條車道線距離較近時,我們的LDNet-SFE在保留更多車道特征的同時,可有效避免車道線之間的誤檢測.對比第三到第五行的圖片可知,處于道路邊緣位置的車道線更易受光照變化等影響,VPG-2Task和LDNet-No-SFE在應對這樣的道路環境時,容易將兩側的道路誤檢為車道線,而我們的LDNet-SFE可以有效進行區分.
本文針對道路兩側位置的車道線易受光照變化等影響而變得模糊,導致其難以被檢測的問題,提出了一個端到端的基于空間特征編碼的多任務網絡LDNet-SFE,我們對邊框回歸任務設計了空間特征編碼,對深層特征圖進行特定方向的切分與更新,賦予網絡更好的學習空間信息的能力.此外,通過為模型設計新的特征提取器,使其能學習并保留更多淺層特征.在Cordova1和Washington1數據集上實驗表明,LDNet-SFE可以學習到車道線的空間信息并完成對其位置的檢測,值得注意的是,在面對處于道路兩側位置的車道線時,LDNet-SFE可以有效檢測車道線的同時,避免誤檢測.