基于单列深度时空卷积神经网络的人群计数 下载: 778次
1 引言
监控设备的快速发展使图像和视频的数据量不断增长,对视频内容分析的需求也越来越大。人群计数在视频监控、交通管控、应急管理等方面的潜在影响,使其在计算机视觉任务中得到了广泛的研究与应用。随着科技的创新和城市交通的部署,地铁已成为人们出行的首选交通工具。在出行高峰期,不可避免地会引发人为事故。为了满足智慧交通的要求,提高社会的安全性,在地铁监控系统中引入人群计数具有重要意义,但以往对人群计数的研究大多集中在单张图像上[1-3],难以满足视频监控的需求。
已有的人群计数方法大致可分为基于检测的方法、基于回归的方法、基于密度估计的方法以及基于深度学习的方法四类。基于检测的方法通过检测和跟踪方式对视频图像中的人进行计数[4-5],用检测器对单独的个人或身体部位进行逐次检测,累计后得到统计结果[6]。这种方法计数精度较高,但在密集和复杂场景下无法检测出小物体和被遮挡的头、身体,且耗时较长。基于回归的方法以人群为整体估计人群密度,能实现大规模人群计数[7],学习局部图像块中的特征和对应人数之间的映射[8],简化了复杂的个体检测任务。但训练需要大量的标记数据,算法复杂度较高,且不能定位人群的空间位置关系。基于密度估计的方法不仅解决了检测和特征回归的局限性,且能估计图像中任意区域的目标数量,将计数问题转为估计图像密度的问题,通过图像密度在该图像区域上的积分得到对象的数量[9]。随着卷积网络的发展,深度学习在人群计数领域中得到了广泛应用,基于深度学习的方法根据网络特性差异可分为基于卷积神经网络(CNN)、基于尺度感知模型、基于上下文感知模型和基于多任务模型的方法。Zhang等[10]提出用全卷积网络(FCN)结合长短期记忆(LSTM)网络进行视频车辆计数的方法。Xiong等[3]从视频图像在时间上存在关联的角度,提出了一种融合CNN与LSTM网络的ConvLSTM人群密度估计模型,可充分利用视频序列的时间信息。Li等[11]在网络中加入空洞卷积,形成能识别高密度场景的空洞卷积网络(CSRNet)模型,可提取高层次语义特征,准确估计密集场景的人群分布情况。该模型虽然参数量较少,但容易丢失细节信息[12]。
现有的人群计数方法关于视频序列帧中人群数量的时间相关性模型研究较少。针对摄像机视角畸变导致的物体识别难度大问题,本文提出了一种基于单列深度时空CNN的人群计数模型。模型前端的密度生成模块采用在单列FCN融入空洞卷积和跳级连接的方式,可提取图像的细节特征,提高生成密度图的质量;模型后端的时空变换计数模块将LSTM网络结构和空间变换(ST)模块相结合,改善了摄像机视角畸变导致的物体识别难度大问题。
2 人群计数模型
2.1 基于单列深度时空计数的CNN
在监控场景不同的人流分布、光照变化、人群遮挡以及拍摄角度畸变情况下,有效计算人群数量是一个极大的挑战。尽管多列网络已经取得了很大的进展,但其不同分支中相似的结构会产生大量冗余信息,使网络计算耗时长、难以训练,无法提升最终生成的密度图质量。针对该问题,改进了基于单列深度时空计数的CNN,密度图生成主干网络FCN的主要作用是将传统网络进行卷积化[13],然后加入空洞卷积和跳跃连接,以提高网络提取特征的能力;时空变换部分将LSTM网络和ST模块进行结合,以实现图像时序关联计数。模型的结构如
整个网络主要分为两个模块,一个是密度图生成模块,该模块主要由改进的FCN组成;另一个模块为基于LSTM网络实现的时空变换计数模块。网络通过残差学习将改进的FCN和LSTM网络相结合,从而根据时序估计人群数量。改进的FCN主要将像素级特征映射到人群密度中,在LSTM网络中插入ST模块。ST模块能进行端到端的训练,可合并到CNN并使用标准的反向传播算法进行训练,用参数矩阵确定分区的位置以及分区的调整角度和旋转角度。
2.1.1 密度图生成模块
密度图生成模块的主干网络为FCN[14],为了在深层网络中增加感受野、降低计算量,需通过池化或卷积方式进行降采样,但会降低图像的分辨率,导致信息丢失。为了解决该问题,在原始FCN中增加空洞卷积[15],以提高人群计数的精度。空洞卷积由Chen等[16]提出,首先,在非零滤波器抽头之间插入小孔滤除上采样;然后,将特征响应双线性插值变回原始图像的尺寸,在不增加参数量的情况下有效扩大了感受野;其次,将几个空洞卷积层的输出值与第二个最大池化层进行结合,以减少特征损失并获取更多特征;最后,连接两个反卷积进行上采样,将第一个反卷积上采样得到的1/8分辨率热图与模型正向卷积操作得到的1/8分辨率特征图进行融合操作(Fuse operation),以减少上采样过程中的信息丢失,获取更多的特征。网络模型正向卷积的前两层卷积池化获得的特征比较低级,不利于对后续人群密度特征进行抽象描述,因此直接对1/8分辨率图像进行上采样,得到与输入图像分辨率相同的图像。用网络最后一个1×1卷积核作为回归器,将特征映射到人群密度中,生成人群密度图。该网络的结构如
2.1.2 时空变换计数模块
基于文献[ 10]中视频监控车辆的计数方法,对原始网络进行改进,以实现对视频人群的计数。摄像机的视角会导致成像中人的尺度和旋转角度发生变化,从而影响人群计数的准确性。为了解决该问题,在最后一层LSTM网络中插入一个ST模块。在第i次迭代中,用ST模块确定要细化的图像区域,可表示为
式中,ai为当前迭代的内存单元,gi为隐状态,XLSTM为获取密度图过去信息和变化信息的函数。ST模块由Jaderberg等[17]提出,能在人群密度图中动态定位一个注意力区域,并对其进行尺度变换和旋转,变换矩阵可表示为
式中,θi为变换参数,可利用隐状态gi计算。根据变换矩阵Ti从完整密度图Mi-1中提取的区域密度图di可表示为
式中,XST为ST模块,区域密度图di可通过双线性插值调整到给定的尺寸w×h。将经过ST模块的区域密度图di与相同大小的真实密度图进行对比,计算区域损失函数LST,通过该损失函数优化ST模块的参数,网络结构如
2.2 网络模型训练
2.2.1 更新函数
LSTM网络在t时刻的更新方程可表示为
式中,et为输入门状态值,ft为遗忘门状态值,ot为输出门状态值,ct为激活向量,kt为隐藏输出向量,kt-1为t-1时刻隐藏层的状态值,ct-1为t-1时刻的记忆单元状态值,W为门控网络的权重参数,b为偏置参数。et、ft和ot可通过门控网络的权重参数、偏置参数和输入的xt和kt-1求得,一维向量xt为改进FCN最后输出的密度映射。LSTM网络隐藏层的激活函数为Sigmoid函数[18],记忆单元状态值和隐藏层状态值的激活函数用双曲正切函数更新。
2.2.2 密度图
通过人群计数获得视频图像的人群密度图,用积分值表示图像中的人数。若xz为图像x中第z个人头标记点的位置,函数δ(x-xz)表示该人头的密度图,则图像x的密度图可表示为
式中,N为人头标记点的个数。将高斯核滤波器Gδ与(5)式进行卷积,得到密度图
根据透视原理可知,用二维彩色图像反映三维人群图像场景的过程中,每个像素点代表的人头所占面积会发生变化,(5)式的密度图生成方式会导致结果不够准确。为了处理透视失真带来的视角扭曲,用自适应高斯滤波器
式中,
2.2.3 损失函数
用欧氏距离计算估计的人群密度与地面真值的误差,密度图估计的损失函数可表示为
式中,F为训练单批样本的数量(Batch size),
式中,为
式中,Ci为第i帧中人群数量的真值,
式中,λ为人群密度估计损失函数的权重,β为局部密度图的损失权重。通过调整λ、β提升模型的整体性能,用批处理Adam优化算法和反向传播算法优化损失函数。
3 实验设计及结果分析
3.1 实验环境及参数设置
实验在深度学习工作站上开展训练和测试,并测试了训练好的网络对数据集的检测计数情况,实验中的密度图生成和ST计数两个任务是联合训练的,以减少不必要的参数,同时模型能得到更好的训练结果。操作系统为Windows10,CPU为锐龙3700x,GPU为rtx2060,实验框架为CUDA10+anaconda3+python3.6+pytorch,训练网络模型过程中,批大小为30,LSTM网络的时间步长为10,网络的初始学习率(Learning rate)为10-4,迭代次数为105,(12)式中的参数λ=0.1,β=0.001。
3.2 数据集训练
3.2.1 评价指标
用平均绝对误差(MAE)和均方误差(MSE)评估模型在人群密度估计和计数准确性上的性能,可表示为
式中,xi和
3.2.2 UCSD数据集
UCSD数据集来自校园内监控摄像机拍摄的2000帧图像,分辨率为238 pixel×158 pixel,每秒传输帧数(FPS)为10 frame,每帧图像有11~46不等的人数。实验参数与文献[
19]相同,将601~1400帧作为训练帧,数据集中剩余的1200帧作为测试帧。
表 1. 不同模型在UCSD数据集上的性能指标
Table 1. Performance indexes of different models on the UCSD data set
|
3.2.3 Mall数据集
Mall数据集由安装在购物中心的监控摄像机拍摄的图像组成[20],目标总人数在6000左右,图像像素为640 pixel×480 pixel,特点是人群密度变化大、人群活动方式多,包括目标的静止和运动、透视畸变和遮挡严重等情况。将前800帧图像作为训练帧,其余1200帧图像作测试帧。本模型在Mall数据集中的计数结果如
表 2. 不同模型在Mall数据集上的性能指标
Table 2. Performance indexes of different models on the Mall data set
|
图 5. 本模型在Mall数据集上的实验结果。(a)密度图;(b)计数结果
Fig. 5. Experimental results of our model on the Mall data set. (a) Density map; (b) counting result
从
3.2.4 自建视频数据集
目前人们的短距离和较长距离出行离不开地铁和铁路,但现有数据集很少关注这两个方面。为满足智慧交通的要求,需在重要节假日人群密集高峰期对入站口和出站口的人群进行计数。实验建立的数据集包括兰州地铁入站口及西站上车过程监控视频中的图像,包括不同场景、不同光照、不同角度共1200帧图像。对数据集采用人工标注的方式,与Mall和UCSD数据集标记方法类似,手动标注每帧图像中人头的坐标点,训练网络分别选取900帧图像(每个场景各450帧),其余300帧(每个场景各150帧)图像用于测试。本模型在自建数据集中的测试结果如
图 6. 本模型在自建数据集上的实验结果。(a)密度图;(b)计数结果
Fig. 6. Experimental results of our model on the self-built data set. (a) Density map; (b) counting result
表 3. 不同模型在自建数据集上的性能指标
Table 3. Performance indexes of different models on self-built data set
|
3.3 模型对比实验及分析
1) 引入空洞卷积前后网络的性能
为验证在单列深度FCN中加入空洞卷积对视频图像人群计数精度的提升,将该网络与基础网络即无空洞卷积、无时空变换模块(No dilated No ST)和加入空洞卷积、无时空变换模块(dilated+No ST)网络进行对比,测试实验分别在UCSD、Mall和自建数据集上进行,测试帧的选择与3.2节一致,测试结果如
表 4. 不同数据集的验证性实验结果1
Table 4. Confirmation experiment results1 of different data sets
|
2) 引入时空变换计数模块后网络的性能
为验证在LSTM网络中加入ST模块对视频图像人群计数精度的提升,将无空洞卷积、无时空变换模块、无空洞卷积与加入时空变换模块(No dilated+ST)的网络和加入空洞卷积并结合时空变换模块的网络(dilated+ST)进行对比,在UCSD、Mall和自建数据集上的测试结果如
表 5. 不同数据集的验证性实验结果2
Table 5. Confirmation experiment results 2 of different data sets
|
为更直观检测ST模块对计数任务的影响,根据Mall数据集人群密度变化大及疏密分布比较平衡的特点,选用Mall数据集801~1200帧作为测试集验证改进网络的准确性,得到50次迭代后模型的准确率如
3) 改进模型前后的训练损失值
图 8. 改进前后网络的训练损失曲线
Fig. 8. Training loss curves of the network before and after the improvement
综上所述,引入空洞卷积、结合ST模块与LSTM网络均可提升人群计数任务的精度,且ST模块对网络性能的提升更明显,其次为空洞卷积,将两者与整体网络用连接方式结合时效果最佳。
4 结论
提出了一种基于单列深度时空计数CNN的人群计数模型,整体网络结构分为密度图生成和时空变换计数两个模块;针对单列网络提取的图像特征不完整导致人群计数不精确的问题,通过引入空洞卷积和跳跃连接融合的方式,大大提高了网络提取特征的能力;针对摄像机视角畸变导致的难以识别问题,将ST模块插入LSTM网络中。在3个数据集上的测试结果表明,相比其他模型,本模型的测试检测速度和检测精度均较好,验证了本模型的实际应用价值。但本模型对于存在遮挡和密集人群的计数,还存在明显的不足,今后还需通过实验进行改进。
[2] MarsdenM, McGuinnessK, LittleS, et al. ResnetCrowd: a residual deep learning architecture for crowd counting, violent behaviour detection and crowd density level classification[C] //2017 14th IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS), August 29-September 1, 2017, Lecce, Italy. New York: IEEE Press, 2017: 1- 7.
[3] XiongF, Shi XJ, Yeung DY. Spatiotemporal modeling for crowd counting in videos[C] //2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice, Italy.New York: IEEE Press, 2017: 5161- 5169.
[4] YangC, Gong HF, Zhu SC, et al.Flow mosaicking: real-time pedestrian counting without scene-specific learning[C] //2009 IEEE Conference on Computer Vision and Pattern Recognition, June 20-25, 2009, Miami, FL, USA. New York: IEEE Press, 2009: 1093- 1100.
[5] LiB, ZhangJ, ZhangZ, et al.A people counting method based on head detection and tracking[C] //2014 International Conference on Smart Computing, November 3-5, 2014, Hong Kong, China.New York: IEEE Press, 2014: 136- 141.
[6] 范超超. 基于卷积神经网络的密度估计及人群计数的算法研究[D]. 合肥: 安徽大学, 2019: 3- 20.
Fan CC. Research on density estimation and crowd counting algorithms based on convolutional neural network[D]. Hefei: Anhui University, 2019: 3- 20.
[8] Liu TL, Tao DC. On the robustness and generalization of Cauchy regression[C] //2014 4th IEEE International Conference on Information Science and Technology, April 26-28, 2014, Shenzhen, China.New York: IEEE Press, 2014: 100- 105.
[9] LempitskyV, ZissermanA. Learning to count objects in images[C] //Advances in Neural Information Processing Systems 23: 24th Annual Conference on Neural Information Processing Systems 2010, December 6-9, 2010, British Columbia, Canada. New York: Curran Associates Inc.2010: 1324- 1332.
[10] Zhang SH, Wu GH, Costeira JP, et al.FCN-rLSTM: deep spatio-temporal neural networks for vehicle counting in city cameras[C] //2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice. New York: IEEE Press, 2017: 3687- 3696.
[11] Li YH, Zhang XF, Chen DM. CSRNet: dilated convolutional neural networks for understanding the highly congested scenes[C] //2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE Press, 2018: 1091- 1100.
[12] 左静, 巴玉林. 基于多尺度融合的深度人群计数算法[J]. 激光与光电子学进展, 2020, 57(24): 241502.
[13] 吴止锾, 高永明, 李磊, 等. 类别非均衡遥感图像语义分割的全卷积网络方法[J]. 光学学报, 2019, 39(4): 0428004.
[15] 高琳, 宋伟东, 谭海, 等. 多尺度膨胀卷积神经网络资源三号卫星影像云识别[J]. 光学学报, 2019, 39(1): 0104002.
[19] Chan AB, Liang Z SJohn, VasconcelosN. Privacy preserving crowd monitoring: counting people without people models or tracking[C] //2008 IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2008, Anchorage, AK, USA. New York: IEEE Press, 2008: 1- 7.
[20] ChenK, Loy CC, Gong SG, et al.Feature mining for localised crowd counting[C] //Procedings of the British Machine Vision Conference 2012, September 3-7, 2012, Surrey, UK.Guildford: BMVA Press, 2012: 1- 11.
[21] ChenK, Gong SG, XiangT, et al.Cumulative attribute space for age and crowd density estimation[C] //2013 IEEE Conference on Computer Vision and Pattern Recognition, June 23-28, 2013, Portland, OR, USA.New York: IEEE Press, 2013: 2467- 2474.
[22] Zhang YY, Zhou DS, Chen SQ, et al.Single-image crowd counting via multi-column convolutional neural network[C] //2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA.New York: IEEE Press, 2016: 589- 597.
Article Outline
鱼春燕, 徐岩, 缑丽莎, 南哲锋. 基于单列深度时空卷积神经网络的人群计数[J]. 激光与光电子学进展, 2021, 58(8): 0810011. Chunyan Yu, Yan Xu, Lisha Gou, Zhefeng Nan. Crowd Counting Based on Single-Column Deep Spatiotemporal Convolutional Neural Network[J]. Laser & Optoelectronics Progress, 2021, 58(8): 0810011.