CLRNet:一種用于自動駕駛車道檢測的分層細化網絡算法
車道是具有高級語義的交通標志,特別是在視覺導航系統中尤其重要。檢測車道可以使許多應用受益,例如自動駕駛和高級駕駛員輔助系統(ADAS)中的視覺導航就是一個典型的應用,它可以幫助智能車輛更好地進行自車定位并更安全地行駛。
然而,車道檢測擁有特定的局部模式,需要實時預測網絡圖像中的車道信息,更需要詳細的低級特征才能準確定位。因此,可以說車道檢測是計算機視覺中一項重要但具有挑戰性的任務。
使用不同的特征級別對于準確的車道檢測非常重要,但折現工作仍處于探索階段。本文介紹了跨層細化網絡(CLRNet),旨在充分利用到車道檢測中的高級和低級特征。首先,通過檢測具有高級語義特征的車道,然后根據低級特征進行細化。這種方式可以利用更多的上下文信息來檢測車道,同時利用本地詳細的車道特征來提高定位精度。此外,通過 ROIGather 的方式來收集全局上下文,可以進一步增強車道的特征表示。除了設計全新的網絡之外,還引入了線路 IoU 損失,它將車道線作為一個整體單元進行回歸,以提高定位精度。
如前所述,由于Lane具有高級語義,但它擁有特定的局部模式,需要詳細的低級特征才能準確定位。如何在 CNN 中有效利用不同的特征級別仍然是一個問題。如下圖 1(a)所示,地標和車道線具有不同的語義,但它們具有相似的特征(例如長白線)。如果沒有高級語義和全局上下文,很難區分它們。另一方面,地域性也很重要,巷子又長又細,當地格局簡單。
此外,在圖1(b)中顯示了高級特征的檢測結果,盡管檢測到了車道,但其位置并不精確。因此,低層信息和高層信息可以互補來實現準確的車道檢測。
車道檢測中的另一個常見問題是沒有車道存在的視覺信息。如上圖1(c)所示,車道被汽車占據,而在圖1(d)中,由于極端的光照條件,車道很難識別。
相關工作
以前的工作要么對車道的局部幾何進行建模并將其集成到全局結果中,要么構建具有全局特征的全連接層來預測車道。這些檢測器已經證明了局部或全局特征對于車道檢測的重要性,但沒有同時利用好這兩個特征,因此可能產生不準確的檢測性能。比如,SCNN和RESA提出了一種消息傳遞機制來收集全局上下文,但這些方法執行像素級預測并且不將車道作為一個整體單元。因此,它們的性能落后于許多最先進的探測器。
對于車道檢測來說,低級和高級特征是互補的,基于此,本文提出了一種新穎的網絡架構(CLRNet)來充分利用低級和高級特征進行車道檢測。首先,通過ROIGather 收集全局上下文來進一步增強車道特征的表示,也可以將其插入其他網絡中。其次,提出為車道檢測量身定制的線IoU(LIoU)損失,將車道作為整個單元進行回歸,并顯著提高性能。為了更好地比較不同探測器的定位精度,還采用了新的mF1 指標。
根據車道的表示,目前基于CNN的車道檢測可以分為三類:基于分割的方法,基于錨的方法,以及基于參數的方法。
1、基于分割的方法
這類算法通常采用逐像素預測公式,即將車道檢測視為語義分割任務。SCNN提出了一種消息傳遞機制來解決非視覺能檢測到的目標問題,該機制捕獲了車道中呈現的強空間關系。SCNN顯著提高了車道檢測性能,但該方法對于實時應用來說速度較慢。RESA提出了一種實時特征聚合模塊,使網絡能夠收集全局特征并提高性能。在CurveLane-NAS中,使用神經架構搜索(NAS)來尋找更好的網絡來捕獲準確的信息,以有利于曲線車道的檢測。然而,NAS 的計算成本極其昂貴,并且需要花費大量的 GPU 時間。這些基于分割的方法效率低下且耗時,因為它們對整個圖像執行像素級預測,并且不將車道視為一個整體單元。
2、基于錨點的方法
車道檢測中基于錨的方法可以分為兩類,例如基于線錨的方法和基于行錨的方法。基于線錨的方法采用預定義的線錨作為參考來回歸準確的車道。Line-CNN是在車道檢測中使用線和弦的開創性工作。LaneATT提出了一種新穎的基于錨的注意力機制,可以聚合全局信息。它實現了最先進的結果,并顯示出高功效和效率。SGNet引入了一種新穎的消失點引導錨生成器,并添加了多個結構引導以提高性能。對于基于行錨的方法,它預測圖像上每個預定義行的可能單元格。UFLD首先提出了一種基于行錨的車道檢測方法,并采用輕量級主干網來實現高推理速度。雖然簡單、快速,但其整體性能并不好。CondLaneNet引入了一種基于條件卷積和基于行錨的公式的條件車道檢測策略,即它首先定位車道線的起點,然后執行基于行錨的車道檢測。但在一些復雜場景下,起點難以識別,導致性能相對較差。
3、基于參數的方法
與點回歸不同,基于參數的方法用參數對車道曲線進行建模,并對這些參數進行回歸以檢測車道。PolyLaneNet采用多項式回歸問題并取得了很高的效率。LSTR將道路結構和相機位姿考慮在內來對車道形狀進行建模,然后將Transformer引入車道檢測任務以獲得全局特征。
基于參數的方法需要回歸的參數較少,但對預測參數敏感,例如,高階系數的錯誤預測可能會導致車道形狀的變化。盡管基于參數的方法具有很快的推理速度,但它們仍然難以實現更高的性能。
跨層細化網絡(CLRNet)的方法論概述
在本文中,介紹了一種新的框架——跨層細化網絡(CLRNet),它充分利用低級和高級特征進行車道檢測。具體來說,首先對高語義特征進行檢測以粗略地定位車道。然后再根據細節特征逐步細化車道位置和特征提取可以獲得高精度的檢測結果(即更精確的位置)。為了解決車道的非視覺所能探測的區域盲區問題,引入了 ROI收集器,通過建立ROI車道特征與整個特征圖之間的關系來捕獲更多的全局上下文信息。此外,還定義了車道線的交并比 IoU,并提出 Line IoU (LIoU) 損失,將車道作為一個整體單元進行回歸,與標準損失(即 smooth-l1 損失)相比,顯著提高了性能。
圖 2. CLRNet 概述
如上圖表示了本文介紹的CLRNet算法進行車道線IoU處理的整個前端網絡。其中,圖(a)網絡從 FPN 結構生成特征圖。隨后,每個車道先驗將從高級特征細化為低級特征。圖(b)表示每個頭將利用更多上下文信息為車道獲取先驗特征。圖(c)則表示車道先驗的分類和回歸。而本文所提出的 Line IoU 損失有助于進一步提高回歸性能。
如下將更加詳細說明本文介紹的算法工作過程。
1、車道網絡表示
眾所周知,實際道路中的車道又細又長,這種特征表示是具有很強的形狀先驗信息的,因此預定義的車道先驗可以幫助網絡更好地定位車道。在常規的目標檢測中,目標由矩形框表示。然而,無論何種矩形框卻并不適合表示長線。這里使用等距的二維點作為車道表示。具體來說,車道表示為點序列,即 P = {(x1, y1), ···,(xN , yN )}。點的 y 坐標在圖像垂直方向上均勻采樣,即,其中 H 是圖像高度。因此,x坐標與相應的
相關聯,這里將這種表示稱為 Lane 優先。每個車道先驗將由網絡預測,并由四個部分組成:
(1) 前景和背景概率。
(2) 車道長度優先。
(3) 車道線的起點與先驗車道的 x 軸之間的角度(稱為 x、y 和 θ)。
(4) N 個偏移量,即預測與其真實值之間的水平距離。
2、跨層細化動機
在神經網絡中,深層的高級特征對具有更多語義特征的道路目標表現出更強烈的反饋,而淺層的低級特征則具有更多的局部上下文信息。算法允許車道對象訪問高級特征可以幫助利用更有用的上下文信息,例如區分車道線或地標。同時,精細的細節特征有助于以高定位精度檢測車道。在對象檢測中,它構建特征金字塔以利用ConvNet特征層次結構的金字塔形狀,并將不同尺度的對象分配給不同的金字塔級別。然而,很難直接將一條車道僅分配給一個級別,因為高級和低級功能對于車道都至關重要。受 Cascade RCNN的啟發,可以將車道對象分配給所有級別,并按順序來檢測各個車道。
特別是,可以檢測具有高級特征的車道,以粗略地定位車道。根據檢測到的已知車道,就可以使用更詳細的特征來細化它們。
3、細化結構
整個算法的目標是利用 ConvNet 的金字塔特征層次結構(具有從低級到高級的語義),并構建一個始終具有高級語義的特征金字塔。以殘差網絡ResNet作為主干,使用{L0, L1, L2}表示 FPN 生成的特征級別。
如圖2所示,跨層細化是從最高級別L0開始的,且逐漸接近L2。通過使用{R0,R1,R2}來表示相應的細化。然后可以繼續構建一系列的細化結構:
其中 t = 1, · · · , T, T 是細化的總數。
整個方法從具有高語義的最高層執行檢測,Pt是車道先驗的參數(起點坐標x、y和角度θ),它是受啟發且可自學習的。對于第一層L0,P0均勻分布在圖像平面上,細化Rt以Pt作為輸入以獲得ROI車道特征,然后執行兩個FC層以獲得細化參數Pt。逐步細化車道先驗信息和特征信息提取對于跨層細化是非常重要。注意,此方法不限于 FPN 結構,僅使用 ResNet或采用 PAFPN也是合適的。
4、ROI 收集
在為每個特征圖分配車道先驗信息后,可以使用 ROI Align模塊獲得車道先驗的特征。然而,這些特征的上下文信息仍然不夠。在某些情況下,車道實例可能會被占用或在極端照明條件下會變得模糊。在這種情況下,可能沒有局部視覺實時跟蹤數據來表明車道的存在性。為了確定一個像素是否屬于車道,需要查看附近的特征。最近的一些研究也表明,如果充分利用遠程依賴關系,性能可以得到提高。因此,可以收集更多有用的上下文信息來更好地學習車道特征。
為此,先沿車道進行卷積計算,這樣,車道先驗中的每個像素都可以收集附近像素的信息,并且可以根據該信息對占用的部分進行強化。此外,還通過建立了車道先驗特征和整個特征圖之間的關系。因此,可以利用更多的上下文信息來學習更好的特征表示。
整個ROI搜集模塊結構重量輕且易于實施。因為,它以特征圖和車道先驗作為輸入,每個車道先驗有 N 個點。與邊界框的 ROI Align 不同,對于每個車道先驗信息搜集,需要先按照 ROI Align得到車道先驗的 ROI 特征 (Xp ∈ RC×Np )。從車道先驗中均勻采樣 Np 點,并使用雙線性插值來計算這些位置處輸入特征的精確值。對于L1、L2的ROI特征,可以通過連接前幾層的 ROI 特征來增強特征表示。通過對提取的 ROI 特征進行卷積可以收集每個車道像素的附近特征。為了節省內存,這里使用全連接來進一步提取車道先驗特征(Xp ∈ RC×1),其中,特征圖的大小調整為 Xf ∈ RC×H×W ,可以繼續展平為 Xf ∈RC×HW 。
為了收集車道具有先驗特征的全局上下文信息,需要首先計算 ROI 車道先驗特征 (Xp) 和全局特征圖 (Xf) 之間的注意力矩陣 W,其寫為:
其中 f 是歸一化函數 soft max。聚合后的特征可寫為:
輸出 G 反映了 Xf 對 Xp 的疊加值,它是從 Xf 的所有位置中選擇的。最后,將輸出添加到原始輸入 Xp 上。
為了進一步演示 ROIGather 在網絡中的工作原理,在圖3 中可視化了注意力圖的ROIGather 分析。它顯示了車道先驗的 ROI 特征和整個特征圖之間的注意力。橙色線是之前對應的車道,紅色區域對應于注意力權重的高分。
圖 3. ROIGather 中注意力權重的圖示
如上圖顯示了車道先驗(橙色線)的 ROI 特征與整個特征圖之間的注意力權重。顏色越亮,權重值越大。值得注意的是,所提出的 ROIGather 可以有效地收集具有豐富語義信息的全局上下文,即使在遮擋下也能捕獲前景車道的特征。
5、車道線交并比IoU 損失
如上所述,車道先驗由需要與其基本事實回歸的離散點組成。常用的距離損失(如 smooth-l1)可用于對這些點進行回歸。然而,這種損失將點作為單獨的變量,這是一個過于簡單化的假設,導致回歸不太準確。
與距離損失相反,并集交集(IoU)可以將車道先驗作為一個整體單元進行回歸,并且它是針對評估指標量身定制的。這里推導出一種簡單有效的算法來計算線 IoU (LIoU) 損失。
如下圖所示,線交并比 IoU可以通過根據采樣的 xi 位置對擴展段的 IoU 進行積分來計算。
圖 4. 線 IoU 圖示
如上圖所示的公式中顯示,從線段交并比 IoU 的定義開始引入線 IoU 損失,即兩條線段之間相互作用與并集的比率。對于如圖 4 所示的預測車道中的每個點,首先將其(xpi )以半徑 e 延伸為線段。然后,可以計算延長線段與其groundtruth之間的IoU,寫為:
其中 xpi - e, xpi + e 是 xpi 的擴展點,xgi -e,xgi + e 是對應的groundtruth點。請注意,d0i可以為負值,這使得在非重疊線段的情況下可以進行有效的信息優化。
那么LIoU可以被認為是無限線點的組合。為了簡化表達式并易于計算,將其轉換為離散形式,
然后,LIoU損失定義為:
其中?1 ≤ LIoU ≤1,當兩條線完美重疊時,則LIoU = 1,當兩條線相距較遠時,LIoU收斂于-1。
通過Line IoU損失來計算車道線關聯關系有兩個優點:(1)它簡單且可微分,很容易實現并行計算。(2)它將車道作為一個整體進行預測,這有助于提高整體性能。
6、訓練和推理細節
首先,是進行正向樣本選擇。
在訓練過程中,每個地面真實車道作為正樣本被動態分配一個或多個預測車道。特別是,根據分配成本對預測車道進行排序,其定義為:
這里 Ccls 是預測和標簽之間的焦點成本。Csim 是預測車道和真實車道之間的相似成本。它由三部分組成,Cdis表示所有有效車道點的平均像素距離,Cxy表示起點坐標的距離,Ctheta表示theta角的差值,它們都歸一化為[0, 1]。wcls和wsim是每個定義分量的權重系數。每個地面實況車道都根據 Cassign 分配有動態數量(top-k)的預測車道。
其次,是訓練損失。
訓練損失包括分類損失和回歸損失,其中,回歸損失僅對指定的樣本進行計算。總體損失函數定義為:
Lcls 是預測和標簽之間的焦點損失,Lxytl 是起點坐標、theta 角度和車道長度回歸的 smooth-l1 損失,LLIoU 是預測車道和地面實況之間的線 IoU 損失。通過添加輔助分割損失的方式,僅在訓練期間使用,沒有推理成本。
最后,是進行有效推理。通過設置一個帶有分類分數的閾值來過濾背景車道(低分車道先驗),并使用 nms 來刪除之后的高重疊車道。如果使用一對一分配,即設置 top-k = 1,這里也可以是無 nms 的。
總結
在本文中,我們提出了用于車道檢測的跨層細化網絡(CLRNet)。CLRNet 可以利用高級特征來預測車道,同時利用局部詳細特征來提高定位精度。為了解決車道存在的視覺證據不足的問題,提出通過 ROIGather 建立與所有像素的關系來增強車道特征表示。為了將車道作為一個整體進行回歸,提出了為車道檢測量身定制的 Line IoU 損失,與標準損失(即 smooth-l1 損失)相比,它大大提高了性能。本方法在三個車道檢測基準數據集(即 CULane、LLamas 和 Tusimple)上進行評估。所提出的方法在三個車道檢測基準上大大優于其他最先進的方法(CULane、Tusimple和 LLAMAS)。