一种复杂场景中流动人群的分布与计数检测的方法与流程

文档序号:17993810发布日期:2019-06-22 01:01阅读:266来源:国知局
一种复杂场景中流动人群的分布与计数检测的方法与流程

本发明涉及计算机视觉技术领域,具体涉及一种复杂场景中流动人群的分布与计数检测的方法。



背景技术:

随着居住人口密度的增长,在车站、广场、公园等公共场所,人群大量聚集的频率越来越高,聚集密度变得越来越大。作为计算机视觉的热门方向之一,人群数量检测对于公共安全管理、信息资源管理、公共交通管理等方面具有重要意义。比如,对人群高频率集会的场景,实行实时无人监控;用对于城市公交系统,通过及时获得乘客在空间、时间上的分布情况来灵活调整车辆运行时间表;对于大型商场,通过顾客的流量信息来制定高效率的营销策略等。

现有技术中,对于复杂场景中流动人群的检测统计方法,由于存在各种复杂因素,例如遮挡,场景杂乱无章,人群分布不均匀,光照不均匀,场景差异,尺度和视角的变化,难以获得准确的统计结果。而且现有技术中采用多列/多个卷积神经网络进行统计预测,则会引入更多的参数,消耗计算资源,难以实际应用,所以很难产生高精度的预测结果。



技术实现要素:

本发明主要解决的技术问题是提供一种复杂场景中流动人群的分布与计数检测的方法,解决现有技术中的对人群数量检测计算资源消耗多、估算精度低等问题。

为解决上述技术问题,本发明采用的一个技术方案是提供一种复杂场景中流动人群的分布与计数检测的方法,包括以下步骤:构建预训练模型,构建一单列卷积神经网络blcnn模型,利用公开数据集提供的原始图像作为输入,以所述原始图像中对应的人群标注文件作为输出,对所述blcnn模型进行训练,得到预训练模型;多层网络初始化,利用所述预训练模型对多层卷积神经网络mlcnn网络初始化,所述mlcnn网络包括由所述预训练模型构成的第一层网络,以及在所述第一层网络之后并行分开的感知支路网络和融合支路网络;特征提取与感知,将待识别图像输入到所述第一层网络提取特征信息,所述特征信息进一步输入到感知支路网络得到感知信息,所述感知信息还输入到所述融合支路网络进行信息融合;融合估算人群数量,所述特征信息还输入到融合支路网络,并利用所述感知信息进行信息融合和密度估算,得到所述待识别图像中对应的人群数量。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述预训练模型包括依次串联的两个层级:vgg-g5层级和shared-net层级,在所述vgg-g5层级中又进一步包括依次串联的五级卷积池化层,均采用了3×3的卷积核和2×2的池化层。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述五级卷积池化层对于的第一级卷积池化层包括64个3×3的卷积核,且由两组3×3×64的卷积核堆叠而成;第二级卷积池化层包括128个3×3的卷积核,且由两组3×3×128的卷积核堆叠而成;第三级卷积池化层包括256个3×3的卷积核,且由三组3×3×256的卷积核堆叠而成;第四级卷积池化层包括512个3×3的卷积核,且由三组3×3×512的卷积核堆叠而成;第五级卷积池化层包括512个3×3的卷积核,且由两组3×3×512的卷积核堆叠而成。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述shared-net层级进一步包括依次串联的卷积层和反卷积层:第一卷积层为1×1×256卷积层,第二反卷积层为2×2×128的反卷积层,第三卷积层为3×3×128卷积层,第四卷积层为1×1×128卷积层,第五卷积层为3×3×128卷积层,第六卷积层为1×1×1的卷积层,由所述第五卷积层输出得到128维的特征图,经过第六卷积层后输出人群密度图,累加所述人群密度图的二维矩阵值得到预测出的人群数量。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,利用所述预训练模型对多层卷积神经网络mlcnn网络初始化包括仅将所述预训练模型的vgg-g5层级用于构建所述mlcnn网络的第一层网络。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述感知支路网络包括第六级卷积池化层、第七级卷积池化层、第八级卷积池化层、第九级卷积池化层和全局平均池化层。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述第六级卷积池化层为1×1×256卷积层,所述第七级卷积池化层为2×2×128反卷积层,所述第八级卷积池化层包括五组1×1×5卷积层,所述第九级卷积池化层为1×1×1卷积层,所述全局平均池化层对第九级卷积池化层输出的特征图进行密度分类得分。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述融合支路网络包括第十级卷积池化层、第十一级卷积池化层、第十二级卷积池化层、融合层、第十三级卷积池化层和密度图预测层。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述第十级卷积池化层为1×1×256卷积层,所述第十一级卷积池化层2×2×128反卷积层,所述第十二级卷积池化层为3×3×128卷积层,所述融合层将来自所述感知支路网络的第八级卷积池化层对应输出的25个特征图与所述第十二级卷积池化层输出的128个特征图融合得到153个特征图,所述第十三级卷积池化层由两个3×3×153卷积层堆叠而成,所述密度图预测层为参数量为1×1×153×1的卷积层。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,所述25个特征图为语义特征图,所述第十二级卷积池化层输出的128个特征图为高维特征图。

