一种基于单帧图像处理的人数统计系统技术领域
本发明属于图像处理与视频监控技术领域,涉及一种基于单帧图像处理的人数统计系统。
背景技术
目前,随着智能技术的不断发展与影响,图像处理、视频监控系统在各个方面得到了广
泛的应用,传统的人工控制方式也正逐步被智能化设备所取代。其中,人数统计系统作为评
估开放或封闭环境中的计数系统,在实际生活应用中具有非常重要的作用。例如,通过对教
室人数进行自动统计能考察各科的出勤率,从而合理的评估教学质量,同时可以帮助同学们
快速选择合适的自习教室。通过对地铁站内进出客流人数的统计,可以方便地铁运营方以及
安保方有效地控制客流,做好应对措施。通过对每路公交车的各个站点、各个时间段的人流
量统计,可以使交通运营者采取最合理的调度制度以及运营模式,给乘客提供最方便、快捷
的服务。
但是,传统的人工计数方式有可能会耗费大量的人力资源,或者造成错误统计,因此,
目前急需一种能够克服人工计数方式劣势的实时自动计数系统。
发明内容
有鉴于此,本发明的目的在于提供一种基于单帧图像处理的人数统计系统,该系统可以
节约大量的人力资源,并且避免了由于人为因素所造成的错误统计,同时,该系统能够达到
实时检测计数效果,很好地克服了人工计数在某些场景下的计数劣势。
为达到上述目的,本发明提供如下技术方案:
一种基于单帧图像处理的人数统计系统,包括离线训练模块和在线检测模块,统计过程
包括以下步骤:
S1:获取应用场景中图像训练集,人工标注正样本(有效的人头图像)和负样本(背景
和其他非人头干扰物图像),构造用于训练Adaboost检测器模型的正负训练样本集;
S2:提取正负样本图像的有关特征离线训练Adaboost检测器模型;
S3:根据步骤S2训练的Adaboost检测器模型检测训练图像集,将检测出来的虚假目标
(非人头当作人头的目标)当作负样本,检测出来的真实目标当作正样本,构造用于训练CNN
(ConvolutionalNeuralNetworks)+SVM(SupportVectorMachine)分类器模型的正负样本
集;
S4:提取步骤S3中正负样本集训练CNN模型,并训练好的CNN模型提取样本的特征
表达,其中该特征表达来源于CNN全连接层的相应输出;然后,采用该特征表达训练SVM
分类器,最终获CNN+SVM分类器模型;
S5:利用训练得到的Adaboost检测器模型,对待统计图像进行第一阶段人头粗检测,获
得疑似人头区域;
S6:利用训练得到的CNN+SVM分类器模型,对第一阶段粗检测获得的疑似人头区域进
行第二阶段识别确认;
S7:利用应用场景中各种先验信息(例如尺寸大小、区域限制等)对检测结果进行后处
理,得到最终的检测结果;
S8:根据最终检测结果,将人数统计结果显示出来。
进一步,在步骤S2中,提取人头正负样本图像特征,采用级联的Adaboost方法离线训
练人头检测器模型,从而保证较高的人头检测率。
进一步,在步骤S4中,根据步骤S3中正负样本图像离线训练CNN+SVM分类器模型;
CNN采用多层网络结构,取全连接层特征向量作为CNN提取到的特征,放入支持向量机
(SVM)进行模型训练,输出即为CNN+SVM分类器模型。
进一步,在步骤S5中,对于输入的待统计图像,进行多尺度的遍历整幅图像,并对图像
进行特征提取;将多个子窗口输入到检测器模型中,经过cascade级联检测器,一级级排除非
人头区域,最终得到疑似人头区域,达到第一阶段粗检测的目的。
进一步,在步骤S6中,在第一阶段检测的基础上对测试图像在CNN全连接层提取特征
向量,输入到CNN+SVM分类器模型中,进行第二阶段的人头识别确认。
本发明的有益效果在于:本发明所述系统可以节约大量的人力资源,并且避免了由于人
为因素所造成的错误统计,同时,该系统能够达到实时检测计数效果,很好地克服了人工计
数在某些场景下的计数劣势。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明所述系统的结构示意图;
图2为离线训练Adaboost检测器模型示意图;
图3为Adaboost检测器模型检测阶段示意图;
图4为离线训练CNN+SVM分类器模型示意图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为本发明所述系统的结构示意图,本发明是为了更好地利用已有视频资源,通过人
数统计技术达到实时计数的效果,方便多种场合下的人数统计。我们所提出来的人数统计系
统主要是根据采集到的监控图像或视频,对其图像进行处理,从而将检测出来的人数统计结
果在线显示出来。
如图所示,离线训练模块首先采集应用场景的图像训练集,在训练图像集中提取大量的
人头样本作为正样本,其他不包含人头的区域作为负样本,构造正负样本集。然后根据正负
样本图像提取出来的特征进行Adaboost多级联离线训练得到检测器模型。利用得到的检测器
模型,对训练图像集进行检测,将检测结果提取出来。对Adaboost获得的检测结果进行人工
确认,获得新的人头正负样本集,并把该新的样本集用于离线训练卷积神经网络(CNN)和
SVM分类器模型。在线检测模块利用基于Adaboost的级联检测器对待统计图像执行人头粗
检测,获得疑似人头区域,然后利用CNN+SVM分类器对疑似人头区域进一步进行识别确认,
最后利用应用场景中各种先验信息对检测结果进行后处理,得到最终的检测结果。
本技术方案具体包括以下步骤:
步骤S1:本发明首先获取丰富的应用场景的图像训练集,从训练图像集中人工选取人头
作为训练的正样本,正样本尺寸归一化到N×N大小,例如24×24。从训练图像中搜集非人头
的图像作为负样本,负样本尺寸为大于正样本尺寸的任意大小,构造正负样本集。
步骤S2:离线训练阶段如图2所示:首先提取正负样本图像的方向梯度直方图(Histogram
ofOrientedGradient,HOG)特征,它是一种特征描述子,用于描述人头特征和非人头特征。
通过计算图像局部区域的梯度大小梯度方向,根据其大小与方向构成直方图,最后得到特征
向量。因为每一块图像区域的梯度方向直方图是不一样的,所以其特征也就不同。然后采用
Adaboost分类算法学习多个弱分类器,最后将多个分类器按照层叠的方式构成一个级联结构
的分类检测器。
AdaBoost分类算法,它是一种自适应的迭代算法。它的自适应在于:经过前一个基本分
类器分错后的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,
在每一轮中加一个新的弱分类器,直到达到某个预订的足够小的错误率或者达到预订的最大
迭代次数为止。该算法本身是一个弱分类算法的提升过程,该算法能通过多个弱分类器加权
得到强分类器,这个过程通过不断的训练,提高对数据的分类能力。Adaboost的目的就是从
训练数据中学习一系列弱分类器或基本分类器,然后将这些弱分类器组成一个强分类检测器。
CASCADE算法带有层叠、级联的意思,它通过几个强分类器按照层叠的方式强强联手
构成一个多层结构的分类检测器。这样的检测器在每一层设定一个阈值,筛选剔除非人头的
子窗口,保留出可能有人头的子窗口,如此一来,既降低了人头检测的复杂度,又提高了检
测率。在这种多层结构的前几层,是几个简单的分类器,其负责筛选出非人头窗口,减少后
续的计算量。而后面的几层则是降低检测器的虚警率,从而得到一个分类效果最佳的检测器。
在实际训练中,特别是到后面几级训练时,当级联层数少时检测率高但是虚警率高,当级联
层数多时虚警率低但是检测率也下降了。所以对于级联的层数选择需要折中考虑,本系统要
求尽量保证较高的准确率。对于虚假目标可以通过基于CNN+SVM模型分类器排除。
步骤S3:利用Adaboost检测器模型检测训练图像,检测过程如图3所示:
(1)、输入样本集图像,多尺度遍历整幅图像,产生多个子窗口,并进行HOG特征提
取。
(2)、将所有子窗口的HOG特征向量输入到Adaboost检测器模型中,经过cascade级联
检测器,一级级排除非人头区域,最终得到人头区域,达到检测的目的。
步骤S4:将检测结果中非人头虚假目标当作负样本,检测出来的真实目标当作正样本,
再次构造正负样本集,用于训练卷积神经网络(CNN)和SVM分类器模型。
步骤S5:卷积神经网络的训练过程如图4训练部分所示:
(1)前向传播阶段:
1)从样本集中选取正负样本作为卷积神经网络的输入;
2)将样本尺寸归一化到N×N大小,例如28×28,正样本标记为1,负样本标记为0或-1,
对所有样本的R、G、B值预处理求均值,每个样本的R、G、B值减去均值即为样本的初始
化图像矩阵;
3)对每张图像进行n次卷积和下采样操作,首先用多个滤波器去卷积输入的图像矩阵,
输入的样本矩阵被映射到高维空间,然后对高维空间的特征映射下采样降维,其中,下采样
输出的特征映射图数目不会变化,只有尺寸大小的变化;
4)通过CNN全连接层,得到CNN的输出特征向量,把该特征向量作为Softmax分类器
的输入特征,得到样本的输出值。
(2)反向传播阶段:
1)首先计算前向传播阶段从第二层卷积层到最后一层的各节点的激活值;
2)在最后输出层计算输出值与相应的理想输出值之间的残差,同样计算隐藏层各节点的
残差;
3)按梯度下降法极小化残差,反向传播调整CNN卷积神经网络权值参数。
(3)训练CNN+SVM分类器模型:
待参数调整后,再次取全连接层输出的特征向量作为支撑向量机(SVM)的输入,同样
正样本标记为1,负样本标记为0或-1,训练得到CNN+SVM分类器模型。
步骤S6:对待统计图像按照步骤S3进行第一阶段粗检测,保证有较高的检测率。检测
过程如下:
(1)、输入待统计的图像,多尺度遍历整幅图像,产生多个子窗口,并进行HOG特征
提取。
(2)、将所有子窗口的HOG特征向量输入到Adaboost检测器模型中,经过cascade级联
检测器,一级级排除非人头区域,得到人头大致区域。
步骤S7:得到人头疑似区域以后,对这些疑似人头区域进行第二阶段识别确认,对于疑
似人头图像同样经过提取CNN全连接层特征向量,用CNN+SVM分类器模型对特征向量进
行检测,降低检测中的虚假目标。
步骤S8:利用应用场景中各种先验信息(例如尺寸大小、区域限制、删除重叠框等)对
检测结果进行后处理,可以排除一些兴趣区域外的目标或者明显不是人头的目标,得到最终
的检测结果。
步骤S9:根据检测结果将人数统计信息显示出来。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述
优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和
细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。