论文笔记-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还能够规避掉天空中一些东西带来的误检等(如路灯灯光。。)
posted @ 2020-05-23 17:18  StoneclutterX  阅读(1888)  评论(0编辑  收藏  举报