在本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中,

本发明的有益效果是:本发明公开了一种复杂场景中流动人群的分布与计数检测的方法。该方法包括的步骤有:构建预训练模型、多层网络初始化、特征提取与感知、融合估算人群数量。基于这些步骤,可以先通过构建一列单列的卷积神经网络作为预训练模型,融入多层卷积神经网络中,然后再通过对人群密度信息感知,将待识别图像中的多尺度信息,通过分类感知以及得分图的方式融合进整个网络中,从而提高该网络识别人群的准确率和执行效率,以及良好的可迁移性。

附图说明

图1是根据本发明复杂场景中流动人群的分布与计数检测的方法一实施例的流程图;

图2是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的预训练模型示意图;

图3是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的多层卷积神经网络mlcnn组成框图;

图4是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的人群密度分布划分示意图;

图5是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的人群检测效果分析示意图;

图6是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的人群检测效果分析示意图;

图7是根据本发明复杂场景中流动人群的分布与计数检测的方法另一实施例中的人群检测效果分析示意图。

具体实施方式

为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

图1显示了本发明复杂场景中流动人群的分布与计数检测的方法一实施例的流程图。在图1中,包括以下步骤:

步骤s101,构建预训练模型,构建一单列卷积神经网络blcnn(baselineconvolutionalneuralnetwork)模型,利用公开数据集提供的原始图像作为输入,以所述原始图像中对应的人群标注文件作为输出,对所述blcnn模型进行训练,得到预训练模型。

优选的,我们通过把构建出的blcnn网络翻译成python代码,利用公开数据集提供的输入(原始图像)以及输出(原始图像对应的人群标注文件groundtruth)作为blcnn网络的输入输出,然后在linux环境中进行运算训练。训练出来的预训练模型文件全部由二维参数组成,二维参数表示图像中的特征权重,称作预训练模型。

步骤s102,多层网络初始化,利用所述预训练模型对多层卷积神经网络mlcnn(multi-levelconvolutionalneuralnetwork)网络初始化,所述mlcnn网络包括由所述预训练模型构成的第一层网络,以及在所述第一层网络之后并行分开的感知支路网络和融合支路网络。

使用步骤s101得到预训练模型对mlcnn卷积神经网络进行初始化,主要是将预训练模型设置为所述mlcnn网络的第一层网络,然后使用这个预训练模型里的二维参数,对mlcnn卷积神经网络进行初始化。利用这种训练方式,当我们再训练mlcnn卷积神经网络的时候,极大减少了训练过程中的参数数量,提高了训练效率,防止过拟合,提高结构稳定性。由此可以不必对第一层网络再进行深度学习。这是因为网络越深,代表着网络的参数越多,越多的网络参数会给训练带来极大的困难。不但耗费大量的计算资源,还会常常会因为计算量过大导致loss函数不能正常收敛,求不到局部最优解。

步骤s103,特征提取与感知,将待识别图像输入到所述第一层网络提取特征信息,所述特征信息进一步输入到感知支路网络得到感知信息,所述感知信息还输入到所述融合支路网络进行信息融合;

步骤s104,融合估算人群数量,所述特征信息还输入到融合支路网络,并利用所述感知信息进行信息融合和密度估算,得到所述待识别图像中对应的人群数量。

优选的,如图2所示,在步骤s101中,所述预训练模型包括依次串联的两个层级:vgg-g5层级和shared-net层级,在所述vgg-g5层级中又进一步包括依次串联的五级卷积池化层,均采用了3×3的卷积核和2×2的池化层,其中第一级卷积池化层10包括64个3×3的卷积核,即一组3×3×64的卷积核。

