基于CNN低层语义特征密度图的人群密度估计方法与流程

文档序号:17162443发布日期:2019-03-20 00:56阅读:217来源:国知局
基于CNN低层语义特征密度图的人群密度估计方法与流程
本发明属于人群分析
技术领域
,涉及一种基于cnn低层语义特征密度图的人群密度估计方法。
背景技术
:公共场所的人群比较密集,因此对特定场合的人群的密度进行估计,成为了城市管理中的一项重要的任务。人群密度估计在灾害防护、公共场所设计、人员智能调度等方面发挥着重要的作用。在灾害防护方面,当一个场景空间中容纳了过多的行人时,容易发生踩踏事故,而人群密度估计则能对这样的情形进行预警;在公共场所设计方面,商业区的店铺分布能够根据人流量来进行设计,能够更大效率地利用固定的商业区面积;在人员智能调度方面,安保人员能够根据实时的人群密度来进行动态的调整,例如火车站、地铁、码头等区域。人群密度估计的技术,还能为其它技术提供算法基础,例如行人的行为分析技术、行人检测技术、行人语义分割技术等。目前人群密度估计的主要方法大致可以分为以下三种:(1)基于检测的方法此类方法通过检测人脸或者人头来对行人进行逐个的计数。该类方法的缺点主要有两个:①对于太小的人脸(人头)检测效果不好;②高密度人群的检测需要消耗巨大的计算资源。(2)基于人数回归的方法此类方法抽取图片的特征,直接对最终的人数进行回归。该类方法的缺点是训练时没有对行人的位置信息进行有监督的学习,因而模型缺乏定位行人的能力。(3)基于密度图回归的方法learningtocountobjectsinimages(nips2010)提出,对于计数类的问题,可以根据物体的位置生成密度图,将计数的问题转化为密度图回归的问题。该类方法能够有效地估计行人的位置,并且根据密度图输出一个相对准确的结果。因此,该发明使用了基于密度图回归的方法来估计人群的密度。在基于密度图回归的方法中,single-imagecrowdcountingviamulti-columnconvolutionalneuralnetwork(cvpr2016)提出了多列卷积神经网络(mcnn),该网络融合了多种大小的卷积核,因而能对不同尺度大小的人都作出一定的响应。switchingconvolutionalneuralnetworkforcrowdcounting(cvpr2017)提出,通过一个额外的vgg模型来预测人群密集程度,来决定要使用mcnn的哪一个分支来预测人数,能够得到一定的提升效果。cnn-basedcascadedmulti-tasklearningofhigh-levelprioranddensityestimationforcrowdcounting(cvpr2017)提出了利用一个额外分支对总体人数进行回归,使用多任务的模型来进行人数的预测。这几种模型都是基于相同的mcnn作为基础网络(backbone),因而相互之间具有参照价值。但是上述模型对密度图的预测依旧不够精准,导致最后的人数估计依然具有较大的误差。技术实现要素:针对现有技术的不足,本发明提供一种基于cnn低层语义特征密度图的人群密度估计方法。本发明对现有mcnn模型进行改进,得到amendnet模型,利用卷积神经网络(convolutionalneuralnetworks,cnn)的低层语义特征来完善密度图,基于amendnet模型,进行人群密度估计,平均绝对误差(mae)和均方误差(mse)都较低,算法估计的准确率和稳定性都较高。本发明采用如下技术方案来实现:基于cnn低层语义特征密度图的人群密度估计方法,包括以下步骤:s1、数据的预处理,根据原图像的行人位置生成密度图;s2、对原图像和步骤s1中生成的密度图进行切片;s3、对原图像进行mcnn多分支特征提取,对各分支特征进行卷积、池化操作后,通过mcnn特征图融合器对各分支特征进行连接,得到mcnn连接特征图,对mcnn连接特征图进行卷积操作,得到初始的mcnn密度图;s4、对原图像进行卷积,得到具有低层语义特征图;s5、将低层语义特征图与mcnn多分支特征提取后各分支生成的特征图在通道数这一维度进行连接,完成特征的编码,得到连接特征图;s6、用若干层卷积层对连接特征图进行解码,生成最终的密度图;对得到的最终密度图的每个像素相加求和,得到图片中的人数。优选地,步骤s2进行切片时,对原图像进行长宽均为相同比例的随机切片;所述比例设有三种,分别为原图1/2、1/3和1/4,每种比例切出9张子图像。其中,步骤s3采用多路卷积网络实现。多路卷积网络包括第一分支、第二分支及第三分支,第一分支、第二分支及第三分支分别对原图像进行卷积和池化操作,分别得到三路分支提取出的特征图;多路卷积网络将三路分支提取出的特征图在通道数的维度上进行连接,得到mcnn连接特征图。与现有技术相比,本发明具有以下有益效果:相对mcnn方法,在mae(平均绝对误差)和mse(平均平方误差)这两种评价标准上带来了性能上的提升;独立于基干网络之外,是一种通用性比较强的人群密度评估方法。附图说明图1为本发明密度图修正网络(amendnet)框架结构图;图2为多路卷积网络(mcnn)的框架结构图;图3为本发明一个实施例中连接特征图生成最终密度图的解码器结构图。具体实施方式下面通过具体实施方式对本发明作进一步详细的描述,但本发明的实施方式并不限于此。人群密度估计的问题定义是:输入一张图片,输出图片中的行人的数量。该技术通常用到的性能评价标准为mae(平均绝对误差)和mse(平均平方误差),分别是:其中,n表示图片的数量,yi表示图片的真实人数,y′i表示图片预测的人数。本发明方法的人群密度估计属于低层语义的预测,相比于高层语义的预测任务,例如图像分类等任务,人群密度估计更依赖图像的低层语义。在使用相同基础网络的前提之下,使用低层语义的特征来对密度图进行再次的修正,从而使网络模型输出的密度图更加精确。在本发明中,参见图1-3,利用cnn低层语义特征来完善密度图的人群密度估计方法,包括以下步骤:s1:数据的预处理,根据原图像的行人位置生成密度图。一幅有n个人头的带有标签的人头图像表示为:其中,xi表示人头在图像中的像素位置,δ(x-xi)表示图像中人头位置的冲击函数,n为图像中的人头总数。如果x位置有人头,则δ(x)为1,否则为0。h(x)为数据预处理之前的表现形式,即行人的位置。其中,表示高斯核,σi表示高斯核的标准差。di表示距离xi人头最近m个人头与该人头的平均距离(通常情况头部的大小与两个相邻的人在拥挤的场景中的中心之间的距离有关,di在人群较密的情况下近似等于人头大小)。f(x)是数据预处理之后的表现形式,即密度图。为了使生成的密度图能够更好地表征人头大小的特征,本实施例中,β为常数,可取0.3。s2:对原图像和s1中生成的密度图进行切片(crop)。对原图像进行切片,切片是因为现有的公开数据集图片较少,为了增大图片输入的随机性,使用切片的算法便于在对训练集进行每轮训练之后进行随机打乱(shuffle)。在mcnn中,对原图像进行长宽均为原图1/4的随机切片,每张图片随机切出9张子图像。本实施例中,为了让模型发挥完整的性能效果,对切片算法进行了优化,将1/4的比例拓展为1/2、1/3和1/4,每种比例切出9张子图像。特别指出,该优化对mcnn算法的提升效果不明显,但是本发明还结合了数据增强的方式,在同时使用了数据增强的情况下,本发明密度图修正网络(amendnet)提升效果明显。s3:基于mcnn计算出初始的mcnn密度图,过程为:对原图像进行mcnn多分支特征提取,对各分支特征进行卷积、池化操作后,通过mcnn特征图融合器对各分支特征进行连接,得到mcnn连接特征图,对mcnn连接特征图进行1x1x1卷积操作,得到初始的mcnn密度图。上述mcnn密度图和真实值之间使用平方差损失函数得到lorigin,即lorigin=(outputmcnn-target)2,其中,outputmcnn表示mcnn模型的输出,target表示mcnn密度图真实值。mcnn特征提取和特征图转换成密度图的过程如图2所示,采用多路卷积网络实现,图中箭头上方数字表示卷积核的大小和个数,例如9x9x16表示有16个大小为9x9的卷积核;箭头下方数字表示最大池化层的池化大小,2x2表示池化的大小为2x2,步长为2。多路卷积网络包括第一分支、第二分支及第三分支,第一分支、第二分支及第三分支分别对原图像进行卷积和池化操作,分别得到三路分支提取出的特征图,多路卷积网络将三路分支提取出的特征图在通道数的维度上进行连接,得到mcnn连接特征图。具体为:一、第一分支先后经过9*9*16的卷积、7*7*32的卷积、2x2的池化层,7*7*16的卷积、2x2的池化层、7*7*8的卷积后,得到第一分支提取出的特征图;二、第二分支先后经过7*7*20的卷积、5*5*40的卷积、2x2的池化层、5*5*20的卷积、2x2的池化层、5*5*10的卷积后,得到第二分支提取出的特征图;三、第三分支先后经过5*5*24的卷积、3*3*48的卷积、2x2的池化层、3*3*20的卷积、2x2的池化层、3*3*12的卷积后,得到第三分支提取出的特征图;四、将第一分支、第二分支和第三分支的特征图在通道数的维度进行连接;对连接后得到的mcnn连接特征图进行1*1*1的卷积,生成最后的mcnn密度图。mcnn为多分支网络结构,使用多种不同大小的卷积核对图像进行特征提取。由于在特征提取的时候对图像进行了两次降采样,因此输出的密度图的长和宽分别是输入图像的四分之一。s4:对原图像进行卷积,得到具有低层语义特征图。对原图像进行3x3卷积,获得低层语义特征图。该低层语义特征图包含着边缘特征等低层语义的信息。本发明密度图修正网络(amendnet)模型能够根据低层语义的信息来对步骤s3所生成的初始mcnn密度图进行一次修正。s5:将低层语义特征图与mcnn多分支特征提取后各分支生成的特征图在通道数这一维度进行连接,这一过程完成特征的编码,得到连接特征图。低层语义特征图的维度为[batchsize1,channal1,height1,width1,各分支生成的特征图的维度为[batchsize2,channal2,height2,width2。在训练的过程中,有batchsize1=batchsize2,以下记为b;有height1=height2,以下记为h;有width1=width2,以下记为w。合并之后,连接特征图的维度为[b,channal1+channal2,h,w]。s6:用若干层卷积层对连接特征图进行解码(decode),生成最终的密度图;对得到的最终密度图的每个像素相加求和,得到图片中的人数。最终密度图和密度图真实值使用平方差损失函数s得到lfinal,即lfinal=(outputfinal-target2,其中,outputfinal表示最终密度图修正网络(amendnet)模型的输出,target表示密度图真实值。本实施例中,解码器的结构如图3所示,包括多层卷积层,图中箭头上方数字表示卷积核的大小,连接特征图的上面数字表示特征图的通道数。经过5层卷积层操作,卷积核大小逐层减小,卷积核分别使用11*11、9*9、7*7、5*5和1*1,因此对大尺度的图像具备解码的作用。s7:在amendnet模型训练期间,先根据lorigin进行梯度的反向传播,对amendnet模型进行更新;再根据lfinal进行梯度的反向传播,对amendnet模型进行更新。在对amendnet模型训练时,训练400个epoch,即将每个样本训练400次。更新后的amendnet模型供下次人群密度估计使用。本实施例中,优化器使用adam优化器,学习率设置为0.0001。如图1所示,在训练过程中,每个批次先使用adam优化器1进行优化,目的在于对mcnn提取的特征图进行有监督的学习,然后使用adam优化器2进行优化,再对最终的密度图进行有监督的学习。本实施例中,使用shanghaitecha作为数据集,shanghaitecha是人群密度估计的一个著名数据集,它具有300张训练图片,182张测试图片。图片的人数最少为33人,最多为3139人,平均为501人。图片的分辨率不固定。平均绝对误差(mae)和均方误差(mse)是常用的衡量人群密度估计方法性能的标准,前者表征算法估计的准确性,后者表征算法估计的稳定性。将本发明的amendnet与mcnn及其衍生模型对比,对比结果如表1所示,可以看出,本发明具有一定的性能优越性。表1amendnet与mcnn及其衍生模型人群密度估计对比表maemsemcnn110.2173.2cascadedmulti-tasklearning101148switchcnn90.4135.0amendnet83128.2需要说明的是,本发明方法不局限于mcnn结构,也可以与其它结构进行匹配,是一种与其它算法互补的人群密度估计方法。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1