人群密度检测技术主要目的是实时统计并掌握某一场景下的人群密度信息. 现已在公共安全、城市规划、安全监测等领域得到广泛应用[1]. 如在旅游景点、大型广场等人群密集场景下, 通过时刻统计人群密度避免踩踏事件的发生. 在商场、大型超市等场景下, 利用人群密度信息进行店铺或商品的合理排布.
目前, 采集数据时拍摄角度不一致、距离差异以及场景信息复杂等因素造成了人群目标尺度不一致和背景干扰的问题[2], 该问题对人群密度检测结果造成严重的影响. 针对这些问题, 大多数研究者采用增加网络深度和广度的方法提升网络特征提取能力, 但是这类方法准确率还有较大提升空间[3].
为了有效解决上述问题, 本文提出了一种基于多尺度特征融合的人群密度检测网络(crowd density detection network based on multiscale feature fusion, CDBM). CDBM使用多分辨率分支结构利用目标图像多分辨率特征捕获不同尺度特征信息和不同粒度信息, 丰富了目标人群的特征信息; 通过多阵列空洞卷积提升检测网络对目标人群尺度不一致的适应能力. 另一方面为了凸显目标人群区域, 降低背景信息对人群密度检测网络的影响, 在多尺度特征提取中融合双注意力机制应对目标人群多尺度特征变化和复杂背景信息干扰问题. 在多个公共数据集上的实验表明, 该网络具有较优的密度检测性能. 本文的创新性如下.
(1)提出了一个多尺度特征融合的人群密度检测网络(CDBM). 该网络采用并行交互结构提取多层次人群目标信息, 从有限的网络中获取更丰富的尺度信息, 提升网络的全局尺度特征的处理能力.
(2)设计了一个多分辨率特征提取模块(multi resolution feature extraction module, MRFM)利用交互融合结构提取丰富的多尺度信息, 提升了网络对多尺度信息的感知能力.
(3)设计了一个多尺度注意力模块(multi scale attention module, MSAM)以提取多层次的感兴趣人群特征信息. 该模块利用注意力机制和多列空洞卷积提升了对人群特征信息的敏感度和提取多层次特征的能力.
1 相关工作随着计算机视觉领域的不断发展, 人们对人群密度检测也越来越关注, 针对不同的场景等问题, 研究者们提出了许多人群密度检测方法. 现有的人群密度检测算法根据特征提取方式的不同可分为基于传统的方法和基于深度学习的方法.
1.1 基于传统的方法传统的关于人群密度检测的方法基本上都是采用先进行特征提取, 然后进行特征处理预测人群数目. 这些传统的人群密度检测的方法主要分为3种, 基于聚类的方法、基于检测的方法和基于回归的方法[4,5]. 其中,基于检测的方法主要是对单个行人整体和头部局部特征提取进行训练实现密度检测任务[6], 但仅适用于非常稀疏的场景. 基于回归的方法主要是通过学习图像特征到人群密度或密度图之间的映射关系获取人群密度信息[7], 但在密集场景下, 人群密度检测效果还有较大提升空间. 基于传统的人群密度检测方法在特征提取上具有明显的局限性, 无法获取丰富的目标人群特征信息, 对于密集场景下, 人群密度检测不能满足实际需求.
1.2 基于深度学习的方法Li等人[8]提出单通道检测人群密度网络(CSRNet), 通过使用空洞卷积神经网络, 在保持分辨率的同时扩大感知域. Liu等人[9]提出DSSINet, 使用不同尺寸的图片作为输入来得到不同尺度的特征, 又通过条件随机场来融合不同层之间的特征, 通过信息传递的方式对多尺度特征进行细化. Xu等人[10]提出AutoScale通过在网络输入调节图像, 使得网络获取不同尺度的特征图, 丰富了网络特征信息, 获取人群更多细节特征. Zand等人[11]提出一种多列多尺度的人群计数网络(MPS)利用多列不同网络深度进行获取人群的多尺度特征信息. Zhu等人[12]提出SFANet, 利用双路径方式将人群区域特征图与多尺度特征进行融合生成高质量密度图, 从而提高检测准确性. Oh等人[13]提出了DUBNet, 利用单列可扩展的网络提高了生成人群密度图质量, 采用点估计提升网络的人群计数性能. Cao等人[14]提出了一种尺度聚合网络(SANet), 利用不同大小卷积核提取图像特征, 并利用反卷积进行恢复图像分辨率生成高质量密度图. Jiang等人[15]提出了编码器-解码器网络(TEDNet), 通过利用多分支的多尺度编码获取图像的多尺度特征信息. Lian等人[16]提出一种双路径检测网络(DPDNet), 通过利用双回归头进行图像密度图的生成, 进一步提升了网络对小尺寸特征的检测能力. Wang等人[17]提出一种分布匹配进行人群计数的网络(DM-Count), 通过利用最优传输来进行衡量归一化预测密度图和真实密度图的相似性, 来进行提升网络性能.
上述方法在人群密度检测方面具有比较好的效果, 可以减小遮挡、畸变等问题带来的检测误差, 但是目前人群密度检测技术应用在各类场景中, 遇到的主要的问题是复杂场景的干扰和人群尺度不一致, 这些方法在复杂背景干扰下对不同尺度的人群进行密度检测上还有提升的空间. 因此本文主要是针对人群尺度不一和背景干扰的问题进行研究改进.
2 网络架构针对当前复杂场景下人群密度检测出现的问题, 本文提出了基于多尺度特征融合的人群密度检测网络. 该网络主要是由多分辨率特征提取模块、多尺度注意力模块和分割注意力模块组成, 如图1所示. CDBM利用多分辨率特征提取模块获取人群目标图像丰富的多层语义信息; 多尺度注意力模块内部使用多个多尺度模块提取不同层次目标特征, 通过注意力机制聚焦目标行人特征区域, 使得提取的目标特征更加精细化, 有效避免背景信息干扰; 提取出的目标特征信息送入分割注意力模块得到最终的高质量密度图.
2.1 多分辨率特征提取模块
多分辨率特征提取模块(MRFM)采用不同分辨率图像分列提取图像空间和尺度特征[18], 获取更丰富的细节特征应对人群目标尺度变化问题. 以往的多阵列网络各列工作基本是相互独立的, 造成提取的尺度信息具有局限性, 所以本文提出了多分辨率特征提取模块, 用于交互融合提取图像特征, 通过利用高分辨率图像提取精确的局部信息和低分辨率图像学习丰富的上下文信息, 将多分辨率提取的特征信息进行结合, 丰富了人群的特征信息, 而且进一步增强网络的鲁棒性, 当某一分辨率图像受一些问题影响时, 其他分辨率图像仍然包含有用信息, 有利于提高网络在复杂场景下的性能. 多分辨率特征提取模块架构如图2所示.
从图2中可知, 由于高分辨率和低分辨率具有不同的行人细节信息和全局内容, 所以MRFM通过调整输入图像的分辨率, 分别对不同分辨率图像提取特征信息. 由于不同分辨率图像携带特征信息量的不同, 需要使用不同深度网络进行特征提取, 便于充分提取网络特征信息和减少网络计算量. 经实验得出, MRFM特征输入分辨率为原图大小的(2, 1, 0.5)倍的效果最佳. MRFM采用VGG-16网络前13层卷积层作为骨干网络提取特征信息, 将骨干网络分为5个层次分别为Conv1–Conv5. 首先构建3个图像(
由于多分辨率特征提取模块中每个子网络输出的相同分辨率特征图是由不同感受野中提取出的, 具有一定的互补性. 为了多尺度模块能提取更为丰富的图像信息, 本文设计了多尺度特征融合模块. 如图3所示, 第
$ {{\textit{S}}_{k - 1}} = {\rm{Conv}}\left( {{\rm{cat}}\left( {{\rm{Conv}}\left( {{{\textit{F}}_k}} \right), {{\textit{F}}_{k - 1}}} \right)} \right) $ | (1) |
其中,
2.2 多尺度注意力模块
由于卷积神经网络的卷积核大小决定了卷积网络的感受野的大小, 不同大小的感受野可以获取图像不同尺度的语义信息, 利用不同大小卷积核可以获取更为丰富的图像特征. 因此本文设计了多尺度注意力模块(MSAM)采用多列空洞卷积和注意力机制降低人群特征尺度变化带来的误差以及背景对特征提取带来的干扰. 但是由于多列网络结构各分支都是相互独立的, 而且只能提取特定的尺度信息, 不能有效地应对尺度连续变化的问题. 所以本文通过特征融合将各个子网络分支进行交互融合, 可以有效聚合人群尺度的上下文信息, 提高特征信息的交互能力. 本文还采用了空间通道注意力机制能够充分地抑制背景信息的干扰, 增强对人群特征感兴趣区域的权重. MSAM网络结构如图4所示.
由图4可知, MSAM通过将MRFM提取出的特征图(
图像通过多个子网络和多列空洞卷积操作丰富了图像细节特征, 提高了人群尺度变化的鲁棒性, 但是背景干扰问题对于人群密度检测也带来了巨大的阻碍, 复杂的背景信息在很大程度上降低了人群密度检测的准确性. 为了解决复杂场景下对人群特征的提取, 本文采用了空间通道注意力机制(CBAM)[19]增强对人群特征区域的关注度, 抑制带来干扰的背景信息.
CBAM注意力模块是由空间和通道注意力组成的不仅能学习特征图的人群特征信息还能提取到空间位置信息, 相比其他的注意力模块能够获取更丰富的图像信息. 通过给定一个中间特征图, CBAM注意力模块会通过空间和通道维度依次推断出注意力权重, 并将得出的注意力权重和输入的特征图进行相乘处理自适应融合优化, 提高人群特征区域权重. 相关公式如下:
$ {M_c}\left( F \right) = \sigma \left( {\left( {MLP\left( {F_{{\text{av}}g}^c} \right)} \right) + \left( {MLP\left( {F_{\max }^c} \right)} \right)} \right) $ | (2) |
$ {M_{{s}}}\left( F \right) = \sigma \left( {{f^{7 \times 7}}\left( {\left[ {F_{{\rm{avg}}}^s;F_{\max }^s} \right]} \right)} \right)$ | (3) |
其中, 输入特征图
本文利用分割注意力模块将MAMD模块生成的人群密度特征图
$ {M_{{\text{att}}}} = {\textit{Sigmoid}}\left( {{\rm{Conv}}\left( {{f_{{\rm{den}}}}} \right)} \right) $ | (4) |
其中,
然后将注意力图与人群密度特征图进行逐元素相乘, 再通过1×1卷积融合, 从而生成高质量的密度图, 公式如下:
$ {F_{{\rm{ref}}}} = {\rm{Conv}}\left( {{f_{{\rm{den}}}} \otimes {M_{{\rm{att}}}}} \right) $ | (5) |
其中,
本文为了提升人群密度图的质量, 采用欧几里得距离作为人群密度检测的损失函数, 用来评估网络生成密度图和人群密度图的差异, 公式如下:
$ {L_1} = \frac{1}{{2N}}\sum\limits_{{\text{i}} = 1}^N {||Z\left( {{X_i};\theta } \right) - Z_i^{GT}|{|^2}} _{ } $ | (6) |
其中,
另外在注意力图模块还引入了交叉熵损失函数, 公式如下:
$ {L_2} = {{ - }}\frac{{\text{1}}}{{{N}}}\sum\limits_{i = 1}^N {\left( {A_{\text{i}}^{GT}\log \left( {{P_i}} \right) + \left( {1 - A_i^{GT}} \right)\log \left( {1 - {P_i}} \right)} \right)} $ | (7) |
其中,
本文通过联合欧几里得和交叉熵函数来对密度图进行约束, 使得网络架构收敛速度更快. 最终的损失函数由两个函数加权生成的, 公式如下:
$ {\textit{LOSS}} = {L_1} + \alpha {L_2} $ | (8) |
其中,
本文的相关实验配置是Windows系统, NVIDIA 3090, 24 GB显存, 训练框架是PyTorch 1.13, 采用的优化器为Adam, 初始化学习率为0.0001, 权重衰减为0.0005. 编程语言是Python 3.7.
3.1 数据集随着人们在人群密度检测方面不断的深入研究, 相对应的人群密度检测数据集的规模与挑战性也在不断的提高. 人群密度检测对数据集的人群的疏密程度和在进行数据集标注时的准确性要求较高. 常用的人群密度检测的公共数据集[20]有ShanghaiTech、UCF_CC50、UCF-QNRF等, 这些数据集在制作的过程中充分考虑到了光照、场景、人群尺度等一些因素, 而且还对图像中的人头进行标注. 本文在ShanghaiTech、UCF_CC50数据集上进行实验评估.
ShanghaiTech数据集分Part_A和Part_B两部分, 总共包含了1198张图片, 330165个头部坐标. Part_A数据集是在互联网上的一些人群密集、场景不同的图像, Part_B是在上海的一个繁忙的街道上进行拍摄的, 人数相对较少, 场景比较单一[21]. 总体来说, 由于ShanghaiTech数据集无论是在场景类型、透视角度还是人群密度都是变化多样的, 所以在该数据集上进行人群密度检测是具有一定难度的.
UCF_CC50数据集涵盖了多个不同场景, 包含了50张不同大小和视角的图像. 其中数据图像中人群尺度和密度变化较大, 数据集中最少的图像中有几十人, 最高有上千人, 人数差异巨大.
3.2 评价指标在本次实验中, 采用的是平均绝对误差(mean absolute error, MAE)和均方误差(mean squared error, MSE)两个指标进行评估实验的有效性, 定义如下:
$ MAE = \frac{1}{N}\sum\limits_{b = 1}^N {|{a_b} - {{\hat a}_b}|} $ | (9) |
$ {\textit{MSE}} = \sqrt {\frac{1}{N}\sum\limits_{{\text{b}} = 1}^N {{{\left( {{a_b} - {{\hat a}_b}} \right)}^2}} } $ | (10) |
其中,
在CDBM中, 需要将多个不同分辨率的图像分别输入多个子网络中进行提取图像语义信息. 为了验证输入不同图像分辨率对实验结果的影响, 本文在公共数据集上针对不同分辨率图像进行实验, 其中2、1、0.5分别代表原图分辨率的2、1、0.5倍. 实验结果如表1所示.
通过对不同分辨率图像进行实验得出, 不同分辨率图像中包含不同的人群尺度信息, 利用多分辨率图像能够提取丰富的细节特征和尺度信息, 增强促进各尺度信息交互和上下文感知能力, 提高网络检测效率, 对特征提取具有良好的增强作用. 当对分辨率为原图的2、1、0.5倍提取人群特征时网络的性能达到最优.
为了验证本文设计的多尺度注意力模块的有效性, 本文将去除多尺度注意力模块得到的基础网络Basenet和融入多尺度注意力模块的CDBM在公共数据集上进行对比实验, 从网络性能验证多尺度注意力模块的有效性. 实验结果如表2所示.
从表2中可知, 融合多尺度注意力模块, 检测性能有所提升, 表明多尺度注意力模块有效地提取感兴趣的人群特征的, 较好地抑制背景信息的干扰, 利用多列空洞卷积增强尺度信息交互, 提高尺度连续变化的建模能力. 由此得出, 多尺度注意力模块可以提升多尺度特征的学习能力和网络检测的准确度.
为了验证利用本文的方法获取多分辨率图像具有良好的优越性, 本文在多个公共数据集上针对利用卷积操作获取的低分辨率图像与本文下采样的方式获取的低分辨率图像进行对比实验, 进行验证本文方法的有效性. 对比实验结果如表3所示.
从表3可知, 利用卷积操作获取的低分辨率图像与本文采用下采样得到低分辨率图像的实验结果并没有太大区别, 但是利用卷积操作获取不同分辨率图像保留较多的高频信息会给网络造成一定的特征冗余, 增大网络的计算复杂性, 相对于本文获取的低分辨率图像保留较多的特征信息, 给后续低分辨率图像提取特征增大计算量.
3.4 基于UCF_CC50数据集实验结果本文提出的方法通过与比较经典的人群密度检测算法在UCF_CC50数据集上的训练结果相比可以得出, 在针对小样本的UCF_CC50数据集中人群尺度变化极大, 人群场景变换复杂, 本文的方法具有一定优势, 训练结果如表4所示.
从表4来看, 本文的方法在人群尺度变化大的UCF_CC50数据集上的训练结果为, MAE为177.4, MSE为242.8, MAE和MSE比次优的算法DM-Count分别减少了34和48.7, 该模型性能显著提高. 在该数据集中, 人群尺度变化较大, 较好地发挥了融合多尺度注意力网络对多尺度图像的特征融合能力, 也充分地说明了基于交互的多列空洞卷积处理尺度变化大的图像的学习能力比只通过卷积神经网络特征提取的效果更好. 在Windows操作系统, 显卡为3090的设备上进行推理每张图片的时间为42 ms左右, 每秒可以处理20张左右图片, 而且在实际场景中人群密度变化并不是骤增或骤减的瞬时过程, 因此对网络模型检测效率要求相对宽松, 对于该网络模型每秒处理20帧图片是完全满足人群密度检测的实时性的要求.
UCF_CC50数据集的检测结果如图7所示.
3.5 基于ShanghaiTech数据集的实验结果
本文提出的方法在数据集ShanghaiTech上与多种算法进行比较, 针对ShanghaiTech数据集的多场景和多尺度变化情况, 该方法也能取得较好的检测结果, 结果如表5所示.
在表5中, 本文提出的融合多尺度和注意力的人群密度检测网络在ShanghaiTech的Part_A取得了比较低的MAE和MSE值, 分别是59.2、98.7, 在Part_B上取得的MAE和MSE值分别为7.2、10.2. 从表5可以看出, 本文的方法对于ShanghaiTech的Part_A数据集中人群密集和人群尺度变化较大的场景下检测的结果是优于大多数其他的方法的, 它的MAE比人群密度检测精确度较高DM-Count减少了0.6, 在ShanghaiTech的Part_B上的结果也取得较好的效果, 比次优的DSSINet网络的MSE低了0.1. 通过实验可以看出, 基于融合多尺度特征和注意力网络可以充分地提取图像中不同尺度信息和降低背景信息带来的误差, ShanghaiTech数据集部分检测结果如图8所示.
4 结论
本文主要提出了一种融合多尺度和注意力机制的人群密度检测模型, 该模型利用多列子网络提取不同分辨率图像信息, 通过融合模块进行交互融合, 获取图像特征信息, 并利用多尺度注意力模块获取多尺度信息, 抑制背景信息的干扰, 可以减少由人群尺度不同和背景干扰引起的人群检测误差, 能够更加准确地对密集人群进行密度估计. 在ShanghaiTech、UCF_CC50数据集上进行实验, 结果表明该网络具有良好的预测能力, 在一定程度上减少了检测误差.
[1] |
余鹰, 李剑飞, 钱进, 等. 基于多尺度特征融合的抗背景干扰人群计数网络. 模式识别与人工智能, 2022, 35(10): 915-927. DOI:10.16451/j.cnki.issn1003-6059.202210005 |
[2] |
Bai S, He ZQ, Qiao Y, et al. Adaptive dilated network with self-correction supervision for counting. Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020. 4593–4602.
|
[3] |
Wang X, Lv RR, Zhao Y, et al. Multi-scale context aggregation network with attention-guided for crowd counting. Proceedings of the 15th IEEE International Conference on Signal Processing. Beijing: IEEE, 2020. 240–245.
|
[4] |
Yang YF, Li GR, Wu Z, et al. Reverse perspective network for perspective-aware object counting. Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020. 4373–4382.
|
[5] |
Han K, Wang YH, Tian Q, et al. GhostNet: More features from cheap operations. Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020. 1577–1586.
|
[6] |
张世辉, 赵维勃, 王磊, 等. MSIANet: 多尺度交互注意力人群计数网络. 电子与信息学报, 2023, 45(6): 2236-2245. |
[7] |
Wang WX, Liu QL, Wang W. Pyramid-dilated deep convolutional neural network for crowd counting. Applied Intelligence, 2022, 52(2): 1825-1837. DOI:10.1007/s10489-021-02537-6 |
[8] |
Li YH, Zhang XF, Chen DM. CSRNet: Dilated convolutional neural networks for understanding the highly congested scenes. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 1091–1100.
|
[9] |
Liu LB, Qiu ZL, Li GB, et al. Crowd counting with deep structured scale integration network. Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 1774–1783.
|
[10] |
Xu CF, Liang DK, Xu YC, et al. AutoScale: Learning to scale for crowd counting. International Journal of Computer Vision, 2022, 130(2): 405-434. DOI:10.1007/s11263-021-01542-z |
[11] |
Zand M, Damirchi H, Farley A, et al. Multiscale crowd counting and localization by multitask point supervision. Proceedings of the 2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Singapore: IEEE, 2022. 1820–1824.
|
[12] |
Zhu L, Zhao ZJ, Lu C, et al. Dual path multi-scale fusion networks with attention for crowd counting. arXiv:1902.01115, 2019.
|
[13] |
Oh M, Olsen PA, Ramamurthy KN. Crowd counting with decomposed uncertainty. Proceedings of the 34th AAAI Conference on Artificial Intelligence, the 32nd Innovative Applications of Artificial Intelligence Conference, the 10th AAAI Symposium on Educational Advances in Artificial Intelligence. New York: AAAI Press, 2020. 11799–11806.
|
[14] |
Cao XK, Wang ZP, Zhao YY, et al. Scale aggregation network for accurate and efficient crowd counting. Proceedings of the 15th European Conference on Computer Vision (ECCV). Munich: Springer, 2018. 757–773.
|
[15] |
Jiang XL, Xiao ZH, Zhang BC, et al. Crowd counting and density estimation by trellis encoder-decoder networks. Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019. 6133–6142.
|
[16] |
Lian DZ, Chen XN, Li J, et al. Locating and counting heads in crowds with a depth prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 44(12): 9056-9072. DOI:10.1109/TPAMI.2021.3124956 |
[17] |
Wang BY, Liu HD, Samaras D, et al. Distribution matching for crowd counting. Proceedings of the 34th International Conference on Neural Information Processing Systems. Vancouver: Curran Associates Inc., 2020. 135.
|
[18] |
Song QY, Wang CA, Jiang ZK, et al. Rethinking counting and localization in crowds: A purely point-based framework. Proceedings of the 2021 IEEE/CVF International Conference on Computer Vision. Montreal: IEEE, 2021. 3345–3354.
|
[19] |
Woo S, Park J, Lee JY, et al. CBAM: Convolutional block attention module. LNCS 11211: Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 3–19.
|
[20] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. Proceedings of the 3rd International Conference on Learning Representations. San Diego, 2015.
|
[21] |
Wan J, Wang QZ, Chan AB. Kernel-based density map generation for dense object counting. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 44(3): 1357-1370. DOI:10.1109/TPAMI.2020.3022878 |