APP下载

基于深度神经网络的人群计数方法*

2023-08-22郭利欣李建军

计算机时代 2023年8期
关键词:池化注意力卷积

郭利欣,李建军

(内蒙古科技大学信息工程学院,内蒙古 包头 014017)

0 引言

人群密度估计,在公共安全、视频监控、城市规划和社会管理等诸多领域具有较高的应用价值。人群计数方法能够很好的实现实时人群数量统计的效果,从而有效的减少人群聚集,这对2020年以来爆发的新冠疫情的防控具有关键作用。Liu 等人[1]提出了可感知尺度上下文的CAN网络,该网络用于稀疏和较复杂的场景时,因背景干扰、特征提取能力不足导致特征融合不充分,特征空间信息丢失,会出现错误的预测。

针对上述问题,本文在CAN 的基础上提出了上下文语义卷积块注意力机制网络(Context-Aware Convolutional Block Attention Network,CA-CBAN)。该网络由前端网络也即骨架网络、上下文语义模块(Context-Aware Module,CAM),卷积块注意力模块(Convolutional Block Attention Module,CBAM)以及后端网络四部分组成。该网络在没有增加过多计算量的情况下,实现了端到端的人群计数且得到的效果较好。且在ShanghaiTech数据集、UCF-CC_50数据集和JHU-CROWD++数据集上进行了实验,实验结果表明,所提方法的性能相较于CAN[1]和其他的方法取得了较好的准确性和鲁棒性。

1 相关工作

人群计数作为计算机视觉领域中公认的难题,一直以来是研究人员面临的一个巨大挑战。最近的方法可分为基于回归、基于密度估计和基于CNN的方法。

1.1 基于回归的方法

为了克服遮挡和背景干扰的问题,研究人员试图通过回归的方法来计数,他们在回归中学习从局部图像块中提取的特征与计数之间的映射关系[2-3],这些方法主要包括两部分:底层特征提取和回归建模。使用类似的方法,Idrees 等人融合了来自多个来源的计数,如头部检测、纹理元素和频域分析。

1.2 基于密度估计的方法

虽然基于回归的方法成功地解决了遮挡和背景干扰的问题,但当他们在全局数量上回归时,忽略了重要的空间信息且在局部区域的预测结果不准确。针对这个问题,Lempitsky 等人[4]引入了一种新的方法,利用回归学习局部斑块特征和相应对象密度映射之间的线性映射。由于到线性映射很难学习,Pham等人[5]提出使用随机森林框架学习局部斑块特征和密度图之间的非线性映射。

1.3 基于CNN的方法

基于CNN 的方法在分类和识别任务中的成功启发了研究人员将其用于人群计数和密度估计[6-7]。Shang 等人[8]提出了一种使用CNN 的端到端估计方法,通过对输入图像同时学习局部和全局计数。针对人群图像中普遍存在的严重遮挡问题,Zhang 等人[9]提出了一种多列卷积神经网络(MCNN)结构,利用多尺寸滤波器来提取具有不同大小接受域的特征。与上述的多列设计不同,CSRNet[10]采用单列设计,前端网络采用剔除了全连接层的VGG16 的前13 层,后端网络采用空洞卷积在不丢失分辨率的同时扩大了感受野。但是由于特征在提取过程中丢失了太多细节信息导致在人群较密集、人头遮挡严重的场景下该方法表现出的效果不佳。Zhang 等人[11]提出了一种关系注意力网络(RANet),该方法利用局部注意力和全局注意力获取像素间的相互依赖关系,从而,得到更多表示特征的信息。多任务学习的方法也被应用到计数任务中。

2 CA-CBAN方法

2.1 密度图的生成

针对人群计数任务,使用点标注来标注头部是人群估计中较为普遍的标注方式。文献[9]方法中生成密度图的方法,在含有N个人头标记点的图像x中,第i个坐标位置为xi的人头标记点表示为:

其中,δ(x)函数表示为人头位置的冲激函数,表示二维图像中的坐标,N表示人头总标记数。人群密度图F(x)可由H(x)与标准2D高斯核函数Gσ卷积获得,F(x)定义如下:

其中,σi(x)=βdl,其中dl表示坐标xi与其最近的K个人头之间的平均距离,且经过大量实验证明,β=0.3 时生成的密度图质量最好。

2.2 网络结构

