論文筆記-IntRA-KD: Inter-Region Affinity Distillation for Road Marking Segmentation


paper: Inter-Region Affinity Distillation for Road Marking Segmentation
code: Codes-for-IntRA-KD

Abstract

  1. IntRA-KD是商湯&港中文&南洋理工在CVPR2020的一篇road marking分割的任務,可以看作是ICCV2019上的SAD的改進(參考個人筆記),目前公布的代碼中,並沒有IntRA-KD的訓練中生成inter region affinity和訓練KD的部分,似乎是還有動作?
  2. 首先看一下IntRA-KD的整體方法流程,如下圖:

Details

  1. 何為Inter-Region Affinity?如何構造Inter-Region Affinity?

    • Inter-Region Affinity可以簡單理解為,用一個affinity graph表征不同類型的road mark(region)的特征分布(node)之間的相似度(edge),問題建模流程如下:

    • 如上圖,其關鍵步驟為如下三點:

      • 用gt生成smoothing的AOI(area of region),即構造region
      • AOI-grounded moment pooling,即統計每個region的特征分布
      • 構造initer-region affinity distillation
  2. 生成smoothing AOI

    • 如果直接用原始的gt,會把類別周邊的信息徹底拋棄掉,所以作者為了獲取相對更大一些的area of interest,對原始gt做了平滑操作(應該是一個average pooling或conv操作),如下:
    • 最后的效果圖如下:
  3. 統計AOI region的特征分布

    • 作者這里用了moment的方法,暫時個人是將其理解為統計特征分布的均值、方差和skewness(偏度?目標形狀的傾斜程度),具體計算用如下公式:
    • 示意圖如下:
  4. inter region affinity蒸餾

    • 這一步的作用,應該就是為了使得,不同類別之間分布相似度差距越來越大,相同類別之間分布相似度越來越小
    • 所以,先計算不同類別之間的moment的cosine相似度,公式為
    • 再者,將上面計算的特征相似度和gt之間的特征相似度計算loss,作為知識蒸餾的loss,如下:
  5. 網絡訓練

    • 添加IntRA-KD進行訓練,整體的訓練loss如下:
      • 其中,\(L_{seg}\)是分割的cross entropy loss,\(L_m\)即inter-region affinity distillation loss,如上面所示,\(L_\alpha\)是attention map distillation loss(和SAD那篇文章中一樣)
  6. 其他實現細節

    • 將圖像的上面一部分crop掉(裁剪了將近一半),因為那一部分多是天空之類的,沒有車道線,然后再resize(ApolloScape的高2710裁剪為1010,CULane的高590裁剪為350,LLAMAS的高717裁剪為384)
    • ResNet101作為teacher network(添加了pyramid pooling module),ERFNet和ENet都可以作為student network,並且對ERFNet做了更多的消融實驗
    • 評判標准,和SAD中的一樣,ApolloScape使用mIoU,CULane使用F1-measure,LLAMAS使用mAP
    • 不同知識蒸餾方法的結果對比


寫在后面

  1. 整個InterRA-KD方法的思路相對非常清晰,在SAD的基礎上增加一個IntRA的loss,不過之前沒接觸過KD,還不清楚KD的訓練流程
  2. 對圖像crop這個小trick可以采用,能夠降低網絡輸入大小,同時這樣的硬性crop還能夠規避掉天空中一些東西帶來的誤檢等(如路燈燈光。。)


免責聲明!

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



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