官方github:/cfzd/超快速車道檢測
論文:超快速結構感知深度車道檢測
下圖是整個模型的結構,基本上可以分為主幹、輔助和組分類三個部分進行車道線候選點選擇。可以看出,由於整個流水線中參與最終推理的部分只是下采樣,不像分割模型那樣經過多輪上采樣,所以整個模型的計算量相當低,本文給出的結果可以達到300FPS。
主幹部分采用較小的ResNet18或ResNet34,下采樣到4X的部分為最終特征,這裏其實是淺特征。壹般分割模型要下采樣到16x或者32x。文中還提到,使用更大的感受野可以達到很好的檢測效果,可以大大提高模型的推理速度。
在輔助部分,對三層的淺層特征進行拼接和上采樣,用於實例分割。其目的是在訓練過程中增強視覺特征,不參與推理。
組分類部分如下。本文稱之為基於全局圖像特征的行選擇方法,即對全局特征進行行索引來計算候選點。該方法將先驗假設整合到車道線檢測任務中。
在分割任務中,最終特征圖的大小為HxWxC。分類是沿著C方向,C方向的向量代表壹個像素位置的特征向量屬於哪壹類;在這種方法中,最終特征圖的大小為hx(w+1)xC。h是要在垂直方向采樣的行錨,h
本文使用的損失函數分為三部分,即多分類損失L_cls、分割損失L_seg和車道結構損失L_str。其中,L_cls和L_seg是分類和分割任務中常用的兩種損失。
結構損失的目的是使用車道結構的先驗知識來約束預測車道線的形狀。其中,L_sim是相似性損失,L_shp是形狀損失。
相似性損失的起點是同壹車道上相鄰兩點之間的距離要盡可能近。這裏用L1範式來約束距離。
形損的出發點是車道線大多是直線,即使是曲線也多是近似直線。對於同壹條車道線,相鄰行achor上的車道線候選點的位置應盡可能接近。理想情況下,它的值應該是0。
Loc函數的意義是第I個車道的第j行錨中車道點的期望。Prob表示第k個位置是第I個車道的第j行錨中的車道點的概率。因為不算背景,k的值從1開始。
本文給出的度量結果如下,其評測硬件應該是英偉達GTX 1080TI。該方法在保證接近精度的情況下大大提高了推理速度,非常適合實時檢測任務。
為了測試它的真實推理性能,我在英偉達RTX 3070+CUDA 11+py torch 1.7進行了測試。當模型主幹為resnet18,輸入大小為(288,800,3)時,超快速車道檢測的推理性能如下,單批推理速度約為350FPS,與本文給出的結果基本壹致。