针对当前人群计数存在的问题,本文提出了一种上下文语义卷积块注意力机制网络(Context-Aware Convolutional Block Attention Network,CA-CBAN)。如图1 所示,由四部分构成,分别为前端网络也即图1中的Backbone、CAM(Context-Aware Module)模块、CBAM(Convolutional Block Attention Module)模块和后端网络Back-end。

图1 上下文语义卷积块注意力网络结构图

2.2.1 Backbone

主干网络是模型中最开始的若干层网络,是用来提取输入图像中的目标的基本特征。主干网络的有效性和复杂性在很大程度上影响着人群计数结果的好坏。

CA-CBAN 的主干网络使用的是VGG16[12]的剔除了全连接层的前13层卷积层和池化层。

2.2.2 CAM模块

CAN[1]网络在人群计数任务上取得了较好的效果,本文的CAM 模块采用文献[1]提出的网络架构,输入的图像先经过前端网络也即VGG 网络进行初级特征提取,输出512通道的特征图,将特征图分为四路分别用平均池化分成1 × 1、2 × 2、3 × 3、6 × 66 × 6 四种分块方式。VGG 网络的限制是在整个图像上用相同尺度的卷积核,导致感受野都是一样的,基于此问题,CAN 网络通过空间金字塔池化(Spatial Pyramid Pooling)[13]运算来计算尺度感知特征,如下式所示:

其中,PavePave代表平均池化,Fj代表卷积操作,Ubi代表上采样。得到的尺度语义特征由于是先下采样后再上采样得到,因此相比于输入的特征图丢失了细节信息,故用式⑷来获取这些丢失了的细节信息:

将cj作为注意力去过滤sj得到weight map:

2.2.3 CBAM模块

如图1 所示,CBAM[14]包含二个独立的子模块:通道注意力模块(Channel Attention Module)和空间注意力模块(Spatial Attention Module),分别进行通道与空间上的注意力特征融合,改进的网络结构作为轻量级网络不仅能够节约参数和计算力,还可以有效地提升网络的性能且可以与CNN 模型一起进行端到端的训练。通道注意力机制是将从CAM 模块得到的特征图在空间维度上进行压缩。在空间维度上进行压缩时,不仅考虑到平均池化,还考虑到最大池化。平均池化和最大池化可以用来聚合特征映射的空间信息,送到一个共享网络,压缩输入特征图的空间维度,逐元素求和合并,最终生成通道注意力图。就单独的一张图像来说,通道注意力是关注图像中哪些内容是有重要信息,平均池化对特征图上的每一个像素点都有反馈,而最大池化在进行梯度反向传播计算时只有特征图中响应最大的地方有梯度的反馈。通道注意力机制表示为:

其中,σ表示激活函数,将特征图先分别传入最大池化层和平均池化层,然后送入共享网络,最后通过sigmoid激活函数输出通道特征图。

空间注意力机制如图1中Spatial Attention Module所示,是对传入的前面通过通道注意力机制得到的通道注意力图的通道进行压缩,可以表示为:

在通道维度上分别进行平均池化和最大池化,将特征维度由H×WH×W转变为1× 11× 1,接着经过卷积核大小为7 × 77 × 7 的卷积和Relu 激活函数降低特征图的维度。最大池化操作的作用是在通道上提取最大值;平均池化操作的作用是在通道上提取平均值,最后将经过Sigmoid 激活函数标准化处理后的特征图与通道注意力输出的特征图合并,从而在空间和通道两个维度完成对特征图的标定。

3 实验结果与分析

本文在ShanghaiTech 数据集、UCF_CC_50 数据集、JHU_CROWD++数据集上进行了实验,并对结果进行分析。本文算法网络采用初始训练学习率为10−510−5的随机梯度下降算法(Stochastic gradient descent,SGD),迭代次数为2000。优化器使用Adam,此外,随机打乱每次样本的输入顺序。并且采用欧几里得损失作为训练损失,定义如下:

其中,N表示训练批量的大小,Z(Xi;θ)表示网络生成的预测估计密度图为真实密度图,Xi表示第i张的输入图像,θ为可学习的参数。

3.1 评价指标

在人群计数问题中,计数误差主要采用两个指标进行评估,即平均绝对误差(Mean Absolute Error,MAE)和均方误差(MeanSquareError,MSE)。其定义为:

其中,N为测试图像的数量,Ci为第i张图像中的预测人数为第i张图像中的真实人数,由预测的密度图和标注的真实密度图求和得到。

