基于多尺度空间注意力特征融合的人群计数网络
2021-03-07杜培德
杜培德,严 华
(四川大学电子信息学院,成都 610065)
(*通信作者yanhua@scu.edu.cn)
0 引言
密集人群计数的任务是估计图像或视频中包含的人物数量。随着全球人口数量的上涨和人类社会活动的增加,各地公共场所经常会出现人群大量聚集的情况,如交通枢纽和娱乐场所等,这给公共安全带来了巨大的隐患。密集人群计数任务在视频监视、交通控制和大都市安全方面应用广泛,各国研究人员开展了大量研究。人群计数的方法还可以推广到其他领域的类似任务,例如医学中显微图像的细胞数量估计[1]、交通拥挤情况下的车辆估计[2]和广泛的生物样本调查[3]等。
一些早期的方法通过检测人群中的每个行人来解决人群计数问题[4],取得了一定的效果;但是在人群密集场景和严重遮挡场景下该方法效果会急剧下降。因此,基于特征回归的方法[5-7]被用来解决此问题。回归方法通常学习一种从特征到人数的映射关系,通过提取前景特征学习一个线性回归或高斯过程回归来计数。然而,这种回归方法学习到的是低级特征映射,当场景尺度和视角急剧变化时效果不佳。
近年来,卷积神经网络(Convolutional Neural Network,CNN)[8-10]在计算机视觉领域的成功应用,为解决上述问题开拓了新的方法。自密度图的思想在文献[2]中被提出以来,基于密度估计的方法已经在人群计数任务中占据了绝对优势。使用深度卷积神经网络来估计密度图以及大规模可用数据集的提出[11-14]进一步提高了在更具挑战性的真实场景中进行人群计数的准确性。人群计数的最新工作一直集中在深度神经网络新颖架构(例如多列CNN[15-16]和注意力机制)的设计上,以进行准确的密度图估计。这些设计的动机通常是为了改进对比例变化的人群图像的泛化能力。
Zhang 等[11]提出了一种具有多分支的多列卷积神经网络(Multi-column Convolutional Neural Network,MCNN)体系结构,其中每个分支使用不同大小的滤波器,这些分支的特征被组合在一起以进行密度图估计。Sam 等[15]使用类似的想法设计了一种称为选择卷积神经网络(Switching Convolutional Neural Network,Switch-CNN)的架构。Switch-CNN 使用多个分支、不同大小的卷积核提取特征;但是,Switch-CNN 并未连接所有分支的特征图,而是学习了一个分类器,该分类器预测输入图像的密度等级,然后使用此预测选择一个分支并使用该分支用于密度估计。Sindagi 等[16]提出了上下文金字塔卷积神经网络结构(Contextual Pyramid CNN,CP-CNN),除了整个图像的全局密度等级外,CP-CNN还可以预测图像中的局部密度等级,将从全局和局部密度等级预测中获得的上下文信息进行组合,以进行最终密度估计。陆金刚等[17]提出了多尺度多列卷积神经网络(Multi-scale Multi-column Convolutional Neural Network,MsMCNN),以多列卷积神经网络结构为主干,每列使用不同大小的卷积核;并将中间层特征图跳跃传递给后端的反卷积层,最后融合各分支特征图得到估计密度图。以上方法均取得了一定进步,但Li 等[18]提出的密集场景识别网络(Congested Scene Recognition Network,CSRNet)中指出,多列CNN 中使用不同大小卷积核,各列提取到的特征相差不大,结构冗余复杂,且多列卷积网络训练困难、耗时长。CSRNet 使用深层卷积网络VGG-16(Visual Geometry Group 2016)[8]前10层作为特征提取器,后端使用7层扩张卷积作为回归器,在各个数据集上均表现最佳。本文也将基于此网络做出改进。
近几年,注意力模型在各种计算机视觉任务中得到了广泛应用,可以有效提升模型的识别准确性。使用注意力机制的卷积神经网络方法[19-23]在密集人群计数任务中也取得了一定的成果。如陈美云等[19]提出的像素级注意力机制的人群计数方法(crowd counting method based on Pixel-level Attention Mechanism,PAM)。首先使用全卷积神经网络生成像素级的密度等级掩码,然后将原图与密度图掩码共同传入反卷积网络回归得到估计密度图。Zou 等[22]提出了比例校准模块(Scale Recalibration Module,SRM)和比例聚焦模块(Scale Focus Module,SFM)。SFM模块对不同卷积层特征图聚焦,使每个层可以聚焦于不同规模的行人;在SFM 处理后将这些特征发送到SRM,以通过切片/堆栈策略重新分配规模感知特征图,最终回归出高质量密度图和准确人群数,取得了良好的效果。但是,采用SFM 模块会使每个层只聚焦于一种特定规模,这就隔离了各个层特征图之间的相关性,使得最终网络性能无法达到最佳。
本文设计了多尺度空间注意力特征融合网络(Multiscale spatial Attention Feature fusion Network,MAFNet)来避免上述的问题。由于深层特征图具有较大接受域,因此它带有可用于定位大尺寸头部的高级语义信息;由中间层生成的特征图在计算小尺寸头部时更准确、可靠,并且包含有关人群的空间分布信息;低层特征图则包含更多低级纹理的重要细节信息。本文计划融合一个主干网络的三个不同阶段的特征图来降低网络的复杂度,实现特征融合,从而降低计算量,提高训练速度。为了合理融合多层次特征,本文引入了轻量级基于通道方向和空间方向的注意力模块CBAM(Convolutional Block Attention Module)[24],避免了多尺度特征直接融合带来的混乱,保持了各层特征图的相关性,也加快了网络的收敛。此外,为提高网络表现性能,本文提出了联合使用双损失函数的方式来训练网络,使人群计数准确度进一步提升。实验结果验证了本文的方法在四个主要人群计数数据集(ShanghaiTech[11]、UCF_CC_50[13]、UCF-QNRF[14]和World-Expo’10[12])上达到人群计数误差最小。
综上所述,本文的主要工作如下:
1)设计了一种多尺度空间注意力特征融合网络MAFNet用于人群计数,通过合并来自同一主干网络不同层的特征图来感知尺度变化和空间分布,使网络保留更多细节;
2)引入通道空间注意力机制对融合特征图进行重新校准,提高特征图的聚焦能力,减少背景、噪声的影响,便于精准定位人头部位置;
3)提出联合损失函数约束预测密度图与真值密度图的一致性,加快网络训练收敛速度,提高人群计数的准确度。
1 本文模型MAFNet
本章将介绍提出的多尺度空间注意力特征融合网络(MAFNet)。首先介绍用于密度图预测的主要网络结构;接着介绍多尺度特征融合结构和融合策略;然后介绍引入的通道空间注意力模块(CBAM)如何整合特征图的相关性,实现特征图聚焦能力,最后介绍提出的联合损失函数。
1.1 总体网络结构
本文模型的主要目标是学习一个从原始图像到密度图的映射F:
其中:Ii表示输入图像表示预测密度图;θ为学习到的网络参数。具体人群计数结果可以通过对预测密度图进行积分得到。基于上述数学模型,本文提出了多尺度空间注意力特征融合网络,体系结构如图1所示。
与CSRNet 相同,本文的主干网络也包括两部分:前端深层卷积网络(VGG)和后端扩张卷积网络。选择VGG-16 网络的前10层作为前端网络,并只保留3个池化层,其强大的特征提取能力和可调整的结构便于特征融合。将7 层扩张卷积层作为后端网络,利用其大范围接收野提取更深层的重要信息,且保持输出密度图的分辨率。如图1 所示,VGG 网络和扩张卷积网络的详细设计如表1 所示,其中,卷积层数字表示为:(层数)×(卷积核大小)×(卷积核大小)×(卷积核个数)conv-(扩张因子)。此外,为了实现尺度感知能力,本文构建了多尺度特征融合结构,分别从前端VGG 网络的三个阶段抽取特征图通过特征融合策略进行融合,融合后的特征图作为多尺度特征图。在前端与后端模块之间的过渡区,分别对VGG 特征图和多尺度特征图进行了通道空间注意力校准,并将二者进行逐像素地加和。
图1 MAFNet结构Fig.1 Architecture of MAFNet
表1 主干网络结构设计Tab.1 Architecture design of backbone network
1.2 多尺度特征融合结构
VGG 网络的局限性在于它在整个图像上使用单向相同尺寸卷积核进行卷积编码。为了解决这个问题,本文提出融合VGG 的三个阶段特征来提取多尺度上下文信息实现尺度感知。
在VGG-16 的前10 层网络中,由于第一个卷积层的接收野太小,无法获得任何人群信息,因此首先从第一个池化层之后抽出一个浅层特征图分支,作为第一个特征融合分支F_64;从第二个池化层之后抽出一个中间层特征图分支,作为第二个特征融合分支F_128;从最后一个池化层之后抽出一个深层特征图分支,作为第三个特征融合分支F_256。此时F_64 的尺寸为[64,W/2,H/2]([通道数,宽,高]),F_128 的尺寸为[128,W/4,H/4],F_256的尺寸为[256,W/8,H/8]。
本文的融合策略是使用1×1×128 conv-1(卷积核大小为1×1,卷积核个数为128,扩张因子为1)的卷积层将F_64 扩容到[128,W/2,H/2],之后经过一个2×2 max pooling 池化层,即图1中的EP 操作(式(2)),得到特征图FF_1[128,W/4,H/4]。FF_1与F_128尺度相同,因此对二者先在通道维度上进行拼接,然后经过一个2×2 max pooling池化层,即图1中的CP操作(式(3)),得到特征图FF_2[256,W/8,H/8]。之后将FF_2 与F_256 在通道维度上进行最后的拼接,即C 操作(式(4)),得到最终的融合特征图FF_3[512,W/8,H/8]。上述操作的公式化定义如下:
融合特征FF_3 和VGG 网络的输出特征分别通过注意力模块,在通道维度和空间维度上重新整合上下文信息进行重新校准。最后,再将校准后的两个特征图累加融合,此后送入扩张卷积网络回归得到密度图。
1.3 通道空间注意力模块
1.1 节和1.2 节中VGG 网络、扩张卷积网络和多尺度特征融合结构在模型的深度和感受野两方面提高了模型的泛化能力。此外,注意力机制的引入能使模型更加关注重要特征而抑制不重要特征,本文引入注意力模块的方法为直接将该模块插入特征图传递路径上。
通道空间注意力模块结构如图2 所示,本模块旨在从通道维度和全局空间维度上分别学习到目标特征和位置特征。具体而言,就是给定一个中间特征图,本模块会沿着通道和空间两个维度依次推断出注意力权重,然后与原特征图相乘来对特征进行自适应调整。具体公式表示如下:
其中:F∈RC×H×W,Mc∈RC×1×1,Ms∈R1×H×W,F是输入特征图,Mc是通道注意力操作,Ms是空间注意力操作,F'和F″分别是通道注意力和空间注意力的输出特征图;⊗表示逐元素乘法。
MAFNet 在尺度融合时将不同深度的特征图融合为了一组特征,而不同深度特征图的语义信息层次不同,也就是对不同大小人头的感知能力各不相同。因此,注意力模块在通道维度作出调整,可以增加通道维度上的相关性,提高模型面对人群分布变化剧烈的场景的适应能力;注意力模块在空间维度上重新校准特征图,使特征图上人头位置的像素值更大,背景的像素值更小,提高了模型的背景抑制能力。
图2 通道空间注意力模块Fig.2 Convolutional block attention module
1.4 联合损失函数
现有的大多数研究都只使用均方误差损失作为人群计数的损失函数,该损失函数可以约束预测密度图和真实密度图之间的像素级误差。均方误差损失函数定义如下:
其中:N是一个批次的图像个数;G(Xi;θ)是使用网络参数θ对图像Xi预测的密度图是图像Xi的真实密度图。均方误差损失函数把目标值与模型输出(估计值)G(Xi;θ)作差后计算平方得到误差。因此L2对离群点会异常敏感,使模型更偏向于离群点,对于密集人群图像中人群分布变化巨大的数据集会表现不佳。而绝对值误差损失是目标值与模型输出(估计值)G(Xi;θ)差的绝对值作为误差,对离群点更加鲁棒,绝对值误差损失函数定义如下:
其中:N是一个批次的图像个数;G(Xi;θ)为使用网络参数θ对图像Xi预测的密度图是图像Xi的真实密度图。
因此,本文提出联合使用均方误差损失和绝对值误差损失来约束预测密度图和真实密度图。用L1能够对异常值更鲁棒,用L2能够更快地收敛,L2比L1能更快速收敛的原因在于预测值与目标值接近时,L2曲线更加平滑。最终损失函数通过加权两个损失函数得到:
其中,λ是权衡均方误差损失和绝对值误差损失的权重,它是一个超参数。
2 实验与结果分析
2.1 训练细节
2.1.1 真实密度图生成
对于真实密度值δ中的目标物体xi,用表示其k近邻的平均距离。在实验中,按照文献[11]中的配置,其中β=0.3且k=3。对于密集场景ShanghaiTech 数据集的PartA,UCF_CC_50 和UCF_QNRF 使用自适应高斯核生成密度图;对于稀疏场景ShanghaiTech 数据集的PartB 和World_Expo’10使用固定高斯核生成密度图。
2.1.2 训练方法
使用与CSRNet 相同的方法端到端地训练MAFNet。其中,VGG-16 网络的前10 个卷积层导入了预训练模型参数,目的是提高训练速度;后面的7 层扩张卷积层的初始值设置为标准偏差0.01 的高斯初始值。训练期间,应用随机梯度下降(Stochastic Gradient Descent,SGD)优化器来训练MAFNet,学习率设为固定1E -7,且动量设为0.95。所有的实验均在Ubuntu16.04 系统下,使用Python 3.7 在Pytorch 框架下编码,在一块RTX 2080Ti GPU上训练。
2.2 实验评估
2.2.1 评估准则
与大多数基于卷积神经网络的密集人群计数方法相同,使用平均绝对误差(Mean Absolute Error,MAE)和均方误差(Mean Square Error,MSE)作为评估准则。MAE 反映了模型的准确性,而MSE反映了模型的稳健性,这些指标定义如下:
其中:N是测试集图像数量;Ci和分别是人群计数场景的预测密度图和真实密度图。
2.2.2 数据集
在四个公开数据集 ShanghaiTech、UCF_CC_50、UCF_QNRF和World-Expo’10上进行实验,并与现有方法进行了对比,结果如表2 所示。选择对比的方法主要可以分为两类:一类为多列多尺度结构方法,一类为注意力机制方法。其中多列卷积神经网络(MCNN)、选择卷积神经网络(Switch-CNN)、上下文金字塔神经网络(CP-CNN)、多尺度多列卷积神经网络(MsMCNN)以及尺度聚合网络SANet(Scale Aggregation Network for accurate and efficient crowd counting)均是多列多尺度结构的方法;像素级注意力网络(PAM)、关系注意 力 网 络RANet(Relational Attention Network for crowd counting)以及分级尺度校准网络HSRNet(crowd counting via Hierarchical Scale Recalibration Network)是注意力机制的方法;扩张卷积神经网络(CSRNet)则是单列结构网络,本文在此基础上改进。
1)ShanghaiTech。本数据集有1 198 张带标注的图像,包含330 165 个人。其中482 张较密集场景被划分为PartA,716张较稀疏场景被划分为PartB。PartA包括482张图像,图像场景中人数变化范围从33 到3 139,其中,300 张图像构成训练集,182 张图像构成测试集;PartB 有716 张图片,人数变化范围从12 到578,其中,400 张图像构成训练集,316 张构成测试集。
2)UCF_CC_50。本数据集仅包含50 张人数从94 到4 543不等的图像,这使其成为了人群计数任务中最有挑战性的数据集。使用与文献[13]中相同的5 倍交叉验证方法:将图像划分为5 等份图像子集,每次选择4 组作为训练集,剩余1 组为测试集进行训练,最后给出5组结果的平均值。
3)UCF_QNRF。本数据集有1 535 张图像,包含1 151 642个人,该数据集具有多种多样的场景,人群密度从49到12 865不等,这使训练和预测都变得更加困难;而且,图像分辨率变化也非常大,导致人头尺寸急剧变化。其中训练集由1 201张图像组成,其余为测试集。
4)World-Expo’10。它包含从108个不同监控设备中收集的3 980张已标注视频序列图像。其中,3 380张作为训练集,剩余600张划分为5个场景作为测试集,每个图像均包含一个感兴趣区域(Region Of Interest,ROI)。在本数据集上,本文方法实验结果展示了每个场景(Sce1~Sce5)的MAE 以及所有场景的平均值。
2.2.3 结果分析
如表2 所示,对于ShanghaiTech 数据集,本文方法与其他方法相比,在PartA 中实现了较低的MAE 和MSE。MAFNet 是基于CSRNet 做出的改进,因此与CSRNet 相比,在PartA 中的MAE 和MSE 分别下降9.4%和9.9%;但比两种注意力机制方法RANet 和HSRNet稍差,RANet 方法使用了先进的自注意力机制,达到了所有方法中最低的MAE。此外,本文在PartB 的实验结果达到了所有方法中最低的MAE 和MSE,人群计数准确 率 最 高,与CSRNet 相 比MAE 下 降34.9%,MSE 下 降29.4%。在UCF_CC_50 数据集上,本文方法与CSRNet 相比,MAE 下降26.1%,MSE 下降26.2%,与最好的RANet 相比,MAE 下降18.0%,MSE 下降8.2%。在最大的数据集也是头部大小变化最大的数据集UCF-QNRF 上,本文方法也取得了最低计数误差,与现有最好方法RANet 相比,MAE 和MSE 分别下降4.5%和5.3%。与使用了相同注意力模块的方法HSRNet相比,在World-Expo’10数据集中,本文方法获得了更低的MAE。上述数据表明了本文方法MAFNet 无论是在拥挤的人群场景数据集中还是在稀疏的人群场景数据集均能达到较高的人群计数准确率。从实验结果中也可以发现,所有多列多尺度方法实验结果均比注意力方法和单列结构差,说明多列结构提取到的特征信息相似度较高,单纯多列结构无法整合多尺度特征,对实验性能提升不大。本文则采用从单列结构中提取多尺度特征的策略,并引入注意力机制整合多尺度特征,这样既减少了多列结构带来的计算量,也避免了多尺度特征融合的混乱,所以优于多数方法。
表2 不同方法在公开数据集上的MAE与MSE结果比较Tab.2 Comparison on MAE and MSE of different methods on public datasets
此外,如图3 所示,本文方法MAFNet 也可以产生更加精细的预测密度图。在图中展示的四个场景中,有两个非常密集的场景和两个相对稀疏的场景,本文方法均能生成与真实密度图几乎相同的密度图,估计出更加接近真实人数的数字。这表明,本文方法在抑制背景干扰和保持细节方面的性能优越。
图3 本文方法针对不同场景图生成的预测密度图和真实密度图对比Fig.3 Comparison results of estimated density map generated by the proposed method and ground truth density map for different scene images
如图4所示,图(a)是从ShanghaiTech的PartA提取的一张原始图像,图(b)是对应的真实密度图,图(c)是MAFNet 生成的预测密度图,(d)是CSRNet 生成的预测密度图。针对标注框内区域,本文方法预测密度图(c)的细节更加精细,背景和前景区分的轮廓更加明显,而CSRNet 网络的预测密度图(d)则相对模糊。
图4 MAFNet与CSRNet的密度图细节对比Fig.4 Comparison of density map details of MAFNet and CSRNet
如图5 所示,图(a)展示了三种具有复杂背景的场景,图像1 的背景有路灯、大量气球以及遮阳伞;图像2 的背景中有一块亮斑,而且是夜景照片;图像3 的背景包含茶杯、大量树叶、汽车以及遮阳伞等。图(b)是使用本文方法生成的预测密度图,可以看出:图像1 中所有的气球、路灯和遮阳伞所在位置均被预测为背景;图像2 中右上角的亮斑在密度图中也被预测为背景;图像3 中上部存在大量树叶,树叶在密集场景下是人群计数任务中最大的干扰背景,但在密度图中也未被误识别。
图5 MAFNet在复杂背景场景下的预测密度图Fig.5 Estimated density maps of MAFNet in complex background scenes
3 消融实验
最后,分别从网络结构和超参数两个方面做消融实验,验证多尺度特征融合结构、注意力模块和联合损失函数的有效性。消融实验是深度学习方法验证网络模型各子结构对精度提升有效性的最好方式。首先,在ShanghaiTech 数据集上,针对多尺度特征融合结构和注意力模块进行消融实验。由于本文方法是在CSRNet基础之上的改进,因此本文的消融实验在CSRNet 上依次添加多尺度特征融合结构(Multi-scale Future fusion structure,MF)和注意力模块(CBAM)。最后,CSRNet+MF+CBAM就是本文的网络MAFNet,实验结果如表3所示。
如表3所示,CSRNet增加多尺度融合结构可以使PartA数据集的MAE 下降2.9%,MSE 下降6.3%,使PartB 数据集的MAE 下降31.3%,MSE 下降25.6%,而且多尺度融合结构对PartB 数据集的性能改善更大;CSRNet 增加注意力模块使PartA 数据集的MAE 下降2.3%,MSE 下降10.5%,使PartB 数据集的MAE 下降26.4%,MSE 下降18.7%;当CSRNet 增加多尺度特征融合结构和注意力模块时性能提升明显,使PartA的MAE 下 降7.0%,MSE 下 降11.4%,使PartB 的MAE 下 降32.1%,MSE 下降28.1%。由此可见,多尺度特征融合结构与注意力模块结合可以使模型达到最低计数误差。
表3 在ShanghaiTech数据集上的网络结构消融实验Tab.3 Ablation experiment of network structure on ShanghaiTech dataset
在1.4 节提出了联合损失函数,针对不同数据集使用了不同的λ值来加权L1和L2。在ShanghaiTech 数据集上就λ值开展消融实验,结果如表4所示。
由表4 中PartA 数据显示,在λ=0.2 时,MAE 下降到最低,相对于CSRNet 下降9.4%,MSE 下降9.9%;在λ=0 时,MAE 下降7.0%,而MSE 达到最低,下降11.4%;λ=0.2 的MAE 相较λ=0 下降2.5%,λ=0 的MSE 相较λ=0.2 下降1.6%。因此本文选择λ=0.2的作为最佳结果。PartB 数据显示,在λ=0.5时,可以达到最低的MAE和MSE,相较于CSRNet分别下降34.9%、29.4%。以上结果表明,联合使用加权后的L1和L2作为损失函数可以有效提升人群计数的准确率。而且实验结果表明,针对不同的数据集应该设置不同的λ值,表5中显示了实验中不同数据集设置为如下λ值时,本文方法在各数据集上可以达到最高人群计数准确率。
表4 在ShanghaiTech数据集上的λ值消融实验Tab.4 Ablation experiment of λ on ShanghaiTech dataset
表5 各数据集设置的λ值Tab.5 Values of λ for different datasets
4 结语
本文提出了一种多尺度空间注意力特征融合网络(MAFNet)模型,该模型基于CSRNet 增加了多尺度特征融合结构,并引入了通道空间注意力机制。其中,VGG-16 网络结构、扩张卷积、多尺度结构和注意力机制四个组成部分扩大了尺度感知的多样性和特征的接受范围,增强了模型抑制背景和保留细节信息的能力,可以解决各种复杂场景下的人群计数问题,在计算图像中人数的方法中表现良好。此外,本文提出联合使用两种基本损失函数的方法来训练模型,提高了模型的泛化能力。本文方法在四个公开数据集上相比其他方法达到了较高的人群计数准确率。尽管如此,本文方法在ShanghaiTech 数据集的PartA 上仍然表现不佳,对比RANet 之后认为原因在于在密集场景下MAFNet 对场景内全局元素和局部元素相关性整合度不够。接下来的工作将考虑使用更深的网络来做进一步的研究。