基于CSRnet的高密度人群的人群估计

论文:CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes

CVPR 2018 Paper : https://arxiv.org/abs/1802.10062

Keras实现:https://github.com/DiaoXY/CSRnet

官方Pytorch实现:https://github.com/leeyeehoo/CSRNet-pytorch

回归法对人群计数:根据图像回归人群密度图,直接计算人群数量

通过论文中的对比数据发现,相较于Crowdnet、MCNN、SCNN等方法,CSRnet是目前计算拥挤人群密度的最好的回归方法模型。

论文介绍

1.CSRnet网络结构

CSRnet网络模型主要分为前端和后端网络,采用剔除了全连接层的VGG-16作为CSRnet的前端网络,输出图像的大小为原始输入图像的1/8。卷积层的数量增加会导致输出的图像变小,从而增加生成密度图的难度。所以本文采用空洞卷积神经网络作为后端网络,在保持分辨率的同时扩大感知域, 生成高质量的人群分布密度图。

1.1空洞卷积

CSRnet中最重要的部分是后端网络中的空洞卷积神经网络。定义一个二维的空洞卷积如下:

x(m,n)是长宽分别为M和N的输入图像信息,经过卷积核w(i,j)得到空洞卷积的输出y(m,n),其中参数r表示空洞率。如果r=1则空洞卷积就是普通卷积。实验证明,空洞卷积利用稀疏的卷积核,实现交替卷积和池化操作,在没有增加网络参数和计算规模的前提下增大了感知域,更适合人群密度估计任务。而普通的卷积操作需要增加卷积层数才能获得更大的感知域,而且也增加了更多的数据操作。空洞率为r 的空洞卷积操作,K x K的卷积核会被扩大为K+(K-1)(r-1)。图1中卷积核大小为3×3的感知域分别被扩大为5×5和7×7。

本文将CSRnet分成两部分,分为前端网络和后端网络。前端网络

采用剔除了全连接层的VGG-16网络,并且采用3×3的卷积核。研究表明,对于相同大小的感知域,卷积核越小,卷积层数越多的模型要优于那些有着更大卷积核且卷积层数较少的模型。为了平衡准确性和资源开销,这里的VGG-16网络采用10层卷积层和3层池化层的组合。后端网络采用六层空洞卷积层,空洞率相同。最后采用一层1×1的普通卷积层输出结果。网络结构如下:

其中所有的卷积层均被填充保持原来大小。表中显示的卷积层的参数被表示成“conv-(卷积核大小)-(通道数)-(空洞率)”,其中最大池化层大小为2×2,步数为2。

2. 训练方法

2.1生成密度图

CSRnet模型生成密度图的方法参考的MCNN(CVPR2016)中的方法。采用脉冲函数卷积高斯核的方式来定义密度图。假设标注点的位置为xi,那么具有N个头的标签可以被表示为

这里把它与高斯函数做卷积变成一个连续的函数。但是这种密度函数假设每个xi在图像空间中是独立的。然而事实上,每个xi是在3D场景中一个人群密度的样本,并且由于透视失真,不同样本xi相关的像素与场景中区域的不同尺度一致。于是为了精确估计群体密度,需要考虑透视变换。如果假设在一个人头区域的周围,人群的密度是均匀的,它的最近邻给出了一个对于几何形变的合理的估计。 为了使得密度图能够更好地与不同视角(不同人头大小)且人群很密的图像对应起来,作者对传统的基于高斯核的密度图做了改进,提出了基于几何适应高斯核的密度图,由下式表示: 

通俗理解就是:密度图是由delta脉冲函数与一个高斯函数卷积得来,这里先卷积再求和

对于每一个人头的xi点,给出了k个近邻距离的的平均值di,于是,与xi相关的像素对应于场景中地面上的一个区域,这个区域的半径与di成正比。于是,为了估计像素xi周围的人群密度,为我们需要把H(x)卷积一个自适应的高斯核的,这个高斯核的的方差σi是可变的并且和di成比例。

总结就是把标签H和一个自适应核的高斯核函数进行卷积,这个高斯核函数的方差为β与xi的K个最近邻平均距离的乘积。

2.2数据增强

2.3损失函数

作为端到端网络的CSRnet,采用最直接的方法进行模型训练即可。前端网络中10个卷积层来自已经训练好的VGG-16,所以只需要进行微调训练。对于其他卷积层的参数采用0.01的标准偏差的高斯初始化。在训练期间,随机梯度下降的学习率固定为1e-6。采用欧氏距离测量我们生成的密度图与真实值的距离。损失函数定义如下:

 

N表示batch size,Z表示生成的密度图,ZGT表示密度图ground truth

3实验结果

3.1评估标准

评估人群密度估计模型时,为了与最新的研究进行对比,我们采用普遍被研究人员采用的均方误差(MSE)和平均绝对误差(MAE),MSE用来描述模型的准确度,MSE越小则准确度越高,MAE能反映出预测值的误差情况。

N表示一次测试序列中图片的数量,Ci表示对图片Xi的预测人数,CiGT表示真实人数

Zl,w表示在长为L宽为W的密度图中(l,w)处的像素值。

3.2评估对比

论文中分别在ShanghaiTech dataset、UCF_CC_50 dataset、The WorldExpo’10 dataset、The UCSD dataset、TRANCOS dataset五个数据集中与当前最流行的模型进行对比,具体对比数据可以参考论文。我在实现的时候只在ShanghaiTech数据集中进行了测试,所有这里只给出在ShanghaiTech数据集中的效果,CSRnet模型具有非常大的优势。

在测试时,我们在ShanghaiTech数据集上实现的效果非常接近论文中给出的数据。

DatasetMAE(paper)MSE(our)
ShanghaiTech PartA68.265.9
ShanghaiTech PartB10.611.0

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值