与白翔组的分尺度预测人群密度有点类似。感觉还是挺有效的,这种思想是否可以借鉴到其他领域中去呢?
论文地址:http://openaccess.thecvf.com/content_CVPR_2020/papers/Jiang_Attention_Scaling_for_Crowd_Counting_CVPR_2020_paper.pdf
Abstract:
基于卷积神经网络(CNN)的方法通常通过输出人群密度将人群计数作为回归任务。他们学习图像内容和人群密度分布之间的映射。尽管取得了令人鼓舞的结果,但这些数据驱动的计数网络易于高估或低估具有不同密度模式的区域的人数,这会降低整体计数的准确性。为了克服这个问题,我们提出了一种减轻不同区域的计数性能差异的方法。具体来说,我们的方法由两个网络组成,分别称为密度注意力网络(DANet)和注意力尺度网络(ASNet)。 DANet为ASNet提供与不同密度级别的区域有关的注意力masks。 ASNet首先生成密度图和尺度因子,然后将它们乘以注意力masks,以输出单独的基于注意力的密度图。将这些密度图相加得出最终的密度图。注意力尺度例因子有助于减弱不同区域中的估计误差。此外,我们提出了一种新颖的自适应金字塔损失(APLoss),以分层计算子区域的估计损失,从而减轻了训练偏差。在四个具有挑战性的数据集(ShanghaiTech PartA,UCF CC 50,UCF-QNRF和WorldExpo’10)上进行的广泛实验证明了该方法的优越性。
Introduction:
作者基于密度图中的人员分布呈现出不同的模式。 由于CNN在训练过程中严重依赖数据集,因此学习的数据驱动计数网络很容易受到不同人员分布的影响。 由上图结果可以看出,他们在人员分布不同的地区表现不一。 具体来说,高密度区域的预测可能会比gt情况高,而低密度区域的预测可能会比gt情况低。
本文旨在提出一种可以处理具有各种密度分布的拥挤场景的方法。 为此构建了一个名为ASNet的注意力尺度卷积神经网络。 ASNet首先生成尺度因子以调整相应的中间密度图。 然后,ASNet输出几个基于注意力的密度图,每个密度图仅关注一个特定密度级别的区域。 最后,ASNet将这些基于注意力的密度图相加,得出最终的密度图。 为了提供ASNet的注意力Masks,专门提出了一个名为DANet的密度注意力网络,该网络执行像素级密度分割任务。
此外,论文提出了一种名为自适应金字塔损失(APLoss)的新型损失函数。 APLoss首先根据局部人口计数将密度图自适应地划分为不均匀的金字塔形子区域,然后计算每个局部标准化损失。 最后,APLoss累积所有局部损失以得出最终估计损失。 APLoss减轻了训练偏差并提高了计数网络的泛化能力。 本文的贡献总结如下:
1)提出了一种新颖的注意力尺度卷积神经网络(ASNet),该网络学习缩放因子以自动调整每个相应子区域的密度估计,从而减少了局部估计误差。
2)提出了一种密度注意力网络(DANet),它为ASNet提供了有关不同密度级别区域的注意力masks。
3)提出了一种新颖的自适应金字塔损失(APLoss),它可以减轻训练偏差并增强计数网络的泛化能力。
4)与其他十六个最新算法的最新结果相比,本文提出的方法证明了它在四个具有挑战性的人群数据集上的优越性。
Approach:
本文所提出的方法的体系结构如图3所示。它由两个卷积网络组成:密度注意力网络(DANet)和注意力尺度网络(ASNet)。 DANet为ASNet提供了有关不同密度级别区域的注意力masks。 ASNet有两个分支,其中密度估计(Density Estimation)生成中间密度图,而注意力尺度(Attention Scaling)生成尺度因子。 ASNet将它们乘以注意力masks得到输出密度图,将其相加得出最终的密度图。 接下来将详细介绍DANet与ASNet的网络结构。
A.Density Attention Network(DANet)
DANet旨在生成代表不同密度级别区域的注意力masks。 它通过执行逐像素密度分割任务来实现此目标。 也就是说,DANet将每个像素分类为一个特定的密度级别。 相同密度级别的像素形成一个注意力mask的区域。
Gt标签生成,具体示例可见图5:
1)通过使用64×64滑动窗口逐像素扫描训练集中的gt密度图来获得所有局部计数。
2)计算所有非零局部计数的平均值AvgCnt11并找到最小计数MinCnt和最大计数MaxCnt。
3)使用{MinCnt,AvgCnt11,MaxCnt}作为阈值集,将密度分为两个级别:低密度和高密度。 可以迭代地计算所有低密度计数的平均值AvgCnt21和所有高密度计数的平均值AvgCnt22。然后使用新的阈值集{MinCnt,AvgCnt21,AvgCnt11,AvgCnt22,MaxCnt}将密度分为四个级别,依此类推。
4)使用获得的阈值集来根据其对应的局部计数自动标记gt密度图中的每个像素。 给定N个密度级别,有N + 1个密度标签,其中包括一个额外的背景标签。
DANet结构:如图4所示,使用经过训练的VGG-16模型的前13个卷积层作为主干。 在主干之上添加四个新的卷积层。 第一个具有大小为1×1的卷积核,并具有256个输出通道。 第二个是反卷积层,具有2×2内核,步长为2。 第三个具有3×3内核和128个输出通道。 第四个具有1×1内核和N +1个输出映射。 我们用二维softmax交叉熵损失训练DANet。
B.Attention Scaling Network(ASNet)
ASNet具有一个Attention Scaling分支(AS分支)和一个Density Estimation分支(DE分支)。 DE分支生成要校正的中间密度图。 AS-branch学习生成缩放因子,该缩放因子旨在结合DANet提供的注意力mask来调整中间密度图。ASNet的最终输出是DE分支的中间密度图乘以AS分支对应的尺度因子乘以DANet提供的注意力mask。
类似于DANet,ASNet还使用经过训练的VGG-16模型的前13个卷积层作为主干。 ASNet首先添加一个新的卷积层和一个新的反卷积层。 然后,在这些层之上,ASNet分为AS分支和DE分支。 DE分支具有两个新的卷积层,并输出N个中间密度图。 AS分支增加了两个新的卷积层,第二个卷积层输出N通道,其值未激活。 然后,AS分支利用全局平均池(GAP)操作将获得的N个通道转换为N个标量,然后由HardTanh函数激活。 首先将HardTanh函数的输出范围设置为(-1,1),然后加一个以使输出比例因子在(0,2)范围内。
C.Adaptive Pyramid Loss
之前的人群计数方法常使用欧式距离作为损失函数,但是这种损失忽略了不同级别的密度对网络训练过程的影响。 由于低密度和高密度分布通常非常不平衡,因此相应的估计误差会使训练后的计数网络产生偏差。 这削弱了计数网络的泛化能力。 此外,即使在相同密度级别的区域中,其子区域也存在密度差异。
因此,为了解决上述问题,本文提出了一种新的损失,称为自适应金字塔损失(APLoss)。 APLoss能够根据真实的局部人群计数将密度图自适应地划分为不均匀的金字塔形子区域。 然后,APLoss首先计算每个局部相对估计损失,然后对其求和以得出最终损失。 图6显示了两级APLoss计算。具体做法为,将整体区域均匀分成2X2网格,每个网格的局部计数如果大于阈值T,则重复上述操作。具体公式如下:
最后汇总所有局部损失以得出最终的APLoss:
Experiments:
1.Ablation Study:
2.Results on Four Datasets: