目錄
Abstract
1. Introduction
2. Related Work
3. B′ezierLaneNet
3.1. Overview
3.2. Feature Flip Fusion
3.3. End-to-end Fit of a B′ezier Curve
4. Experiments
4.1. Datasets
4.2. Evalutaion Metics
4.3. Implementation Details
4.4. Comparisons
4.5. Analysis
4.6. Limitations and Discussions
5. Conclusions
圖和表
圖
?表
附錄
A. FPS Test Protocol
B. Specifications for Compared Methods
B.1. Segmentation Baseline
B.2. SCNN
B.3. RESA
B.4. UFLD
B.5. PolyLaneNet
B.6. LaneATT
B.7. LSTR
B.8. B′ezierLaneNet
C. B′ezier Curve Implementation Details
D. IoU Loss for B′ezier Curves
E. GT and Prediction Matching Prior
F. Extra Results
G. Discussions
H. Qualitative Results
Abstract
這篇論文提出了一種新穎的基于參數(shù)曲線的方法,用于在RGB圖像中進行車道線檢測。與通常需要啟發(fā)式方法來解碼預(yù)測或制定大量錨點的先進的基于分割和點檢測的方法不同,基于曲線的方法可以自然地學(xué)習(xí)整體的車道表示。為了處理現(xiàn)有多項式曲線方法的優(yōu)化困難,我們提出利用參數(shù)化的貝塞爾曲線,因為它易于計算、穩(wěn)定,并且具有高自由度的變換。此外,我們提出了基于可變形卷積的特征翻轉(zhuǎn)融合,以利用駕駛場景中車道的對稱性質(zhì)。所提出的方法在流行的LLAMAS基準(zhǔn)測試中實現(xiàn)了新的最先進性能。在TuSimple和CULane數(shù)據(jù)集上,它也取得了良好的準(zhǔn)確性,同時保持了低延遲(>150 FPS)和小模型大小(<10M)。我們的方法可以作為車道檢測參數(shù)曲線建模的新基線,為自動駕駛感知提供新的參考。我們的模型代碼以及PytorchAutoDrive: 一個用于自動駕駛感知的統(tǒng)一框架,可在https://github.com/voldemortX/pytorch-auto-drive找到。
1. Introduction
車道檢測是自動駕駛系統(tǒng)中的一項基礎(chǔ)任務(wù),它支持車道保持、居中和變換等決策。先前的車道檢測方法[2, 12]通常依賴于昂貴的傳感器,如激光雷達(LIDAR)。隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,許多研究[19, 21, 22, 33, 41]提出了從商用前置攝像頭捕獲的RGB圖像中檢測車道線的方法。
深度車道檢測方法可以分為三類,即基于分割、基于點檢測和基于曲線的方法(圖1)。在這些方法中,基于分割和基于點檢測的方法通常通過依賴經(jīng)典分割[5]和目標(biāo)檢測[28]網(wǎng)絡(luò)來實現(xiàn)最先進的車道檢測性能。基于分割的方法[21,22,41]利用前景紋理線索對車道像素進行分割,并通過啟發(fā)式方法將這些像素解碼為線實例。基于點檢測的方法[15,33,39]通常采用R-CNN框架[9,28],通過檢測密集點系列(例如,垂直軸上的每10個像素一個點)來檢測車道線。這兩種方法都通過間接的代理(即分割圖和點)表示車道線。為了處理對整體車道線的學(xué)習(xí),在遮擋或惡劣的天氣/光照條件下,它們不得不依賴于低效的設(shè)計,例如循環(huán)特征聚合(對于實時任務(wù)來說太重)[22,41],或者大量的啟發(fā)式錨點(> 1000,可能偏向于數(shù)據(jù)集統(tǒng)計)[33]。
另一方面,目前只有少數(shù)幾種方法[19, 32]被提出來將車道線建模為整體曲線(通常是多項式曲線,例如 x = ay3 + by2 + cy + d)。盡管我們期望整體曲線是一種簡潔而優(yōu)雅的方式來模擬車道線的幾何屬性,但抽象的多項式系數(shù)很難學(xué)習(xí)。先前的研究表明,這些方法的性能遠遠落后于設(shè)計良好的基于分割和基于點檢測的方法(在CULane [22]數(shù)據(jù)集上與最先進的方法相比差距高達8%)。在本文中,我們旨在回答這樣一個問題:是否有可能構(gòu)建一個最先進的基于曲線的車道檢測器。
我們觀察到,經(jīng)典的三次貝塞爾曲線在參數(shù)化駕駛場景中車道線的形變時具有足夠的自由度,保持低計算復(fù)雜性和高穩(wěn)定性。這啟發(fā)我們提出通過貝塞爾曲線對車道線的細(xì)長幾何形狀進行建模。通過在圖像上的貝塞爾控制點進行優(yōu)化的便利性使得網(wǎng)絡(luò)可以通過雙向匹配損失 [38] 進行端到端的學(xué)習(xí),使用來自簡單的逐列池化(例如,在CULane數(shù)據(jù)集上使用50個提案)的稀疏車道提案集,無需任何后處理步驟,如非極大值抑制(NMS)或手工制作的啟發(fā)式方法,例如錨點,因此實現(xiàn)了高速度和小模型尺寸。此外,我們觀察到從前置攝像頭(例如,車道之間或左右車道之間)觀察到的車道線呈對稱形狀。為了建模駕駛場景的這種全局結(jié)構(gòu),我們進一步提出了特征翻轉(zhuǎn)融合,通過聚合特征圖及其水平翻轉(zhuǎn)版本來加強這種共存。我們基于可變形卷積 [42] 的特征翻轉(zhuǎn)融合設(shè)計,以對齊由旋轉(zhuǎn)相機、變道、非配對線等引起的不完美對稱性。我們進行了大量實驗證明我們方法的性質(zhì),并展示在三個流行的基準(zhǔn)數(shù)據(jù)集上,它相對于最先進的車道檢測器表現(xiàn)良好。我們的主要貢獻總結(jié)如下:
我們提出了一種新穎的基于Bézier曲線的深度車道檢測器,能夠有效地建模車道線的幾何形狀,并在惡劣駕駛條件下具有自然的魯棒性。
我們提出了一種新穎的基于可變形卷積的特征翻轉(zhuǎn)融合模塊,以利用從前視攝像頭觀察到的車道的對稱性質(zhì)。
通過在三個流行的車道檢測數(shù)據(jù)集上進行廣泛的實驗證明,我們的方法速度快、輕量級且準(zhǔn)確。具體而言,我們的方法在LLAMAS基準(zhǔn)[3]上,使用輕量級的ResNet-34骨干網(wǎng),優(yōu)于所有現(xiàn)有方法。
2. Related Work
Segmentation-based Lane Detection.??這些方法將車道檢測表示為逐像素分割。SCNN [22] 將車道檢測表述為多類別語義分割,是TuSimple挑戰(zhàn) [1] 中第一名解決方案的基礎(chǔ)。其核心的空間卷積神經(jīng)網(wǎng)絡(luò)模塊通過循環(huán)聚合空間信息以完成不連續(xù)的分割預(yù)測,然后需要啟發(fā)式后處理來解碼分割地圖。因此,它具有較高的延遲,并且僅在由鄭等人進行的優(yōu)化之后才努力實現(xiàn)實時性 [41]。其他方法探索知識蒸餾 [13] 或生成建模 [8],但它們的性能僅略優(yōu)于經(jīng)典的SCNN。此外,這些方法通常假設(shè)存在一個固定數(shù)量(例如,4)的車道線。LaneNet [21] 利用實例分割流程來處理可變數(shù)量的車道線,但它需要在推理后進行聚類以生成車道線實例。一些方法采用了逐行分類 [26, 40],這是對逐像素分割的自定義下采樣,因此它們?nèi)匀恍枰M行后處理。Qin等人 [26] 提出為了低延遲而犧牲性能,但是他們使用全連接層導(dǎo)致模型體積較大。
簡而言之,基于分割的方法通常需要進行大量的后處理,這是因為表示的不對齊。它們還受到分割任務(wù)的局限性的影響,因此在遮擋或極端光照條件下往往表現(xiàn)較差。
Point Detection-based Lane Detection.??目標(biāo)檢測方法的成功驅(qū)使研究人員將車道檢測任務(wù)轉(zhuǎn)變?yōu)闄z測車道的一系列點(例如,在垂直軸上每10個像素)。Line-CNN [15] 將經(jīng)典的Faster R-CNN [28] 調(diào)整為一階段車道線檢測器,但推理速度較慢(<30 FPS)。后來,LaneATT [33] 采用了更通用的一階段檢測方法,取得了更優(yōu)越的性能。
然而,這些方法必須設(shè)計啟發(fā)式車道錨點,這高度依賴于數(shù)據(jù)集統(tǒng)計,并需要進行非極大值抑制(NMS)作為后處理。相反,我們將車道線表示為具有完全端到端流程的曲線(無錨點,無NMS)。
Curve-based Lane Detection.??這項開創(chuàng)性的工作[37]提出了一個可微分的最小二乘擬合模塊,用于將多項式曲線(例如,x = ay3 + by2 + cy + d)擬合到由深度神經(jīng)網(wǎng)絡(luò)預(yù)測的點上。PolyLaneNet[32]然后直接學(xué)習(xí)使用簡單的全連接層來預(yù)測多項式系數(shù)。最近,LSTR[19]使用Transformer塊以端到端的方式基于DETR[4]預(yù)測多項式。
曲線是對車道線的整體表示,自然地消除了遮擋,無需后處理,并且能夠預(yù)測可變數(shù)量的車道線。然而,在大型和具有挑戰(zhàn)性的數(shù)據(jù)集(例如 CULane [22] 和 LLAMAS [3])上,它們在性能上仍然落后于其他類別的方法。它們還面臨收斂速度較慢的問題(例如,在 TuSimple 上需要超過 2000 個訓(xùn)練周期),以及高延遲的架構(gòu)(例如,LSTR [19] 使用難以優(yōu)化為低延遲的 transformer blocks)。我們將它們的失敗歸因于難以優(yōu)化和抽象的多項式系數(shù)。我們提出使用參數(shù)化的貝塞爾曲線,該曲線由圖像坐標(biāo)系統(tǒng)上的實際控制點定義,以解決這些問題。
B′ezier curve in Deep Learning.??根據(jù)我們的了解,Bézier曲線在深度學(xué)習(xí)中的唯一已知成功應(yīng)用是ABCNet [20],該網(wǎng)絡(luò)在文本檢測中使用了三次Bézier曲線。然而,他們的方法不能直接用于我們的任務(wù)。首先,該方法仍然使用非極大值抑制(NMS),因此無法實現(xiàn)端到端的訓(xùn)練。我們在我們的工作中表明,NMS是不必要的,因此我們的方法可以成為端到端的解決方案。其次,它直接在稀疏的Bézier控制點上計算L1損失,這導(dǎo)致了優(yōu)化的困難。我們通過利用細(xì)粒度采樣損失來解決這個問題。此外,我們提出了特別為車道檢測任務(wù)設(shè)計的特征翻轉(zhuǎn)融合模塊。
3. B′ezierLaneNet
3.1. Overview
Preliminaries on B′ezier Curve.?Bézier曲線的表達式如下(Equation (1)),這是一條由 n + 1 個控制點定義的參數(shù)曲線:
我們使用經(jīng)典的三次貝塞爾曲線(n = 3),經(jīng)驗上發(fā)現(xiàn)它足以用于建模車道線。與三階多項式相比,它表現(xiàn)出更好的地面真實擬合能力(見表1),而三階多項式是先前基于曲線的方法[19, 32]的基本函數(shù)。更高階的曲線并未帶來實質(zhì)性的增益,而高自由度可能導(dǎo)致不穩(wěn)定性。這里討論的所有點的坐標(biāo)都是相對于圖像大小的(即主要在范圍[0, 1]內(nèi))。?
The Proposed Architecture.?模型的總體架構(gòu)如圖2所示。具體而言,我們使用ResNets [11]的第三層特征作為骨干網(wǎng)絡(luò),采用RESA [41]的方法。但我們用兩個具有膨脹率的膨脹塊替換了骨干網(wǎng)絡(luò)內(nèi)部的膨脹。這對于我們的方法在速度和準(zhǔn)確性之間取得更好的平衡,產(chǎn)生了一個下采樣16倍的特征圖,具有更大的感受野。然后,我們添加特征翻轉(zhuǎn)融合模塊(第3.2節(jié))來聚合相對的車道特征。豐富的特征圖()然后通過平均池化池化為(),生成個提案(對于CULane為50個)。我們使用兩個的1D卷積來轉(zhuǎn)換池化特征,同時方便地對附近車道提案之間的相互作用進行建模,引導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)非極大值抑制(NMS)函數(shù)的替代方法。最后,最終預(yù)測由分類和回歸分支獲得(每個分支只有一個的1D卷積)。輸出為,用于回歸4個控制點,以及,表示車道線對象的存在。
3.2. Feature Flip Fusion
通過將車道線建模為整體曲線,我們關(guān)注個體車道線的幾何特性(例如,細(xì)長和連續(xù))?,F(xiàn)在,我們考慮來自車前攝像頭視角的行駛場景中車道的全局結(jié)構(gòu)。道路上的車道線等距分布,呈對稱形態(tài),這一性質(zhì)值得建模。例如,左側(cè)自車道線的存在很可能表明其右側(cè)對應(yīng)物的存在,即直觀左車道的結(jié)構(gòu)可能有助于描述直觀右車道,等等。
為了利用這一特性,我們將特征圖與其水平翻轉(zhuǎn)版本融合在一起(圖3)。具體來說,兩個單獨的卷積層和歸一化層分別轉(zhuǎn)換每個特征圖,然后它們在通過 ReLU 激活之前相加在一起。通過這個模塊,我們期望模型基于兩個特征圖進行預(yù)測。
為了考慮攝像機捕獲圖像的輕微不對齊(例如,旋轉(zhuǎn)、轉(zhuǎn)向、非配對),我們在學(xué)習(xí)偏移時對翻轉(zhuǎn)的特征圖應(yīng)用可變形卷積[42],卷積核大小為3 × 3,同時根據(jù)原始特征圖進行特征對齊。
我們在ResNet主干網(wǎng)絡(luò)上添加了一個輔助的二進制分割分支,用于分割車道線和非車道線區(qū)域。在訓(xùn)練后,該分支將被移除。我們期望這個分支能夠促使網(wǎng)絡(luò)學(xué)習(xí)到更多的空間細(xì)節(jié)。有趣的是,我們發(fā)現(xiàn)只有在這個分支與特征融合一起工作時,性能才會提升。這是因為分割任務(wù)的局部化可能提供了更空間精確的特征圖,從而支持在翻轉(zhuǎn)特征之間進行準(zhǔn)確的融合。
可視化結(jié)果如圖4所示,從中我們可以看到翻轉(zhuǎn)特征確實修正了汽車引入的不對稱性導(dǎo)致的錯誤(圖4(a))。
3.3. End-to-end Fit of a B′ezier Curve
Distances Between B′ezier Curves.?學(xué)習(xí)貝塞爾曲線的關(guān)鍵在于定義一個良好的距離度量,用于測量地面真實曲線與預(yù)測曲線之間的距離。一種直觀的方法是直接計算曲線控制點之間的平均L1距離,就像ABCNet [20]中所做的那樣。然而,如圖5(a)所示,曲率控制點的較大L1誤差可能表現(xiàn)為貝塞爾曲線之間非常小的視覺距離,特別是在小曲率或中等曲率的情況下(這在車道線的情況下經(jīng)常發(fā)生)。由于貝塞爾曲線由參數(shù)t ∈ [0, 1]參數(shù)化,我們提出了更合理的貝塞爾曲線采樣損失(圖5(b)),通過在均勻間隔的一組t值(T)上對曲線進行采樣,即相鄰采樣點之間的曲線長度相等。 t值可以通過重新參數(shù)化函數(shù)f(t)進一步轉(zhuǎn)換。具體來說,給定貝塞爾曲線B(t)和預(yù)測曲線?B(t),采樣損失Lreg定義如下:
?其中n表示采樣點的總數(shù),設(shè)置為100。經(jīng)驗上發(fā)現(xiàn)f(t) = t效果良好。這種簡單而有效的損失函數(shù)設(shè)置使得我們的模型更容易收斂,并且對于通常涉及到其他基于曲線或點檢測方法的超參數(shù),比如端點損失的權(quán)重[19]和線段長度損失[33](見圖5(b,c)),我們的模型更不敏感。
B′ezier Ground Truth Generation.?現(xiàn)在我們介紹 Bézier 曲線地面實況的生成。由于車道數(shù)據(jù)集目前是通過在線關(guān)鍵點進行標(biāo)注的,我們需要上述采樣損失的 Bézier 控制點。給定車道線上的標(biāo)注點 ,其中表示第 i 個點的二維坐標(biāo)。我們的目標(biāo)是獲得控制點。與[20]類似,我們使用標(biāo)準(zhǔn)最小二乘擬合。
?其中,是從 0 到 1 均勻采樣的。與文獻 [20] 不同的是,我們不限制地面實況必須具有與原始注釋相同的端點,從而得到更高質(zhì)量的標(biāo)簽。
Label and Prediction Matching.??在訓(xùn)練中,獲得了地面真實標(biāo)簽之后,我們通過使用最優(yōu)二分圖匹配來執(zhí)行 G 個標(biāo)簽和 N 個預(yù)測之間的一對一關(guān)聯(lián)(G < N),從而實現(xiàn)一個完全端到端的流程。遵循王等人 [38] 的方法,我們找到了 N 個預(yù)測的 G 個標(biāo)簽的最佳二分圖匹配的 G 排列 ,具體構(gòu)建如下:
?其中代表第 i 個標(biāo)簽與第 π(i) 個預(yù)測之間的匹配質(zhì)量,基于曲線之間的 L1 距離(采樣損失)和類別得分。默認(rèn)情況下,被設(shè)置為 0.8。以上方程可以通過著名的匈牙利算法有效地求解。
Wang等人[38]也使用了一種空間先驗,將匹配的預(yù)測限制在標(biāo)簽的空間鄰域內(nèi)(物體中心距離,類似于FCOS中的中心性先驗[35])。然而,由于許多車道是具有較大斜率的長線,這種中心性先驗并不實用。更多關(guān)于匹配先驗的研究請參見附錄E。
Overall Loss.?除了 Bézier 曲線采樣損失之外,還有用于車道對象分類(存在性)分支的分類損失 Lc。由于在車道檢測中正負(fù)樣本之間的不平衡程度沒有目標(biāo)檢測那么嚴(yán)重,我們沒有使用 Focal Loss [16],而是采用了簡單的加權(quán)二元交叉熵?fù)p失:
?其中 w 為負(fù)樣本的權(quán)重,在所有的實驗中被設(shè)定為 0.4。二進制分割分支(第 3.2 節(jié))的損失 Lseg 采用相同的格式。
總損失是所有三種損失的加權(quán)和:
?其中,λ1、λ2、λ3分別被設(shè)置為1、0.1、0.75。
4. Experiments
4.1. Datasets
為評估我們提出的方法,我們在三個知名數(shù)據(jù)集上進行了實驗:TuSimple [1]、CULane [22] 和 LLAMAS [3]。TuSimple 數(shù)據(jù)集是在高速公路上收集的,圖像質(zhì)量較高,天氣條件良好。CULane 數(shù)據(jù)集包含更復(fù)雜的城市駕駛場景,包括陰影、極端光照和道路擁堵。LLAMAS 是一個新形成的大規(guī)模數(shù)據(jù)集,是唯一一個沒有公開測試集標(biāo)簽的車道檢測基準(zhǔn)。這些數(shù)據(jù)集的詳細(xì)信息可以在表2中找到。
4.2. Evalutaion Metics
對于 CULane 和 LLAMAS 數(shù)據(jù)集,官方評估指標(biāo)是來自文獻 [22] 的 F1 分?jǐn)?shù)。
?其中精度?,召回率
。假設(shè)線為30像素寬,像素IoU超過0.5的預(yù)測和地面實況線被認(rèn)為是匹配的。
對于TuSimple數(shù)據(jù)集,官方的評價指標(biāo)包括準(zhǔn)確率(Accuracy)、假正例率(False Positive Rate,F(xiàn)PR)和假負(fù)例率(False Negative Rate,F(xiàn)NR)。準(zhǔn)確率的計算公式為,其中是正確預(yù)測的在線點數(shù),是地面真實的在線點數(shù)。
4.3. Implementation Details
Fair Comparison.?為了公平地比較不同的最先進方法,我們在一個統(tǒng)一的PyTorch框架中重新實現(xiàn)了代表性的方法[19,22,41]。我們還提供了一個語義分割的基準(zhǔn)線[5],最初在[22]中提出。我們所有的實現(xiàn)都沒有在訓(xùn)練中使用驗證集,并且只在驗證集上調(diào)整超參數(shù)。一些具有可靠開源代碼的方法是從它們自己的代碼中報告的[26,32,33]。對于與平臺相關(guān)的度量指標(biāo)“每秒幀數(shù)”(FPS),我們在相同的RTX 2080 Ti平臺上重新評估了所有報告的方法。有關(guān)實現(xiàn)和FPS測試的更多細(xì)節(jié),請參見附錄A到C。
Training.??我們在TuSimple、CULane 和 LLAMAS 數(shù)據(jù)集上分別進行了 400、36 和 20 個 epochs 的訓(xùn)練(在單個 RTX 2080 Ti GPU 上,我們的模型訓(xùn)練僅需 12 個 GPU 小時)。輸入分辨率為 288×800 對于 CULane [22] 數(shù)據(jù)集,對于其他數(shù)據(jù)集為 360×640,符合通用實踐。除此之外,所有超參數(shù)都是在 CULane [22] 的驗證集上進行調(diào)優(yōu),并在所有數(shù)據(jù)集上保持一致。我們使用 Adam 優(yōu)化器,學(xué)習(xí)率為,權(quán)重衰減為,批量大小為 20,采用余弦退火學(xué)習(xí)率調(diào)度,與文獻 [33] 中的方法相同。數(shù)據(jù)增強包括隨機仿射變換、隨機水平翻轉(zhuǎn)和顏色抖動。
Testing.?曲線方法無需進行后處理。對于分割方法,我們會應(yīng)用標(biāo)準(zhǔn)的高斯模糊和行選擇后處理。LaneATT [33] 中使用了非極大值抑制(NMS),而我們在 CULane [22] 中去除了其后推斷的 B-Spline 插值,以與我們的框架保持一致。
4.4. Comparisons
Overview.?實驗結(jié)果顯示在表3和表4中。TuSimple [1] 是一個小型數(shù)據(jù)集,具有清晰的天氣、高速公路場景,并且具有相對較容易的評估指標(biāo),因此大多數(shù)方法在這個數(shù)據(jù)集上表現(xiàn)出色。因此,我們主要關(guān)注另外兩個大型數(shù)據(jù)集 [3, 22],在這兩個數(shù)據(jù)集中,各種方法之間仍然存在相當(dāng)明顯的差異。對于高性能方法(在CULane [22]上F1大于70%的方法),我們還在表5中展示了效率指標(biāo)(FPS,參數(shù)數(shù)量)。
Comparison with Curve-based Methods.?正如表3和表4所示,在所有數(shù)據(jù)集中,BézierLaneNet在曲線識別方面表現(xiàn)優(yōu)于先前的曲線方法[19, 32],并將基于曲線的方法的最新技術(shù)水平在CULane [22]上提高了6.85%,在LLAMAS [3]上提高了6.77%。由于我們采用了完全卷積和端到端的流水線,BézierLaneNet的運行速度比LSTR [19]快2倍。LSTR由于其Transformer架構(gòu)存在速度瓶頸,1×和2×模型的幀率分別為98和97。雖然曲線學(xué)習(xí)具有一定難度,但我們的方法收斂速度比LSTR快4-5倍。首次,一種優(yōu)雅的基于曲線的方法能夠在這些數(shù)據(jù)集上挑戰(zhàn)設(shè)計良好的分割方法或點檢測方法,同時展現(xiàn)出良好的折衷,具有可接受的收斂時間。
Comparison with Segmentation-based Methods.?這些方法通常由于循環(huán)特征聚合[22, 41]和使用高分辨率特征圖[5, 22, 41]而速度較慢。B′ezierLaneNet在速度和準(zhǔn)確性方面均表現(xiàn)優(yōu)異。即使與具有大型ResNet101骨干的RESA [41]和SCNN [22]相比,我們的小型模型在CULane [22]上也取得了明顯的優(yōu)勢(1 ~ 2%)。在LLAMAS [3]上,數(shù)據(jù)集限制測試在4條中心線上,分割方法表現(xiàn)出色(表4)。盡管如此,我們的ResNet-34模型仍然在準(zhǔn)確性上勝過SCNN 0.92%。
UFLD [26] 將分割問題重新制定為對降采樣特征圖的逐行分類,以實現(xiàn)更快的速度,但犧牲了準(zhǔn)確性。與我們相比,在 CULane Normal 數(shù)據(jù)集上,UFLD(ResNet-34)準(zhǔn)確性降低了0.9%,而在 Shadow、Crowd、Night 數(shù)據(jù)集上分別降低了7.4%,3.0%,3.2%??傮w而言,我們的方法在相同的骨干網(wǎng)絡(luò)下優(yōu)于 UFLD 3% 到 5%,同時在 ResNet-34 上運行速度更快。此外,UFLD 使用大型全連接層以優(yōu)化延遲,導(dǎo)致模型尺寸巨大(在表5中最大)。
所有分割方法的一個缺點是在極端的強光條件下,性能較差?;谙袼氐模ɑ蚧谙袼鼐W(wǎng)格的,如UFLD [26])分割方法可能依賴于局部紋理的信息,而這些信息在強光照條件下會被破壞。而我們的方法預(yù)測車道線作為整體曲線,因此對局部紋理的變化具有魯棒性。
Comparison with Point Detection-based Methods.??Xu等人[39]采用了一系列基于點檢測的模型,利用神經(jīng)架構(gòu)搜索技術(shù)提出了CurveLanesNAS。盡管該方法采用了復(fù)雜的流程和廣泛的架構(gòu)搜索來在準(zhǔn)確性和浮點運算操作(FLOPs)之間取得最佳平衡,但我們采用簡單的ResNet-34骨干模型(29.9 GFLOPs)在CULane數(shù)據(jù)集上的性能仍然超過其大型模型(86.5 GFLOPs)0.8%。與分割方法在沒有經(jīng)過遞歸特征融合的情況下的類似缺點一樣,CurveLanes-NAS在存在遮擋的情況下性能較差[5, 26]。如表3所示,與我們的ResNet-34模型相比,CurveLanes-NAS-M模型的模型容量相似(35.7 GFLOPs),在正常場景下性能差1.4%,但在陰影和擁擠場景中的差距分別為7.4%和2.7%。
最近,LaneATT [33] 利用點檢測網(wǎng)絡(luò)實現(xiàn)了更高的性能。然而,他們的設(shè)計并非完全端到端(需要非極大值抑制(NMS)),基于啟發(fā)式錨點(>1000),這些錨點直接從數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)中計算而來,因此可能在泛化方面存在系統(tǒng)性的困難。盡管如此,在使用ResNet-34的情況下,我們的方法在LLAMAS [3]測試服務(wù)器上優(yōu)于LaneATT(1.43%),并且具有顯著更高的召回率(3.58%)。我們在僅使用TuSimple [1]訓(xùn)練集時達到了與LaneATT相當(dāng)?shù)男阅埽贑ULane上僅差約1%。我們的方法在Dazzle Light方面表現(xiàn)顯著更好(提高了3.3%),在Night方面相當(dāng)(降低了0.4%)。甚至在交叉路口場景(Cross)上,盡管LaneATT表現(xiàn)出極低的假陽性特性(表4中的大Precision-Recall差距),我們的方法在假陽性率方面仍然更低。依賴啟發(fā)式錨點[33]或啟發(fā)式解碼過程[22,26,39,41]的方法在這種場景中往往會有更多的錯誤預(yù)測。此外,NMS是一個順序過程,在實際應(yīng)用中可能具有不穩(wěn)定的運行時。即使在實際輸入上沒有評估NMS,我們的模型在使用ResNet-18和ResNet-34骨干網(wǎng)絡(luò)時分別比LaneATT快29%和28%,參數(shù)更少,分別為2.9×和2.3×。
總結(jié)一下,先前基于曲線的方法(例如 PolyLaneNet [32]、LSTR [19])在性能上明顯較差??焖俜椒ㄍǔ跍?zhǔn)確性(UFLD [26])或模型大?。║FLD [26]、LaneATT [33])方面進行權(quán)衡。準(zhǔn)確的方法要么放棄端到端流水線(LaneATT [33]),要么無法滿足實時要求(SCNN [22]、RESA [41])。而我們的 B′ezierLaneNet 則是完全端到端的,速度快(>150 FPS),輕量級(<10 million parameters),并在不同數(shù)據(jù)集上保持了一致的高準(zhǔn)確性。
4.5. Analysis
雖然我們通過在驗證集上調(diào)優(yōu)了我們的方法,但我們重新運行了基于 ResNet-34 骨干網(wǎng)絡(luò)的消融研究(包括我們的完整方法),并在 CULane 測試集上報告性能,以進行清晰的比較。
Importance of Parametric B′ezier Curve.?我們首先將 Bézier 曲線預(yù)測替換為三次多項式,并為起始點和終點添加輔助損失。如表6所示,盡管在我們的全卷積網(wǎng)絡(luò)中進行了150個周期的訓(xùn)練(詳見附錄B.8),多項式在收斂方面表現(xiàn)得非常糟糕。然后,我們考慮修改 LSTR [19] 以預(yù)測立方 Bézier 曲線,但其性能與預(yù)測多項式相似。我們得出結(jié)論,學(xué)習(xí)多項式可能需要強大的 MLP [19, 32],而從位置感知 CNN 預(yù)測 Bézier 控制點是最好的選擇?;?transformer 的 LSTR 解碼器破壞了精細(xì)的空間信息,抑制了曲線函數(shù)的進展。
Feature Flip Fusion Design.??如表7所示,特征翻轉(zhuǎn)融合帶來了4.07%的改善。我們還發(fā)現(xiàn)輔助分割損失可以進一步規(guī)范化并提高性能,提高了2.45%。值得注意的是,輔助損失只在特征融合的情況下起作用,當(dāng)直接應(yīng)用于基線時,可能導(dǎo)致退化結(jié)果(-3.07%)。標(biāo)準(zhǔn)的3×3卷積在添加輔助分割損失之前和之后均比可變形卷積差,分別下降了2.68%和1.44%。我們將這歸因于特征對齊的影響。
B′ezier Curve Fitting Loss.?如表7所示,通過直接在控制點上使用損失替代采樣損失導(dǎo)致性能下降(在基準(zhǔn)設(shè)置中降低了5.15%)。受目標(biāo)檢測中IoU損失成功的啟發(fā),我們還為Bézier控制點的凸包實現(xiàn)了IoU損失(詳細(xì)公式見附錄D)。然而,接近直線車道的凸包太小,IoU損失在數(shù)值上不穩(wěn)定,因此未能促進采樣損失。
Importance of Strong Data Augmentation.?強大的數(shù)據(jù)增強通過一系列的仿射變換和顏色失真來定義,確切的策略可能會因不同的方法而略有不同。例如,我們使用隨機仿射變換、隨機水平翻轉(zhuǎn)和顏色抖動。LSTR [19] 還使用了隨機光照。默認(rèn)的增強只包括一個小的旋轉(zhuǎn)(3度)。正如表8所示,對于基于曲線的方法,強大的數(shù)據(jù)增強對于避免過擬合是至關(guān)重要的。
對于基于分割的方法[5, 22, 41],我們在較小的TuSimple[1]數(shù)據(jù)集上進行了快速的強增強驗證。所有這些方法都顯示了1 ~ 2%的性能下降。這表明它們可能由于逐像素預(yù)測和啟發(fā)式后處理而具有一定的魯棒性。但是,它們高度依賴于學(xué)習(xí)局部特征的分布,比如紋理,而這些特征在強增強的情況下可能變得混亂。
4.6. Limitations and Discussions
曲線確實是車道線的一種自然表示方法。然而,它們在建模方面的優(yōu)雅性不可避免地帶來了一個缺點。當(dāng)數(shù)據(jù)分布高度偏斜時(在CULane中幾乎所有車道線都是直線),曲率系數(shù)很難進行泛化。我們的貝塞爾曲線方法在一定程度上緩解了這個問題,并在CULane Curve中取得了可接受的性能(62.45)。在TuSimple和LLAMAS等數(shù)據(jù)集上,其中曲率分布相對公平,我們的方法取得了更好的性能。為了處理更廣泛的情況,例如急轉(zhuǎn)彎、阻塞和惡劣天氣,像[30,34,39]這樣的數(shù)據(jù)集可能會很有用。
特征翻轉(zhuǎn)融合是專門為前置攝像頭設(shè)計的,這是深度車道檢測器的典型用例。然而,仍然存在一個強烈的歸納偏見,即假設(shè)場景對稱。在未來的工作中,尋找替代這一模塊的方法將會很有趣,以實現(xiàn)更好的泛化,并去除可變形卷積操作,這對于有效集成到Jetson等邊緣設(shè)備中提出了挑戰(zhàn)。
更多討論見附錄G。
5. Conclusions
在這篇論文中,我們提出了 BézierLaneNet:一種基于參數(shù)化 Bézier 曲線的全新端到端車道檢測器?;趫D像的 Bézier 曲線易于優(yōu)化,并且自然地模擬了車道線的連續(xù)性,無需使用復(fù)雜的設(shè)計,如循環(huán)特征聚合或啟發(fā)式錨點。此外,我們提出了一個特征翻轉(zhuǎn)融合模塊。它有效地模擬了駕駛場景的對稱性,并通過使用可變卷積對輕微不對稱性具有魯棒性。所提出的模型在三個數(shù)據(jù)集上取得了良好的性能,在流行的 LLAMAS 基準(zhǔn)測試中擊敗了所有現(xiàn)有方法。它還具有較快的推理速度(>150 FPS)和輕量級的特點(<10百萬參數(shù))。
Acknowledgements.?這項工作得到了中國國家重點研發(fā)計劃(2019YFC1521104)、中國國家自然科學(xué)基金(61972157、72192821)、上海市科技重大項目(2021SHZDZX0102)、上海市科技委員會(21511101200)、國家社科基金藝術(shù)專項項目(I8ZD22)以及商湯公司合作研究資助。我們感謝秦佳平對道路設(shè)計和幾何的指導(dǎo),感謝龔雨辰和陳攀在類激活映射可視化方面的幫助,感謝龔志軍、徐佳辰和龔靖宇對數(shù)學(xué)問題的深入討論,感謝劉鳳奇提供GPU支持,感謝Lucas Tabelini在評估[32, 33]方面的合作,以及感謝CVPR審稿人提供的建設(shè)性意見。
圖和表
圖
圖1. 車道檢測策略。基于分割和基于點檢測的表示方法是局部且間接的。多項式曲線中使用的抽象系數(shù)(a、b、c、d)很難優(yōu)化。三次貝塞爾曲線由4個實際存在的控制點定義,它大致擬合出線形狀并包圍車道線在其凸包內(nèi)(虛線紅線)。最好以彩色查看。
圖2. 流程圖。 通過典型編碼器(例如ResNet)提取的特征通過特征翻轉(zhuǎn)融合進行增強,然后被匯聚為1D,并應(yīng)用兩個1D卷積層。最后,網(wǎng)絡(luò)通過一個分類分支和一個回歸分支預(yù)測B′ezier曲線。
圖3. 特征翻轉(zhuǎn)融合。通過計算可變形卷積偏移,對翻轉(zhuǎn)和原始特征圖進行對齊。最佳查看顏色。
圖4. 基于ResNet骨干網(wǎng)絡(luò)最后一層的Grad-CAM [31] 可視化結(jié)果。 (a) 我們的模型能夠從清晰的標(biāo)線和對面道路上的車輛推斷出一條模糊標(biāo)線的存在。請注意,汽車偏向左側(cè),這個場景并沒有完美對稱地捕捉到。 (b) 當(dāng)整個道路缺乏清晰標(biāo)線時,我們利用兩側(cè)信息進行更好的預(yù)測。最好在彩色環(huán)境中查看。
?圖5. 車道線損失函數(shù)。 (a) 控制點的L1距離與曲線之間的實際距離不高度相關(guān)。 (b) 提出的采樣損失是一種通過t-采樣的統(tǒng)一距離度量。 (c) 多項式回歸的典型損失[19],至少需要3個獨立的損失:y-采樣損失,y起始點損失,y結(jié)束點損失。
?表
表1. 在TuSimple [1] 測試集上對n階Bézier曲線和多項式的比較(數(shù)值越小越好)。由于官方度量過于寬松,難以顯示出有意義的差異,因此我們使用了細(xì)粒度的LPD指標(biāo),遵循[32]的定義。
表2. 數(shù)據(jù)集詳細(xì)信息。*LLAMAS數(shù)據(jù)集的行數(shù)超過4行,但官方指標(biāo)只評估4行。
表3. 在CULane [22] 和 TuSimple [1] 測試集上的結(jié)果。*在我們的代碼框架中再現(xiàn)的結(jié)果,最佳性能來自三次隨機運行中的最好結(jié)果。**從作者的可靠開源代碼中報告的結(jié)果。
?表4.來自LLAMAS [3]測試服務(wù)器的結(jié)果。
?表格 5. FPS(圖像/秒)和模型大小。所有FPS結(jié)果均在相同平臺上使用 360 × 640 隨機輸入進行測試。此處僅顯示CULane [22] F1得分超過70%的模型。
?表6.曲線表示。基線直接預(yù)測曲線系數(shù),無需特征翻轉(zhuǎn)融合。
表7. 消融實驗。CP: 控制點損失 [20]。SP: 提出的采樣損失。Flip: 特征翻轉(zhuǎn)融合模塊。Deform: 在特征翻轉(zhuǎn)融合中使用可變形卷積。Seg: 輔助分割損失。
?表8. 數(shù)據(jù)增強消融實驗。增強:強化數(shù)據(jù)增強。
附錄
Appendix Overview.?附錄的組織結(jié)構(gòu)如下:附錄A描述了FPS測試協(xié)議和環(huán)境;附錄B介紹了每種比較方法的實現(xiàn)細(xì)節(jié)(包括我們的在附錄B.8中的細(xì)節(jié));附錄C提供了Bézier曲線的實現(xiàn)細(xì)節(jié),包括采樣、地面真值生成和變換;附錄D為Bézier曲線制定了IoU損失并討論了為何失敗的原因;附錄E探討了除了中心性先驗之外的匹配先驗;附錄F展示了關(guān)于CULane [22]之外的數(shù)據(jù)集的額外消融研究,以驗證特征翻轉(zhuǎn)融合的泛化性;附錄G討論了局限性并認(rèn)識到該領(lǐng)域的新進展;附錄H呈現(xiàn)了我們的方法在三個數(shù)據(jù)集上可視化的定性結(jié)果。
A. FPS Test Protocol
讓一次每秒幀數(shù)(FPS)測試試驗的平均運行時間為對具有其PyTorch[24]實現(xiàn)的模型進行100次連續(xù)推理,而不計算梯度。輸入是一個3x360x640的隨機張量(有些使用全1 [33],對速度沒有影響)。請注意,所有方法都不使用像TensorRT這樣的優(yōu)化包。我們在計算整個運行時之前等待所有CUDA核心完成。我們使用Python的time.perf_counter()
,因為它比time.time()
更精確。對于所有方法,F(xiàn)PS報告為3次試驗中的最佳結(jié)果。
在每次測試試驗之前,我們進行至少10次前向傳播作為設(shè)備的預(yù)熱。對于每種新的測試方法,我們持續(xù)運行預(yù)熱試驗,直到達到與之前記錄的幀每秒(FPS)相似的水平,以確保再次達到類似的峰值機器狀態(tài)。
Evaluation Environment.?評估平臺采用了一臺裝備有標(biāo)準(zhǔn)頻率的2080 Ti GPU、搭載Intel Xeon-E3 CPU的服務(wù)器。該平臺使用了CUDA 10.2、CuDNN 7.6.5以及PyTorch 1.6.0。FPS是一個受平臺影響的度量標(biāo)準(zhǔn),取決于GPU頻率、環(huán)境條件、總線帶寬、軟件版本等因素。在使用2080 Ti的情況下,Tabelini等人在所有方法中都能夠?qū)崿F(xiàn)更好的峰值性能。因此,我們在所有FPS測試中都使用相同的平臺,以提供公平的比較。
Remark.?請注意,F(xiàn)PS(每秒處理圖像數(shù))與吞吐量(每秒處理的圖像數(shù)量)是不同的概念。由于FPS將批處理大小限制為1,因此更好地模擬了實時應(yīng)用場景。而吞吐量考慮了批處理大小大于1的情況。LSTR [19] 報告了其最快模型的吞吐量為420 FPS,實際上是使用批處理大小為16的情況。我們重新測試的FPS為98。
B. Specifications for Compared Methods
B.1. Segmentation Baseline
這個分割基線是基于DeeplabV1 [5] 的,最初是在SCNN [22] 中提出的。實質(zhì)上,它是沒有使用條件隨機場(CRF)的原始DeeplabV1,車道被視為不同的類別,并且使用一個獨立的車道存在分支(一系列卷積、池化和多層感知機)來便于車道的后處理。我們基于最新的進展 [41] 對其進行了訓(xùn)練和測試方案的優(yōu)化。在我們的代碼庫中重新實現(xiàn)后,它達到了比最近的論文通常報告的性能更高的水平。
Post-processing.?首先,通過車道存在分支確定是否存在車道。然后,將預(yù)測的每像素概率圖插值到輸入圖像的大小。接下來,對預(yù)測進行9×9的高斯模糊,以平滑概率圖。最后,對于每個存在的車道類別,通過預(yù)定義的Y坐標(biāo)(量化),遍歷平滑的概率圖,并記錄通過固定閾值的條件下,在行上概率最大位置的對應(yīng)X坐標(biāo)。具有少于兩個合格點的車道將被簡單地丟棄。
Data Augmentation.?我們使用了一種簡單的隨機旋轉(zhuǎn)方法,旋轉(zhuǎn)角度很?。?度),然后將圖像調(diào)整為輸入分辨率。
B.2. SCNN
我們的SCNN[22]是基于Torch7官方代碼重新實現(xiàn)的。在作者的建議下,我們?yōu)榭臻gCNN層添加了一種初始化技巧,并引入了學(xué)習(xí)率預(yù)熱,以防止由于循環(huán)特征聚合導(dǎo)致的梯度爆炸。因此,我們可以安全地調(diào)整學(xué)習(xí)率。我們改進后的SCNN在性能上明顯優(yōu)于原始版本。
一些人可能會提到 SCNN 在 TuSimple 數(shù)據(jù)集上達到了 96.53% 的準(zhǔn)確度,但需要注意這是通過使用外部數(shù)據(jù)進行訓(xùn)練的競賽結(jié)果。我們在我們的代碼庫中報告的 SCNN 是使用相同的數(shù)據(jù)集(與其他重新實現(xiàn)的方法相同)并采用 ResNet 骨干網(wǎng)絡(luò)進行訓(xùn)練的。
Post-processing.?同附錄B.1。
Data Augmentation.?同附錄B.1。
B.3. RESA
我們的 RESA 模型在實現(xiàn)上與其官方發(fā)布的代碼有一些不同,主要的區(qū)別之一是我們沒有在非車道區(qū)域進行切割(在每個數(shù)據(jù)集中,車道注釋有一個特定的高度范圍)。因為這個技巧是特定于數(shù)據(jù)集的,并且不具有普適性,我們沒有在所有比較的方法中使用它。其他的差異都經(jīng)過驗證,至少在 CULane 驗證集上表現(xiàn)更好,這些改進都在官方代碼的基礎(chǔ)上進行。
Post-processing.?同附錄B.1。
Data Augmentation.?同附錄B.1。原始 RESA 論文 [41] 中同樣使用了隨機水平翻轉(zhuǎn),但在我們的重新實現(xiàn)中發(fā)現(xiàn)這種方法并不有效。
B.4. UFLD
Ultra Fast Lane Detection (UFLD) [26] 是從他們的論文和開源代碼中得到的。由于 TuSimple 數(shù)據(jù)集中的假正例(FP)和假負(fù)例(FN)的信息沒有在論文中提供,而且使用源代碼進行訓(xùn)練導(dǎo)致非常高的假正例率(接近20%),因此我們沒有報告其在該數(shù)據(jù)集上的性能。我們調(diào)整了其性能分析腳本,以在我們的標(biāo)準(zhǔn)下計算參數(shù)數(shù)量和每秒幀數(shù)(FPS)。
Post-processing.?由于這種方法使用網(wǎng)格單元(每個單元等同于分割概率圖中的若干像素),每個點的X坐標(biāo)是通過位置(同一行的單元)的期望值計算的,即通過概率的加權(quán)平均。與分割后處理不同,這種方法可以被高效地實現(xiàn)。
Data Augmentation.?增強包括隨機旋轉(zhuǎn)和某種形式的隨機平移。
B.5. PolyLaneNet
PolyLaneNet [32] 是從他們的論文和開源代碼中報告的。我們在我們的標(biāo)準(zhǔn)中添加了一個性能分析腳本,用于計算參數(shù)數(shù)量和每秒幀數(shù)(FPS)。
Post-processing.?這種方法不需要后期處理。
Data Augmentation.?數(shù)據(jù)增強操作包括大范圍的隨機旋轉(zhuǎn)(10度)、隨機水平翻轉(zhuǎn)和隨機裁剪。它們以的概率應(yīng)用。
B.6. LaneATT
LaneATT [33] 的參數(shù)和FPS的計算是根據(jù)他們的論文和開源代碼進行的。我們調(diào)整了其性能分析腳本,以符合我們的標(biāo)準(zhǔn)。
Post-processing.?非極大值抑制(NMS)由一個自定義的CUDA核心實現(xiàn)。在測試和性能分析中,通過B樣條對車道進行額外的插值被移除,因為它在CPU上執(zhí)行速度較慢,而且提供的改善很?。s0.2%在CULane上)。
Data Augmentation.?LaneATT 使用隨機的仿射變換,包括縮放、平移和旋轉(zhuǎn)。同時,它還使用了隨機的水平翻轉(zhuǎn)。
Followup.?由于我們在提交截止日期前沒有時間驗證在我們的代碼庫中重新實現(xiàn)的 LaneATT 模型,因此 LaneATT 的性能仍然是從官方代碼中報告的。我們的重新實現(xiàn)表明,除了在 CULane 上使用 ResNet-34 骨干網(wǎng)絡(luò)的結(jié)果略微超出標(biāo)準(zhǔn)偏差范圍之外,所有 LaneATT 的結(jié)果都是可復(fù)現(xiàn)的,但仍然在合理范圍內(nèi)。
B.7. LSTR
LSTR [19] 在我們的代碼庫中進行了重新實現(xiàn)。所有的 ResNet 骨干網(wǎng)絡(luò)都是從 ImageNet [14] 預(yù)訓(xùn)練開始的。然而,LSTR [19] 使用了在 CULane(2×)中為 256 通道的 ResNet-18,而在其他數(shù)據(jù)集(1×)中為 128 通道,這使得無法直接使用現(xiàn)成的預(yù)訓(xùn)練 ResNets。盡管 ImageNet 預(yù)訓(xùn)練是否有助于車道檢測仍然是一個未解之謎。我們在 CULane 上報告的 LSTR 性能是該數(shù)據(jù)集上的首次記錄。通過調(diào)整超參數(shù)(學(xué)習(xí)率、迭代次數(shù)、預(yù)測閾值)、修復(fù)錯誤(原始分類分支具有 3 個輸出通道,而應(yīng)該是 2 個),我們在 CULane 上的性能比作者的試驗提高了 4%。具體而言,我們使用學(xué)習(xí)率為 2.5 × 10^(-4),批量大小為 20,分別進行了 150 和 2000 個 epochs,在 CULane 和 TuSimple 上使用了 0.95 和 0.5 的預(yù)測閾值。在 TuSimple 中使用較低的閾值是因為官方測試指標(biāo)更傾向于高召回率,然而,對于實際應(yīng)用來說,高召回率會導(dǎo)致高假陽性率,這是不希望看到的。
我們在進行 LSTR-Bezier 實驗時,通過將曲線損失的權(quán)重除以 10,這是因為我們在該實驗中使用了 100 個采樣點,這些點具有 X 和 Y 坐標(biāo),需要進行擬合。因此,該損失的規(guī)模大約是原始損失的 10 倍(LSTR 損失采用點 L1 距離的求和而不是平均值)。通過這種調(diào)整,我們實現(xiàn)了與原始 LSTR 相似的損失景觀。
Post-processing.?這種方法不需要后期處理。
Data Augmentation.數(shù)據(jù)增強包括PolyLaneNet的(附錄B.5),然后添加了隨機顏色失真(亮度、對比度、飽和度、色調(diào))以及從COCO數(shù)據(jù)集[17]計算得出的光源進行的隨機照明。這是迄今為止在這一研究領(lǐng)域中最復(fù)雜的數(shù)據(jù)增強流程,我們已驗證該流程的所有組件都有助于LSTR的訓(xùn)練。
Remark.?LSTR的多項式系數(shù)無界,導(dǎo)致數(shù)值不穩(wěn)定(而二分圖匹配需要精度),以及訓(xùn)練的高失敗率。在CULane上,fp32訓(xùn)練的失敗率約為30%。在BezierLaneNet中,這個問題得以解決,因為我們的L1損失可以被限制在[0, 1]范圍內(nèi),而不影響學(xué)習(xí)(控制點可以輕松收斂到圖像上)。
B.8. B′ezierLaneNet
BézierLaneNet是在相同的代碼框架中實現(xiàn)的,我們在這個框架中重新實現(xiàn)了其他方法。與LSTR一樣,默認(rèn)的預(yù)測閾值被設(shè)置為0.95,而在TuSimple中使用的是0.5 [1]。
Post-processing.?這種方法不需要后期處理。
Data Augmentation.我們使用的數(shù)據(jù)增強方法類似于LSTR(附錄B.7)。具體而言,我們移除了LSTR中的隨機光照(為了嚴(yán)格避免使用外部數(shù)據(jù)的知識),并將PolyLaneNet中的幾率增強替換為隨機仿射變換和隨機水平翻轉(zhuǎn),就像LaneATT一樣(附錄B.6)。隨機仿射變換的參數(shù)包括:旋轉(zhuǎn)(最多10度)、平移(X軸最多50像素,Y軸最多20像素)、縮放(最多20%)。
Polynomial Ablations.?在多項式消融實驗(表7)中,我們修改了網(wǎng)絡(luò)以預(yù)測第三階多項式的6個系數(shù)(4個曲線系數(shù)和起始/結(jié)束的Y坐標(biāo))。類似于LSTR [19],我們?yōu)槠鹗?結(jié)束的Y坐標(biāo)添加了額外的L1損失。通過大量的嘗試(調(diào)整學(xué)習(xí)率、損失權(quán)重、訓(xùn)練輪數(shù)),即使在完整的BezierLaneNet設(shè)置下,在CULane數(shù)據(jù)集上進行了150輪訓(xùn)練,模型仍然無法收斂到足夠好的解決方案。換句話說,無法達到足夠精確以通過CULane度量標(biāo)準(zhǔn)。在多項式曲線上的采樣損失只能達到0.02,這意味著在訓(xùn)練集上的平均X坐標(biāo)誤差為0.02 × 1640像素 = 32.8像素。CULane要求曲線之間的IoU為0.5,這些曲線被擴展到30像素寬,因此至少需要大約10像素的平均誤差才能獲得有意義的結(jié)果。通過將IoU要求放寬到0.3,我們可以獲得“BezierLaneNet的第三多項式”F1分?jǐn)?shù)為15.82。盡管審查委員會建議對這個消融實驗添加簡單的正則化以促使收斂,可惜我們未能做到這一點。
C. B′ezier Curve Implementation Details
Fast Sampling.?貝塞爾曲線的采樣可能因為復(fù)雜的伯恩斯坦基多項式而顯得繁瑣。為了通過一系列固定的 t 值快速采樣貝塞爾曲線,可以事先計算伯恩斯坦基多項式的結(jié)果,從而只需進行一次簡單的矩陣乘法。
Remarks on GT Generation.?Bézier曲線的地面實況是通過最小二乘擬合生成的,這是一種多項式擬合的常見技術(shù)。我們選擇這種方法是因為它簡單易懂,并且事實上已經(jīng)表現(xiàn)出接近完美的車道線擬合能力(在CULane測試和LLAMAS驗證集上分別達到99.996和99.72的F1分?jǐn)?shù))。然而,對于參數(shù)曲線來說,這并不是一種理想的算法。有一個專門的研究領(lǐng)域,致力于找到比最小二乘法更好的Bézier曲線擬合算法[23]。
B′ezier Curve Transform.?在貝塞爾曲線上應(yīng)用仿射變換時遇到的一個實現(xiàn)困難是如何處理仿射變換對于控制點的影響(用于在數(shù)據(jù)增強中轉(zhuǎn)換地面實況曲線)。從數(shù)學(xué)上講,在控制點上的仿射變換等效于對整個曲線進行仿射變換。然而,平移或旋轉(zhuǎn)可能會將控制點移出圖像。在這種情況下,需要對貝塞爾曲線進行切割。經(jīng)典的 De Casteljau 算法用于切割圖像上的貝塞爾曲線段。假設(shè)一個連續(xù)的圖像上段,有效的采樣點范圍為 t = t0 到 t = t1。將一個由控制點 P0、P1、P2、P3 定義的三次貝塞爾曲線切割為其圖像上的段 P'0、P'1、P'2、P'3 的公式為:
其中。這個公式可以通過矩陣乘法高效實現(xiàn)。在車道檢測數(shù)據(jù)集上,非連續(xù)的三次貝塞爾曲線的可能性非常低,因此為簡化起見被忽略。即使發(fā)生這種情況,方程(10)也不會改變曲線,而我們的網(wǎng)絡(luò)仍然可以預(yù)測圖像之外的控制點,這些控制點仍然適用于圖像上的車道線段。
D. IoU Loss for B′ezier Curves
在這里,我們簡要介紹了如何構(gòu)建 Bézier 曲線之間的 IoU 損失。在深入算法之前,有兩個前提條件:
極坐標(biāo)排序(Polar sort):通過在N邊形內(nèi)的任意點作為錨點,該N邊形的頂點為(通常為頂點坐標(biāo)的均值,即 ),通過其atan2角度對頂點進行排序。這將返回一個按順時針或逆時針排列的多邊形。
凸多邊形面積:一個有序的凸多邊形可以通過簡單的索引操作高效地分割成相鄰的三角形。凸多邊形的面積是這些三角形的和。三角形((x1, y1), (x2, y2), (x3, y3))的面積S計算公式如下:
假設(shè)我們有兩個由貝塞爾曲線生成的凸多邊形(有許多凸包算法可用)?,F(xiàn)在,將貝塞爾曲線之間的IoU(交并比)轉(zhuǎn)化為凸多邊形之間的IoU。基于一個簡單的事實,即凸多邊形的交集仍然是一個凸多邊形,經(jīng)過對所有凸包進行極坐標(biāo)排序并確定相交的多邊形后,我們可以將IoU計算輕松表示為一系列凸多邊形面積計算。難點在于如何高效地確定凸多邊形對之間的交集。
考慮兩個相交的凸多邊形,它們的交集包括兩種類型的頂點:
-
交點(Intersections): 邊之間的交點,即兩個多邊形的邊相交的點。
-
內(nèi)部點(Insiders): 存在于兩個多邊形內(nèi)部或邊界上的頂點。
在處理交叉點時,我們首先將每個多邊形的邊表示為通用的直線方程:ax + by = c。然后,對于直線和直線
,交點的計算公式如下:
?其中 。在各自的線段上的所有都是交點。
對于Insiders,定義如下:
定義1:對于一個凸多邊形,位于每條邊同一側(cè)的點 P(x, y) 被視為在多邊形內(nèi)部。
一個排序的凸多邊形是由一系列邊組成的(由 P0(x0, y0) 和 P1(x1, y1) 定義的線段),判斷一個點在線段的哪一側(cè)的方程如下:
sign > 0
意味著點 P 在直線的右側(cè),sign < 0
表示點 P 在直線的左側(cè),而 sign = 0
表示點 P 在直線段上。需要注意的是,對于浮點數(shù)計算,等式 sign = 0
不是穩(wěn)定的操作。但在編碼中有簡單的方法來解決這個問題,這里我們不詳細(xì)展開。
上述公式可以通過矩陣操作和索引實現(xiàn),以有效地確定交叉點和內(nèi)部點。這種方法使得可以迅速地對批量輸入進行訓(xùn)練。
終,在能夠計算凸多邊形的交集和面積之后,廣義IoU損失(GIoU)就可以簡單地表示為(如文獻[29]中所述):
并集(Union)的計算可以表示為 A ∪ B = A + B ? A ∩ B。包圍凸對象 C 可以通過兩個凸多邊形的凸包計算得出,或者通過包圍矩形進行上界限制。我們在 PyTorch 中純粹實現(xiàn)了 IoU(交并比)計算[24],我們的實現(xiàn)運行時僅比矩形 IoU 損失計算的運行時多約 5 倍。
然而,根據(jù)道路設(shè)計規(guī)定 [7, 36],車道線大多是直線。這導(dǎo)致 B′ezier 曲線的凸包區(qū)域非常小,因此在優(yōu)化過程中引入了數(shù)值不穩(wěn)定性。盡管在一個玩具多邊形擬合實驗中取得了成功,但我們目前未能觀察到損失的收斂,以促進在車道數(shù)據(jù)集上的學(xué)習(xí)。
E. GT and Prediction Matching Prior
我們不采用中心度先驗,而是嘗試使用局部最大先驗,即限制匹配預(yù)測具有局部最大分類Logit。這種先驗可以幫助模型理解車道線的空間稀疏結(jié)構(gòu)。如圖6所示,用于分類Logit的學(xué)習(xí)特征激活呈現(xiàn)出與實際駕駛場景相似的結(jié)構(gòu)。
F. Extra Results
表 9. 在TuSimple測試集(準(zhǔn)確率)和LLAMAS驗證集(F1分?jǐn)?shù))上的消融研究,包括添加特征翻轉(zhuǎn)融合模塊之前和之后的結(jié)果。使用ResNet-34作為骨干網(wǎng)絡(luò),由于在這些數(shù)據(jù)集上進行的消融研究通常不夠穩(wěn)定,難以顯示方法之間的明顯差異,因此報告3次平均值。
G. Discussions
存在一種基于側(cè)視圖的車道檢測器的原始應(yīng)用,用于估算到可駛動區(qū)域邊界的距離[10],這與特征翻轉(zhuǎn)融合的使用相矛盾。在這種情況下,可能一個較低階的Bézier曲線基準(zhǔn)線(使用行向而不是列向池化)就足夠了。這超出了本文的關(guān)注范圍。
Recent Progress.??最近,一些研究者嘗試了不完全符合傳統(tǒng)三類(分割、點檢測、曲線)的車道表示或形式化方法。與流行的自頂向下方法不同,[27] 提出了一種自底向上的方法,重點關(guān)注局部細(xì)節(jié)。[18] 實現(xiàn)了最先進的性能,但是由于車道線的復(fù)雜條件解碼,導(dǎo)致運行時不穩(wěn)定,這對于實時系統(tǒng)并不理想。
H. Qualitative Results
定性結(jié)果如圖7所示,使用我們的ResNet-34骨干模型。對于每個數(shù)據(jù)集,以兩行的形式展示了4個結(jié)果:第一行展示了定性成功的預(yù)測;第二行展示了典型的失敗案例。
TuSimple.?正如圖7(a)所示,我們的模型很好地適應(yīng)了高速公路曲線,僅在圖像的遠側(cè)出現(xiàn)了輕微的誤差,這里的圖像細(xì)節(jié)被投影破壞。我們的典型失敗案例是高FP率,主要歸因于使用了較低的閾值(附錄B.8)。然而,在右下方的寬道場景中,我們的FP預(yù)測實際上是一條有意義的車道線,但在中心線注釋中被忽略。
CULane.?正如圖7(b)所示,該數(shù)據(jù)集中的大多數(shù)車道都是直的。我們的模型能夠在擁堵情況(左上)和陰影(右上,由樹木投下的陰影)下進行準(zhǔn)確的預(yù)測。典型的失敗案例是在遮擋下的預(yù)測不準(zhǔn)確的情況(第二行),在這些情況下,人們通常無法從視覺上判斷哪個更好(地面真實情況還是我們的FP預(yù)測)。
LLAMAS.?如圖7(c)所示,我們的方法在清晰的直線(左上方)上表現(xiàn)出色,對于一個充滿陰影的具有較大曲率的復(fù)雜場景也具有良好的性能。在左下方的圖像中,我們的模型在光照較低、路面有瑕疵的情況下表現(xiàn)不佳。而在另一低照明場景(右下方),來自激光雷達和高清地圖的無監(jiān)督標(biāo)注被白色箭頭誤導(dǎo)(請注意右側(cè)藍線的鋸齒狀形狀)。
圖7. B′ezierLaneNet(ResNet-34)在驗證集上的定性結(jié)果。紅色標(biāo)記的是誤檢(False Positives,F(xiàn)P),綠色標(biāo)記的是正確檢測(True Positives,TP),藍色繪制的是真實標(biāo)注。幾乎看不見的藍線正好被綠線精確覆蓋。B′ezier曲線的控制點用實心圓標(biāo)記。為了對齊,圖像略微調(diào)整大小。最佳觀看方式為彩色圖,2×放大。
一些收藏鏈接
貝塞爾曲線文章來源:http://www.zghlxwxcb.cn/news/detail-770965.html
【AI Drive】第120期 - 上海交通大學(xué)馮正陽:通過曲線建模重新思考高效車道線檢測_嗶哩嗶哩_bilibili?文章來源地址http://www.zghlxwxcb.cn/news/detail-770965.html
到了這里,關(guān)于論文閱讀《Rethinking Efficient Lane Detection via Curve Modeling》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!