进一步的,考虑到使用多个卷积可以与之对应的进行多次非线性变换,增加网络的非线性映射次数,有效的提升网络对不同信息的判别性。而且使用小卷积核,可以大幅度的减少网络参数数量,假设卷积层的通道数为c,则三个3×3卷积核对应的参数量:3(32c2)=27c2,一个7×7卷积核对应的参数量:72c2=49c2。并且,两个3×3卷积核堆叠在一起(中间没有池化层)的感受野相当于一个5×5的卷积核,三个3×3卷积核堆叠在一起的感受野相当于一个7×7的卷积核。因此,在图2中,可以看出在第一级卷积池化层10是由两组3×3×64的卷积核堆叠而成,这两组之间没有池化层。通过第一级卷积池化层10,初步提取待识别图像中的人群特征信息,然后通过一组2×2的池化层,保留主要的特征,使图像尺寸缩小到原来的二分之一,减少下一级的参数和计算量,防止过拟合,网络中使用的池化层均为平均池化。

进一步的,如图2所示,第二级卷积池化层11包括128个3×3的卷积核,即3×3×128的卷积核,并且由两组3×3×128的卷积核堆叠而成,这两组之间没有池化层。注意,在第一级卷积池化层10和第二级卷积池化层11之间具有池化层,该池化层为2×2池化层,通过该池化层的作用可以对图像进行下采样,使得图像的尺寸变小,由图2所示,在第一级卷积池化层10对应图像的宽度和高度表示为w×h,在第二级卷积池化层11对应图像的宽度和高度表示为w/2×h/2,表明经过该2×2池化层的作用,图像的宽度和高度均对应变成了前一级图像的宽度和高度的一半。

进一步的,与前述类似,第三级卷积池化层12包括256个3×3的卷积核,即3×3×256的卷积核,并且由三组3×3×256的卷积核堆叠而成,经过池化作用后,这一级对应的图像的宽度和高度表示为w/4×h/4;第四级卷积池化层13包括512个3×3的卷积核,即3×3×512的卷积核,并且由三组3×3×512的卷积核堆叠而成,经过池化作用后,这一级对应的图像的宽度和高度表示为w/8×h/8;第五级卷积池化层14包括512个3×3的卷积核,即3×3×512的卷积核,并且由三组3×3×512的卷积核堆叠而成,经过池化作用后,这一级对应的图像的宽度和高度表示为w/16×h/16。

优选的,在所述shared-net层级中又进一步包括依次串联的卷积层和反卷积层,其中第一卷积层15为1×1的卷积核,共有256个,即为一组1×1×256卷积层,这一层的对应的图像的宽度和高度表示为w/16×h/16;第二层为反卷积层,称为第二反卷积层16,对此,我们设置一组2×2×128的反卷积层对特征图进行上采样操作,这里使用的是128个2×2的反卷积核,使特征图尺寸扩大一倍,成为原始图像的八分之一大小,即图像的宽度和高度表示为w/8×h/8,其目的是为了丰富图像信息,扩充图像内容。后续有进一步包括第三卷积层17为3×3的卷积核,共有128个,即为一组3×3×128卷积层,这一层的对应的图像的宽度和高度表示为w/8×h/8;第四卷积层18为1×1的卷积核,共有128个,即为一组1×1×128卷积层,这一层的对应的图像的宽度和高度表示为w/8×h/8;第五卷积层19为3×3的卷积核,共有128个,即为一组3×3×128卷积层,这一层的对应的图像的宽度和高度表示为w/8×h/8;最后,第六卷积层1a为1×1的卷积核,共有1个,这样经过之前的卷积和反卷积操作之后,得到的128维的特征图,最终经过一个1×1×1的卷积层输出人群密度图,累加所生成人群密度图的二维矩阵值得到预测出的人群数量,并输出一个预训练模型,即为本步骤s101所得。

在构建如图2所示的blcnn模型进行训练的过程中,可以通过比较当前网络的预测值和我们真正想要的目标值,再根据两者的差异情况来更新每一层的权重矩阵,由此实现对模型的训练。而预训练模型中,包含了图像的权重信息,而权重信息代表了特征转换(featuretransform)。从另一个方面也可以说,权重表示一种编码(encoding),就是把数据编码成另外一些数据来表示。因为神经网络是一层一层进行的,有先后顺序,所以就单一层来看,好的权重初始值应该是尽可能地包含了该层输入数据的所有特征。也就是说,能够把第i层的输入数据的特征传输到第i+1层,再把第i+1层的输入数据的特征传输到第i+2层,一层一层进行下去。这样,每层的权重初始值起到了对该层输入数据的编码作用,能够最大限度地保持其特征。例如手写字体识别,从原始的一张像素图片转换到分解的不同笔画特征,那么反过来,这几个笔画特征也可以组合成原来的数字,即转换后的特征保留了原输入的特征,而且转换是可逆的,这正是预训练模型能够做到的。因此,通过构建预训练模型可以极大减少了训练过程中的参数数量,提高了训练效率,防止过拟合,提高结构稳定性。

