APP下载

基于多重注意力引导的人群计数算法*

2022-08-23杨倩倩彭思凡殷保群

网络安全与数据管理 2022年7期
关键词:计数卷积密度

杨倩倩,何 晴,彭思凡,殷保群

(中国科学技术大学 信息科学技术学院,安徽 合肥 230026)

0 引言

由于人群所在的位置和行动轨迹具有主观性强、自由度高的特点,监控视频采集的图像包含大量杂乱分布的人群,不同局部区域的人群密度差异巨大,增大了人群计数算法的估计难度。如图1所示,在同一人群场景中,多个局部区域表现为人口极度聚集,而部分区域人口稀疏甚至是孤立的个体,难以预测的行人位置将导致密度图中不同位置的密度值之间存在巨大差异,对算法感知不同密度分布模式的能力提出了更高的要求。为解决上述问题,本文提出基于多重注意力引导的人群计数算法,将特征金字塔机制和注意力机制相结合,促进语义信息和空间细节的融合,并通过注意力图引导模型生成对应不同分布状态的密度图。

图1 人群非均匀分布图像示例

1 概述

为解决计数问题中的非均匀分布问题,研究者主要设计了基于分类或检测等辅助任务和注意力机制的计数方法,让模型提取到各种分布模式下的全局和局部语义信息来识别分布在不同密集程度下的行人。CP-CNN[1]在多列密度估计框架的基础上搭建了两个额外的人群密度分类网络,分别学习将输入图像或局部图像块按照密度差异分类为5个类别,以此来学习全局和局部区域的上下文信息,并将提取的上下文语义信息融合到密度图估计任务中,从而生成高质量的人群密度图。然而,该算法对全局或局部区域人数分类只能提取到粗糙的语义特征,复杂场景下需要细粒度的密度语义信息。Liu等人[2]认为在不知道每个行人具体位置的情况下,计数模型在低密度区域容易产生过估计现象。为了解决此问题,作者提出的Decidenet将检测和回归方法结合来处理不同密度区域的人群,能够自适应地根据实际密度情况决定合适的计数方法,在低密度区域采用检测方法估计人数,在拥挤区域则采用回归方法捕捉人群信息。然而,采用的Faster-RCNN[3]等检测网络往往十分复杂,难以将其和密度图回归网络以端到端的方式训练,且训练过程繁琐。Jiang等人[4]指出在不同的密度模式的图像区域中,数据驱动的计数算法容易出现过估计或欠估计。作者提出了一种基于注意力机制的人群计数算法,该网络包括密度注意力网络和注意力尺度网络,后者给前者提供与不同密度区域相关的注意力信息,并采用尺度因子帮助缩小不同区域的估计误差。然而,该模型由2个VGG-16[5]组成,网络参数量过大并且结构较为复杂,同时需要对子网络分别训练,这些弊端导致该模型训练困难且不利于计数性能的提升。

针对以上问题,本文提出一种基于多重注意力引导的人群密度估计算法(Multi-Attention Convolutional Network for Crowd Counting,MACN)来完成密度图回归任务,采用多重注意力机制指导网络提取多种分布模式下的人群特征,改善不同密集程度下的密度图质量,从而提升人群计数算法的整体性能,主要包括特征提取模块(Feature Extraction Module,FEM)、特征融合模块(Feature Fusion Module,FFM)、上下文注意力模块(Context Attention Module,CAM)和密度图生成模块(Density Map Generation Module,DGM)。

2 密度估计网络结构设计

针对复杂场景中存在的人群非均匀分布问题,设计了一个端到端的计数网络来实现密度图估计,采用注意力机制获取像素级别的语义信息来指导密度图回归任务,感知不同分布模式下的行人,具体结构如图2所示。

图2 MACN结构

2.1 特征提取模块

VGG-16具有强大的特征提取能力和优秀的迁移学习能力,采用小卷积核代替大卷积核,能够在保证特征表达能力的同时不消耗过多计算资源,所以采用VGG-16的前13个卷积层作为特征提取模块,根据池化层位置进一步分5个子模块,其具体配置如表1所示。

表1 FEM网络结构

