1. 介紹
車(chē)道檢測(cè)是自動(dòng)駕駛和高級(jí)駕駛輔助系統(tǒng)(ADAS)的基本組成部分,用于識(shí)別和定位道路上的車(chē)道標(biāo)記。雖然深度學(xué)習(xí)模型已經(jīng)取得了巨大的成功,但仍有一些重要和具有挑戰(zhàn)性的問(wèn)題有待解決。
第一個(gè)是效率問(wèn)題。在實(shí)際應(yīng)用中,由于下游任務(wù)對(duì)檢測(cè)速度要求較高,在車(chē)輛計(jì)算設(shè)備有限的情況下,車(chē)道檢測(cè)算法被快速執(zhí)行來(lái)提供實(shí)時(shí)的感知結(jié)果。此外,以往的車(chē)道檢測(cè)方法主要基于分割,采用密集的自底向上的學(xué)習(xí)范式,這導(dǎo)致難以取得較快的運(yùn)行速度。
除了效率問(wèn)題,另一個(gè)挑戰(zhàn)是無(wú)視覺(jué)線索問(wèn)題,如圖1所示。車(chē)道檢測(cè)任務(wù)是尋找車(chē)道的位置,不管車(chē)道是否可見(jiàn)。因此,如何處理嚴(yán)重遮擋和極端光照條件下沒(méi)有可見(jiàn)信息的場(chǎng)景是車(chē)道檢測(cè)任務(wù)中的一個(gè)主要難點(diǎn)。為了緩解這個(gè)問(wèn)題,能夠潛在影響檢測(cè)結(jié)果的額外線索是至關(guān)重要的。例如,道路形狀、車(chē)輛行駛方向趨勢(shì)、不被遮擋的車(chē)道線端點(diǎn)等都有利于檢測(cè)。為了利用額外線索,通過(guò)擴(kuò)大感受野來(lái)利用更多信息對(duì)車(chē)道檢測(cè)是可取的。
這就提出了一個(gè)自然的問(wèn)題:我們能否找到一種具有大感受野快速且全局的范式用于車(chē)道檢測(cè)任務(wù)?基于上述動(dòng)機(jī),我們提出了一個(gè)稀疏的自頂向下的范式來(lái)解決效率問(wèn)題和無(wú)視覺(jué)線索問(wèn)題。首先,我們提出了一種新穎的 row-anchor-driven 的車(chē)道表示。一條車(chē)道可以用一系列預(yù)定義的行錨上的坐標(biāo)表示。由于一個(gè)車(chē)道可以很好地由一組關(guān)鍵點(diǎn)表示(在一個(gè)固定的稀疏行錨系統(tǒng)中),效率問(wèn)題可以通過(guò)錨驅(qū)動(dòng)表示的稀疏性來(lái)解決。其次,我們提出了一種基于分類(lèi)的方式來(lái)學(xué)習(xí)錨驅(qū)動(dòng)表示的車(chē)道坐標(biāo)。使用基于分類(lèi)的方式(與整個(gè)全局特征一起工作),感受野與整個(gè)輸入一樣大。它使網(wǎng)絡(luò)能夠更好地捕獲全局和長(zhǎng)程信息用于車(chē)道檢測(cè),有效地解決了無(wú)視覺(jué)線索的問(wèn)題。
此外,我們?cè)诖舜喂ぷ髦邪衍?chē)道線的行錨表示擴(kuò)充為混合錨系統(tǒng)。根據(jù)我們的觀察,行錨不能很好地適用于所有的車(chē)道線,而且會(huì)導(dǎo)致放大的定位問(wèn)題。如圖2a和2b所示,使用行錨時(shí),側(cè)邊車(chē)道的定位精度明顯低于當(dāng)前車(chē)道。如果我們使用列錨呢?在圖2c中,我們可以看到相反的現(xiàn)象,列錨系統(tǒng)對(duì)當(dāng)前車(chē)道的定位能力較差。這個(gè)問(wèn)題使得行錨難以定位水平車(chē)道(側(cè)車(chē)道),同樣也使得列錨難以定位垂直車(chē)道(當(dāng)前車(chē)道)。根據(jù)上述觀察結(jié)果,我們建議使用混合錨(行錨和列錨)來(lái)分別表示不同的車(chē)道。具體地說(shuō),我們對(duì)當(dāng)前車(chē)道使用行錨,對(duì)側(cè)邊車(chē)道使用列錨。這樣可以緩解放大定位誤差問(wèn)題,提高性能。
在混合錨系統(tǒng)中,一條車(chē)道線可以用錨系統(tǒng)上的坐標(biāo)表示。如何有效地學(xué)習(xí)這些坐標(biāo)是另一個(gè)重要的問(wèn)題。最直接的方法是使用回歸。通常,回歸方法只進(jìn)行局部范圍的預(yù)測(cè),而對(duì)長(zhǎng)期和全局定位的建模則相對(duì)較弱。為了應(yīng)對(duì)全局范圍預(yù)測(cè),我們提出了基于分類(lèi)的方式學(xué)習(xí)車(chē)道坐標(biāo),不同的坐標(biāo)用不同的類(lèi)別表示。在這項(xiàng)工作中,我們進(jìn)一步把原始分類(lèi)擴(kuò)展為有序分類(lèi)。在序數(shù)分類(lèi)中,相鄰類(lèi)之間有密切的序數(shù)關(guān)系,這與原始分類(lèi)不同。例如,在ImageNet[18]分類(lèi)任務(wù)中,第7類(lèi)是黃貂魚(yú)(一種魚(yú)),第8類(lèi)是公雞。在我們的工作中,類(lèi)是有序的(例如,第8類(lèi)的車(chē)道坐標(biāo)總是在第7類(lèi)的車(chē)道坐標(biāo)的右側(cè))。有序分類(lèi)的另一個(gè)性質(zhì)是類(lèi)的空間是連續(xù)的。例如,7.5類(lèi)這樣的非整數(shù)類(lèi)是有意義的,它可以被視為第7類(lèi)和第8類(lèi)之間的中間類(lèi)。為了實(shí)現(xiàn)序數(shù)分類(lèi),我們提出了兩個(gè)損失函數(shù)來(lái)建模類(lèi)之間的順序關(guān)系,包括基本的分類(lèi)損失和數(shù)學(xué)期望損失。利用順序關(guān)系和連續(xù)類(lèi)別空間性質(zhì),我們能使用數(shù)學(xué)期望代替argmax來(lái)得到連續(xù)的預(yù)測(cè)類(lèi)。期望損失是為了約束被預(yù)測(cè)的連續(xù)類(lèi)等于真值。同時(shí)約束基本損失和期望損失,可以使輸出具有更好的順序關(guān)系,有利于車(chē)道的定位。
總而言之,我們工作的主要貢獻(xiàn)有三個(gè)方面。
我們提出了一種新穎、簡(jiǎn)單、有效的車(chē)道檢測(cè)范式。與之前的方法相比,我們的方法將車(chē)道表示為anchor-based坐標(biāo),并以基于分類(lèi)的方式學(xué)習(xí)坐標(biāo)。這個(gè)范式在解決沒(méi)有視覺(jué)線索的問(wèn)題時(shí)是非常快速和有效的。
在此基礎(chǔ)上,提出了一種混合錨系統(tǒng),進(jìn)一步擴(kuò)展了之前的行錨系統(tǒng),可以有效降低定位誤差。進(jìn)一步將基于分類(lèi)的學(xué)習(xí)擴(kuò)展到有序分類(lèi)問(wèn)題,利用自然順序關(guān)系進(jìn)行分類(lèi)定位。
所提出的方法達(dá)到了最先進(jìn)的速度和性能。我們最快的模型可以達(dá)到300+ FPS,與最先進(jìn)的性能相當(dāng)。
本文是我們之前會(huì)議出版物[20]的擴(kuò)展。與會(huì)議版本相比,本文有如下擴(kuò)展:
Hybrid Anchor System通過(guò)對(duì)放大誤差問(wèn)題的觀察,我們提出了一種新的混合錨系統(tǒng),與之前的文章相比,可以有效地減少定位誤差。
Ordinal Classification Losses我們提出了新的損失函數(shù),將車(chē)道定位視為一個(gè)有序分類(lèi)問(wèn)題,進(jìn)一步提高了性能。
Presentation & Experiments論文的大部分內(nèi)容被重寫(xiě),以提供更清晰的陳述和插圖。我們提供更多的分析、可視化和結(jié)果,以更好地覆蓋我們的工作空間。這個(gè)版本還提供了更強(qiáng)的結(jié)果,在相同的速度下性能提高了6.3個(gè)點(diǎn)。
2. 相關(guān)工作
自底向上的車(chē)道線檢測(cè)建模
傳統(tǒng)方法通常使用low-level 圖像處理技術(shù)來(lái)解決車(chē)道線檢測(cè)問(wèn)題。通過(guò)使用low-level 圖像處理,傳統(tǒng)方法本質(zhì)上是以自底向上的方式工作的。他們的主要想法是通過(guò)HSI顏色模型和邊緣提取算法等圖像處理來(lái)利用視覺(jué)線索。Gold是使用立體視覺(jué)系統(tǒng)的邊緣提取算法檢測(cè)車(chē)道線和障礙物的最早嘗試之一。除了利用不同顏色模型和邊緣提取方法的特征外,[25]還提出利用射影幾何和逆透視基于來(lái)利用現(xiàn)實(shí)世界中車(chē)道通常是平行的先驗(yàn)信息。雖然許多方法嘗試了不同的傳統(tǒng)車(chē)道特征,但從low-level 圖像處理中獲得的語(yǔ)義信息在復(fù)雜場(chǎng)景中仍然相對(duì)不足。這樣,tracking是一種受歡迎的后處理解決辦法,它增強(qiáng)了魯棒性。除tracking外,還采用馬爾可夫和條件隨機(jī)場(chǎng)作為后處理方法。此外,還提出了一些采用模板匹配、決策樹(shù)、支持向量機(jī)等學(xué)習(xí)機(jī)制的方法。
隨著深度學(xué)習(xí)的發(fā)展,一些基于深度神經(jīng)網(wǎng)絡(luò)的方法在車(chē)道檢測(cè)中顯示出優(yōu)越性。這些方法通常使用表示車(chē)道存在性和位置的heatmap來(lái)處理車(chē)道線檢測(cè)任務(wù)。在這些早期的嘗試之后,主流方法開(kāi)始將車(chē)道檢測(cè)視為分割問(wèn)題。例如VPGNet提出了一種由消失點(diǎn)引導(dǎo)的多任務(wù)分割網(wǎng)絡(luò),用于車(chē)道和道路標(biāo)記檢測(cè)。為了擴(kuò)大像素級(jí)分割的接收域,提高分割性能,SCNN在分割模塊中采用了特殊的卷積運(yùn)算。它通過(guò)對(duì)切片特征進(jìn)行處理,將不同維度的信息一一疊加在一起,類(lèi)似于循環(huán)神經(jīng)網(wǎng)絡(luò)。RONELD提出了一種通過(guò)分別尋找和構(gòu)造直線和曲線動(dòng)態(tài)車(chē)道線來(lái)增強(qiáng)SCNN的方法。RESA也提出了一種類(lèi)似的方法,通過(guò)周期性特征平移來(lái)擴(kuò)大感受野。由于分割方法的計(jì)算量較大,一些研究試圖探索用于實(shí)時(shí)的輕量級(jí)方法。自注意力蒸餾(Self-attention distillation)采用注意力蒸餾機(jī)制,將上層和下層的注意力分別視為教師和學(xué)生。IntRA-KD還利用inter-region affinity distillation來(lái)提高學(xué)生網(wǎng)絡(luò)的性能。這樣,通過(guò)注意力蒸餾,一個(gè)淺層網(wǎng)絡(luò)可以有與深層網(wǎng)絡(luò)相似的表現(xiàn)。CurveLane-NAS引入神經(jīng)體系結(jié)構(gòu)搜索技術(shù)來(lái)搜索為車(chē)道線檢測(cè)量身定制的分割網(wǎng)絡(luò)。在LaneAF中,提出了以基于分割的affinity fields形式的投票檢測(cè)車(chē)道線的方法。FOLOLane采用自底向上的方式,利用全局幾何解碼器對(duì)局部模式進(jìn)行建模,實(shí)現(xiàn)全局結(jié)構(gòu)的全局預(yù)測(cè)。
自頂向下的車(chē)道線檢測(cè)建模
除了主流的分割范式,一些工作也試圖探索其他范式的車(chē)道檢測(cè)。在[39]中,采用長(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)來(lái)處理車(chē)道的長(zhǎng)線結(jié)構(gòu)。同樣的原理,F(xiàn)ast-Draw預(yù)測(cè)每個(gè)車(chē)道點(diǎn)的車(chē)道方向,然后按順序?qū)⑵淅L制出來(lái)。在[41]中,將車(chē)道線檢測(cè)問(wèn)題視為通過(guò)聚類(lèi)二值分割段進(jìn)行實(shí)例分割。E2E提出通過(guò)可微最小二乘擬合檢測(cè)車(chē)道線,并直接預(yù)測(cè)車(chē)道線多項(xiàng)式系數(shù)。同樣,Polylanenet和LSTR也分別提出通過(guò)深度多項(xiàng)式回歸和Transformer[45]預(yù)測(cè)車(chē)道多項(xiàng)式系數(shù)。LaneATT提出使用以圖像中的線條為錨的目標(biāo)檢測(cè)流水線。然后從密集線錨中對(duì)車(chē)道進(jìn)行分類(lèi)和定位。按照利用消隱點(diǎn)先驗(yàn)和目標(biāo)檢測(cè)流水線,SGNet 提出使用消失點(diǎn)引導(dǎo)的線錨。與2D視角的先前工作不同,也有很多方法嘗試以3D的形式表示車(chē)道線。
與以往自下而上的工作不同,我們的方法是一種自頂向下的建模方法。通過(guò)自頂向下建模,該方法自然可以更多地關(guān)注全局信息,有利于解決無(wú)視覺(jué)線索問(wèn)題。與以往的自頂向下方法相比,我們的方法旨在建立一種新的基于行錨和混合錨的車(chē)道檢測(cè)范式,可以大大降低學(xué)習(xí)難度,加快檢測(cè)速度。通過(guò)之前會(huì)議版本[20]中提出的范式,我們的工作已經(jīng)成功地采用并推廣到其他方法[52]。
3. ULTRA FAST LANE DETECTION
在本節(jié)中,我們將描述方法的細(xì)節(jié)。首先,我們?cè)谔岢龅幕旌襄^系統(tǒng)上演示了用坐標(biāo)表示車(chē)道線的方法。其次,展示了網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)和相應(yīng)的有序分類(lèi)損失。最后,闡述了復(fù)雜性分析。
3.1 使用anchors的車(chē)道線表示
為了表示車(chē)道,我們引入行錨進(jìn)行車(chē)道檢測(cè),如圖3所示。線用行錨上的點(diǎn)表示。但是,行錨系統(tǒng)可能會(huì)造成放大定位誤差的問(wèn)題,如圖2所示。這樣,我們將行錨系統(tǒng)進(jìn)一步擴(kuò)展為混合式錨系統(tǒng)。
產(chǎn)生這個(gè)問(wèn)題的原因如圖5所示。假設(shè)在沒(méi)有任何錨系統(tǒng)的情況下,理想的最小定位誤差為,該誤差可由網(wǎng)絡(luò)偏差、標(biāo)注誤差等因素引起。我們可以看到行錨系統(tǒng)的誤差帶需要乘以一個(gè)系數(shù) 。當(dāng)車(chē)道線和錨的角度非常小時(shí),放大因子 會(huì)趨近于無(wú)窮大。例如,當(dāng)車(chē)道是嚴(yán)格水平的,就不可能用行錨系統(tǒng)來(lái)表示車(chē)道。這個(gè)問(wèn)題使得行錨難以定位更水平的車(chē)道(通常是側(cè)邊車(chē)道),同樣地,它也使得列錨難以定位更垂直的車(chē)道(通常是當(dāng)前車(chē)道)。相反,當(dāng)車(chē)道線和錨垂直時(shí),錨系統(tǒng)引入的誤差最小(),它等于理想定位誤差。
基于上述觀察結(jié)果,我們進(jìn)一步提出使用混合錨來(lái)表示車(chē)道。針對(duì)不同類(lèi)型的車(chē)道線,采用不同的錨系統(tǒng)來(lái)減小被放大的定位誤差。具體來(lái)說(shuō),規(guī)則是:一條車(chē)道線只能分配一種錨,選擇更垂直的錨類(lèi)型。在實(shí)際操作中,CULane[2]、TuSimple[53]等車(chē)道檢測(cè)數(shù)據(jù)集只標(biāo)注了兩個(gè)當(dāng)前車(chē)道和兩個(gè)側(cè)邊車(chē)道,如圖2a所示。這樣,我們將行錨用于當(dāng)前車(chē)道,列錨用于側(cè)邊車(chē)道,混合錨系統(tǒng)可以緩解放大定位誤差問(wèn)題。
對(duì)于混合錨系統(tǒng),我們可以將車(chē)道表示為錨上的一系列坐標(biāo),如圖4所示。表示為行錨的數(shù)量,為列錨的數(shù)量。對(duì)于每個(gè)車(chē)道線,我們首先分配相應(yīng)的定位誤差最小的錨系統(tǒng)。然后我們計(jì)算車(chē)道線和每個(gè)錨之間的線-線交點(diǎn),記錄交點(diǎn)的坐標(biāo)。如果車(chē)道線與某些固定的anchors不相交,坐標(biāo)將被設(shè)置為-1. 設(shè)行錨的車(chē)道線數(shù)為,列錨的車(chē)道線數(shù)為。圖像中的車(chē)道線可以用一個(gè)固定大小的target T表示,其中每個(gè)元素要么是車(chē)道的坐標(biāo),要么是-1,其長(zhǎng)度為 . T可以被分成兩部分 和,對(duì)應(yīng)于行錨和列錨的部分,大小分別是.
3.2 基于anchor的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
我們?cè)O(shè)計(jì)網(wǎng)絡(luò)的目標(biāo)是利用混合錨的車(chē)道表示方法,采用分類(lèi)方式學(xué)習(xí)固定大小的目標(biāo)和。為了采用分類(lèi)方式學(xué)習(xí)和,我們將和中的不同坐標(biāo)映射到不同的類(lèi)。假設(shè)和被歸一化(和的元素范圍為0到1或等于- 1,即“無(wú)車(chē)道”的情況),類(lèi)別的數(shù)量為和。映射可以寫(xiě)成:
其中,和是坐標(biāo)的映射類(lèi)別標(biāo)簽, 是向下取整, 是 的第i行第j列中的元素。這樣,我們就可以將混合錨上的坐標(biāo)學(xué)習(xí)轉(zhuǎn)化為兩個(gè)維數(shù)分別為和的分類(lèi)問(wèn)題。對(duì)于無(wú)車(chē)道情況,即和 等于 -1,我們使用額外的二分類(lèi)表示:
其中為坐標(biāo)存在性的類(lèi)別標(biāo)簽,為第i行第j列的元素。列錨的存在性target與之類(lèi)似:
通過(guò)以上推導(dǎo),整個(gè)網(wǎng)絡(luò)就是學(xué)習(xí),,,,,有兩個(gè)分支,分別是定位分支和存在性分支。
假設(shè)輸入圖像的深度特征為,則網(wǎng)絡(luò)可以寫(xiě)成:
其中和為定位分支和存在性分支,為分類(lèi)器,為展平操作。和的輸出都由兩部分組成(, , 和),分別對(duì)應(yīng)行錨和列錨。, 的大小分別為,其中和為行錨和列錨的映射分類(lèi)維度。和的大小分別為。在等式 4中,我們直接將來(lái)自主干的深度特征展平,并將其提供給分類(lèi)器。傳統(tǒng)的分類(lèi)網(wǎng)絡(luò)使用了GAP (global average pooling)。我們之所以使用flatten而不是GAP,是因?yàn)槲覀儼l(fā)現(xiàn)空間信息對(duì)基于分類(lèi)的車(chē)道檢測(cè)網(wǎng)絡(luò)至關(guān)重要。使用GAP會(huì)消除空間信息,導(dǎo)致性能較差。
3.3 有序分類(lèi)損失
由式1可以看出,上述分類(lèi)網(wǎng)絡(luò)的一個(gè)基本性質(zhì)是類(lèi)之間存在順序關(guān)系。與傳統(tǒng)的分類(lèi)不同,我們的分類(lèi)網(wǎng)絡(luò)將相鄰類(lèi)定義為緊密有序的關(guān)系。為了更好地利用順序關(guān)系的先驗(yàn)性,我們提出使用基本分類(lèi)損失和期望損失。基本分類(lèi)損失定義如下:
其中 是交叉熵?fù)p失, 為第i個(gè)車(chē)道分配給行錨和第j個(gè)行錨的預(yù)測(cè),為對(duì)應(yīng)的分類(lèi)標(biāo)簽 ,為第m個(gè)車(chē)道分配給列錨和第n個(gè)列錨對(duì)應(yīng)的分類(lèi)標(biāo)簽, 對(duì)應(yīng)的分類(lèi)標(biāo)簽,為獨(dú)熱編碼函數(shù)。由于類(lèi)別是有序的,因此預(yù)測(cè)的期望可以看作是平均投票結(jié)果。為方便起見(jiàn),我們將期望表示為:
其中表示索引操作符。的定義為:
這樣,我們就可以約束預(yù)測(cè)的期望,使其更接近真實(shí)值。因此,我們有如下期望損失:
其中 是平滑L1損失。
期望損失的說(shuō)明如圖7所示。我們可以看到,期望損失可以將預(yù)測(cè)分布的數(shù)學(xué)期望推向真值位置,從而有利于車(chē)道的定位。
另外存在性分支的損失函數(shù)定義為:
最終,所有的損失可以被寫(xiě)為:
其中是loss的系數(shù)。
3.4 網(wǎng)絡(luò)推理
在本節(jié)中,我們將展示如何在推理期間獲得檢測(cè)結(jié)果。以行錨系統(tǒng)為例,設(shè)和是第i車(chē)道和第j個(gè)錨的預(yù)測(cè)。那么和的長(zhǎng)度分別為和。每個(gè)車(chē)道位置的概率可以寫(xiě)成:
其中,的長(zhǎng)度為,然后根據(jù)預(yù)測(cè)分布的數(shù)學(xué)期望得到車(chē)道線的位置。并且根據(jù)存在性分支的預(yù)測(cè)濾除不存在的車(chē)道的預(yù)測(cè):
最后,對(duì)得到的位置進(jìn)行縮放以適應(yīng)輸入圖像的大小。網(wǎng)絡(luò)架構(gòu)的總體示意圖如圖6所示。
分析和討論
在這一節(jié)中,我們首先分析了我們的方法的復(fù)雜度,并給出了我們的方法能夠?qū)崿F(xiàn)超高速的原因。為了分析復(fù)雜度,我們使用分割作為基準(zhǔn)。我們的公式(以行錨為例)和分割的差異如圖8所示??梢钥闯?,我們的范式比常用的分割要簡(jiǎn)單得多。假設(shè)圖像大小為。由于分割是像素分類(lèi),所以需要進(jìn)行分類(lèi)。對(duì)于我們的方法,包含混合錨上車(chē)道線的坐標(biāo)的學(xué)習(xí)目標(biāo)T的長(zhǎng)度為。因?yàn)槲覀冎恍枰倭垮^點(diǎn)來(lái)表示車(chē)道線,則, 。和車(chē)道分別為行錨和列錨的車(chē)道數(shù),這和其他變量相比是很小的。這樣,我們有:
其中#CLS表示“分類(lèi)數(shù)量”.以CULane數(shù)據(jù)集的設(shè)置為例,我們有。我們的方法的分類(lèi)數(shù)為118,而分割的分類(lèi)數(shù)為??紤]到分類(lèi)維度,我們的方法的理想計(jì)算數(shù)為,而分割的理想計(jì)算數(shù)為。我們的分類(lèi)頭和分割頭使用ERFNet的計(jì)算代價(jià)分別為和。
除理論分析外,本文方法的實(shí)際前向推理耗時(shí)如圖9a所示。我們可以看到骨干占據(jù)了大部分的時(shí)間。相比之下,基于分類(lèi)的車(chē)道檢測(cè)頭效率高,只花費(fèi)不到整個(gè)推理時(shí)間的5%。
4. 實(shí)驗(yàn)
在本節(jié)中,我們通過(guò)大量的實(shí)驗(yàn)證明了我們方法的有效性。以下章節(jié)主要圍繞三個(gè)方面展開(kāi):1)實(shí)驗(yàn)設(shè)置。2)本方法的消融研究。3)四種主要車(chē)道檢測(cè)數(shù)據(jù)集的結(jié)果。
4.1.3 實(shí)現(xiàn)細(xì)節(jié)
超參數(shù)設(shè)置如表3所示。關(guān)于錨數(shù)量和類(lèi)別維度的消融研究分別見(jiàn)4.2.4節(jié)和4.2.5節(jié)。在優(yōu)化過(guò)程中,CULane和TuSimple上的圖片大小分別調(diào)整為1600×320和800×320。式10中的損失函數(shù)系數(shù)α和β分別設(shè)為0.05和1。batch size設(shè)置為每個(gè)GPU 16個(gè),所有數(shù)據(jù)集的訓(xùn)練epoch總數(shù)設(shè)置為30個(gè)。使用SGD優(yōu)化器,學(xué)習(xí)率被設(shè)置為0.1,并在第25個(gè)epoch降低10倍。所有模型均使用PyTorch[60]和Nvidia RTX 3090 gpu進(jìn)行訓(xùn)練和測(cè)試。
4.1.4 特征級(jí)測(cè)試時(shí)數(shù)據(jù)增強(qiáng)
在這一部分,我們展示了我們的方法的測(cè)試時(shí)數(shù)據(jù)增強(qiáng)方法。因?yàn)槲覀兊姆椒ㄒ曰谌痔卣鞯姆诸?lèi)方式工作,這為我們提供了一個(gè)在特征級(jí)別上進(jìn)行快速測(cè)試時(shí)間增加的機(jī)會(huì)。與目標(biāo)檢測(cè)中通常需要反復(fù)計(jì)算整個(gè)骨干的TTA不同,我們直接在骨干特征的基礎(chǔ)上進(jìn)行FLTTA。主干特征計(jì)算一次,然后在向上、向下、向左、向右的方向進(jìn)行空間平移。然后,將5個(gè)增強(qiáng)特征副本批量輸入分類(lèi)器。最后,對(duì)輸出進(jìn)行集成,以便在測(cè)試過(guò)程中提供更好的預(yù)測(cè)。由于主干特征只計(jì)算一次,分類(lèi)器的計(jì)算以批處理的方式工作,這利用了gpu的并行機(jī)制,所以FLTTA的工作速度幾乎與沒(méi)有TTA的普通測(cè)試一樣快。圖9b為FLTTA前向推理的時(shí)序餅圖。
4.1.5 數(shù)據(jù)增強(qiáng)
在調(diào)整大小和裁剪等簡(jiǎn)單的數(shù)據(jù)增強(qiáng)條件下,該方法可以快速地對(duì)整個(gè)訓(xùn)練集進(jìn)行過(guò)擬合(訓(xùn)練精度接近100%,但在測(cè)試集上的表現(xiàn)較差)。為了克服過(guò)擬合問(wèn)題,我們提出了一種空間平移數(shù)據(jù)增強(qiáng)方法,在空間上隨機(jī)移動(dòng)整個(gè)圖像和車(chē)道線標(biāo)注,使網(wǎng)絡(luò)能夠?qū)W習(xí)車(chē)道線的不同空間模式。由于空間變換后部分圖像和車(chē)道線標(biāo)注被裁剪,我們將車(chē)道線標(biāo)注擴(kuò)展到圖像邊界。圖10顯示了增強(qiáng)效果。
4.2 消融實(shí)驗(yàn)
在本節(jié)中,我們通過(guò)幾個(gè)消融研究來(lái)驗(yàn)證我們的方法。實(shí)驗(yàn)設(shè)置均與4.1節(jié)相同。所有消融實(shí)驗(yàn)都是在ResNet-18網(wǎng)絡(luò)的主干上進(jìn)行的。
4.2.1 混合anchor系統(tǒng)的高效性
正如我們?cè)?.1節(jié)中所述,行錨和列錨系統(tǒng)在車(chē)道線檢測(cè)中發(fā)揮著不同的作用?;诖?,我們提出了一種混合錨系統(tǒng),該系統(tǒng)將不同的車(chē)道線分配給相應(yīng)的錨類(lèi)型。
為了驗(yàn)證混合錨系統(tǒng)的有效性,我們?cè)贑ULane上進(jìn)行了三個(gè)實(shí)驗(yàn)。結(jié)果如表4所示。
可見(jiàn),混合錨系統(tǒng)相比行錨和列錨有明顯的改善,證明了混合錨的有效性。
4.2.2 有序分類(lèi)的有效性
我們的方法將車(chē)道檢測(cè)定義為一個(gè)有序分類(lèi)問(wèn)題。一個(gè)很自然的問(wèn)題是,與其他方法如回歸和常規(guī)分類(lèi)相比如何呢?對(duì)于回歸方法,我們用一個(gè)相似的回歸頭替換管道中的分類(lèi)器頭。training loss替換為Smooth L1 loss。對(duì)于傳統(tǒng)的分類(lèi)方法,我們使用與流水線中相同的分類(lèi)器頭。分類(lèi)與有序分類(lèi)的區(qū)別在于損失和后處理。
1)分類(lèi)設(shè)置只使用交叉熵?fù)p失,而順序分類(lèi)設(shè)置則使用Eq. 10中的三種損失。2)分類(lèi)設(shè)置使用argmax作為標(biāo)準(zhǔn)后處理,有序分類(lèi)設(shè)置使用期望。比較如表5所示。
我們可以看到,期望分類(lèi)方法可以獲得比標(biāo)準(zhǔn)分類(lèi)方法更好的性能。同時(shí),基于分類(lèi)的方法始終優(yōu)于基于回歸的方法。
4.2.3 有序分類(lèi)損失的消融
如3.3節(jié)所述,我們將車(chē)道檢測(cè)問(wèn)題建模為有序分類(lèi)問(wèn)題。為了驗(yàn)證該模塊的有效性,我們展示了有序分類(lèi)損失的消融研究。如表6所示,我們提出的期望損失約束有效地提高了車(chē)道檢測(cè)的性能。與標(biāo)準(zhǔn)交叉熵?fù)p失相比,所提出的期望損失具有不同的幾何性質(zhì),即期望損失類(lèi)似于通過(guò)減少遠(yuǎn)離真實(shí)值的logits和增加接近真實(shí)值的logits來(lái)逐步將預(yù)測(cè)的期望推向真實(shí)值。同時(shí),與傳統(tǒng)分類(lèi)方法相比,平均定位誤差也有所降低。
4.2.4 分類(lèi)維度的影響
如Eq. 4所示,我們使用基于分類(lèi)的范式來(lái)檢測(cè)車(chē)道線,不同的車(chē)道線位置用不同的類(lèi)別表示。這就產(chǎn)生了一個(gè)問(wèn)題,需要多少類(lèi)來(lái)進(jìn)行車(chē)道線檢測(cè)。為了討論這個(gè)問(wèn)題,我們首先設(shè)置行錨的分類(lèi)維數(shù)為200,列錨的分類(lèi)維數(shù)為25、50、100、200進(jìn)行實(shí)驗(yàn)。結(jié)果如圖11a所示。然后,我們將設(shè)定為100,并在為50、100、200、400時(shí)進(jìn)行實(shí)驗(yàn)。結(jié)果如圖11b所示。我們可以看到,隨著分類(lèi)維度的增加,性能呈現(xiàn)先增加后降低的趨勢(shì)。維度越小,分類(lèi)就越容易,但每個(gè)類(lèi)代表的位置范圍就越大,即每個(gè)類(lèi)的定位能力就越差。維度越大,每個(gè)類(lèi)代表的位置范圍就越窄(每個(gè)類(lèi)的本地化能力就更好),但是分類(lèi)本身就更難。最終的性能是分類(lèi)難度和每個(gè)類(lèi)的定位能力之間的權(quán)衡。所以我們?cè)O(shè)置為100,為200。
4.2.5 錨數(shù)量的影響
在我們的方法中還有另一個(gè)重要的超參數(shù):用于表示車(chē)道的錨點(diǎn)數(shù)量(和)。這樣,我們將行錨定的數(shù)量設(shè)置為18,并將列錨定的數(shù)量設(shè)置為10、20、40、80和160進(jìn)行實(shí)驗(yàn)。結(jié)果如圖12a所示。然后,我們將設(shè)為40,并將設(shè)為5、9、18、36和72進(jìn)行實(shí)驗(yàn)。結(jié)果如圖12b所示。
我們可以看到,隨著行錨數(shù)量的增加,性能也會(huì)普遍提高。但檢測(cè)速度也會(huì)逐漸下降。通過(guò)這種方式,我們將和分別設(shè)置為18和40,以在基于resnet -18的模型中獲得性能和速度之間的平衡。對(duì)于像ResNet-34這樣的大型模型,我們將和分別設(shè)置為72和80。
結(jié)果
本節(jié)展示了四個(gè)車(chē)道檢測(cè)數(shù)據(jù)集的結(jié)果,分別是TuSimple、CULane、CurveLanes和LLAMAS數(shù)據(jù)集。在這些實(shí)驗(yàn)中,我們使用ResNet-18和ResNet-34作為我們的骨干網(wǎng)絡(luò)。
從表7可以看出,我們的方法達(dá)到了最快的速度。與之前的會(huì)議版本相比,在相同的速度下,我們的性能提升了6.3個(gè)點(diǎn),得到了更強(qiáng)的結(jié)果。它證明了所提出的公式在這些具有挑戰(zhàn)性的場(chǎng)景中的有效性,因?yàn)槲覀兊姆椒梢岳萌中畔?lái)解決無(wú)視覺(jué)線索和效率問(wèn)題。最快的模式達(dá)到300+ FPS。
為了驗(yàn)證我們的方法,我們使用了兩個(gè)協(xié)議。協(xié)議1輸出所有車(chē)道線,不存在的車(chē)道線用invalid表示,與會(huì)議版本相同。協(xié)議2直接丟棄不存在的車(chē)道線。結(jié)果如表8所示。
另一個(gè)我們應(yīng)該注意到的有趣現(xiàn)象是,當(dāng)骨干網(wǎng)絡(luò)與普通分割相同時(shí),我們的方法獲得了更好的性能和更快的速度,這是一個(gè)帶有resnet骨干網(wǎng)的DeeplabV2[62]模型。結(jié)果表明,該方法優(yōu)于分割方法,驗(yàn)證了該方法的有效性。
對(duì)于CurveLanes數(shù)據(jù)集,我們?cè)诒?中顯示了結(jié)果。我們可以看到,與CurveLane-S方法相比,我們的方法在保持更快速度的同時(shí)取得了更好的性能。
對(duì)于LLAMAS數(shù)據(jù)集,我們?cè)诒?0中顯示了結(jié)果??梢钥闯?,我們的方法也取得了最好的性能和最快的速度。
我們的方法在四個(gè)數(shù)據(jù)集上的可視化結(jié)果如圖13和圖14所示。
結(jié)論
在本文中,我們提出了一種混合錨系統(tǒng)和有序分類(lèi)新范式,以實(shí)現(xiàn)優(yōu)秀的速度和精度。該方法將車(chē)道線檢測(cè)看作是在基于全局特征的自頂向下分類(lèi)的混合錨系統(tǒng)上直接學(xué)習(xí)稀疏坐標(biāo)。這樣可以有效地解決效率和無(wú)視覺(jué)線索的問(wèn)題。通過(guò)定性和定量實(shí)驗(yàn)驗(yàn)證了所提出的混合錨系統(tǒng)和有序分類(lèi)損失的有效性。我們的方法中輕量級(jí)的ResNet-18版本甚至可以達(dá)到300+ FPS。我們的方法也存在一些缺點(diǎn)。
審核編輯:郭婷
-
adas
+關(guān)注
關(guān)注
309文章
2162瀏覽量
208486 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
782文章
13631瀏覽量
165988
原文標(biāo)題:速度精度雙SOTA! TPAMI2022最新車(chē)道線檢測(cè)算法(Ultra-Fast-Lane-Detection-V2)
文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論