CSRNet: Dilated Convolutional Ne
一、简介
解决拥堵场景的的人群计数方法从简单的人群统计(仅输出目标图像的人数)到以输出密度图(显示人群分布特征)作为结果。这种发展趋势是为了满足更多场景下的需求,因为同样数量的人群可能拥有完全不同的分布方式,因此仅仅计算出人群数量是不够的,密度图可以帮我们获得更加准确和全面的信息,这对于在高风险环境中做出正确的决策非常重要,如踩踏时间和暴动事件。之前的拥堵场景解决方法主要是基于多尺度的网络结构,例如MCNN。它们具有不错的性能,但是它们的这种多尺度设计在网络更庞大的同事也带来了两个显著缺点:大量的训练时间和无效的分支。MCNN采用多列网络的主要原因是希望通过使用不同尺寸的卷积核去获得不同的感受野。简单来说,MCNN希望每一列能够解决不同拥堵程度的场景。
但是,通过我们的测试,似乎MCNN并没有达到它期望的效果。我们用下图来说明MCNN中三个分离列学习到(表示大,中,小感受野)的特征,并用ShanghaiTech Part A 数据集对其进行评估。这个图中的三条曲线在50个具有不同拥堵程度的测试用例得到了相似的结果(错误率),这意味着在这种分支结构中的每一列学习了几乎相同的特征。它违背MCNN设计的初衷。
因此我们设计了CSRNET,用于计算人群密度并且生成高质量的密度图。使用了VGG-16的前十个层作为网络前端,空洞卷积作为后端,以获得更大的感受域并提取更深层次的特征,并且不会分辨率。通过利用这种创新结构,我们胜过了最先进的人群统计解决方案(基于MCNN的解决方案称为CP-CNN),在数据集ShanghaiTechA,ShanghaiTechB,UCF CC 50 和WorldExpo'10中,其平均MAE分别降低了7%,47.3%,10.0%和2.9% 。此外,我们在UCSD数据集上实现了以1.16 MAE的高性能。在将这项工作扩展到TRANCOS数据集的车辆计数之后,我们实现了比当前最佳方法(称为FCN-HA [24])低15.4%的MAE。
二、相关工作
人群场景分析的潜在解决方法主要可以分为三类:基于检测、基于回归和基于密度估计。
- 基于检测的方法
使用一个滑动窗口检测器来检测场景中人群,并统计相应的人数。基于检测的方法主要分为两大类,一种是基于整体的检测,另一种是基于部分身体的检测。基于整体的检测方法,典型的传统方法,主要训练一个分类器,利用从行人全身提取的小波,HOG,边缘等特征去检测行人。学习算法主要有SVM, boosting 和 随机森林等方法。基于整体检测的方法主要适用于稀疏的人群计数,随着人群密度的提升,人与人之间的遮挡变得越来越严重。所以基于部分身体检测的方法,被用来处理人群计数问题。主要通过检测身体的部分结构,例如头,肩膀等去统计人群的数量。这种方法比之基于整体的检测,在效果上有略微的提升。 - 基于回归的方法
无论何种基于检测的方法,都很难处理人群之间严重的遮挡问题。所以,基于回归的方法逐渐被用来解决人群计数的问题。基于回归的方法,主要思想是通过学习一种特征到人群数量的映射。这类方法步骤主要分为两步,第一步提取低级的特征,例如前景特征,边缘特征,纹理和梯度特征;第二步是学习一个回归模型,例如线性回归,分段线性回归,岭回归和高斯过程回归等方法学习一个低级特征到人群数的映射关系。 - 基于密度估计的方法
在执行基于回归的解决方案时,被忽视的一个重要特征称为显着性,导致局部地区的结果不准确。通过学习局部区域中的特征与其对象密度图之间的线性映射来提出一种解决此问题的方法。它整合了学习过程中的显着性信息。由于理想的线性映射很难获得,Pham等人使用随机森林回归来学习非线性映射,而不是线性映射。 - 目前最好的方法的局限性
目前基于密度图估计多数采用了 multi-column (MCNN) 的架构和密度级别分类器,在这些方法中观察到四个缺点:- 1、这种膨胀的网络结构需要更长时间训练。
- 2、引入冗余结构。
- 3、需要密度级别分类器。然而,由于对象的数量不断变化,所以在实时拥塞场景分析中密度水平的粒度难以精确定义。此外,使用细粒度分类器意味着需要实现更多列,这使得设计更复杂并且导致更多冗余而且计算量比较大 。
- 4、这些工作花费大部分参数进行密度等级分类,以标记输入区域,而不是将参数分配给最终密度图生成。由于MCNN中的分支结构效率不高,缺少生成密度图的参数降低了最终的精度。
三、建议的解决方案
提出的基本设计思想是采用更深的CNN网络,用于获得更大的感受野和更深层次的特征,生成高质量的密度图,并且不会扩大网络的复杂度。本节主要介绍网络架构和训练方法。
3.1、CSRNet架构
使用了VGG-16的前十个层作为网络前端,该前端网络的输出尺寸是原始输入尺寸的1/8,空洞卷积作为后端。
-
1、空洞卷积:
空洞卷积层已经在分割任务中得到了证明,其准确性显着提高,并且它是替代池化层的一个很好的选择。尽管池化层(例如,最大和平均池)被广泛用于维持不变性和控制过度配合,但它们也大大降低了空间分辨率,这意味着特征地图的空间信息丢失。反卷积层可以减轻信息的损失,但额外的复杂性和执行延迟可能不适用于所有情况。空洞卷积是一个更好的选择,它使用稀疏的卷积核来替代了池化层和卷积层。这个特性在不增加参数数量或计算量的情况下扩大了接受范围。
空洞卷积.png
比较使用空洞卷积和使用卷积+池化+反卷积的方案:
空洞卷积和卷积+池化+反卷积对比.png -
2、网络结构
我们提出了四种CSRNet网络结构,前端和后端网络的结构相同但是使用了不同的空洞卷积率。当针对相同大小的接受域时,使用更多具有小内核的卷积层比使用更大内核的层次更有效。
CSRNet结构.png
3.2、训练方法
- 1、真实标签生成(这部分详细信息可以参考MCNN)
参考MCNN中的方法,然后使用几何自适应内核来处理高度拥堵的场景。通过使用高斯核(归一化为1)对每个人头的标签进行高斯模糊处理,我们生成的真实标签考虑了数据集中所有图像的空间分布。几何自适应内核被定义为:
在真实标签中的每个标签对象,我们使用来表示个与其距离最近的标签对象的平均距离。为了生成密度图,使用标准差为的高斯核来进行卷积,其中是图像中像素的位置。在实验中,我们遵循MCNN中,和的设置,对于稀疏人群的输入,我们针对不同的数据集,设置了不同的。
参数设置.png - 2、数据增强
从图像的不同位置裁出九张图,其大小为原始图像的1/4,前四张裁剪的图像各自包含原始图像的1/4,没有重叠,而其他五张裁剪图像从原始图像中进行随机裁剪。 - 3、训练细节
前十个卷积层从VGG-16的预训练模型中进行微调,而对于其他卷积层,采用0.01的标准差的高斯初始化,使用SGD,固定学习率为。此外,我们采用欧式距离作为损失函数。
四、实验
4.1、评价指标
MAE和MSE。
4.2、消融实验
采用ShanghaiTechA数据集进行消融实验。这是一个新的大规模人群统计数据集,包括482张图片拥挤的场景,总共241667个人。由于场景非常拥挤,视角不同,分辨率不固定,从这些图像中算起来非常具有挑战性。比较了不同CSRNet结构的性能。
image.png
4.3、评估和比较
-
1、ShanghaiTech数据集
ShanghaiTech人群统计数据集包含1198个注释图像,总数为330,165人。这个数据集由两部分组成,分别是A部分,其中包含482个图像,随机从互联网上下载高度拥挤的场景,而B部分包括716张图像,上海街道上有相对稀疏的人群场景。
ShanghaiTech数据集结果.png -
2、UCF CC 50数据集
UCF CC 50数据集包括50个具有不同视角和分辨率的图像[22]。每幅图像的注释人数从94到4543,平均数量为1280。
UCF CC 50数据集结果.png -
3、WorldExpo'10数据集
WorldExpo'10数据集由来自108个不同监控摄像机捕获的1132个视频序列的3980个带注释的帧组成。这个数据集被分成五个不同场景的训练集(3380帧)和测试集(600帧)。为整个数据集提供感兴趣区域(ROI)。
WorldExpo'10数据集结果.png -
4、UCSD数据集
UCSD数据集有2000帧被监视摄像机捕获。这些场景包含稀疏人群,每个图像从11人到46人不等。还提供了感兴趣区域(ROI)。由于每帧的分辨率固定且很小(238X158)因此在频繁合并操作后很难生成高质量的密度图。因此,我们使用双线性插值对帧进行预处理,将它们调整为952X632。在2000帧中,我们使用帧601到1400作为训练集,其余的作为测试集。结果表明,仅仅略低于MCNN,我们的方法不仅可以执行极其密集人群的任务计数,而且还可以执行相对稀疏场景的任务。
UCSD数据集结果.png -
5、TRANCOS数据集
除了人群统计之外,我们在TRANCOS数据集上设置了一个用于车辆计数的实验,以证明我们方法的稳健性和一般性。TRANCOS是一个公共交通数据集,包含1244个不同拥挤的交通场景的图像,这些场景由监视摄像机捕获,并带有46796个带注释的车辆。此外,还提供了感兴趣区域(ROI)用于评估。图像的视角不固定,图像是从非常不同的场景收集的。网格平均绝对误差(GAME)用于本次测试的评估。
TRANCOS数据集结果.png
TRANCOS数据集结果.png -
6、所有数据集的PSNR(峰值信噪比)和SSIM(图像中的结构相似性)
image.png
五、结论
在本文中,我们提出了一种名为CSRNet的新型体系结构,用于人群统计和高质量密度图生成,并具有易于训练的端到端方法。我们使用膨胀的卷积图层来聚合拥挤场景中的多尺度上下文信息。通过利用扩张的卷积层,CSRNet可以在不损失分辨率的情况下扩大接受范围。我们使用最先进的性能在四个人群计数数据集中演示了我们的模型。我们还将我们的模型扩展到车辆计数任务,我们的模型也达到了最佳精度。
六、更多示例
左边原图,中间真是标签,右边密度图。
image.png
image.png
image.png
image.png
image.png