2.2 特征融合模块

Lin等人[6]在目标检测系统Faster R-CNN中引入了特征金字塔结构(Feature Pyramid Network,FPN),它是一种包含自下而上路径、横向连接和自上而下路径的特征融合机制,能够充分融合来自网络中间不同层次的特征。Zhang等人[7]提出一种轻量化金字塔切分注意力模块(Pyramid Split Attention,PSA),将其嵌入到ResNet[8]中来提取更细粒度的空间信息并建立通道之间的长距离依赖,有效提升了分类网络的性能。受到上述工作启发,本文将金字塔切分注意力模块引入特征金字塔机制,搭建了自上而下的特征融合路径。

PSA的网络结构如图3所示,共包含四个主要步骤。假设输入特征X的尺寸为C×H×W,首先在通道维度上将输入向量均分为S组,采用分组卷积的方法让S个不同尺寸的卷积核并行处理每组向量,并采用级联的方式对结果进行融合得到F。然后采用通道注意力模块为每组特征学习注意力权重向量,权重的计算方式将在后面详细介绍。第三步是采用Softmax函数注意力向量进行调整得到Z′,从而自适应地选择不同的空间尺寸。最后,将调整后的注意力向量Z′和F做逐像素乘积得到输出特征。

图3 PSA结构

其中f(·)表示PSA模块的映射关系,conv(·)表示1×1卷积运算,up(·)表示双线性插值函数。

2.3 上下文注意力模块

注意力机制是一种让模型关注重点目标区域的信息筛选机制,能够帮助网络提取到与人群目标更相关的有利信息。上下文注意力模块首先提取全局和局部上下文信息并进行融合,基于该融合语义信息生成能感知不同密度分布模式的注意力图,给不同密度级别的密度图分配对应的权重,让模型关注到不同分布状态的行人,从而克服图像中人群杂乱分布导致的密度差异,其具体结构如图4所示。

图4 CAM结构

Dai等人[9]指出只利用全局上下文信息将使得模型更关注于分布于全局的目标,并弱化小尺寸目标的图像信号,局部上下文信息的使用将有助于模型关注更多的空间细节信息,从而生成更高质量的特征图。所以CAM模块分别设计了全局和局部上下文提取模块,并对提取的多尺寸上下文语义进行融合。考虑到平均池化和最大池化具有不同的特性,平均池化对特征图上的每个像素点都产生反馈信号,而最大池化更加关注于区域内相应最大的位置,所以采用全局平均池化(Global Average Pooling,GAP)和最大池化(Global Max Pooling,GMP)两种池化机制来提取全局上下文信息。输入特征首先分别经过GAP和GMP来聚合全局空间信息,然后采用两个1×1卷积捕获各通道间全局信息的依赖关系。同时设计了局部上下文信息提取模块,不采用全局池化操作,通过小尺寸的卷积操作建立局部连接来捕捉局部上下文特征。最后对提取的上下文信息进行融合得到多尺寸上下文语义特征,并经过两个1×1卷积进一步增大特征的感受野并调整通道数量,生成最终的注意力权重。

2.4 密度图生成模块

SE Block[10]能够对输入特征通道之间的相关性进行建模,通过网络学习的方式自动获得每个特征通道的重要程度。本节采用SE Block来对特征融合模块得到的多级语义融合特征进行通道维度的权重调整,其具体结构如图5所示。

图5 SE Block结构

SE Block首先通过全局平均池化聚合空间信息,为每个通道分别生成一个全局描述符。假设输入特征f的尺寸为C×W×H,于是第c个通道的描述符的计算过程如式(2)所示:

其中fc表示第c个通道的输入特征。然后将全部描述符输入到两个全连接层进行非线性变换,并采用Sigmoid激活函数实现特征的重新标定,于是得到所有通道的注意力权重:

其中W1和W2分别表示两全连接层的权重,z表示C个通道描述符组成的整体描述符。于是调整后的特征如式(4)所示:

