概括
- 论文地址:https://arxiv.org/pdf/1908.00821.pdf
- 论文代码:[GitHub](https://github. com/cardwing/Codes-for-Lane-Detection)
这篇论文用于检测车道线,作者提出Self Attention Distillation(SAD)
模块,可用于现有任何网络结构,提升检测效果但不增加inference time。在模型ENet-SAD上的结果,与现有方法有可比性,但是参数量小于1/20,并且速度快于20倍。
- 已验证网络结构有:
ENet
、ResNet-18
、ResNet-34
和ResNet-101
。 - 测试数据集:
TuSimple
、CULane
和BDD100K
。
动机
作者发现当网络学习到一定程度,不同特征层都会对车道线附近的区域产生更多兴趣。如图在block2、block3、block4中,车道线附近区域特征已被高亮显示:
给已训练好一半的模型添加SAD模块,让浅层特征来学习(mimic)高层特征的表达,从而加强网络的整体特征表达能力。从图中显示,添加SAD后(after SAD),浅层block的特征表达得到加强,继而高层block的征表达也得到加强。这种底层特征模仿高层特征的学习过程,属于自注意力蒸馏(Self Attention Distillation)。
- 知识蒸馏(Knowledge distillation):用于把大网络学习到的内容(knowledge)迁移到小网络中。具体有两个目标要学习,一是小网络输出与真值的相似,二是让小网络与大网络的输出相似。
- 注意力蒸馏(Attention distillation):用于把大网络学习到的注意力特征图(attention map)迁移到小网络中。具体在知识蒸馏基础上,再对网络中间层特征进行迁移,以保证大小网络中间的注意力特征图相似。
- 自注意力蒸馏(Self Attention Distillation):抛弃大网络,单独在小网络中对不同层学习到的注意力特征图进行迁移学习。
Self Attention Distillation
- 注意力特征图包含两种类型:一种是
activation-based attention maps
,另一种是gradient-based attention maps
,二者区别为是否使用激活函数。 -
Activation-based attention distillation,主要是把长、宽、通道三维特征转换为长、宽两维特征,其中m代表第m个卷积层:
通过考虑各通道上激活后的特征值,来确定空间上特征的分布状况,获得attention map。主要方式有三种:
作者发现第二种方式获取的attention map更好,并设置p的值为2:
-
作者基于SAD(Self Attention Distillation),得到AT-
GEN(attention generator),把它引入到网络的个层级上:
其中AT-GEN,先把网络中的指定特征经过G得到attention map,再上采样(Bilinear)到目标大小,最后通过softmax激活。
损失函数
-
相邻层attention map的损失函数:
这里使用的是L2函数。
-
网络总损失函数:
segmentation loss由交叉熵函数和IoU组成;existence loss为二分类交叉熵函数。
实验
-
是否使用自注意力蒸馏效果图对比:
- 可视化结果的后处理:
对输出的概率图先进行9x9卷积的光滑处理,显示取阈值大于0.5的像素,然后每隔20行取最大响应值,最后连接这些最大响应值。
具体参考论文X.Pan,J.Shi,P.Luo,X.Wang,andX.Tang.Spatialasdeep: Spatial CNN for traffic scene understanding. In Association for the Advancement of Artificial Intelligence, 2018.
-
与其它方法对比:
三个指标,accuracy、F1-measure、IoU
-
TuSimple
-
CULane(F1-measure)
-
BDD100K
- 消融实验
-
SAD路径:
证明相邻层的蒸馏效果最好。
- 蒸馏方向对比,作者发现自低向上效果好于自顶向下。
-
SAD vs Deep Supervision:
block2-4
即使深监督有明显效果提升,但是SAD效果更好。
-
何时加入SAD:
SAD加入太早,网络学习效率低。但是不管何时加入,最终效果都差不多。
- 可视化结果对比:
-
在TuSimple(a)和CULane(b)上效果,其中底下数字为accuracy:
-
在BDD100K上效果,其中底下数字为accuracy,线条亮度值与概率值大小相关:
网友评论