[MSA-Net]Multi-Scale Attention Network学习笔记
MSA-Net
Multi-Scale Attention Network for Crowd Counting
2019
作者:亚马逊
论文:https://arxiv.org/abs/1901.06026
创新点:
- 在backbone中就产生了多尺度的density map,经过上采样后,加入软注意力机制进行加权叠加。
- 提出了一个scale-aware loss,但是实验结果好像表明效果不大。

Baseline network for crowd counting
一个关于密度图的解释[链接]
MSA-Net的baseline network由三部分组成:
- backbone
- regression head
- 上采样层
图片输入到backbone中,经过下采样卷积,得到一个大感受野但分辨率只有原图\frac{1}{16}的feature map。之后输送到regression head中生成density map,regression head是输出单通道的卷积操作,经过上采样,产生一样大小的density map。其中所有的上采样都采用双线性插值bilinear。
训练时的Loss选取的是pixel-wise Euclidean Loss:

作者使用了MCNN的方法来生成GT的密度图,用高斯核来对每个人头进行模糊处理。
Scale-aware soft attention masks
在网络的前向传递过程中,每一层都产生density map,最后合并成一个。为了进行密度图的合并,作者在每一个尺度都加入了软注意力机制,具体来讲就是用相应的mask M 与统一尺度下的密度图D对应相乘,再求和,得到合成的density map:

关于M的生成,是用到了卷积层的最后一层输出Z,经过attention head得到的。attention head是将C通道的Z转化为三通道,经过不改变通道数的上采样,产生1/4原图大小的3个mask,每个mask是归一化的:

Scale-aware loss regularization
在计算密度图时,作者提出了一个scale-aware loss,它的定义是

对于每一个尺度,该loss只在感兴趣的头部衡量预测的density map和gt density map之间的差距

另外,作者还引入了一个尺度监督的mask,它可以使每个头部在正确的尺度上被预测。综上,再引入一个正则化因子\lambda最终的loss为

Estimating the size of each head
在人头检测器的基础上,作者利用几何自适应\eta_{GA}和边框自适应\eta_{BB}来估计人头大小,对于给定的人头\mathrm{h}_p,如下估计人头半径

<img src="https://tva1.sinaimg.cn/large/0081Kckwly1gk0gbl9znzj30i401kq35.jpg#pic_center)
" alt=“image-20201024152400345” style="zoom:50%;"width=“40%” />
边框自适应\eta_{BB}可以在大多数情况下进行较好的估计,但是当人头太小或者距离太近的时候,表现不佳,此时可以利用几何自适应\eta_{GA}来进行估计

最终结果取两者的最小值,如果检测不到人头,那就直接用geometry-adaptive \eta_{GA}的结果,即\eta_{GA}基本上对于远处人头影响不大,这样做主要克服了近处分散的大人头用geometry-adaptive会偏大的问题。
Experiment


采用了VGG16的backbone,比较三种contribution的效果,发现采用Multi density map+Mask-attention即(+M),以及Img Res(resize到1080P),带来的效果最明显,加了scale-aware loss效果不明显。