通道注意力模块对多级语义融合特征进行了通道权重的调整,加强了对密度估计更重要的通道,生成了更具辨别力的特征。为了提取更深层的语义信息,首先采用1×1卷积层将通道维数降为512通道,再采用2个3×3卷积层进一步扩大特征的感受野,最后采用1×1卷积层生成3个对应不同密度级别的密度图。最后,将CAM生成的感知不同密度模式的注意力图和DGM生成的不同区域的密度图进行逐像素相乘,相加融合生成最终的高质量密度图,具体计算过程如式(5)所示:

其中,Ai和Di分别表示CAM和DGM生成的第i个通道的特征,⊙表示逐像素相乘。

2.5 损失函数

本文采用欧式距离衡量估计密度图和真值密度图之间的差距,定义如式(6)所示:

其中,θ是MACN中待优化网络参数的集合,N是训练样本数量,Xi表示第i张输入图像,Fi和F(Xi;θ)分别表示真值密度图和估计密度图。此外,采用交叉熵损失监督CAM模块生成的注意力图,计算方式如式(7)所示:

其中,yj和Aj(Xi;θ)分别表示第j个密度等级注意力权重的真值标签和估计值。yj的获得方式将在3.1节详细介绍。因此,总体损失函数如式(8)所示:

其中α表示超参数,在实验中被设置为1。

3 算法实现

3.1 地面真值生成

假设xi位置存在一个人头标记,可将其表示为一个单位冲击函数δ(x-xi),可将包含M个人头标记的输入图像表示为:

然后采用归一化的高斯核对每个人头标记做平滑处理,即将H(x)与高斯核做卷积来生成真值密度图,计算方式如式(10)所示:

其中μ和σ分别表示高斯核的均值和方差,Gμ,σ(x)表示归一化的二维高斯核。本文采用15×15的固定尺寸高斯核生成真值密度图。

此外,为了监督CAM模块生成的注意力图,本文依据上述生成的真值密度图得到注意力真值标签,计算过程如式(11)所示:

其中yi(x)表示第i个密度级别的注意力标签,avg表示整张真值密度图所有像素的平均值,β是超参数,被设置为0.2。

3.2 数据增强处理

本节采用多种方法对数据进行增强,防止训练过程出现过拟合现象。首先,从原始图片中裁剪出9张1/4原图尺寸的图像块,并将每个图像块随机裁剪到256×256的固定尺寸。然后,以0.5的概率对所有图像块做水平翻转,以0.3的概率在[0.5,1.5]范围内对图像块做伽马变换,以0.1的概率将彩色图片转换成灰度图像,以0.25的概率将彩色图像的RGB通道切换。最后,以0.25的概率像图像加入均值为0、标准差为5的高斯噪声。

3.3 训练过程

本文以端到端的方式训练MACN。特征提取模块采用在ImagNet上预训练的VGG-16的参数进行初始化,剩余其他所有卷积层的权重都采用均值为0,标准差为0.01的高斯分布初始化。采用Adam优化器来优化模型参数,初始学习率和衰减率分别被设置为1×10-5和0.995,批尺寸设置为8。跟随Gao等人[11]的做法,训练时将密度图乘以一个较大的放大倍数(100)来实现更快的收敛速度和更准确的结果,更好地平衡损失权重。本文所有工作皆是基于PyTorch深度学习框架,采用11 GB显存的Nvidia-2080Ti GPU显卡实现训练和测试的加速。

4 实验分析

参考其他优秀人群计数方法[12-13],本文采用平均绝对误差(Mean Absolute Error,MAE)和均方误差(Mean Squared Error,MSE)来评估算法性能,计算公式如式(12)、式(13)所示:

其中,N代表测试图片数目,zi与z^i分别代表真值与算法的预测值。

4.1 ShanghaiTech数据集实验

ShanghaiTech数据集[13]共包括1 198张人群图片,根据密度差异被分为Part_A和Part_B两个部分。Part_A由互联网上获取的482张人群图片组成,人群分布较为密集,训练集和测试集分别包含300张和182张图片;Part_B中的716张图片均拍摄于上海街头,人群分布较为稀疏,训练集和测试集分别包含400和316张图片。

