人群密度估计在公共安全管理、公共空间设计、数据收集分析等方面的潜在影响不容忽视. 出于多种原因, 在不同的场所中都有因人群过于聚集而出现踩踏、堵塞等公共安全事故发生的机率, 因此人群密度估计在诸多公共安全领域中都有较高的研究价值. 通过对图像或公共视频监控信息进行人流密度估计并进行人群计数可实现对公共场所人群的有效管理, 即时输出每个场景中的人员数目, 对人口密度较高的区域进行及时警告以预判是否会导致事故发生, 从而采取适当措施降低事故发生指数. 但是在人群密度估计的实际应用中存在诸多难点, 例如物体遮挡、人员分布不规则、背景复杂以及不同的摄像视角等, 这些问题都会致使人群密度预测图与真实密度图之间相距较大, 不能准确估计人群分布以及进行人群计数, 从而使得针对某一场景的人员计数工作变得极为困难.
近年来, 国内外研究人员尝试使用深度学习方法[1]攻破人群计数难点. 例如: Zhang等人[2]开发一种能够在任意人群密度和任意视角下从单个图像中准确估计人群数量的方法MCNN, 该模型允许输入任意大小或分辨率的图像, 每个CNN列学习的特征可以适应由于透视效果或图像分辨率而导致的人或人头部大小的变化. 针对人群计数统计时存在相机透视、人群重叠、人群遮挡等众多干扰因素, 左静等人[3]提出一种多尺度融合的深度人群计数算法. Gao等人[4]在传统的回归CNN中引入空间/通道注意模型来估计被称为“SCAR”的密度图. Xu等人[5]提出了一种深度信息引导的人群计数DigCrowd来处理拥挤的场景. 为解决公共场所中人群分布不均以及目标尺度不一而影响人数估计的问题, 袁健等人[6]提出了基于图像视野划分的公共场所人群计数模型IFDM. Zou等人[7]提出了自适应容量多尺度卷积神经网络ACM-CNN, 可以为输入的不同部分分配不同的容量. Kong等人[8]通过引入弱监督人群注意网络, 提出了一种新的鲁棒人群计数方法CWAN. 杜培德等人[9]提出了一种多尺度空间注意力特征融合网络MAFNet来减少尺度变化和遮挡带来的影响. 杨旭等人[10]提出两种多尺度特征融合结构: 注意力加权融合模块AWF和自底向上融合模块BUF. 沈宁静等人[11]提出一种残差密集连接与注意力融合的人群计数算法. Wang等人[12]提出了一种混合注意网络(HAN), 它利用渐进式嵌入尺度上下文(PES)信息, 使网络能够同时抑制噪声和适应头部尺度的变化. 通过并联空间注意和通道注意模块, 构建混合注意机制, 使网络更加关注头部区域, 减少背景物体的干扰. 由此可见, 不断有国内外研究者尝试在不同方面进行算法创新以获取更高的准确率, 提高人群计数精度. 虽然上述方法都在一定程度上解决了人群计数问题, 但是仍存在网络结构复杂、训练难度大等缺陷.
为了更好地在解决图像以及监控视频中所存在的遮挡、人群分布不均以及复杂环境下人群计数存在偏差等问题的同时提高训练速度、降低网络复杂度. 本文尝试利用深度学习卷积神经网络[13]结合轻量级注意力模块进行人群计数的研究. Li等人[14]提出了一种称为CSRNet的拥挤场景识别网络来执行人群估计工作. CSRNet人群计数网络主要由前端和后端两个部分组成, 前端利用舍弃了全连接层的深度卷积神经网络VGG-16[15]的前13层进行二维特征的提取, 在其基础上又添加了6个空洞卷积层[16]作为网络结构的后端回归器, 使其在提取特征时获得更大的感受野. 本文在CSRNet网络结构的基础上进行了部分改进, 提出了基于联合损失的空间-通道双注意力机制网络(joint loss-based space-channel dual attention network, JL-SCDANet), 并在目前常见的公开人群计数数据集ShanghaiTech Part B、mall以及UCF_CC_50中对所改进的网络结构进行评估. 基于该3种数据集的平均绝对误差MAE以及均方误差MSE都得到了有效的降低. 综上所述, 针对本文的人群计数网络结构所作的工作如下.
(1)本文模型采用3段式结构, 前端采用VGG-16的前13层对输入图像进行二维特征提取, 中间采用空间注意力机制与通道注意力机制串联的方法对图像中人群分布不均的区域进行重点空间定位, 后端采用6个扩张率为3的空洞卷积层以扩大感受野, 并在不丢失图像分辨率的条件下提取深层二维特征. 使用该方法减小了真实人群密度图与预测人群密度图之间的差异, 提升了人群计数的准确率.
(2)本文使用欧氏距离和改进的绝对值误差损失相结合的方式来约束预测密度图和真实密度图, 通过大量对比实验调节联合损失函数中的参数, 获得更加精确的人群计数网络训练模型.
(3)本文所提出的人群计数网络模型在常见的4个数据集中都体现出了较好的性能. 在ShanghaiTech Part B数据集中MAE、MSE分别降低了23.3%和17.9%, 在mall数据集中MAE、MSE分别达到了1.78和2.28, 在UCF_CC_50数据集的MAE、MSE分别降低了31.5%和47.1%.
1 密度图的生成人群密度图能够反映某一图像中人群的分布情况以及密集程度, 是模型进行人群计数的主要参照目标. 通过生成密度图的方式进行人群计数仍然是当前人群计数算法中常被使用的主流方法. 与早先人群计数方法相比, 基于密度图的人群计数方法不仅可以通过像素准确预测图像中的人员个数, 还可以提供人群空间分布情况等信息, 体现出人群分布的空间相关性. 因此, 在本文也是沿用基于密度图的方式进行人群计数工作, 旨在准确输出预测图像的人群密度图.
鉴于图像中相对密集的人群通常会出现遮挡等问题, 使得对于人员的整体标记变得极为困难, 而当前常见的公共数据集所给的人群标注信息通常都以图像中人员头部中心点的位置坐标的形式给出, 这将人员的整体标记简化为点标注, 大大减少了人群计数工作的难度. 为了获得真实人群密度图, 按照文献[2]中所使用的密度图生成方法, 对人头中心标注点进行高斯核模糊. 假设一张人群图像中的一个人头标注坐标为
$ F(x) = \sum\limits_{i = 1}^N {\delta (X - {X_i}) \times {G_{{\sigma _i}}}({X_i})} , {\text{ }}{\sigma _i} = \beta {\bar d_i} $ | (1) |
其中,
$ {\bar d_i} = \frac{1}{k}\sum\limits_{j = 1}^k {d_j^i} $ | (2) |
遵循文献[2]中的相关配置, 当
如图1所示, JL-SCDANet网络模型主要采用3段式结构, 前端主要使用VGG-16的前13层进行图像局部特征提取, 中间引入双注意力机制(空间注意力机制和通道注意力机制)进行重点空间定位并对其空间及通道相关性特征进行融合, 最后使用VGG-16的后端网络进行特征回归输出预测密度图并进行人数统计.
目前迁移学习在深度学习神经网络中被广泛使用, 迁移学习是运用已存有的知识对不同但相关领域问题进行求解的一种新的机器学习方法[17], 即利用已有的先验知识让算法学习新的知识. 鉴于强大的迁移学习能力在VGG-16上表现显著且其灵活性较大, 因此JL-SCDANet网络结构的前端采用导入了预训练模型参数的VGG-16的前13层进行图像粗粒度特征提取, 以提升训练速度. 表1列出了VGG-16的前13层的相关参数. 其中关于卷积层的参数表示为conv (卷积核大小)-(通道数)-(空洞率)
卷积神经网络运算通常是通过混合跨通道和空间信息来提取特征, 当图像背景较为复杂时无法提取重要特征信息, 这很容易使网络在训练的过程中忽略人群主要信息而降低预测人群密度图的准确率. 为了解决这类问题, 本文在网络结构中加入了注意力机制, 使用注意力机制告诉网络应该把注意力集中在哪里, 最终使网络有效关注重要特征而抑制非重要特征[18], 同时使用空间注意力机制与通道注意力机制两个轻量级注意力模块串联的形式融合图像空间特征信息与通道特征信息, 在空间和通道两个维度集中重要特征并有效传递特征信息进入后端网络结构, 下面分别介绍每个注意力机制模块以及所使用的联合损失函数.
2.1 空间注意力机制
为了解决复杂背景下对于人头的特征提取, 需要重点强调图像中的人群特征. 由此, 本文在VGG-16前13层之后引入空间注意力机制, 有效获取复杂环境中的人头关键信息, 增强图像空间信息权重, 舍弃类似环境等与人群计数工作内容不相关的信息. 空间注意力机制如图2所示.
经过VGG-16前13层进行人群图像粗粒度特征提取后得到
$ \begin{split} {M_S}(F) &= \sigma ({f^{7 \times 7}}([AvgPool(F);MaxPool(F)])) \\ & = \sigma ({f^{7 \times 7}}(F_{\max }^s;F_{{\rm{avg}}}^s)) \end{split} $ | (3) |
空间特征融合信息的计算公式如式(4)所示:
$ {F_s} = F \otimes {M_s} $ | (4) |
2.2 通道注意力机制
卷积神经网络默认每个通道是同等重要的, 而在实际情况中, 不同通道的重要性是有所不同的, 有的通道对最终的分类结果影响较大[19]. 鉴于其在处理多通道图像信息时所采取的平等对待策略会大大降低网络模型处理低频或高频信息的灵活度, 在跨特征通道上的学习能力较差, 无法有效获取深层次网络的准确特征, 因此使用卷积神经网络进行特征提取时通常需要使用通道注意力机制对图像通道特征附加相关权重, 以增强主要通道的特征信息. 通道注意力机制如图3所示.
通道注意力机制同样使用全局平均池化以及全局最大池化将尺寸为
$ \begin{split} {M_c}(F) &= \sigma (MLP(AvgPool(F)) + MLP(MaxPool(F))) \\ &=\sigma ({W_1}({W_0}(F_{{\rm{avg}}}^c)) + {W_1}({W_0}(F_{\max }^c))) \end{split} $ | (5) |
其中,
$ {F_c} = {M_c} \otimes F $ | (6) |
目前在常用的人群计数网络中通常只使用欧氏距离作为损失函数进行网络的训练, 而本文则使用欧式距离损失函数联合改进的绝对值误差损失函数对预测密度图与真实密度图之间的差异进行约束. 欧式距离损失函数如式(7)所示:
$ {L_2} = \frac{1}{{2N}}\sum\limits_{i = 1}^N {\left\| {Z({X_i};\theta ) - Z_i^{GT}} \right\|} _2^2 $ | (7) |
其中,
欧式距离损失函数利用预测密度图与真实密度图作差后平方的方式计算两者之间的误差, 其值越小, 预测密度图越接近真实密度图. 但是, 倘若单独使用
$ {L_1} = \frac{1}{{2N}}\sum\limits_{i = 1}^N {\left| {Z({X_i};\theta ) - Z_i^{GT}} \right|} $ | (8) |
其中,
最终所使用的联合损失函数为:
$ Loss = {L_2} + \lambda {L_1} $ | (9) |
其中,
本实验在训练的过程中主要的操作系统环境为Ubuntu 18.04.5, GPU为NVIDIA GeForce GTX 1080 Ti, 所使用的实验框架为PyTorch 1.10+Python 3.6+cuda 11.4+anaconda 3. 由于Adam算法计算效率高且对于内存的需求较低, 因此在模型的优化上主要使用Adam优化器, 同时设置初始学习率为0.000 01, 且动量设为0.9. 本文所得到的实验结果均在以上环境及参数中获得.
3.2 评价指标实验中所采用的评价指标与目前常用的人群计数网络的评价指标相同, 为均方误差(mean square error, MSE)和平均绝对误差(mean absolute error,MAE), 公式如下:
$ {\textit{MSE}} = \sqrt {\frac{1}{N}\sum\limits_{i = 1}^N {{{\left| {{C_i} - {C^{GT}_i}} \right|}^2}} } $ | (10) |
$ MAE = \frac{1}{N}\sum\limits_{{\text{i = 1}}}^N {\left| {{C_i} - {C^{GT}_i}} \right|} $ | (11) |
其中,
目前, 有不少研究机构公开了用于人数统计研究的数据集, 这些数据集中不仅包含了人群图像及其标注文件, 还存在基于视频监控下的人群视频数据及其标注文件. 本文主要选择3个常见的公共数据集进行模型的训练以及测试工作. 数据集的详细信息如表2所示.
3.3.1 ShanghaiTech Part B数据集ShanghaiTech数据集共包含1 198张带有标注文件的图像, 其中总人数为330 165人. 该数据集由Part A与Part B两部分组成, 本论文主要使用Part B数据集训练和测试网络性能. Part B一共含有716张来源于上海街头的人群图像, 其中包含训练图像400张, 测试图像316张. 该部分图像人群分布较为稀疏, 平均每幅图像的人数为123人. 为了验证本文改进算法在Shanghai-Tech Part B数据集中所表现的性能, 将其与其他4个目前的主流人群计数算法进行对比, 结果如表3所示.
在该数据集中随机选择两张图片的测试结果如图4所示, 从图中可以看出, 图4(a1)中存在人群分布不均等问题, 图4(a2)存在部分遮挡以及远处目标较小等问题. 图4(a1)的真实人数为57人, 通过JL-SCDANet网络模型预测的人数为56.6人, 仅存在0.7%的差距; 图4(a2)的真实人数为138人, 通过JL-SCDANet网络模型预测的人数为125人, 同时仅存在9%的差距. 可见, 本模型可有效解决图像部分遮挡与人员分布不均这两个问题.
3.3.2 Mall数据集该数据集主要取自于国外某商场的监控视频, 通过将监控视频按帧截图抽取其中的2 000帧视频图像用于人群计数工作的研究. 该2 000帧视频图像场景较为固定, 人群分布相对稀疏, 平均每幅图像的人数约为31人, 主要的标注点为人头中心. 该数据集中存在较多的物体遮挡与环境干扰, 如图5(a)所示, 因此在该数据集上的人群计数工作较为困难. 为了验证本文模型的抗遮挡和抗干扰能力, 本文使用了该数据集的前800帧图像截图用于模型训练, 后1200帧图像截图用于模型测试, 并与其他4个主流模型进行了对比实验, 对比结果如表4所示.
在该数据集中随机挑选一张图片的测试结果如图5所示, 从图5(a)中看出, 原图存在背景较为复杂, 人员相对稀疏等问题. 原图的真实人数为46人, 通过JL-SCDANet网络模型预测出的人数为44.2人, 仅存在3%的差距, 准确率较高. 且用JL-SCDANet网络模型输出的密度图也较为清晰, 由此可见, 本模型在环境较为复杂的图片中仍能保持较好的性能.
3.3.3 UCF_CC_50数据集相较于以上两个数据集, UCF_CC_50数据集具有极大的挑战性, 该数据集主要来源于多种场景, 像是音乐会、群众抗议、马拉松等. 与此同时, 数据集中的每张图片分辨率不一, 人群密度与拍摄视角也各不相同, 图像之间差异较大. 整体来看人群密度较高, 平均每幅图中标注了数千人. 但由于该数据集中所包含的图片较少, 仅包含50张图片, 因此需要对其进行数据扩充.
目前利用该数据集进行人群密度研究中, 为了充分利用该数据集, 通常使用五折交叉验证的方法进行模型的训练, 而本文利用此数据集进行训练前先对数据集进行数据扩充, 以保证数据集的充分利用. 数据扩充的主要方式为旋转与裁剪, 首先将数据集中的每张图片按照逆时针分别旋转90°和180°; 然后对原图以及旋转之后的图片以
经过对UCF_CC_50的数据集扩充过程后, 最后我们选择540幅图片进行训练, 360幅图片进行测试, 并与常见的其他4种人群计数算法进行对比实验, 对比实验结果如表5所示.
该数据集中随机选择一张图片的测试结果如图7所示, 从原图中看出, 该图像中人员分布相对集中且密度较大, 存在小部分遮挡, 使用JL-SCDANet网络模型相较于所对比的其他模型而言, 准确率有所提高. 该图片的真实人数为465.9人, 预测人数为352.5人. 由此可见, 本模型在密集人群图像中也可表现出良好的性能.
3.4 消融实验
在第2.3节中提出了本文所使用的联合损失函数, 其中超参数
通过对ShanghaiTech Part B数据集在CSRNet的测试结果以及在不同超参数
经过研究不同数据集以及不同超参数测试结果后发现, 在不同数据集上需设置不同的
4 结束语
针对目前人群计数工作中常见的图像背景复杂、遮挡以及人群分布不均等问题, 本文提出一种基于联合损失的空间-通道双注意力机制网络JL-SCDANet. 该网络在前端与后端网络的基础上串连加入了空间注意力机制和通道注意力机制, 通过双注意力机制根据图像不同区域的重要程度让网络学习人群图像的关键信息, 有效解决了图像中遮挡、环境复杂等常见难题. 同时, 该网络配合联合损失函数进行模型的训练, 并在3个数据集上调节不同的超参数得到最低误差. 实验结果表明, 本方法与所对比的其他人群计数方法相比, 所预测的密度图与真实密度图相差较小, 准确率有所提高, 以此可证明本模型的泛化能力与鲁棒性. 但是本模型还存在明显的不足, 即目前针对视频数据只能先截图后测试, 下一步的工作是研究如何对视频数据中的人群数目进行统计, 以实现动态数据人群计数目标.
[1] |
蒋妮, 周海洋, 余飞鸿. 基于计算机视觉的目标计数方法综述. 激光与光电子学进展, 2021, 58(14): 43-59. |
[2] |
Zhang YY, Zhou DS, Chen SQ, et al. Single-image crowd counting via multi-column convolutional neural network. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 589–597.
|
[3] |
左静, 巴玉林. 基于多尺度融合的深度人群计数算法. 激光与光电子学进展, 2020, 57(24): 307-315. |
[4] |
Gao JY, Wang Q, Yuan Y. SCAR: Spatial-/channel-wise attention regression networks for crowd counting. Neurocomputing, 2019, 363: 1-8. DOI:10.1016/j.neucom.2019.08.018 |
[5] |
Xu ML, Ge ZY, Jiang XH, et al. Depth information guided crowd counting for complex crowd scenes. Pattern Recognition Letters, 2019, 125: 563-569. DOI:10.1016/j.patrec.2019.02.026 |
[6] |
袁健, 王姗姗, 罗英伟. 基于图像视野划分的公共场所人群计数模型. 计算机应用研究, 2021, 38(4): 1256-1260, 1280. DOI:10.19734/j.issn.1001-3695.2020.02.0076 |
[7] |
Zou ZK, Cheng Y, Qu XY, et al. Attend to count: Crowd counting with adaptive capacity multi-scale CNNs. Neurocomputing, 2019, 367: 75-83. DOI:10.1016/j.neucom.2019.08.009 |
[8] |
Kong XY, Zhao MM, Zhou H, et al. Weakly supervised crowd-wise attention for robust crowd counting. Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing. Barcelona: IEEE, 2020. 2722–2726.
|
[9] |
杜培德, 严华. 基于多尺度空间注意力特征融合的人群计数网络. 计算机应用, 2021, 41(2): 537-543. DOI:10.11772/j.issn.1001-9081.2020060793 |
[10] |
杨旭, 黄进, 秦泽宇, 等. 基于多尺度特征融合的人群计数算法. 计算机系统应用, 2022, 31(1): 226-235. DOI:10.15888/j.cnki.csa.008250 |
[11] |
沈宁静, 袁健. 基于残差密集连接与注意力融合的人群计数算法. 电子科技, 2022, 35(6): 6-12. |
[12] |
Wang FS, Sang J, Wu ZY, et al. Hybrid attention network based on progressive embedding scale-context for crowd counting. Information Sciences, 2022, 591: 306-318. DOI:10.1016/j.ins.2022.01.046 |
[13] |
LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 |
[14] |
Li YH, Zhang XF, Chen DM. CSRNet: Dilated convolutional neural networks for understanding the highly congested scenes. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 1091–1100.
|
[15] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv:1409.1556, 2014.
|
[16] |
Zhang Q, Cui ZP, Niu XG, et al. Image segmentation with pyramid dilated convolution based on ResNet and U-Net. Proceedings of the 24th International Conference on Neural Information Processing. Guangzhou: Springer, 2017. 364–372.
|
[17] |
庄福振, 罗平, 何清, 等. 迁移学习研究进展. 软件学报, 2015, 26(1): 26-39. DOI:10.13328/j.cnki.jos.004631 |
[18] |
Woo S, Park J, Lee JY, et al. CBAM: Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 3–19.
|
[19] |
Wu HP, Zou ZX, Gui J, et al. Multi-grained attention networks for single image super-resolution. IEEE Transactions on Circuits and Systems for Video Technology, 2021, 31(2): 512-522. DOI:10.1109/TCSVT.2020.2988895 |
[20] |
Chen K, Loy CC, Gong SG, et al. Feature mining for localised crowd counting. Proceedings of the British Machine Vision Conference. Surrey: BMVA Press, 2012. 1–11.
|
[21] |
Idrees H, Saleemi I, Seibert C, et al. Multi-source multi-scale counting in extremely dense crowd images. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Portland: IEEE, 2013. 2547–2554.
|