优选的,为了衡量训练的效果,定义“如何比较预测值和目标值的差异”,这便是损失函数或目标函数(lossfunctionorobjectivefunction),用于衡量预测值和目标值的差异的方程。lossfunction的输出值(loss)越高表示差异性越大。那神经网络的训练就变成了尽可能的缩小loss的过程,称为梯度下降。本发明的损失函数选择的是欧式距离损失函数,如下式表示:

其中,表示样本标签,表示训练模型神经网络的实际输出值。

并且,上述预训练模型的训练过程分为两个阶段。第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段。另外一个阶段是,当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传播训练的阶段,即反向传播阶段。所用的方法是梯度下降(gradientdescent):通过使loss值向当前点对应梯度的反方向不断移动,来降低loss。一次移动多少,是由我们设置的学习速率(learningrate)来控制的。

进一步的,由于所述预训练模型包括的两个层级:vgg-g5层级和shared-net层级,对于步骤s102,所述预训练模型在构成所述mlcnn网络的第一层网络时,只需将其中的vgg-g5层级加入到所述mlcnn网络中,也即是vgg-g5层级的输出端分别并联接入到感知支路网络和融合支路网络。

如图3所示,待识别图像首先输入到mlcnn网络的第一层网络20,然后在分别进入感知支路网络和融合支路网络。在感知支路网络包含4个卷积层和1个全局平均池化层。通过设置该感知支路网络,主要是由于待识别图像在不同场景中,人群密度分布存在着巨大的变化,即使是在同一个场景中,人群分布依然存在着明显的变化,由于摄像机的位置,以及与人群的距离的不同,行人的大小与形状发生了变化,这使得准确地预测人群密度变得极为困难,但这种变化与人群的密度分布存在着潜在的联系。例如,在图像中,远距离的行人大小较小,这导致一定数量的像素所包含的行人数量较多,也就是密度较大。因此,我们提出了一种融合了密度感知信息的卷积神经网络,其基本思想是学习密度感知信息,并利用密度感知信息指导密度图的生成,这就是该感知支路网络的主要作用。

优选的,在感知支路网络中,包括第六级卷积池化层21、第七级卷积池化层22,其中第六级卷积池化层21为1×1的卷积核,共有256个,即为一组1×1×256卷积层,对应的图像的宽度和高度表示为w/16×h/16,该的第六级卷积池化层21的输入端对应的是图2中vgg-g5层级的输出端,由图2可知,vgg-g5层级的最后一个层级是第五级卷积池化层14,包括256个3×3的卷积核,即3×3×256的卷积核,并且由三组3×3×128的卷积核堆叠而成,经过池化作用后,这一级对应的图像的宽度和高度表示为w/16×h/16。第七级卷积池化层22为2×2的反卷积核,共有128个,即为一组2×2×128反卷积层,对应的图像的宽度和高度表示为w/8×h/8。这里,第六级卷积池化层21和第七级卷积池化层22对应的参数数量为3×3×128×25,其中3×3是卷积大小,128是输入通道数,25是输出通道数。因此,对应的第八级卷积池化层23为1×1的卷积核,分成5组,每一组有5个1×1的卷积核,即一组1×1×5卷积层,而对于每组而言是有5个输入和1个输出,因此图中又表示为1×1×5×1,对应每一组向后一级,即第九级卷积池化层24只有一个输出。由于第八级卷积池化层23包括5组,其参数数量(1×1×5×1)×5,即是:五组参数数量为1×1×5×1的卷积层组成一组,每个1×1×5×1卷积层有5个输入通道和1个输出通道。第九级卷积池化层24为1×1的卷积核,只有一个输入和对应一个输出,因此第九级卷积池化层24输出5个特征图,然后进一步使用全局平均池化层25来处理第九级卷积池化层24输出的5个特征图,得到最终的密度分类得分,有5个得分分别对应于从低等级到高等级的五个密度等级。通过这种感知分类的方式,能够让整个网络在训练的过程中,进行参数的约束,对整个网络有极为重要的指导与先验意义。由此解决了一张图片中,在人群的透视以及分布尺度跨度极大情况下的低精度预测问题。

