基于残差密集连接与注意力融合的人群计数算法
2022-06-16沈宁静
沈宁静,袁 健
(上海理工大学 光电信息与计算机工程学院,上海 200093)
人群计数任务的目的是计算视频监控和照片内人数。在交通管理、防灾和公共管理中,对单幅图像中的人数进行统计具有重要的实际意义。健壮的人群计数系统(Robust Crowd Counting System)被应用在许多公共应用中,例如视频调查、安全报警、事件计划等。因此,估算人群密度分布并分析人群行为对于改善公共管理、保障安全至关重要。目前,人群计数任务面临以下挑战:遮挡、密度分布不均、透视失真以及人与背景元素之间高度相似等。
部分早期人群计数方法采用检测方式,例如文献[1~2]将人体的全部或部分作为计数条件进行目标统计。这种检测方法在简单的场景中表现良好,但在拥挤的场景中效果较差。在此基础上,研究人员用回归函数计算图像中的人数。该方法将人群作为一个整体,学习从图像特征到人数的映射,例如文献[3~4]中的像素特征法和文献[5]中的纹理特征分析法。前者的效果主要取决于提取的前景特征的质量,若前景特征提取不佳,则统计效果较差。因此,这种方法在密集场景中的精度不高。基于纹理特征的人数统计方法可以有效地缓解密集场景中计数效果不佳的问题,但不适合稀疏场景。总之,传统的计数方法应用效果不理想。
近年来,卷积神经网络在计算机视觉分类和图像识别领域取得了成功。因此,基于卷积神经网络的方法被广泛应用于解决单个图像的人群计数问题。这些方法分为两类:多列结构和单列结构。多列结构[6-9]通常使用具有不同感受域的滤波器形成一个并列模型来学习不同尺度的头部,例如在文献[6]和文献[7]中,为每一列设计了不同感受域的滤波器。在人群密度图中,大的感受域滤波器用于近距离头部建模,小的感受域滤波器用于远距离头部建模。最后,将每一列特征图合并生成密度图。文献[9]在文献[7]的基础上设计了密度分类网络结构,将密度分类器引入网络前端,得到每个输入图像块的类别标签,然后传输到网络后端生成人群密度图。在此基础上,一些研究者设计了单列结构[10-13],以避免多列网络带来的计算量大、模型训练困难等问题。这种结构通常使用深度网络系统来学习图像的深层特征,例如文献[11]提出了一种基于跨层特征组合的人群估计算法,利用像素级语义信息集成局部特征,有效学习多尺度头部。文献[12]设计了一种单列扩张卷积结构,在处理多尺度问题时引入了扩张卷积。该方法在不改变卷积核大小的情况下,实现了与大尺寸卷积核相同的感受域,有效减少了参数数量,提高了计数精度。虽然多列或深度网络结构在处理尺度变化时取得了良好的效果,但在捕获尺度多样性时受限于固定的列数,无法有效地利用低层特征。此外,该方法也没有考虑背景噪声对最终人数统计的影响。
因此,针对上述问题,本文提出了一种基于残差密集连接与注意力融合的人群计数算法(Crowd Counting Algorithm Based on Residual Dense Connection and Attention Fusion,RDCAF)。其创新点为:(1)设计了一种残差密集连接结构。利用残差网络和密集网络相结合的方式对不同深度的特征图进行融合,增强了不同深度特征之间的信息流动和深层网络的小尺度细节信息;(2)加入了一种注意力机制结构。经验证,该结构能够自动地将更多的注意力分配给图像中人群所在的区域,提高了最终密度图的质量;(3)提出了RDCAF算法。该算法前端采用改进VGG16网络提取图像底层特征信息,后端主分支采用残差密集连接结构学习多尺度特征,侧分支采用注意力机制结构重构多尺度特征,最后使用1×1卷积和最近邻插值生成人群密度图,根据密度图回归求和得到总人数。本文在3个主流公开的数据集上对该算法进行了验证,结果表明了该算法的有效性,并证明其优于原有算法。
1 RDCAF算法
由于拍摄视角的差异,行人信息以不同的形式分布在相同或不同分辨率的图像中。靠近像机的人更清晰,头部有更多的特征信息。距离较远的人结构不完整,头部较小,占据的特征信息较少。为了解决这一问题,文献[7]和文献[12]分别从多列结构和空洞卷积方式获取了不同尺度的头部特征。虽然采用上述方法可取得一定的效果,但在获取多尺度头部上下文信息时,没有充分利用浅层图像特征,忽略了浅层网络中丰富的细节信息,也没有考虑背景噪声因素对人数的影响。基于此,本文提出一种基于残差密集连接与注意力融合的人群计数算法。该算法以任意大小的图像为输入,利用改进的VGG16网络提取原始图像的浅层纹理信息。然后,通过残差密集连接结构捕获不同尺度的人头信息,并结合注意力机制结构,重建行人特征图。随后,采用1×1卷积和最近邻插值生成与原始图像大小相同的密度图。最终对密度图进行像素积分求和得到总人数。本文所设计的算法结构如图1所示,主要包括前端的基本特征提取结构、后端主分支的残差密集连接结构以及后端侧分支的注意力机制结构。
图1 RDCAF算法结构Figure 1. RDCAF algorithm structure
1.1 基本特征提取结构
VGGNet[14]具有结构简单、操作方便、迁移能力强的优点。在网络结构中,通过设置多个连续的3×3卷积核来级联卷积图像,达到与大尺寸卷积核相同的效果。在相同感受域的情况下,3×3小尺寸卷积核的参数更少,捕获到的特征信息表现出更多的非线性,结果准确率更高。因此,在特征提取结构中去除全连接层后的VGGNet16前13层,以获取原始图像的低级纹理信息,得到1/16原图大小的密度图来作为后续结构的输入。
1.2 残差密集连接结构
在神经网络结构中,不同层次的网络具有不同的感受域和语义水平。随着网络层数的加深,网络的感受范围将逐渐由浅入深。其中,深层网络更倾向于捕捉大尺度的行人,而浅层网络则更适合提取小目标头部。在处理图像的尺度问题时,网络的深化导致特征图中保留了更多的语义信息,丢失了小尺度特征。因此,感知小目标头部的能力降低。文献[15]的密集连接思想将学习到的每一层特征传递给后续的网络层,使得所有的特征图都堆叠在输出层,不需要额外计算就可以快速利用不同层的特征信息,提高了特征图的利用率。
本文在文献[15]的基础上,将密集连接技术引入网络,形成残差密集连接结构,如图2所示。该结构的目的是挖掘隐藏在浅层网络中的小尺寸头部的语义信息,并在获取多尺度特征时增强高层网络中的多尺度信息。
图2 残差密集连接图Figure 2. Residual density connection diagram
残差密集连接结构包括两部分:密集网络和残差网络。密集网络包括5个卷积层,每个卷积层使用一个参数化线性修正单元(Parametric Rectified Linear Unit,PReLU)作为激活函数。在密集网络的前两层中,使用常规卷积获取大规模特征信息。最后3层则利用扩展范围加倍的扩张卷积,进一步提取不同尺度的头部特征。为了更好地融合浅层信息,采用1×1的卷积对输出特征图进行降维。密集网络重用不同深度的特征,在不扩展网络深度的前提下加强了各层特征信息的移动,提高了深层网络中以小目标人群为代表的细节信息的表达。残差网络以浅层特征图为输入,融合密集网络的深层特征,使多尺度上下文信息更加丰富。
1.3 注意力机制结构
在计算机视觉领域,空间注意力可有效捕获通道的局部细节信息,可像人一样有选择地关注图像信息的突出部分,并取得良好的效果[16-19]。通道注意力[20]可以对通道间的特征建模,关注关键特征。在人群图像的卷积过程中,网络会同时捕获背景和目标,导致计数误差。因此,为了减少多尺度特征图中背景噪声的影响,需在后端侧分支引入空间和通道注意力,形成注意力机制结构,从而使生成的密度图更加关注人群目标区域的局部细节,提高密度图的质量。
图3 注意力机制结构图Figure 3. Structure diagram of attention mechanism
如图3所示,注意力机制结构由空间注意力(Spatial Attention,SA)和通道注意力(Channel Attention,CA)组成。SA的第1层采用1×1的普通卷积来减少特征图中的通道数,从而降低了计算复杂度。为了进一步扩大卷积核的尺度获取范围,提高网络学习每个通道空间像素权重的能力,第2层和第3层构成膨胀率为2的膨胀卷积块。最后一层采用1×1卷积和Sigmoid函数得到SA的中间特征图。CA包括一个自适应全局平均池化层(Global Average Pooling,GAP)和两个全连接层(Fully Connected Layer,FC)。首先,特征图通过GAP建模各通道的强空间细节;接着利用两个FC对特征图进行降维和增维;最后使用Sigmoid函数重新映射动态范围内的空间像素权重,从而在基于像素的特征图中区分目标像素和背景像素。在结构的末端得到像素化的注意力图,该图将更多权重分配给人群的位置,从而减少背景噪声的干扰,提高了密度图的质量。
1.4 密度图的制作
人群计数模型运用手工标注方式标注图像内的人头,最终得到训练网络的人群密度图。假设人头标注点位于像素xi处,用δ函数δ(x-xi)表示,则一张含有N个人头的图像可表示为
(1)
为了得到密度图,使用高斯核Gδ卷积式(1)得到连续密度函数。
H(x)=f(x)*Gδ(x)
(2)
在实际场景中,人群在图像中的分布是不均匀的。针对以上问题,使用文献[7]提出的几何自适应高斯核生成密度图。此时,密度函数表示为
(3)
式中,N是标注的总人头数;由文献[7]实验数据可知β=0.3时最有效。
1.5 RDCAF算法步骤
RDCAF算法步骤如下:
输入:人群图像。
输出:人群预测密度图。
步骤1将人群图像送入基本特征提取结构提取浅层特征;
步骤2利用残差密集连接结构对浅层特征进行层间信息传递,得到多尺度特征图。计算式为
NO=NL+C1×1[concat(No1+No2+No3+No4)]
(4)
式中,NO和NL分别表示多尺度特征图和浅层特征图,Noj(j=1,2,3,4)是4层的输出特征映射;concat表示通道拼接;C1×1表示卷积以减少特征维数。注意力机制结构对浅层特征进行空间和通道变化,得到注意力特征图。式(5)和式(6)分别用于计算SA和CA,注意力图的计算如式(7)所示。
(5)
Nc=FC(ReLU(FC(GAP(C5(Ns)))))
(6)
式中,Nc表示中间特征图;FC表示全连接层;ReLU表示非线性激活函数;C5表示卷积层。
N=σ(Nc)
(7)
式中,N表示注意力特征图;Nc表示由式(6)得到的中间特征图;σ表示Sigmoid非线性激活函数;
步骤3利用注意力特征图N重构多尺度特征映射NO,得到重构后的人群特征图MO,计算式为
MO=Z(N,NO)=N×NO
(8)
式中,Z为乘法函数,它将多尺度特征图进行特征重选定,生成高质量的密度图;
步骤4采用1×1卷积和最近邻插值得到最终的人群密度图,并对密度图积分求和得到总人数,计算式如式(9)所示。
(9)
2 实验与分析
为了验证RDCAF算法的性能,本文在ShanghaiTe-ch[7]、Mall[21]、UCF-QNRF[23]三大主流公开的数据集上进行了训练和测试。实验采用Ubuntu18.04操作系统和Pytorch框架,配置显卡是包含11 GB显存的GPU RTX 2080Ti。在初始化网络训练权值方面,采用预先训练好的VGGNet权值初始化特征提取结构的网络参数,其余层采用0.01标准差的高斯分布进行初始化。初始网络训练学习率和批处理设置为1×10-5和1,总训练周期为2 000轮。
2.1 RDCAF算法优化
该算法利用带标签的数据对网络进行训练。在训练过程中,采用自适应学习率的Adam作为优化器算法对网络参数进行优化。本文以人群计数研究公认的欧几里得损失函数作为目标函数,预测真实密度图与预测密度图的差异。损失函数定义为
(10)
式中,Θ表示网络学习的参数;N是训练样本总数;Xi是第i张图像;Di(Xi;Θ)和Ti分别是图像i预测生成的密度图和真实密度图。
2.2 评价指标
采用平均绝对误差(Mean Absolute Error,MAE)和均方根误差(Root Mean Square Error,RMSE)评价算法的性能。定义为
(11)
(12)
式中,Ei和i分别为第i个测试样本和真实样本的预测数和真实数。
2.3 实验结果与分析
2.3.1 ShanghaiTech数据集
ShanghaiTech[7]数据集是一个大规模的人群数据集,包含PartA和PartB两个子集。PartA密度大,分布稠密。PartB密度中等,分布变化较大。整个数据集由1 198张图像和330 165个头部组成。实验选取PartA的300张和PartB的400张作为训练集,其余为测试集。在ShanghaiTech数据集上,将RDCAF算法与几种先进的人群计数算法进行了比较,结果如表1所示。
图4显示了该算法在拥挤场景PartA和中等密度场景PartB中生成的密度图和真实密度图的效果示意图。
(a) (b) (c)图4 PartA和PartB的效果示意图 (a)原始图像 (b)真实密度图 (c)预测密度图Figure 4. The effect diagrams of PartA and PartB (a)The original image (b)True density map (c)Predictive density map
从图4和表1最后一行中的数据结果可以看出,该算法在PartA人群密度高、PartB人群密度中等的复杂场景中具有良好的适应性和准确性。其中,在第1张典型小尺寸行人头部的密集场景图像中统计了1 067人,与实际人数相差6人,误差率为0.5%;在第2张混合尺寸人头的中密度场景图像中获得的人数为179人,与实际人数相差2人,误差率为1.1%;在最后一张人头比例均匀的稀疏场景中获得的人数与实际人数相同,误差率为0%。从算法得到的估计人数和实际人数的结果可以看出,算法对PartB稀疏人群的误差更小,准确率更高,对PartA密集人群的误差更大。但考虑到公共场所中的密集人群的人数在一定误差范围内可以接受,因此算法有效。
表1显示了ShanghaiTech数据集的实验对比结果。本文选择的SwitchCNN[9]、MSCNN[10]、CSRNet[12]、MDNet[13]等算法均为人群计数领域中比较先进的算法。
表1 ShanghaiTech数据集上各算法计数性能比较
从表1可以看出,与文献[13]中的算法相比,PartA中RDCAF算法的MAE下降了1.9%,RMSE的性能几乎相同,而PartB中的MAE和RMSE分别下降了7.5%和5.9%。实验结果表明,本文算法优于其他算法。
2.3.2 Mall数据集
Mall[21]数据集是一个具有固定场景的稀疏人群数据集,具有密度不同、光照条件可变、透视失真严重等特点,共包含2 000帧带注释的图像,有60 000多人被标记。选择前800帧作为训练集,其余1 200帧作为测试集。本文比较了RDCAF算法和几种先进的人群计数算法在Mall数据集上的实验结果,结果如表2所示。
图5显示了RDCAF算法生成的密度图与Mall数据集上的真实密度图的对比效果。
(a) (b) (c)图5 Mall数据集的效果示意图 (a)原始图像 (b)真实密度图 (c)预测密度图Figure 5. The effect diagram of the Mall data set (a)The original image (b)True density map (c)Predictive density map
从图5和表2中的最后一行数据结果可以看出,该算法在人群稀少、背景变化固定的场景中具有良好的适应性和较高的精度。其中,在头部大小比例均匀的3张图像中,该算法得到的人数与实际人数接近,分别为35、42和28,误差率分别为2.7%、2.3%和3.7%。从估计人数和误差率的结果可以看出,由于人数基数少,该算法存在较高的错误率。然而,考虑到在稀疏公共场所中算法对人数的统计与实际人数接近,故认为该算法是有效可行的。
表2给出了该算法与4种主流人群计数算法的性能比较结果。这些算法包括Ridge Regression[21]、WeightedVLAD[24]、MCNN[7]、Bi-ConvLSTM[22]。
表2 Mall数据集上各算法计数性能比较
从表2中的结果可以看出,与文献[22]中目前已经取得良好人群计数效果的算法相比,RDCAF算法在Mall数据集上的MAE下降了14.7%,RMSE得到了显著的提升。实验结果表明,该算法取得了比其他算法更好的效果。
2.3.3 UCF-QNRF数据集
UCF-QNRF[23]是一个新发布的密集人群数据集,包括1 535张图像和1 250 000个带标注的人头信息。该数据集具有密度变化大、头部尺寸小、图像分辨率可变等特点,涉及到许多复杂场景。选取该数据集的1 201幅图像进行训练,并选取其余334幅图像进行测试。RDCAF算法在UCF-QNRF数据集上的实验对比结果如表3所示。表中的几种比较算法分别是MCNN[7]、C-MTL[8]、SwitchCNN[9]以及CL-CNN[23]。
表3 UCF-QNRF数据集上各算法计数性能比较
从表3的结果可以看出,RDCAF算法的MAE比文献[23]降低了17.8%,RMSE也得到了改善。实验结果表明,该算法在UCF-QNRF数据集中的性能优于其它算法。
2.4 RDCAF算法结构性验证
本节将验证残差密集连接结构和注意力机制结构对RDCAF性能的影响。通过设计实验将每个结构依次添加到网络中。验证实验所使用的数据集是ShanghaiTech数据集的PartB部分,结果如表4所示。
表4 结构对计数性能影响的比较
从表4可以看出,残差密集连接结构对计数的影响最大,注意力机制相对较小。实验结果表明,残差密集连接结构和注意力机制结构都能有效提高算法的性能。
3 结束语
以往的人群计数算法在解决尺度变化问题时受到列数的局限性,导致高层特征图中缺乏底层细节信息,且没有考虑背景噪声对最终人数的影响。针对这一问题,本文提出了一种基于残差密集连接与注意力融合的人群计数算法。本文通过3个公开数据集和结构型验证实验,验证了该算法的有效性和优越性。由于RDCAF算法提取的特征图仍然存在许多相似的特征,且算法结构不够轻量化,下一步将重点研究轻量化算法结构构建,并结合特征相似度损失函数进一步优化人群计数算法。