一种复杂场景下的人数统计方法与流程

文档序号:13761199阅读:210来源:国知局
本发明涉及一种复杂场景下的人数统计方法。
背景技术
:人数统计一直是监控系统中的热门话题,使用单目相机对场景内的行人人数进行统计有很多的技术难点,在简单场景下可以很好统计出人数,可在十分复杂场景下,由于遮挡和伪目标的影响,并不能很精确地统计出场景的人数,同时,在单目相机下并没有非常稳定的行人特征可以利用,光线的变化等诸多原因,也造成人数统计的精确度偏低;基于双目相机或者基于RGB-D相机可以很好地解决上面带来的影响,由于双目相机或者RGB-D相机可以获得当前场景内的深度信息,而行人在空间中有非常稳定的特征,那么可以使用空间信息,来识别行人,最初RGB-D主要用在室内娱乐,随着RGB-D相机成本的降低,其在视频监控领域也有着越来越广泛的应用。技术实现要素:针对上述现有技术中存在的问题,本发明的目的在于,提供一种复杂场景下的人数统计方法,该方法能够精确的统计出行人人数。为了实现上述目的,本发明采用如下技术方案:一种复杂场景下的人数统计方法,包括以下步骤:步骤一,在复杂场景中架设相机,对相机进行标定,计算相机的参数矩阵;步骤二,利用相机对包含人体目标的复杂场景进行拍摄,获取多幅深度图;针对每幅深度图采用如下方法进行处理:获取深度图对应的俯视图;针对俯视图进行去背景操作得到前景图片,针对前景图片进行分块操作得到分块后的图片,针对分块后的图片进行寻找局部最大区域操作得到局部最大区域集合,针对局部最大区域集合进行扩展局部最大区域操作得到扩展后的局部最大区域集合,针对扩展后的局部最大区域集合进行过滤矩形框处理,得到包含有多个元素的矩形框集合;提取矩形框集合中的每个元素的属性,将每个元素的属性形成一个集合V;步骤三,利用所有的集合V训练形成分类器;步骤四,重复步骤二,重新对步骤二中的复杂场景进行拍摄,得到多个集合V',相机拍摄得到的每幅深度图对应一个集合V',针对每个集合V',将其输入到分类器内,分类器分别输出集合V'中的每个元素分类为人头的概率,若某元素对应的概率大于设定值,则将该元素确定为人头,得到集合V'中的人头数目,即该幅深度图中的人头数目;针对所有的深度图得到每幅深度图中的人头数目,即人体目标数目。具体地,步骤二中的针对每幅深度图分别获取深度图对应的俯视图,以一幅深度图获取该深度图对应的俯视图为例,采用的公式如下:xGyG=p11-p31xp12-p32xp21-p31yp22-p32y-1p34x-p14p34y-p24]]>sin(θ)=Hc/xG2+yG2+Hc2]]>len=m*rzP=Hc-len*sin(θ)xp=xG(1-zpHC)yp=yG(1-zpHC)]]>其中,θ为深度图上经过P(xp,yp,zp)点的对应射线与地平面的夹角;G(xG,yG,0)为过P点的斜线与地平面的交点;HC为相机高度;m(0<m<D)为P点在深度图中的深度值,其中D为用户设定的最大像素值;r为单位深度值所对应的世界空间中的距离;利用以下公式得到俯视图I:u=rxxp+dxv=ryyp+dyI(u,v)=zp]]>其中,(u,v)表示深度图上的点P对应的俯视图I中的像素点,I(u,v)表示像素点(u,v)处的像素值;针对深度图中的每一个点,得到该点对应的俯视图中的像素点和该像素点处的像素值,所有的像素值形成俯视图I。具体地,所述步骤二中的针对俯视图进行去背景操作得到前景图片,采用的公式如下:其中,δF为用户设定的用于提取前景的阈值,IF(u,v)表示前景图片IF中像素点(u,v)处的像素值,Ib(u,v)为背景图Ib在像素点(u,v)位置处的像素值。具体地,所述步骤二中的针对前景图片进行分块操作得到分块后的图片,采用的公式如下:IB(x,y)=Σu=wbxwbx+wbΣv=wbywby+wbIF(u,v)wb2]]>其中,IF(u,v)为前景图片IF坐标为(u,v)的像素值,IB(x,y)为图片IB在像素点(x,y)位置处的像素值,划定的块的大小为wb×wb。具体地,所述步骤二中的针对分块后的图片进行寻找局部最大区域操作得到局部最大区域集合,具体包括以下步骤:针对图片IB上的像素点(x,y),查找该像素点周围的的八个像素点,如果该像素点对应的像素值比八个像素点对应的像素值都要大,将该像素点放入局部最大区域集合SL中,利用SL(i)表示SL的成员,且SL(i)=(ui,vi,di),(ui,vi)表示该像素点,di为像素点(ui,vi)在图片IB中的像素值。具体地,所述步骤二中的针对局部最大区域集合进行扩展局部最大区域操作得到扩展后的局部最大区域集合,具体包括以下步骤:针对局部最大区域集合SL的每个元素SL(i),寻找SL(i)在前景图片IF中对应的像素位置,采用的公式为:xi=uiwb+wb2yi=viwb+wb2zi=di]]>其中,(xi,yi)是SL(i)对应于前景图片IF中的位置;令SS(i)=(xi,yi,zi),(xi,yi)表示SL(i)对应于前景图片IF的像素点,得到集合SS,SS(i)为集合SS的元素;针对SS中的每个成员SS(i)=(xi,yi,zi),以SS(i)为种子,利用种子填充法,向外扩展,扩展的条件为:若则使用一个矩形框SE(i)=(ui,vi,Hi,Wi,zi)框选中所有满足条件的像素点,其中(ui,vi)为矩形框左上角点,(Hi,Wi)为矩形框的高和宽,zi为原始像素值,δE为规定的阈值,形成一个扩展后区域的集合SE,SE(i)为集合SE的元素。具体地,所述步骤二中的针对扩展后的局部最大区域集合进行过滤矩形框处理,得到包含有多个元素的矩形框集合,包括以下步骤:采用两个过滤条件对集合SE中的元素进行过滤:(1)若元素SE(i)符合以下条件:则将该元素删除;(2)若两个矩形框SE(i)=(ui,vi,Hi,Wi,zi)和SE(j)=(uj,vj,Hj,Wj,zj),满足则判定SE(i)和SE(j)重合,如果重合,则保留zi和zj较大的矩形框;将保留下的矩形框形成矩形框集合SF,矩形框集合SF中的元素为SF(i)。具体地,所述集合V中的元素为V(i)=(L,H,W,Nn,R,SH,SV,DA,DB,DC),其中,L为标记结果,H,W为SF(i)的长和宽,Nn为非零像素个数,R为非零像素比例,SH,SV为水平对称率和垂直对称率;DA,DB,DC为不同阈值时,矩形框与原始矩形框的比率。与现有技术相比,本发明具有以下技术效果:本发明的方法可以有效锁定人头,由于人头在俯视图下稳定的特点,本方法可以有效的利用训练的分类器,去除场景中的伪目标,可以实时地、精确地对场景内的人数进行统计。附图说明图1是本发明方法的流程图;图2是世界坐标系建立示意图;图3是局部最大区域示意图;图4是SF绘制至IF的结果图;图5是非零像素比率图;图6是垂直对称率和水平对称率示意图;图7是δE调节后的锁定区域;图8是相机安装位置示意图;图9是使用标定支架进行标定示意图;图10是使用灭点法获得标定点示意图;图11是深度图;图12是俯视图;图13是目标锁定示意图;其中,(a)表示前景图片,(b)表示块化后的图片,(c)表示局部最大区域,(d)表示扩展后的局部最大区域,(e)表示过滤后的矩形框;图14是人工标记示意图;图15是高斯混合模型;其中,(a)表示负样本的宽高分布直方,(b)表示正样本的宽高分布直方,(c)表示负样本的高斯混合模型概率,(d)表示正样本的高斯混合模型概率;图16是SVM测试结果图。下面结合附图和具体实施方式对本发明的方案做进一步详细地解释和说明。具体实施方式本发明的复杂场景下的人数统计方法,参见图1,具体包括以下步骤:步骤一,对相机进行标定,计算相机的参数矩阵P;步骤1.1,将相机安装在复杂场景的上方,相机的安装高度为HC,建立相机坐标系,相机坐标系的X轴平行于复杂场景的地面。复杂场景指的是公交站台、公共场所、扶梯等场景。步骤1.2,建立世界坐标系。选定相机与地面的垂足为世界坐标系的原点,世界坐标系的X轴平行于相机坐标系的X轴,世界坐标系的Y轴在地面处,指向相机照射的方向,世界坐标系的Z轴垂直于地面,如图2所示。步骤1.3,对相机进行标定。使用标定支架,选定N(N≥6)组图像坐标和与之对应的世界坐标:使用下述公式计算相机的参数矩阵P:P=p11p12p13p14p21p22p23p24p31p32p33p34=(VTV)-1VTu---(1)]]>其中,步骤二,利用相机对包含人体目标的复杂场景进行拍摄,获取多幅深度图;针对每幅深度图分别获取深度图对应的俯视图;针对每幅俯视图分别进行去背景、块化、寻找局部最大区域、扩展局部最大区域和过滤矩形框处理,得到多个矩形框集合SF;提取每个矩形框集合SF中的元素SF(i)的属性,将元素SF(i)的属性形成一个集合V,每个矩形框集合SF均形成一个集合V;具体包括以下步骤:步骤2.1,相机对复杂场景进行拍摄,若相机采用RGBD相机,则相机拍摄得到一段视频图像,该段视频图像包括多幅深度图,若相机采用双目相机,在两个相机分别架设在复杂场景的两侧,针对两个相机分别拍摄得到的视频图像,利用OpenCV的SGBM类获得多幅深度图;步骤2.2,针对每幅深度图分别获取其对应的俯视图,具体包括以下步骤:参见图4,深度图中的深度值代表的是世界坐标空间中的点,如点P到摄像机的距离len,即图中小直角三角形斜边的长度,我们根据世界坐标系下物体的几何关系可得如下公式:xGyG=p11-p31xp12-p32xp21-p31yp22-p32y-1p34x-p14p34y-p24---(2)]]>sin(θ)=Hc/xG2+yG2+Hc2---(3)]]>len=m*r(4)zp=Hc-len*sin(θ)xp=xG(1-zpHC)yp=yG(1-zpHC)---(5)]]>其中,θ为深度图上经过P点的对应射线与地平面的夹角;G(xG,yG,0)为过P点的斜线与地平面的交点;HC为相机高度;m(0<m<D)为P点在深度图中的深度值,其中D用户设定的最大像素值;r为单位深度值所对应的世界空间中的距离。得到P点的坐标以后,对P点进行缩放和平移,使其位于俯视图I的中央,则:u=rxxp+dxv=ryyp+dyI(u,v)=zp---(6)]]>其中,(u,v)表示点P对应的俯视图I中的像素点,I(u,v)表示像素点(u,v)处的像素值,其中(rx,ry)为对点P的(xp,yp)的缩放系数,(dx,dy)为对点P的(xp,yp)平移系数。针对深度图中的每一个点,得到该点对应的俯视图中的像素点和该像素点出的像素值,所有的像素值形成俯视图I。针对所有的深度图均采用上述方法得到所有的俯视图Ii,i∈[1,M],M表示得到的俯视图的幅数。选取N(N≥50)幅俯视图Ii(i∈[1,50]),利用平均值法求取背景图Ib,所采用的公式如下:Ib(x,y)=Σi=1NΣx=0WΣy=0HIi(x,y)N---(7)]]>其中,H为俯视图的长度,W为俯视图的宽度,Ib(x,y)为背景图Ib在像素点(x,y)位置处的像素值,即可求得背景图Ib。步骤2.3,针对步骤二得到的每幅俯视图Ii,i∈[1,M],分别进行去背景、块化、寻找局部最大区域、扩展局部最大区域和过滤矩形框处理,得到多个矩形框集合SF,针对一副俯视图I的处理过程如下:去背景:针对俯视图I,采用公式(8)得到前景图片IF:其中,δF为用户设定的用于提取前景的阈值,IF(u,v)表示前景图片IF中像素点(u,v)处的像素值。分块操作:采用大小为wb×wb的块对前景图片IF进行块化,得到图片IB,采用的公式为:IB(x,y)=Σu=wbxwbx+wbΣv=wbywby+wbIF(u,v)wb2---(9)]]>其中,IF(u,v)为前景图片IF坐标为(u,v)的像素值,IB(x,y)为图片IB在像素点(x,y)位置处的像素值。寻找局部最大区域:针对图片IB上的像素点(x,y),查找该像素点周围的的八个像素点,如果该像素点对应的像素值比八个像素点对应的像素值都要大,将该像素点放入局部最大区域集合SL中,采用SL(i)表示SL的元素,且SL(i)=(ui,vi,di),(ui,vi)表示该像素点,di为像素点(ui,vi)在图片IB中的像素值。扩展局部最大区域:针对局部最大区域集合SL的每个元素SL(i),寻找SL(i)在前景图片IF中对应的像素位置,采用的公式为:xi=uiwb+wb2yi=viwb+wb2zi=di---(10)]]>其中,(xi,yi)是SL(i)对应于前景图片IF中的位置。令SS(i)=(xi,yi,zi),(xi,yi)表示SL(i)对应于前景图片IF的像素点,可得到集合SS,SS(i)为集合SS的元素。针对SS中的每个成员SS(i)=(xi,yi,zi),以SS(i)为种子,利用种子填充法,向外扩展,扩展的条件为:若|IF(xj,yj)-zi|≤δE,δE为规定的阈值=10,则使用一个矩形框SE(i)=(ui,vi,Hi,Wi,zi)框选中所有满足条件的像素点,其中(ui,vi)为矩形框左上角点,(Hi,Wi)为矩形框的高和宽,zi为原始像素值(即矩形框的空间高度),最后形成一个扩展后区域的集合SE,SE(i)为集合SE的元素。过滤矩形框处理:得到扩展区域后,需要过滤重叠区域和非正常区域,使用两个过滤条件,1.若矩形框SE(i)符合以下条件:则不予保留;2.若两个矩形框SE(i)=(ui,vi,Hi,Wi,zi)和SE(j)=(uj,vj,Hj,Wj,zj),满足则判定SE(i)和SE(j)重合,如果重合,则保留zi和zj较大的矩形框。保留下的矩形框形成矩形框集合SF,矩形框集合SF中的元素为SF(i),至此完成目标锁定任务。针对每幅俯视图分别进行去背景、块化、寻找局部最大区域、扩展局部最大区域和过滤矩形框处理,得到多个矩形框集合SF,参见图3。步骤2.4,针对多个矩形框集合SF分别提取矩形框集合SF中的元素SF(i)的属性,具体实现方法如下;将SF绘制到IF上,如图4所示。通过人工的方法标记出人头和非人头,即正样本和负样本,每次标记,并提取出当前SF(i)的属性,将标记和属性使用向量V(i)=(L,H,W,Nn,R,SH,SV,D20,D30,D40)表示,其中L为标记结果,H,W为SF(i)的长和宽,Nn为非零像素个数,R为非零像素比例,SH,SV为水平对称率和垂直对称率,D20,D30,D40为将δE分别调节至20、30和40后,所形成的矩形框与原始矩形框的比率。下面将逐一介绍这些属性:标记L:L∈{0,1},当L=0是则为非人头,否则为人头;矩形框的长和宽H,W:即SF(i)的(Hi,Wi);非零像素个数和非零像素比率:如图5,在锁定的人头矩形框中像素值为0的像素个数记为Nn,则非零像素比率水平对称率和垂直对称率:如图6所示为锁定的人头矩形框,即SF(i),那么水平对称率是同理可得,垂直对称率为D20,D30,D40:利用步骤三中锁定人头的种子填充方法,将δE分别调节至20、30和40后,所得到的锁定区域,如图7所示,δE=10的时候锁定结果,记其矩形框面积为S10;δE=20的锁定结果,记其矩形框面积为S20;δE=30的锁定结果,记其矩形框面积为S30;δE=40的锁定结果,记其矩形框面积为S40;那么,有最后将V(i)放入集合V中。针对每个集合SF均得到一个集合V。步骤三,利用多个集合V训练分类器。使用多个集合V进行分类器的训练,可以选取其中的部分属性,训练高斯混合模型,作为一分类器,也可以训练SVM或Adaboost作为分类器,或者其他机器学习分类器,此处没有严格限制,这些分类器都在本专利的作用范畴。在实验例程中,将V分为训练样本Vtrain和测试样本Vtest,使用N折叠法进行交叉验证,最后在测试样本中进行测试。至此,完成训练过程。步骤四,重复步骤二,重新对步骤二中的复杂场景进行拍摄,此时的复杂场景中的人体目标和位置发生改变,从而得到多个集合V',相机拍摄得到的每幅深度图对应一个集合V',针对每个集合V',将其输入到分类器内,分类器输出集合V'中的每个元素V'(i)分类为人头的概率pi,若pi>m,m=0.5,则将元素V'(i)确定为人头,得到集合V'中的人头数目,即该幅深度图中的人头数目;最终得到每幅深度图中的人头数目,即人体目标数目。实施例本发明的方法可以应用在多种复杂场景下,比如公交站台、公共场所、扶梯等。在具体实施的过程中,我们选择公交车作为应用的对象,下面将逐一介绍在应用的时候所选用的参数和实验结果。步骤一,架设相机;世界坐标系建立在如图8所示的位置。对相机进行标定,在实验的过程中,我们使用两种方法来获得N(N≥6)组图像坐标和与之对应的世界坐标(以后称为标定点组),第一种方法是使用我们自己制作的标定支架,第二种方法是根据场景中的灭点来获得。在实验中,我们取使用标定支架N=6,如图9所示,是使用标定架进行标定的中间结果;此外,我们还尝试使用场景中的灭点方法来获得标定点组,如图10为灭点方法获得的标定点组;无论哪种方法,其目的都是相同的,就是获得标定点组,当得到标定点组后,我们利用前面介绍的原理,来计算相机的参数矩阵P。步骤二、获取多个集合V获得深度图,分两种情况,如果是RGBD相机,则可以通过OpenNI提供的接口直接获得深度图,如果是双目相机,那么则需要获取左右相机的图片来计算出深度图。我们使用OpenCV的SGBM类获得视差图,即深度图。图11为获得的一帧深度图获得俯视图,我们将相机安装在HC=254处,利用上面介绍的方法,得到如图12所示的结果;目标锁定,分析生成的俯视图I,经过,去背景、块化、寻找局部最大区域、扩展局部最大区域和过滤矩形框,每个步骤的结果如图13。采集N=100张图片提取背景,提取前景的时候,设置δF=10,得到如图13中的(a)所示的结果;在块化的时候,设置wb×wb=5×5,得到图13中的(b)所示的结果;经过寻找局部最大区域后,得到图13中的(c)的结果;在扩展局部最大区域的时候,设置δE=10,得到图13中的(d)所示的结果;在过滤矩形框的时候,设置δH=40,δW=60,我们得到图13中的(e)所示的结果;人工标记,设计一款专门用于标定的软件,方便标记,标记的结果如图16,其中红色的矩形框标记为人头,黄色矩形框标记为非人头,最后提取出训练样本5323个(包括正样本3272个,负样本2051个),测试样本1739个(包括正样本1229个,负样本510个),如图14。步骤三、训练分类器。我们尝试训练两个分类器,其中一个方法是利用样本的H,W训练一个高斯混合模型,如图15所示,(a)为负样本的宽高分布直方图,(b)为正样本的宽高分布直方图,(c)为负样本的高斯混合模型概率图,(d)为正样本的高斯混合模型概率图,最后利用贝叶斯公式可得到指定H,W的概率,即判定是否为人头;另一个方法是训练一个SVM分类器,设置RBF核,经过10折叠法交叉验证后得到最优参数c=9.1896,γ=0.0039063,最后经过测试得到图16的结果。步骤四、识别过程系统在启动的时候,加载训练过程中训练的分类器,然后进行获取深度图、俯视图生成、目标锁定,其过程与训练过程的步骤相同。完成上述步骤后,我们使用SVM分类器进行场景人数的识别。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1