进一步优选的,在感知支路网络中,第八级卷积池化层有25个通道输入,即对应25个输出特征图还进一步输入到融合支路网络中。我们希望这25个输出特征图具有判别性语义信息,该判别性语义信息即为我们所需要的感知信息。

进一步的,如图3所示,在融合支路网络中,包括第十级卷积池化层26、第十一级卷积池化层27、第十二级卷积池化层28、融合层29、第十三级卷积池化层30、密度图预测层31。其中第十级卷积池化层26包括1×1的卷积核,共有256个,即为一组1×1×256卷积层,对应的图像的宽度和高度表示为w/16×h/16;第十一级卷积池化层27为反卷积层,包括2×2的反卷积核,共有128个,即为一组2×2×128反卷积层,对应的图像的宽度和高度表示为w/8×h/8;第十二级卷积池化层28为卷积层,包括3×3的卷积核,共有128个,即为一组3×3×128卷积层,对应的图像的宽度和高度表示为w/8×h/8。通过上述第十级卷积池化层26、第十一级卷积池化层27、第十二级卷积池化层28,继续将来自预训练模型的图像特征提取生成为高维特征,然后在融合层29将来自感知支路网络的25个特征图,主要是语义特征图,这25个语义特征图具有判别密度等级的先验信息,它们有助于提高密度估算精度。与第十二级卷积池化层28输出的128个特征图,主要是高维特征图进行融合,得到的153个特征图。通过这种融合,可以将密度信息融入到图像中,可以对图像中的人群分布密度进行划分,从而有利于按人群密度分布进行划区,进而有利于对不同区域的高维特征图进行人群数量的准确估算。例如图4所示,对该待识别图像给出了三个区域的密度信息,依次是第一密度区t1、第二密度区t2和第三密度区t3,对于每一个密度区所对应的人群密度值不同,远处的人数密、近处的人数稀疏,如果不进行密度分类的话,就是直接在原图上进行卷积计算,而当融合了分类的密度感知后,就包含了上述与密度分布有关的语义特征图,这样非常有利于准确识别和计算人群的分布和数量。

然后,再输入到第十三级卷积池化层30,该第十三级卷积池化层由两个卷积层堆叠而成,这两个卷积层均是3×3的卷积核,均为153个。然后,再通过参数数量为1×1×153×1的密度图预测层31来生成密度预测图。

因此,在本发明在mlcnn网络的融合支路网络中,把通过感知支路网络通过感知分类得出的25个特征图,与通过预训练模型输出进行特征融合,生成一组153(128+25)维度的特征图,既抓住了图像的高层语义特征,也保留了图像的底层细节特征,最大限度的保留图像的多尺度信息。

进一步的,对于密度预测图可以进一步通过调用python的2d绘图库matplotlib中的cmap把图中的二维数组信息映射成传统意义上的人群密度图,最后累加所生成的人群密度图的二维矩阵值得到预测出的人群数量。

对于本发明mlcnn网络结构的实施例,分别使用了三个当今主流公开数据集:shanghaitech数据集、ucf_cc_50数据集、worldexpo10数据集进行验证,图5至图7显示了本发明实施例的检测效果示意图。在图5中,使用的是ucf_cc_50数据集中的一张待识别图像,该图像中人群数量的真实值是1566,通过本发明实施例得到的检测值为1325.6,准确率为84.6%。在图6中,使用的是worldexpo10数据集中的一张待识别图像,该图像中人群数量的真实值是234,通过本发明实施例得到的检测值为228.7,准确率为97.7%。在图7中,使用的是shanghaitech数据集中的一张待识别图像,该图像中人群数量的真实值是291,通过本发明实施例得到的检测值为285.3,准确率为98%。由此可见,利用本发明实施例可以获得较高的检测准确率,特别是在人口密度较小的情况下。

由此可见,本发明公开了一种复杂场景中流动人群的分布与计数检测的方法。该方法包括的步骤有:构建预训练模型、多层网络初始化、特征提取与感知、融合估算人群数量。基于这些步骤,可以先通过构建一列单列的卷积神经网络作为预训练模型,融入多层卷积神经网络中,然后再通过对人群密度信息感知,将待识别图像中的多尺度信息,通过分类感知以及得分图的方式融合进整个网络中,从而提高该网络识别人群的准确率和执行效率,以及良好的可迁移性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1