一种基于多尺度卷积神经网络的人群密度估计方法与流程

文档序号:18198452发布日期:2019-07-17 06:00阅读:385来源:国知局
一种基于多尺度卷积神经网络的人群密度估计方法与流程
本发明涉及一种基于多尺度卷积神经网络的人群密度估计方法,属于计算机视觉
技术领域

背景技术
:随着人类生活质量的提高,节日庆典、演唱会和体育赛事等大规模群体性活动日益频繁,近年来,由于人群密集所引发的群体性突发事件成为了社会的焦点。人群密度估计,作为一种人群控制和管理的重要方式,是当今智能监控领域的一个重要研究课题,它不仅能对当前场景下的人群进行统计从而帮助工作人员进行有效地管理,同时还可以通过预测人群的某些异常行为,对突发事件的发生进行预案,加强公众场所的安全。传统的研究方法主要可以分为两种,一种是基于检测的方法,另一种是基于回归的方法。检测法的核心思想是通过检测对应场景下的每个个体,对个体人数进行统计,具体方法有:采用梯度方向直方图hog(histogramsoforientedgradients)特征进行检测、提取人群的外观特征和运动特征进行检测。这类方法适用于低密度人群图像。基于回归的方法又被称作基于映射的方法,核心思想是将人群看成一个整体,通过回归模型求出人群特征与人数之间的函数或者利用分类器将人群特征映射到对应的人群密度等级从而判定人群密度。但该类方法更多的适用于存在遮挡、环境干扰的高密度人群,但如何使用人群特征以及建立回归模型,是此方法的难点。综上所述,传统研究方法在人群密度估计领域还存在着不稳定性。近年来,以卷积神经网络cnn(convolutionalneuralnetwork)为主的深度学习方法迅速成为了计算机视觉领域的热门研究重点,目前已被广泛应用到目标检测与识别、图像分割等领域。由于深度学习在图像处理方面的显著成效,很多学者把深度学习的方法引入到人群密度分析领域,提出了一些基于卷积神经网络的人群密度估计算法。现有技术中提出了利用人群密度图来进行人群密度估计问题,人群密度图包含更多的信息,既可以获取人群数量,同时可以得到图像中人群的空间分布,这对于进行人群密度的应用奠定了更好的基础。还有一些文献提出了基于多任务卷积神经网络的人群密度估计算法,该方法中的网络框架包含了人群密度图估计和人数统计两个任务,这种通过可切换的学习方法能够将为这两个任务所得到的结果准确性提高。一些文献提出了基于多列卷积神经网络的人群密度估计算法(mcnn),该方法使用了尺寸自适应的高斯核函数从有人头标记的图像中得到人群密度图。mcnn网络的每一列并行的子网络深度相同,但是每列网络的卷积核大小各不相同,因此每一列子网络的感受野不同,能够抓取不同大小人头的特征,最后将三列子网络的特征图做线性加权得到该图像的人群密度图,类似模型融合的思想,这些多尺度的特征可以很大程度的提升人群密度估计和人群计数的准确率。在mcnn的基础之上,将输入图像分为了9个图像块,使用一个以cnn网络为基础的选择器对每个图像块进行分类并将分类出的图像块送入不同尺度的分支网络,这里所用到的分支网络结构与mcnn网络的每一路网络结构相同。在mcnn的基础上进行改进,提出了一种深层次的单列全卷积网络结构,输入图像尺寸可以是任意的,而输出的密度图根据输入尺寸自适应变化。综上所述,基于卷积神经网络的方法拥有非常强的非线性表征能力,可以通过自主学习适应场景的干扰、遮挡等问题。但是上述方法还存在很多不足,主要体现在以下几个方面:多列卷积神经网络由于结构较宽,在训练方面需要浪费更多的时间;在人群密度估计过程中需要用到密度分类器,在使用分类器的过程中,会有很大的计算量,并且在网络中很大一部分的参数用于密度分类器,而用于密度图估计的参数只占一小部分,因此会产生额外的工作量。技术实现要素:考虑到上述
背景技术
中提及的问题,本发明提出一种基于多尺度卷积神经网络的人群密度估计方法,通过对不同感受野下的特征及不同分辨率下的不同层级特征进行融合,进行人群密度估计。为实现上述目的,本发明采用的技术方案为:一种基于多尺度卷积神经网络的人群密度估计方法,该方法的实现过程如下:s1.1人群密度图的生成由于网络模型需要经过训练才能从输入图像中估计出人群密度图,因此训练数据中给出的密度图的质量很大程度上决定了该方法的性能。这里,首先介绍如何将带有人头标注的图像转换为人群密度图。如果在像素xi处存在标注,将xi处标记的人头用狄拉克(delta)函数表示为δ(x-xi),因此具有n个头部标注的图像可以表示为:为了使具有标注的图像可以转换为连续的密度图,将h(x)与高斯核函数进行卷积,得到结果即为最终的密度图:ρ(x)=h(x)*gσ(x).但是,用此方法所生成密度图的前提是整张图像中的每个点在空间中独立存在的,而高密度人群图像存在着很多遮挡的问题,因此需要做一些改进。事实上,每个xi是在3d场景中一个独立的人群密度样本,并且由于透视失真,不同样本所对应的场景的位置的大小也是不同的。因此为了可以更加精确的得到人群密度ρ,需要考虑地平面与图像面之间引起的单应性失真问题。假设在标注的头部区域的周围,人群密度分布是均匀的,则该点与其最近的k个邻点之间的平均距离,给出了一个对于几何形变的合理估计。因此,通过图像中每个人头部大小,确认高斯核函数中的传播参数σ。然而,由于图像中头部的遮挡问题,很难精确的得到头部的大小,也很难找到头部大小与密度图之间的潜在联系。发现,在拥挤的人群图像中,头部大小与两个相邻的头部之间的距离有一定的关系,所以,根据最近的相邻的平均距离自适应地确定每一个人头的参数。对于给定的标注位置xi,将所有与其的k个最近邻的距离表示集合di={d1i,d2i,...,dki}。平均距离与xi相关联的像素位置对应于场景中地面上的一个区域,这个区域的半径与di成正比。因此,为了估计出xi周围的人群密度,需要把h(x)卷积一个自适应的高斯核函数,这个高斯核的方差σi是可变的且与di成正比,假设设定比例系数为β,则这个人群密度图表示为:针对比例系数β,将带有密度核的标签h与每个标记点周围的局部几何相适应,称为几何自适应核。经过大量实验后,β=0.3是是目前所得到的最优解。通过上述处理后,便可以得到一个相对准确能够反映出人群空间信息的人群密度图,以此为标注从而完成整个网络的监督训练,使得最终生成的网络模型具备感知图像空间几何分布的能力。效果图1所示,图1的a为原始输入图像,图1的b为对应的人群密度图。s1.2网络结构与设计网络结构是人群密度估计的核心关键,为了可以更好的将浅层特征与深层特征融合,本方法设计了如图2所示网络结构。网络配置详细参数如表1所示。输入图像为3通道的rgb人群图像,首先通过4个卷积层和2个下采样层生成通道数为64、大小为原图1/4的特征图。对此时得到的特征图经过两种处理:一、经过2个卷积核为3x3的卷积层,将其结果保留并进行下采样;二、经过2个卷积核为3x3,扩张率为2的空洞卷积,将其结果保留连接至网络末端。将此操作重复两次至步骤此时,得到通道数为512,大小为原图1/32的特征图,对其进行上采样(反卷积)和卷积,将得到的特征图、上一阶段通过卷积生成的特征图及通过空洞卷积生成的特征图,进行特征融合,生成通道数为512,尺寸大小为1/16的特征图,以此类推,将每一层经过上采样层生成的特征图与上一阶段的两种特征图进行融合,重复两次,最后通过一个1x1的卷积核进行卷积,输出一张尺寸为1/4原图大小的人群密度图。在网络中,所有的卷积层都使用填充(padding)来保持以前的大小不变;卷积层的参数表示为“conv-(核大小)-(通道数),空洞卷积层表示为atrousconv-(核大小)-(通道数)(扩张倍数),选择relu作为每个卷积层后的激活函数。表1多尺度卷积神经网络参数配置在网络结构提取特征的过程中,采用空洞卷积进行了特征提取。空洞卷积最早被提出是在图像分割领域,图像输入到卷积神经网络中,通过卷积-池化的操作降低图像尺寸的同时增大其感受野,但由于图像分割预测需要进行像素级的输出,因此要将池化后尺寸较小的图像通过上采样恢复到与输入图像尺寸相同再进行预测,在图像尺寸变化的过程中,必定会有信息的损失,因此,就提出了一种空洞卷积的方法,即不通过池化层和上采样就增大感受野而获取更多的特征信息。空洞卷积与普通的卷积相比,除了卷积核的尺寸以外,还有一个重要的参数为扩张率(rate),这个参数代表了空洞的大小。空洞卷积与普通卷积的不同点在于具有更大的感受野。从原图的角度可以很好的进行理解,所谓空洞就是在原图上做采样操作。当扩张率为1时,原图不丢失任何信息采样,此时的卷积操作即为标准的卷积操作。当扩张率rate>1时,就是在原图上的每隔rate-1个像素进行采样,当rate=2时,此时卷积核的感受野为5x5=25。当rate=3时,此时卷积核的感受野为7x7=49。空洞卷积的优点是在保持参数个数不变的情况下增大了卷积核的感受野,同时可以保证输出的特征图的大小也保持不变。例如,一个扩张率为2的3x3卷积核,感受野与5x5的卷积核相同,但参数数量只有9个,是5x5卷积参数数量的36%。本方法选择了扩张率为2的空洞卷积进行特征提取。该网络结构另一个的特点是在网络的扩展路径引入了反卷积与特征融合。反卷积的作用是将在收缩路径下通过下采样被压缩的特征图进行还原,经过三次反卷积后最终输出的人群密度图大小为输入图像的1/4。特征融合的主要作用是为了减小图像由于透视、遮挡等问题所产生的影响,由于在一张人群图像中,由于拍摄角度以及人群位置的原因,会造成很多人体特征的差异例如近处人的轮廓很清晰,而远处的人近乎为一个点等;目前解决的方法大多是进行图像分块,但这种方法会破坏图像的完整性,造成很多图像信息的缺失。如果采用不同大小的卷积核进行特征提取,会使参数量增多,而庞大的计算量使得网络的训练难度增加。因此,本方法提出了基于不同感受野的特征融合方法来解决此问题。在卷积网络中提取特征的过程中,虽然不断在进行特征的压缩与提取,但是每一次下采样操作都会损失一部分空间关系信息,这就造成浅层特征具有更多的细节信息,深层更加抽象,如何结合不同分辨率下的特征图的有效信息,是一个重要问题。本方法通过空洞卷积与原始卷积不同感受野信息的融合,实现了多尺度下的特征融合,与此同时,采用类似u型结构的上下采样过程,充分融合了不同分辨率特征图下不同的层级语义信息。正是这种操作,使得本网络结合了多重有效特征,具备了多尺度人群密度估计的泛化能力。本网络结构未使用全连接层和池化层,下采样采用的是步长为2的卷积,采用这样的结构出于以下三方面考虑:第一减少训练过程中的参数量从而防止过拟合;第二,可以减少更多信息丢失的损失,保存图像中更多的空间细节信息;第三,通过卷积学习特征压缩权重,增强泛化能力。s1.3损失函数本方法采用损失函数的表达式为:这里的x表示网络预测值与真实值之间的损失,smoothl1损失函数是l1损失函数与l2损失函数结合的复合函数,函数图像由图4所示。具有l1损失函数对离群点不敏感的特性,同时具备l2损失函数使网络更快收敛的特点,smoothl1损失函数广泛应用于神经网络的回归问题。网络训练:网络训练对深度学习来说是非常重要的,相同的网络结构如果使用不同的训练方法训练,结果也会有很大的差异。一般来说,参与训练的数据量越大,越容易进行网络参数调优。训练过程中要先对数据集进行图像预处理,将训练集中的图像进行水平翻转、裁剪等几何变换方式,扩增训练样本数量,例如如图5所示,本方法将图像等分9份对并进行裁剪,同时对裁剪后的图像对其进行水平翻转等操作。裁剪的图像包含正负样本,正样本为存在人群的裁剪图象,负样本为只有场景的图像,使用它们进行训练,可以提高网络对稀疏人群和密集人群的密度估计的泛化能力。网络训练过程中,使用的是sgdm(stochasticgradientdescentmomentum)(随机梯度下降动量)优化器,其中初始学习率为0.0001,动量设置为0.8,batchsize设置为1,iteration设置为4000,epoch设置为200,采用热启动的动态学习率调节策略进行训练,网络训练在gpu加速环境下进行,使用的是nvidivagtx1080t,cuda9.2。评价标准为了能够定量的评价所提出的多尺度卷积神经网络估计的结果,参考一些已有的人群计数方法的约定,采用平局绝对误差(mae)和均方误差(mse)作为评估指标,其定义如下:其中,n表示测试图像数量;yi表示数据集图像中实际标记人数;表示相应图像的估计人数。总体来说,平均绝对误差mae反映出估计结果的准确性,而均方误差mse反映了估计结果的鲁棒性。附图说明图1原始输入图像与经过几何自适应所得到的人群密度图。图2多尺度卷积神经网络结构。图3卷积核为3x3的空洞卷积,不同扩张率下的不同感受野大小。图4smoothl1损失函数的函数图像。图5数据集图像扩增;(a)原图,(b)裁剪图,(c)水平翻转图。图6实际图片的整体测试结果,前两张为人群稀疏对比图,后三张为高密度人群图像。具体实施方式以下结合附图和实施例对本发明进行详细说明。网络训练对深度学习来说是非常重要的,相同的网络结构如果使用不同的训练方法训练,结果也会有很大的差异。一般来说,参与训练的数据量越大,越容易进行网络参数调优。训练过程中要先对数据集进行图像预处理,将训练集中的图像进行水平翻转、裁剪等几何变换方式,扩增训练样本数量,本文将图像等分9份对并进行裁剪,同时对裁剪后的图像对其进行水平翻转等操作。裁剪的图像包含正负样本,正样本为存在人群的裁剪图象,负样本为只有场景的图像,使用它们进行训练,可以提高网络对稀疏人群和密集人群的密度估计的泛化能力。网络训练过程中,使用的是sgdm(stochasticgradientdescentmomentum)(随机梯度下降动量)优化器,其中初始学习率为0.0001,动量设置为0.8,batchsize设置为1,iteration设置为4000,epoch设置为200,采用热启动的动态学习率调节策略进行训练,网络训练在gpu加速环境下进行,使用的是nvidivagtx1080t,cuda9.2。评价标准为了能够定量的评价所提出的多尺度卷积神经网络估计的结果,参考一些已有的人群计数方法约定,采用平局绝对误差(mae)和均方误差(mse)作为评估指标,其定义如下:其中,n表示测试图像数量;yi表示数据集图像中实际标记人数;表示相应图像的估计人数。总体来说,平均绝对误差mae反映出估计结果的准确性,而均方误差mse反映了估计结果的鲁棒性。数据集及实验结果本实验使用的三个人群密度数据集分别是目前人数最密、难度最大的ucf_cc_50数据集、含有标记人数最多的shanghaitech数据集,和包含2010年上海世博会监控视频的worldexpo’10数据集。表2给出了这三个数据集当中的具体参数。表2数据集的基本情况ucf_cc_50数据集ucf_cc_50数据集最先由h.idrees等人提出。这个数据集包含来自互联网的50幅图像。这是一个非常具有挑战性的数据集,因为不仅仅图像的数量很有限,而且图像的人群数量也发生着巨大的变化。在这些图像中,人头数量在94到4,543之间不等,平均人头数为1,280。作者为这50幅图像共提供了63,974条标注。按照标准设置执行5倍交叉验证来验证本文算法的性能。模型测试结果如表3所示。表3ucf_cc_50数据集人群密度估计对比shanghaitech数据集shanghaitech数据集包含1,198张带有标注的图像,共有330,165人的头部中心带有标注。目前在人群密度领域,这个数据集是标注人数最多的数据集。该数据集由两部分组成:a部分的482幅图像是从互联网上随机抓取的,b部分的716幅图像是从上海大都市繁华的街道上所采集的。在这两个数据集之间,人群密度的变化很大,这使得对人群的准确估计比大多数现有数据集更具有一定的挑战性。a部分和b部分均分为训练和测试两部分:a部分使用300张图像作为训练数据,剩余182张用于测试;b部分使用400张图像作为训练数据,剩余316张图像用于测试。模型测试结果如表4所示。表4shanghaitech数据集在不同人群密度估计对比3.3.3worldexpo’10数据集worldexpo’10数据集首次被提出是由zhang等人提出,该数据集是从108个监控摄像头拍摄的1132个监控视频中所提取出的图像,所有的监控视频均是2010年上海世博会期间所拍摄的。作者提供了3980张已标记的视频帧图像,总共标记人数有199,923,其中训练集含有3380张图像,共103个场景;剩下600张图像作为测试集,测试集图像包含五个不同的视频序列,每个序列中含有120张已标记的人群图像,并且为测试场景提供了五个不同的感兴趣区域(roi)。由于测试的场景不同,因此不同算法在不同场景下所得到的人群密度图会有很大的差异,这说明不同方法适应特定的场景。通过与其他方法相比,发现本文方法在三个场景下的取得了不错得效果。这表明本文方法具有良好的泛化能力,以及在不同场景下具有良好的准确性。模型测试结果如表5所示,表格内数据为各方法的mae值。表5worldexpo’10数据集人群密度估计对比methods1s2s3s4s5avg.zhangetal.9.814.114.322.23.712.9mcnn3.420.612.9138.111.6bsad4.121.711.911.03.510.5mscnn7.815.414.911.85.811.7switchingcnn4.415.710115.99.4本文3.217.312.110.24.29.4实验总结相比其他现有的一些算法,本文设计的网络结构在shanghaitech数据集、ucf_cc_50数据集和worldexpo’10数据集上均有不错的效果,mae和mse均有小幅度减小,这说明本文设计的方法在人群密度估计上具有一定的有效性。从数据集中选取了部分有代表性的图像,如图6所示,从左至右依次为原始图像、真实密度图以及预测密度图,图片中也标注了图像的原始人数以及估计人数。为了更好的进行人群密度估计,本方法提出了一种基于多尺度卷积神经网络的人群密度估计算法。通过对不同尺度的特征进行融合,可以有效的提高人群密度估计的准确性。本网络中,通过输出1/4采样的密度图进行人群密度估计,一定程度上,损失了人群的细颗粒分布信息,如何在高分辨率,计算资源有限的情境下输出和原图一样尺寸的人群密度图,是该领域急待解决的问题。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1