在视觉导航系统中,车道检测是一项至关重要的功能。它不仅对自动驾驶和高级驾驶员辅助系统(ADAS)等应用有着显著的影响,而且对于智能车辆的自我定位和安全驾驶起着关键作用。因此,车道检测技术的发展对于提高交通系统的智能化和安全性具有重要意义。
然而,车道检测具有独特的局部模式,要求准确预测网络图像中的车道信息,并依赖详细的低级特征来实现精确定位。因此,车道检测可被视为计算机视觉中一项重要而具有挑战性的任务。
使用不同的特征级别对于准确的车道检测非常重要,但折现工作仍处于探索阶段。本文介绍了跨层细化网络(CLRNet),旨在充分利用到车道检测中的高级和低级特征。首先,通过检测具有高级语义特征的车道,然后根据低级特征进行细化。这种方式可以利用更多的上下文信息来检测车道,同时利用本地详细的车道特征来提高定位精度。此外,通过 ROIGather 的方式来收集全局上下文,可以进一步增强车道的特征表示。除了设计全新的网络之外,还引入了线路 IoU 损失,它将车道线作为一个整体单元进行回归,以提高定位精度。
如前所述,由于Lane具有高级语义,但它拥有特定的局部模式,需要详细的低级特征才能准确定位。如何在 CNN 中有效利用不同的特征级别仍然是一个问题。如下图 1(a)所示,地标和车道线具有不同的语义,但它们具有相似的特征(例如长白线)。如果没有高级语义和全局上下文,很难区分它们。另一方面,地域性也很重要,巷子又长又细,当地格局简单。
在图1(b)中展示了高级特征的检测结果,虽然成功检测到了车道,但其准确性有待提高。因此,结合低层和高层信息能够相互补充,从而实现更精确的车道检测。
车道检测中常见的另一个问题是缺乏车道存在的视觉信息。在某些情况下,车道可能被其他车辆占据,导致难以检测车道。另外,在极端的光照条件下,车道的识别也会变得困难。
以前的工作要么对车道的局部几何进行建模并将其集成到全局结果中,要么构建具有全局特征的全连接层来预测车道。这些检测器已经证明了局部或全局特征对于车道检测的重要性,但没有同时利用好这两个特征,因此可能产生不准确的检测性能。比如,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),它充分利用低階和高階特徵進行車道偵測。具體來說,首先對高語義特徵進行檢測以粗略地定位車道。然後再根據細節特徵逐步細化車道位置和特徵提取可以獲得高精度的偵測結果(即更精確的位置)。為了解決車道的非視覺所能探測的區域盲點問題,引入了 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 是 x#p
i 的延伸點,xg
i -e,x
gi e 是對應的groundtruth點。請注意,d
0i可以為負值,這使得在非重疊線段的情況下可以進行有效的資訊最佳化。
那麼LIoU可以被認為是無限線點的組合。為了簡化表達式並易於計算,將其轉換為離散形式,
#然後,LIoU損失定義為:
其中−1 ≤ LIoU ≤1,當兩條線完美重疊時,則LIoU = 1,當兩條線相距較遠時,LIoU收斂於-1。
透過Line IoU損失來計算車道線關聯關係有兩個優點:(1)它簡單且可微分,很容易實現平行計算。 (2)它將車道作為一個整體進行預測,這有助於提高整體性能。
6、訓練與推理細節
#首先,是進行正向樣本選擇。
在訓練過程中,每個地面真實車道作為正樣本被動態分配一個或多個預測車道。特別是,根據分配成本對預測車道進行排序,其定義為:
其次,是訓練損失。
以上是CLRNet:一種用於自動駕駛車道偵測的分層細化網路演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!