3.2 实验结果

3.2.1 在ShanghaiTech数据集中的实验与分析

ShanghaiTech 数据集是Zhang 等人引入的一个大规模人群统计数据集[15]。该数据集由1198 张图像构成,有330165 个已标注的人头信息。数据集分为Part_A 和Part_B 两部分。ShanghaiTech 数据集上单幅图像实验结果如图2 所示,多算法性能的指标对比如表1 所示。由在ShanghaiTech 数据集中的实验结果可知,在Part_A 中本文提出的算法的MAE 相比于表1中的算法达到了最好的效果,与基于改进的文献[1]中的算法MAE下降了1.8;而在Part_B中,与对比算法中的MAE 与MSE 都达到了最好的准确性与鲁棒性。证明了该算法的有效性。相比于文献[1],MAE下降了0.1,MSE 下降了0.4,这是由于Part_A 中大多都是人群较密集的场景,而Part_B 中大多都是人群密度较稀疏的场景,从而导致受背景干扰的因素,精度有所降低。

表1 ShanghaiTech数据集中算法性能对比

图2 ShanghaiTech数据集中的实验结果

3.2.2 在UCF_CC_50数据集中的实验与分析

UCF_CC_50 数据集包含50 张不同视角和分辨率的图像,整个数据集有63075 个个体标注信息。由于该数据集的人群密度十分密集,所带来的挑战也是巨大的。UCF_CC_50 数据集单幅图像实验结果如图3所示,多算法性能指标如表2 所示。由在UCF_CC_50数据集中的实验结果结合表2与众多算法性能的对比中可知,本文所提出的算法在目前众多主流算法中效果较显著,MAE达到212.1的精度,与基于改进的文献[1]中算法对比MAE 下降了0.1,证明本文算法有较高的准确性。

表2 UCF_CC_50数据集中算法性能对比

图3 UCF_CC_50 数据集中的实验结果

3.2.3 在JHU_CROWD++数据集中的实验与分析

JHU-CROWD++数据集是霍普金斯大学发布的大规模人群计数数据集,共4372张图像,平均分辨率为1430×910,共计151万个注释。与现有的数据集相比,该数据集收集了不同场景/环境条件下的图像,提高了数据集的多样性。此外,数据集提供了丰富的注释集如点、近似边界框、模糊级别等。

JHU-CROWD++数据集单幅图像实验结果如图4所示,多算法性能指标如表3 所示。由该实验结果可知,本文算法模型在JHU-CROWD++数据集中取得了较好的准确性与鲁棒性,与文献[1]算法相比,MAE下降了18.9,MSE 下降了23.9,且与表3 中的对比算法相比,MAE与MSE都达到了最优。在JHU-CROWD++这个挑战性较大的数据集上的实验结果数据表明了本文所提网络模型优秀的预测效果。

表3 JHU_CROWD++数据集中算法性能对比

图4 JHU_CROWD++数据集中的实验结果

3.2.4 实验结果对比

为了验证CBAM 模块在网络中的有效性,将实验结果进行对比,对比了三种分别为主干网为VGG16模型,VGG16+CAM 模型,VGG16+CAM+CBAM 模型,实验对比结果如表4所示,可以发现双通道注意力机制模块可以有效的提高人群数量预测的准确性与稳定性。在三个主流的数据集中效果都有不同程度的提升,尤其在JHU-CROWD++数据集中提升效果最为显著。

表4 实验结果对比

4 总结

为了解决人群计数问题中的难点,本文在CAN 网络的基础上提出了一种上下文语义卷积块注意力机制网络(Context-Aware Convolutional Block Attention Network,CA-CBAN)。CBAM 作为一个轻量级的模块,包含两个独立的子模块,在空间和通道两个维度上产生注意力特征图信息,在保证节约参数和计算力的同时提升了网络性能。在多个主流数据集上的实验结果表明,本文方法比许多方法都有效。可应用于如地铁站、机场、火车站等人群聚集、人群密度较大的拥挤场景中,从而进行实时人群密度检测与预警;还可应用到异常事件监测,景区游客统计等其他实际项目中。因为本文只是针对人群的数量和密度进行分析,没有加入人群定位,所以接下来的研究会集中在人群密度估计与人群定位两个方面结合来展开。

猜你喜欢

池化注意力卷积
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
让注意力“飞”回来
卷积神经网络中的自适应加权池化
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things