表2给出了在本数据集上MACN算法与其他代表性算法的实验结果。由分析可知,MACN在两个子数据集上同时实现了最好的MAE和MSE指标,相比于第二名分别将MAE指标优化了4.6%和9.2%,在人群密集的Part_A和人群较为稀疏的Part_B上都能实现较明显的性能提升,说明MACN算法对人群密度变化具有较好适应性。图6展示了测试集的部分估计密度图和真实密度图的可视化样例,第一行、第二行表示Part_A上的估计结果,第三、四行表示Part_B上的估计结果;从左到右每一列分别表示人群图片、真值密度图和估计密度图。

表2 ShanghaiTech数据集结果

图6 ShanghaiTech上MACN算法生成密度图可视化样例

4.2 UCF_QNRF数据集实验

Ideers等人[20]提出了UCF_QNRF数据集,图片主要来源于朝圣素材和网页搜索,共包含1 535张图片,比ShanghaiTech数据集具有更大的规模,且图像中人群总数浮动较大,人群场景更为复杂。

表3列出了MACN算法与其他优秀算法在UCFQNRF上的实验结果。和MAE排名第二的PaDNet相比,MACN将MAE指标在数值上减小了2.7%,这表明该算法在极度密集的场景中仍能对人群数量进行准确估计。图7展示了测试集的部分估计密度图和真实密度图的可视化样例,可以看到MACN算法能够有效应对图像中存在的人群非均匀分布问题,生成接近真实人群分布的估计结果。

表3 UCF_QNRF数据集结果

4.3 JHU-CROWD++数据集实验

Sindagi等人[27]提出的JHU-CROWD++数据集是一个新型的大规模无约束数据集,由不同场景与环境下的4 372张人群图像组成,由训练集(2 272张)、验证集(500张)、测试集(1 600张)三个部分组成,人头标注数量高达151万。为了进一步研究人群计数算法在各种密度情况下的性能,测试集与验证集的人群图像被细分为高密度、中密度和低密度三个类别。同时考虑到恶劣天气的影响,此数据集还包含单独由复杂天气人群图像组成的子集。下面将在总体、低密度、中密度、高密度以及天气环境这5种情况下分析人群计数算法的准确率和鲁棒性,如表4所示。

表4 JHU-CROWD++数据集结果

对比MACN算法和其他先进算法在JHU-CROWD++测试集上的性能。在整体性能上,MACN算法的MAE指标比第二名优化了6.8%;在低密度、中密度、高密度、恶劣天气等子类上MACN分别将MAE指标比第二名在数值上优化了0.2、1.9、16.6和7.9。JHU-CROWD++测试集的部分估计密度图和真实密度图的可视化样例如图8所示。分析表明,MACN算法在总体与所有子类上都实现了最准确的计数结果并能够保持较高的鲁棒性,验证了MACN算法的泛化性和准确性。

图8 JHU-CROWD++上MACN算法生成密度图可视化样例

4.4 消融实验

为验证各子模块的有效性,本小节在Shanghai-Tech Part_A上对不同结构进行实验。表5展示了五种不同结构的实验结果,其中W/O FFM+CAM+SE表示将FFM模块、CAM模块和DGM中的SE Block移除;W/O FFM表示移除FFM模块;W/O CAM表示移除CAM模块;W/O SE表示移除SE Block;MACN表示完整结构。由实验结果可知,同时采用FFM、CAM、SE Block能够获得最优的MAE和MSE指标,大幅提升模型性能。

表5 参数选择实验

5 结论

本文提出了一种基于多重注意力引导的密度估计网络MACN,来解决人群计数任务中的人群杂分布问题。首先,该算法基于轻量化的切分注意力模块,构建了一条自上而下的特征融合路径以促进不同语义级别特征之间的流动,旨在增强特征的表达能力。然后,建立上下文注意力模块来提取并融合多尺度上下文信息,以生成对应不同密度级别的注意力图,从而引导密度估计网络识别不同分布模式下的行人目标。最后,凭借大量实验结果充分说明MACN有助于提升各种场景下的计数性能。

猜你喜欢

计数卷积密度
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
古代的计数方法
古代的人们是如何计数的?
“密度”练习
密度的应用趣谈
密度的不变性与可变性