基于CNN 的人群计数与密度估计研究综述
2021-08-24钮嘉铭
钮嘉铭,杨 宇
(武警工程大学信息工程学院,陕西西安 710086)
0 引言
随着人口数量的持续增长以及城市化进程的加速推进,大型集会、商场等处拥挤场景正变得越来越常见。各种各样的音乐节,随处可见的购物中心、影剧院,还有体育馆、机场、高铁站,这些人们习以为常的事物,无时无刻不在影响着人们生活。诚然,丰富的基础设施资源和文娱项目极大地满足了人民日益增长的物质文化需求,但随之带来的高人流量,高拥挤问题也不容忽视。加之近年来复杂多变的国际国内环境造成的群体事件越来越多,人群分析作为一种有效辅助措施受到越来越多的研究者关注。
人群分析是一个复杂的跨学科研究,在计算机视觉、心理学、社会学及物理学的多个领域均有应用,本文主要围绕其在计算机视觉任务中的应用展开讨论。作为计算机视觉领域的一个热点,人群分析在视频监控、公共安全、城市规划和行为识别与理解等任务中发挥了重要作用。作为人群分析问题的重要组成部分,人群计数和密度估计是对拥挤场景进行更高级理解的基础,如异常行为检测与识别、分割、跟踪及场景理解等。此外,人群计数方法可扩展到其他领域的计数任务中,如细胞镜检、车辆计数等。
1 相关研究工作综述
随着智慧城市、智能监控系统以及深度学习技术的迅猛发展,人群计数与密度估计等人群分析技术发展迅速,许多研究人员对人群计数和密度估计开展研究[1]。如Zhan 等[2]从社会学和心理学角度对人群进行了深入研究,从人群特征提取、人群建模与事件推理等方面对人群分析方法进行介绍;Junior 等[3]总结了人群分析中的3 个重要问题:人群计数及密度估计、拥挤场景中的人群跟踪和更高层次的人群行为理解,将人群计数与密度估计模型分为基于像素的分析、基于纹理的分析和对象级分析3 类;Li 等[4]从运动模式分割、人群行为识别及异常行为检测3 个方面综述了人群场景分析的相关技术,介绍了特征表示及可以为场景分析算法提供基本人群模型的人群动力学领域相关知识;Zitouni 等[5]用不同的标准评估不同的方法。这些文献对人群分析进行了总结,但对密度估计研究尚不深入;Loy 等[6]将人群计数方法分为基于检测的方法、基于聚类的方法和基于回归的方法,并通过系统比较评估对不同的人群计数方法进行了分析,进而为更深入的研究提供新的思路与方向;Ryan 等[7]通过实验得到基于回归的人群计数方法的评估结果,该结果是在多个数据集上利用交叉验证的方法对整体、局部或基于直方图的特征,以及包括高斯过程回归、线性回归与神经网络在内的各种回归模型进行分析比较得到的;Saleh 等[8]从两个角度对人群计数与密度估计方法进行了分类,即直接法和间接法,直接法即基于检测的方法,而间接法则致力于从像素、纹理与角点3 个角度对问题进行研究;Grant 等[9]对人群统计和行为理解这两个人群分析的主要领域进行了探讨。
上述文献对人群计数进行了总结,但没有涉及到基于CNN 的方法。Sindagi 等[10]将人群计数与密度估计方法分为传统方法与基于CNN 的方法两类,分别对这两类方法进行了分析,与之前不同的是,文章不仅考虑了手工提取的特征,还考虑了CNN 提取的特征;Tripathi 等[11]对基于CNN的人群分析法进行了介绍,主要涉及人群统计、人群密度估计、人群场景分析和人群异常检测4 个方面;Gao 等[12]对人群计数和密度估计方法进行了全面系统的综述,以CNN的结构、监督形式及学习范式为基准对基于CNN 的方法进行了阐释,并在此基础上分析了当前方法的优势与不足,为进一步的研究指出了方向。
与其他计算机视觉任务类似,人群计数和密度估计也面临诸多挑战,如人群间遮挡、复杂背景、尺度变化、人员非均匀分布、透视失真、照明变化及天气变化等,如图1 所示。为解决这些问题,研究人员从不同角度提出了多种行之有效的方法,这些方法主要分为传统方法和基于CNN 的方法。
本文对基于CNN 的人群计数和密度估计方法进行综述。考虑到逻辑的完整性与连贯性,对基于传统方法的人群计数和基于CNN 的人群计数方法进行了总结。
Fig.1 Crowd scene picture图1 人群场景图片
2 传统人群计数方法
早期的人群计数方法是通过检测来估计人群数量[13],使用滑动检测器遍历图像得到检测结果进行计数。一般来说,这种方法只适用于稀疏场景,拥挤场景中复杂的背景杂波与严重的人员遮挡使其效果大打折扣。为了克服这一问题,研究人员提出了基于回归的方法,其特点是跳过检测步骤,直接学习从图像到计数结果的映射。该方法由特征提取和回归建模两部分组成。首先,从目标区域提取梯度、纹理等全局特征或局部特征(如HOG,LBP 等),而后使用线性回归器、岭回归器等回归技术得到统计结果。基于类似思路,Idress 等[14]提出了一种融合傅里叶分析、头部检测和SIFT 兴趣点提取的局部图像块计数方法。这些回归模型较好克服了遮挡和背景的干扰,但忽略了人群图像中的空间信息。考虑到这一点,Lempitsky 等[15]提出一种学习局部特征和密度图之间的线性映射方法,Pham 等[16]则使用随机森林回归来学习局部特征和密度之间的非线性映射。
3 基于CNN 的人群计数方法
虽然基于密度估计的方法使人群统计效果得到一定程度的提升,但它们只使用了手工制作特征,这给更深入的研究造成了麻烦。近几年,由于CNN 的迅猛发展,越来越多的人将目光转向了CNN。下面对基于CNN 的人群统计方法进行总结。
3.1 多列网络与单列网络
首先从网络结构角度进行分析。Wang 等[17]和Fu等[18]最早结合CNN 进行人群统计。其中,Wang 等将人群计数看作回归问题,利用CNN 模型建立了人群图像与计数间的映射。Fu 等不是直接预测总人数,而是先按预设标准将图像分为5 个密度等级,然后使用级联的两个CNN 对图像进行分析,最终得到结果。这里第二个CNN 对第一个CNN 分类错误的图像进行训练。
以上方法均使用了基本的CNN,但受模型结构所限,其精度常常不尽如人意。为此,人们相继提出了多列网络与单列网络来解决这个问题。
3.1.1 多列网络
多列网络即指模型中包含多列CNN,通常不同的列对应不同的尺度。Zhang 等[19]是最早提出采用多列结构解决多尺度特征提取问题的研究者之一,使用多列网络MCNN来建立图像到密度图的映射,如图2 所示。
Fig.2 The structure of MCNN图2 MCNN 结构
该结构由3 列CNN 构成,每列具有不同的感受野,可用来提取不同尺度特征。Onoro 等[20]提出一个尺度感知计数模型Hydra-CNN,它使用一个对应于不同尺度图像块的金字塔进行密度图估计;Boominathan 等[21]考虑到由拍摄视角等的不同带来的尺度变化问题,提出了CrowdNet 模型,如图3 所示。该模型使用深层和浅层两列网络来处理图像中的尺度变化问题。其中,浅层网络负责提取低层信息,深层网络则主要承担高层信息提取任务。
Fig.3 The structure of CrowdNet图3 CrowdNet 结构
Sam 等[22]发现Hydra-CNN 的性能对图像金字塔变化非常敏感,为此提出了Switch-CNN 模型。该模型主要由Switch 分类模块和CNN 回归模块组成,其所特有的Switch分类器负责根据密度或其他预设分类标准给输入图像块选择一个最优回归器,进而实现精确计数;Sindagi 等[23]认为现有方法虽对密度图进行了回归,但它们往往更侧重于改进计数误差而不是密度图质量,同时发现当前方法未明确使用上下文信息,因此提出了CP-CNN 方法,通过显式地融合从图像中学到的全局与局部上下文信息来获得准确的估计,同时将对抗性损失与欧式损失结合起来用于训练网络;Ranjan 等[24]提出ic-CNN 模型,该模型包括两个分支,第一分支为低分辨率CNN(LR-CNN),用于生成低分辨率密度图,第二分支为高分辨率CNN(HR-CNN),主要合并来自第一分支的低分辨率预测图和密度图,以生成高分辨率密度图。
这些方法没有探索不同尺度下估计密度图的相关性,即来自小区域(小尺度)的计数之和不一定对应于其联合区域(大尺度)的计数。对此,Shen 等[25]提出一种新的AC⁃SCP 模型,该网络充分利用了GAN 在图像生成中的优异性能,同时通过使用尺度一致性正则化来限制人群尺度不同带来的误差。Deb 等[26]近期提出了AMDCN 网络,通过在多列网络中加入扩张卷积,使网络选择性聚合多尺度信息的能力得到提升,并且网络在训练时不使用透视图。
3.1.2 单列网络
多列结构在一定程度上推动了人群统计研究的发展,但也存在局限性,如参数量大、训练存在过拟合等。同时,受结构所限,每个列只能在相应尺度上正常工作,在其他尺度上的性能急剧下降。为此,研究者提出了单列网络。
Li 等[27]提出了CSRNet,通过使用扩张卷积,模型可在分辨率不降低的前提下得到更大的感受野,进而聚集场景中的多尺度信息,实现高精度的密度估计;Zhang 等[28]提出的SaCNN 是一种尺度自适应CNN,它以固定感受野较小的FCN 为主干,将从多个尺度提取的特征调整为相同大小,然后将它们组合起来生成密度图,为了提高模型对稀疏场景的适应能力,使用了相对计数损失与密度图损失;Chen等[29]以单列网络为骨干,使用部署了4 个不同扩张率的并行扩张卷积尺度的金字塔模块SPM 来提取多尺度特征;Cao 等[30]提出了一种基于编解码器的尺度聚集网络SANet,它包括编码器和解码器两部分;Jiang 等[31]提出了网格编解码网络TEDNet,它由一个多尺度编码器和一个多路径解码器组成,集成了多个解码路径来捕获多尺度特征,利用密集跳跃连接来获取监督信息;Dai 等[32]设计的DSNet 是一种采用了密集扩张卷积块的端到端单列模型。
3.2 其他方法
除了上述构建多列或单列网络来获得更丰富的特征表示方法之外,研究人员还通过引入其他模块来完善模型,以有效结合不同分辨率的特征。
3.2.1 注意力机制
Liu 等[33]认为,由于人群密度在空间、时间上是变化的,因此仅基于检测或回归来计数是不够的,为此构建了DecideNet 模型。该模型同时使用检测和回归模型来估计人群数量,然后利用注意力机制自适应地对特定像素决定采用哪种估计结果;Sindagi 等[34]提出了基于反向注意力机制的深度人群计数网络IA-DCCN。该模型通过反向注意力机制有效地将分割信息注入计数网络,使特征图中的背景信息得到了抑制,最终得到更准确的估计;Jiang 等[35]设计了一种新的基于注意力机制的计数网络,该网络利用注意力掩膜和尺度因子来修正不同密度区域的密度估计。
3.2.2 透视感知
Zhang 等[36]通过分析发现,当目标场景与训练场景不一致时,目前的人群统计方法性能会显著降低。为此使用密度和透视信息作为相似性度量,从训练数据中检索与测试相似的图像,之后利用检索到的图像对训练好的网络进行微调,进而得到目标测试场景下的密度图,最终实现跨场景人群统计。
面对透视失真的挑战,Shi 等[37]提出一个透视感知网络PACNN 来进行计数,将透视信息整合到密度回归中,以提供与图形尺度变化相关的信息;Yan 等[38]提出一种用于人群计数的透视引导卷积网络,作为一个可插入的模块,透视引导卷积成功解决了场景内的连续尺度变化问题,还提出一个透视估计分支,该分支用于生成透视图;Gao 等[39]提出一种多任务透视人群计数网络PCCNet,它可以对人群场景中的层次特征(全局、局部或像素级特征)和透视变化进行编码,由密度图估计(DME)、随机高密度分类(RHDC)和前背景分割(FBS)组成;Yang 等[40]提出一种无监督的反向透视网络RPNet 来减小输入图像的尺度变化,由透视图估计器和坐标变化器组成,首先透视图估计器对透视失真的程度进行评估以获得透视因子,然后坐标变化器根据透视因子对图像进行处理以减小图像尺度变化。
3.2.3 基于视频的人群计数
Xiong 等[41]提出了ConvLSTM 模型,该模型可对视频中的人群进行计数。与一般基于CNN 的方法不同,该方法同时利用空间与时间信息进行计数。
Fang 等[42]认为ConvLSTM 只是隐式地对视频中的时空相关性进行建模,为了提高性能提出了LSTN。该模型由密度图回归和LST 空间变换两个模块组成。其中,LST 负责处理视频中的时空相关性。之后又进一步提出了一种基于多层次特征融合的局部训练空间变换网络MLSTN[43],该网络将相邻帧的密度图显式地关联起来,以实现更为稳健的视频人群统计。
4 评价指标
为更好地对人群计数与密度估计模型进行评估,同时也为了更直观地了解模型性能,需要引入一些简单有效的评价指标,下面介绍两类评价指标。
(1)为了评估模型的计数性能及密度估计性能,引入平均绝对误差MAE 和均方误差MSE,定义如下:
其中,N是测试样本的数量,yi是样本的真实计数值,yi'是经模型估计得到的与yi相对应的计数值。MAE 和MSE可以分别在一定程度上反映模型的准确性与稳健性。一般情况下,两个误差的值越小表明模型的性能越理想。
(2)为了评估模型生成的密度图质量,引入峰值信噪比(PSNR)和结构相似性指数(SSIM),PSNR 用来衡量处理后的图像与原始图像之间的误差,一般PSNR 值越高表明误差越小。同时,受外在因素及人类视觉局限性影响,PSNR 值可能与人们对图像品质的主观感受不完全一致。SSIM 用来评价估计的密度图与实际密度图间的局部模式一致性,它用亮度、对比度与结构相似度3 个因子来衡量图像质量,并分别将均值、标准差和协方差看作3 个因子的度量,根据3 个局部统计量计算出两幅图像之间的相似性。其范围为0 到1,一般SSIM 为1 即表明两个图像相同。
5 相关数据集
随着人群统计技术的发展,特别是深度学习等方法的广泛使用,优秀的数据集在模型的不断优化及统计效果提升过程中扮演着越来越重要的角色。面对尺度变化、背景杂波和遮挡等人群密度估计任务的挑战,不同数据集根据实际需求有针对性地在某些方面进行了优化。这些数据集为研究工作带来了便利,激励人们不断地创建出泛化能力更强的模型。表1 展示了常用数据集信息。
Table 1 Commonly used datasets表1 常用数据集
UCSD:UCSD 数据集是最早的人群计数数据集之一,它从一个人行道上的摄像机中采集。该数据集由来自一个视频序列的2 000 个尺寸为238×158 的帧和每五帧中每个行人的注释组成,其中包含49 885 个行人实例。
Mall:该数据集是在购物中心收集的,它由200 个尺寸为320×240 的帧组成,共包含62 325 名行人。与USCD 相比,该数据集覆盖了更多不同的照明条件、更多的密度水平以及不同的活动模式,其具有更大的透视失真及更严重的遮挡。
UCF_CC_50:UCF_CC_50[44]是第一个真正具有挑战性的数据集。它由来自公共网站的50 幅分辨率不同的Web图像组成,共包含63 075 个被标记的个体。该数据集中的图像具有较大的密度差异,但其偏少的图像数量也给研究人员使用带来了不便。
WorldExpo’10:文献[35]引入的WorldExpo’10 是一个大型跨场景人群计数数据集,主要收集自上海世博会。它由1 132 个由108 个监控摄像头拍摄的带注释的视频序列组成,共有3 920 个尺寸为576×720 的帧,有199 923 个被标记的行人。
ShanghaiTech:文献[19]引入的ShanghaiTech 是近几年大规模人群统计数据集之一,由1 198 幅图像和330 165 个注释组成。其被分为两部分,A 部分是从网上随机选取的图片,具有较高的密度,B 部分图片是在上海市一条街道上拍摄的。该数据集覆盖了不同场景类型和不同密度级别,其复杂的尺度变化与透视失真也为研究人员带来了新的挑战。
6 结语
本文从传统方法和基于CNN 的方法两个方面对当前的人群计数与密度估计方法进行了分析。通过分析,可以得到以下几点研究启示:
(1)与CNN 相结合是当前人群计数与密度估计方法发展的方向。近几年,随着CNN 的迅猛发展,其在人群密度估计领域的应用潜力为越来越多的研究人员所重视。CNN在特征提取方面得天独厚的优势不仅大大提高了模型的运行速度,而且使模型性能跨上了新台阶。
(2)在基于CNN 的方法中,大多数网络倾向于使用单列结构。多列结构很好地推动了人群计数与密度估计方法的发展,但与单列结构相比仍存在一些不可避免的问题。首先多列网络参数量大运算较为复杂;其次多列网络不同的列虽可用来提取不同尺度的特征,但也正是因为这个原因,其提取的特征尺度多样性往往受制于网络有限的列数。
(3)尺度变化是人群密度估计面临的主要挑战之一。当前,几乎所有的密度估计模型都是为解决尺度变化问题而设计的。无论是多列结构、多分支结构与单列结构的使用,亦或是扩张卷积、空间金字塔及透视图的引入,无不都是在解决尺度变化问题。当然,其他问题也不容忽视,比如复杂背景、遮挡及照明变化等。为解决这些问题,人们引入了语义分割、视觉注意力机制及空间变换网络等方法。
(4)良好的损失函数也是影响模型性能的主要因素。作为一种经典方法,欧式损失在人群密度估计中得到广泛应用,但由于其存在局部相关性和密度图的空间相关性考虑不足的缺陷,使欧式损失不利于模型发展。为此,人们结合使用对抗性损失、贝叶斯损失及局部模式一致性损失来优化模型。
本文对基于传统方法和基于CNN 方法的人群计数与密度估计模型进行了总结,特别对基于CNN 的方法进行了分析,同时介绍了几个常用的相关数据集以及常用的评价指标。总结了当前方法的特点及发展趋势,为后续进一步研究指明了方向。