在本文中,我们关注人群定位任务,这是人群分析的一个重要课题。基于回归的方法大多使用卷积神经网络( CNN )对密度图进行回归,在极度稠密的场景中无法准确定位实例,主要原因有两个:
1 ) 密度图由一系列模糊的高斯斑点组成;
2 ) 密度图的稠密区域存在严重的重叠。
为了解决这个问题,我们提出了一种新的用于人群定位任务的聚焦反距离变换( FIDT
)地图(Focal Inverse Distance Transform
)。与密度图相比,FIDT
图准确地描述了人员在密集区域的位置,没有重叠。
基于FIDT映射,提出了一种局部最大检测策略( LMDS
)来有效地提取每个个体的中心点。
此外,我们引入Independent SSIM ( Independent SSIM,I-SSIM
)损失使模型倾向于学习局部结构信息,更好地识别局部极大值。大量实验表明,所提出的方法在6个人群数据集和1个车辆数据集上具有先进的定位性能。此外,我们发现所提出的方法在消极和极稠密场景上表现出优越的鲁棒性,进一步验证了FIDT映射的有效性。
github链接:FIDTM
其实主要贡献在摘要里面基本都提到了,再细化一下:
FIDT
。FIDT地图的局部极大值表示精确的人员位置I - SSIM损失
,使模型关注独立区域,增强模型处理局部极大值和背景区域的能力。局部最大值检测策略LMDS
,可以有效地定位预测的局部最大值(头部中心)。在训练阶段,采用MSE损失和提出的I - SSIM损失。在测试阶段,通过LMDS可以得到每个人的位置,最终计数等于局部极大值的个数。此外,边界框可以通过尺寸估计步骤获得。
一般来说,基于CNN的人群密度估计的方法有三种:基于检测的,基于回归的,Density map
(密度图)的。Density map
预测每个像素存在人头点的概率分布,他的标注一般是在人头除点一个点,这种方法计数精度高,位置精度中等,缺点是低密度场景计数精度差(相对另外两类方法而言)。基于归回的方法是直接预测人数,计数精度中等,标记简单,缺点是缺少位置信息,缺乏可解释性。
后来Inverse Distance Transform
(反距离变换)被用在人群计数领域,相当于把回归和density map
的的方法结合了。先看Distance Transform
(距离变换),它是把map上每个像素用到最近标记点的距离来表示
P(x,y)表示map上任意一点(x,y)上的值,B是标记点的集合。
Inverse Distance Transform
(IDT) 就是取倒数, C是常量1,避免除0,也保证值域为[0,1](P(x,y)取0时I’=1,P(x,y)取+∞时I’趋向于0 )
这种方法是预测每个像素的IDT,而IDT值高的点(P(x,y)接近0)就是人头所在位置, 这种点称作local maxima
(局部极大值), 相当于候选人头中心点,再通过一些过滤策略后得到接近真实的人头中心点,再数这些点的数量获得人数。
这篇文章认为IDT在前景(人头区域内)下降太快,在背景处下降太慢,这使得背景不容易和前景区分。提出了FIDT, 相当于加了调节器,通过α和β来控制表达式随P(x,y)增大的下降趋势。文中有消融实验说明α=0.02, β=0.75是比较好的选择。
比如下图FIDT map的背景部分颜色更深,能更清楚地看到前景区域(亮点外一圈浅蓝色区域)和背景区域的区别。
该文以HRNET
为主干网络,加一个卷积和两个反卷积作为head, 回归head上每个点的FIDT值。怎么得到人数?该文提出了Local Maxima Detection Strategy(LMDS)
, 人头点检测策略。
1.用maxpool抑制3x3邻域内非最大值的点,非最大值都置0
2.若全局最大值<0.1,认为没人
3.取全局最大值的100/255为阀值,大于这个阈值的是头中心,小于阈值的是背景
这样就得到人数和人头中心坐标了。
他们的另一项重要工作是I-SSIM loss
。仅用预测的特征图和FIDT map的MSE损失,他们觉得不足以约束人头区域的学习。前人已经用了SSIM loss
E表示estimated map
(估计图), G表示groundtruth map
, μ和σ2 分别表示map的均值和方差,σEG表示E和G的协方差,λ1=0.0001, λ2=0.0009,避免除0 。SSIM
范围是[-1,1], 这个值越大代表两个图越像,这在评价图像质量里常用。那么损失就是加个1减。一般用时会用一个滑动窗口去扫描全图,不区分前景背景。他们认为对于定位任务,损失应该关注前景区域,关注local maxima
区域。之后就是文章提出了I-SSIM loss,实验效果还不错。
这里的I是independent的意思,对每个indenpendent instance region
(独立实例区域)计算SSIM loss再求和。region的大小被设置为30x30. 前面说了关注local maxima
,instance可能指的就是local maxima, 即候选头中心点。下图是这两个loss的对比实验结果。
最终的训练目标损失函数定义如下:
其中LMSE和LI-S分别表示MSE
损失和提出的I - SSIM
损失。
人群密度估计任务中在做定位的评价时,是需要将预测点和标记点做匹配的,匹配上了才算位置对了,匹配需要距离阈值σ,小于阈值说明预测点和标记点匹配上了。上边的实验就取的σ=8。下表是和其他网络的评价对比: