論文筆記-Learning Lightweight Lane Detection CNNs by Self Attention Distillation


paper: Learning Lightweight Lane Detection CNNs by Self Attention Distillation

code: https://github.com/cardwing/Codes-for-Lane-Detection

Abstract

  1. 本論文的思路比較清晰,想通過知識蒸餾的方式,用高層的信息來反哺優化低層學習到更准確的信息,而低層學習到的更准確的特征表達又能進一步幫助提升高層的特征表達;

  2. 同時,作者們將SAD(Self Attention Distillation)設計成一個module,能夠很容易嵌入到CNN網絡中;

  3. 將SAD嵌入到自己的網絡中,只需要在訓練階段加入即可,因此不會給inference過程增加多余的參數

  4. 其中SAD的特征圖如下

Details

  1. SAD模塊

    • 作者這里采用的是Activation-based Attention distillation(相較於gradient-based attention map)
    • 一個attention-map生成器的作用,就是學習一種映射函數,該函數能夠功能:,其中M表示某一層
    • 顯而易見,對於這樣的映射函數,可以選擇在channel維度求和、求最大值等方式,作者在為選用了平方和這一方式;同時對比了集中方式的影響,如下圖
  2. 添加SAD模塊

    • 在ENet中添加SAD模塊的一個實例展示如下:
      • 可見,這一加入,對原始網絡結構不需要改動,只需要更新loss即可
    • Loss
      • 整體的loss極為各部分的組合;由於主任務是車道線檢測,loss中引入了一個二分類的交叉熵loss,同時也增加了一個IoUloss,該loss能幫助增加預測結果和gt之間的重疊度,也即是能夠將預測的寬度和實際寬度更相近,如下:
      • attention generator的loss如下:
    • 何時添加SAD模塊
      • 作者對比了在不同的訓練階段增加SAD模塊的影響:訓練早期加入的話,由於網絡本身還沒學習到足夠好的特征表示,因此會產生不夠好的Attention Map,而在訓練的后期加入,會明顯提升特征表示,如下圖;
  3. 實驗

    • 作者在三個公開數據集上進行實驗,TuSimple,CULane,BDD100K,其具體的評判標准分別為:
      • TuSimple: 官方像素級別的accuracy,accuracy = Np / Ngt,即預測的像素點的所有值除以總的像素點數。同時,作者提供了FP和FN
      • CULane: 將線寬設為30像素,計算其和gt之間的IoU,IoU大於0.5的認為是TP,最終根據F1准則來評估。F1 = 2*Precision*Recal / (Precision+Recal)
      • BDD100K:用像素級的accuracy和IoU作為評估准則
    • trick
      • 將背景像素的cross-entropy loss的權重設置為0.4
      • 數據擴充中,使用來random rotation,random cropping,horizontal flipping(個人理解,后一個擴充方式的話,需要把label也同步更改了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM