首页> 中国专利> 一种基于时空上下文的人流量统计方法

一种基于时空上下文的人流量统计方法

摘要

本发明公开了一种基于时空上下文的人流量统计方法,包括以下步骤:对灰度序列G中的每一帧图像,借助sobel算子及帧间差分法提取膨胀后的运动边缘,在膨胀后的运动边缘处进行基于HOG特征的人头目标检测,从而得到初步检测目标队列head_list,根据空间约束将虚假目标从队列head_list中删除,将head_list中的目标与之前所有帧中检测出来的最终目标进行灰度互相关关联匹配,对统计队列people_list中的目标进行跟踪,对统计队列people_list中的目标位置进行更新,对统计队列people_list中的目标进行统计。由于加入了时间和空间信息,本发明能够在保证高检测率的同时,有效地减少虚假目标的数量,准确性高,能进行实时视频处理,能对图像的几何及光学形变都能保持良好的不变性,故使得本方法鲁棒性好。

著录项

  • 公开/公告号CN103577832A

    专利类型发明专利

  • 公开/公告日2014-02-12

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201210268099.4

  • 申请日2012-07-30

  • 分类号G06K9/62;

  • 代理机构华中科技大学专利中心;

  • 代理人朱仁玲

  • 地址 430074 湖北省武汉市洪山区珞瑜路1037号

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-17

    未缴年费专利权终止 IPC(主分类):G06K9/62 授权公告日:20160525 终止日期:20190730 申请日:20120730

    专利权的终止

  • 2016-05-25

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):G06K9/62 申请日:20120730

    实质审查的生效

  • 2014-02-12

    公开

    公开

说明书

技术领域

本发明属于模式识别技术领域,更具体地,涉及一种基于时空上下文的人流量统计方法。

背景技术

随着经济的快速发展,对行人或客流进行统计显得尤为重要。首先它是一项重要的市场研究手段,是国外几乎所有大型商场和连锁商业网点在进行市场和管理决策前都必须进行的环节。此外,人流量统计系统可同时应用到机场或地铁等场所,提取的行人数量,可以为制定相应的策略提供重要依据。

人流量统计所涉及的目标识别及目标跟踪一直是模式识别领域中的热点,现有的提取运动目标的方法有以下几种:

(1)帧间差分法,其通过连续两帧灰度图像相减后阈值化,求得差分图像,找出运动的点。该方法的不足在于对环境噪声较为敏感,阈值的选择尤为重要,选择的阈值过低可能会引入大量噪声,选择的阈值过高又可能会丧失有用的信息。对于颜色一致的运动目标,有可能在目标内部产生空洞,无法完整地提取运动目标;(2)光流法,其在适当的平滑性约束条件下,根据图像序列的时空梯度估算运动场,通过分析运动场的变化对运动目标和场景进行检测与分割。光流法不需要预先知道场景的任何信息,就能够检测到运动对象,可处理背景运动的情况,但噪声、多光源、阴影和遮挡等因素会对光流场分布的计算结果造成严重影响;而且光流法计算复杂,很难实现实时处理;(3)背景建模法,通过建立背景模型,用图像和背景模型相减后阈值化提取运动的前景,该方法的不足之处在于:对光照变化敏感,无法适应光照变化剧烈的场景;背景中存在的细微的运动及目标的阴影会对前景目标检测产生影响。

发明内容

针对现有技术的缺陷,本发明的目的在于提供一种基于时空上下文约束的人流量统计方法,旨在解决现有方法中存在的准确率低、处理速度慢、鲁棒性差等问题。

为实现上述目的,本发明提供了一种基于时空上下文约束的人流量统计方法,包括以下步骤:

(1)提取灰度序列G膨胀后的运动边缘,具体包括以下子步骤:

(1-1)初始化图像pCur、psPre、pPre、psCur、pDiff和pEro、以及统计队列people_list为空,初始化变量up、dw为0,其中dw为统计的向下走的人数,up为统计的向上走的人数;

(1-2)获取视频序列F,并设置计数器k=1,读入视频序列F的第k帧图像Fk,首先将其转为灰度图像Gk,保存Gk到图像pCur,用sobel算子对Gk处理,处理后的结果保存到psCur;

(1-3)初始化队列head_list为空,设置计数器k=k+1,读入第k帧图像Fk,将pCur复制到pPre,并将psCur复制到psPre,将Fk对应的灰度图像Gk保存到pCur,sobel算子对Gk处理后得到的图像保存到psCur;

(1-4)将psCur图像和psPre图像对应像素点作差,并将差值保存在pDiff图像中,若此差值大于100,则将pDiff图像中相同位置处的像素点的像素值设置为255,否则将其像素值设置为0,由此得到二值图像pDiff,该二值图像中的白点可认为是运动目标的边缘;

(1-5)对二值图像pDiff进行膨胀;

(2)在膨胀后的运动边缘进行目标检测,具体包括以下子步骤:

(2-1)用滑动方形窗口Tu(u=0,1,2)扫描图像pCur,方形窗口Tu的左上顶点在图像pCur中的坐标记为(i,j),pCur图像的左上角点为坐标原点,Tu大小为检测尺度,其尺度大小即为图像中目标的大小,i和j初始化为0,即对应图像的原点坐标;

(2-2)判断pEro图像在坐标(i,j)处的像素是否为0,若为0,转向步骤(2-3),否则,计算图像pCur中方形窗口Tu内的HOG特征,将HOG特征放到SVM分类器进行分类,并将方形窗口Tu中分类分值最大的且被判为是人头的目标加入head_list队列,该队列中存放的目标称为检测目标,并转向步骤(2-3);

(2-3)水平向右滑动方形窗口Tu达3个像素,即设置i=i+3,并判断i+30是否大于图像pCur的图像宽度,若是则转向步骤(2-4);否则返回步骤(2-2);

(2-4)判断j+30是否大于图像pCur的图像高度,若是则停止,转向步骤(3);否则设置j=j+3,i=0,然后返回步骤(2-2);

(3)删除队列head_list中的虚假目标,具体包括以下子步骤:

(3-1)根据队列head_list中的重叠目标选择最终目标,具体而言,选择人头中心位置最靠上的作为最终目标,并将与该人头重叠的其它人头删除;

(3-2)在空间上对队列head_list中的最终目标进行二次验证;

(4)将head_list中最终目标与之前所有帧中检测出来的最终目标(存放在统计队列people_list中),具体包括以下子步骤:

(4-1)判断统计队列people_list是否为空,如果为空则将head_list里的目标全部压入到统计队列people_list,队列people_list中的每个目标的出现帧数初始化为0,并返回步骤(1-2),否则转向步骤(4-2);

(4-2)对于统计队列people_list中的每个目标,首先判断队列head_list中是否有和该目标相近的检测目标,这里相近指得是二者中心点的欧氏距离的平方小于阈值1000,若有,在相近的检测目标中,找出与该目标之间的灰度互相关数值最小的一个,假定为u,并记下两者之间的灰度互相关数值的大小,及与之匹配的目标u的下标。以同样的方法,记录people_list中和队列head_list中每个目标相匹配的统计目标的下标。

(5)对统计队列people_list中的目标进行跟踪;

(6)对统计队列people_list中的目标位置进行更新,具体包括以下子步骤:

(6-1)对于统计队列people_list中的每个目标,判断队列head_list中是否有和该目标相互匹配的检测目标,若有,则判断该检测目标与该目标之间的灰度互相关数值是否小于阈值90,若满足,则保存目标的中心位置到其运动轨迹数组,并用检测目标的位置对该目标的位置进行更新,目标出现帧数加1,转向步骤(6-3);否则转向(6-2);

(6-2)判断该目标是否已经出现两帧或以上,且匹配的跟踪区域和原来的目标区域之间的灰度互相关数值是否小于70,若是,则保存目标的中心位置到其运动轨迹数组,并用该匹配的跟踪位置对此目标位置进行更新,否则此目标位置不更新,目标出现帧数加1,并转向步骤(6-3);

(6-3)对于队列head_list中的每个目标,如果统计队列people_list中没有目标与其相匹配,则该目标被认为是新目标,加入到统计队列people_list中;

(7)对统计队列people_list中的目标进行统计。

步骤(5)是采用高斯加权的均值漂移方法对统计队列people_list中的目标进行跟踪。

步骤(7)具体为:对于统计队列people_list中的每个目标,对得到的该目标的运动轨迹进行分析,判断该目标是从上向下走并跨线还是从下向上走并跨线,若是从上向下走并跨线,则统计的向下走的人数Dw=Dw+1;否则统计的向上走的人数Up=Up+1,判断完毕,返回步骤(1-3)。

步骤(1-5)具体为:实现过程为:使用结构元素B(大小为7pixel*12pixel,中心点在(0,0)点),使用B的中心点和pDiff上的点pi一个一个的对,如果B覆盖的pDiff区域中有白点,则pi为白点,对pDiff膨胀后的结果保存到pEro。

通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:

1、由于加入了时间和空间信息,能够在保证高检测率的同时,有效的减少检测出的虚警数量,故方法准确性高;

2、由于本发明只在运动目标的边缘位置处进行特征提取,故方法处理速度快,能进行实时视频处理;

3、由于方法采用的人头的HOG特征,该特征能对图像的几何及光学形变都能保持良好的不变性,故使得方法鲁棒性好。

附图说明

图1是本发明基于时空上下文约束的人流量统计方法的流程图。

图2(a)和(b)分别是实例中灰度序列G的前、后两帧图像,图2(c)是二者对应的sobel图像差分并阈值化得到的二值图像。

图3是对图2(c)膨胀后的结果。

图4(a)是未采用此发明之前的目标检测结果,图4(b)是采用此发明之后的目标检测结果。

图5(a)是人头跨线之前的计数状态,图5(b)是未采用此发明得到的计数结果,图5(c)是采用此发明之后得到的计数结果。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实例仅仅用以解释本发明,并不用于限定本发明。

以下首先对本发明用到的术语进行解释和说明。

HOG:Histograms Of Oriented Gradient,即方向梯度直方图描述子。它的思想是:在一副图像中,局部目标的表象和形状(appearance andshape)能够被梯度或边缘的方向密度分布很好地描述。具体的实现方法是:首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。为了提高性能,我们还可以把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。

SVM分类器:Support Vector Machine,即支撑向量机,SVM分类器是机器学习中常用的一种分类器,经过其分类的结果,可以判定选定的区域是人头,或者不是人头。

sobel算子:该算子是根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。在实现过程中,它通过3*3的模板作为核与图像中的每个像素点做卷积和运算,选取合适的阈值来提取边缘。

膨胀:是将与物体接触到的所有背景点合并到该物体中,使边界向外扩张的过程。

本发明的方法具体包括以下步骤:

(1)提取灰度序列G膨胀后的运动边缘,具体包括以下子步骤:

(1-1)初始化图像pCur、psPre、pPre、psCur、pDiff和pEro、以及统计队列people_list为空,初始化变量Up、Dw为0,其中Dw为统计的向下走的人数,Up为统计的向上走的人数;

(1-2)获取视频序列F,并设置计数器k=1,读入视频序列F的第k帧图像Fk,首先将其转为灰度图像Gk,保存Gk到图像pCur,用sobel算子对Gk处理,处理后的结果保存到psCur;

(1-3)初始化队列head_list为空,设置计数器k=k+1,读入第k帧图像Fk,将pCur复制到pPre,并将psCur复制到psPre,将Fk对应的灰度图像Gk保存到pCur,sobel算子对Gk处理后得到的图像保存到psCur;

(1-4)将psCur图像和psPre图像对应像素点作差,并将差值保存在pDiff图像中,若此差值大于100,则将pDiff图像中相同位置处的像素点的像素值设置为255,否则将其像素值设置为0,由此得到二值图像pDiff,该二值图像中的白点可认为是运动目标的边缘,此效果图见图2,(a)图为序列G中当前帧的上一帧图像,(b)图为序列G中的当前帧图像,(c)图即为图(b)的sobel图像与图(a)的sobel图像作差后阈值化得到的二值图像;

(1-5)对二值图像pDiff进行膨胀,实现过程为:使用结构元素B(大小为7pixel*12pixel,中心点在(0,0)点),使用B的中心点和pDiff上的点pi一个一个的对,如果B覆盖的pDiff区域中有白点,则pi为白点。对pDiff膨胀后的结果保存到pEro。对图2中(c)图膨胀后的结果见图3。

(2)在膨胀后的运动边缘处进行目标检测,结合实例来说,通过图3得到白点位置,然后在相应的灰度图像中的这些位置进行目标检测,此方法有效的避免了在整幅图中进行目标检测而导致的时间浪费。具体而言,本步骤包括以下子步骤:

(2-1)用滑动方形窗口Tu(u=0,1,2)扫描图像pCur,方形窗口Tu的左上顶点在图像pCur中的坐标记为(i,j),pCur图像的左上角点为坐标原点,Tu大小为检测尺度,其尺度大小即为图像中目标的大小,这里T0,T1,T2的大小分别为22pixel*22 pixel,26pixel*26 pixel,30pixel*30pixel,i和j初始化为0,即对应图像的原点坐标;

(2-2)判断pEro图像在坐标(i,j)处的像素是否为0,若为0,转向步骤(2-3),否则,计算图像pCur中方形窗口Tu内的HOG特征,将HOG特征放到SVM分类器进行分类,并将方形窗口Tu中分类分值最大的且被判为是人头的目标加入head_list队列,该队列中存放的目标称为检测目标,并转向步骤(2-3);

(2-3)水平向右滑动方形窗口Tu达3个像素,即设置i=i+3,并判断i+30是否大于图像pCur的图像宽度,若是则转向步骤(2-4);否则返回步骤(2-2);

(2-4)判断j+30是否大于图像pCur的图像高度,若是则停止,转到步骤(3);否则设置j=j+3,i=0,然后返回步骤(2-2);

(3)删除队列head_list中的虚假目标,具体包括以下子步骤:

(3-1)从队列head_list中的重叠目标中选择最终目标,由于滑动窗口每次滑动三个像素,就有可能导致同一个人头被判为不同的目标。具体而言,选择人头中心位置最靠上的作为最终目标,并将与该人头重叠的其它人头目标删除。

(3-2)在空间上对队列head_list中的最终目标进行二次验证,这里采用的策略主要依据是运动的人头目标对应的肩膀位置也应该有运动信息,即若人头目标对应的左右肩膀区域中,有一个区域内无运动信息,则认为此人头目标为虚假目标。具体而言,对于head_list队列中的每个目标,假设其中心点在pCur图像中的坐标为(x0,y0),目标的宽度和高度分别为w、h,在pDiff图像中建立矩形框T3、T4,二者大小和目标大小相同,分别对应人头目标的左肩膀区域和右肩膀区域,T3左上角点的横坐标设置为x0-1.5*w-5,纵坐标设置为y0-h,T4左上角点的横坐标设置为x0+1.5*w+5,纵坐标设置为y0-h,若pDiff图像中矩形框T3、T4区域内均有白点,才认为此目标存在对应的运动肩膀信息,否则将其作为虚假目标,从head_list队列中删除。该二次验证过程的效果图如图4所示,由图(a)可见,黑色框框出的即由分类器分类后得到的检测目标,可见分类器会将膝盖等区域误判为人头目标,导致一个人身上出现多个框,造成误检,本发明加入了空间信息后,有效的去除了此类虚假目标,效果见图(b)。

(4)将head_list中最终目标与之前所有帧中检测出来的最终目标(存放在统计队列people_list中)进行关联匹配,具体包括以下子步骤:

(4-1)判断统计队列people_list是否为空,如果为空则将head_list里的目标全部压入到统计队列people_list,队列people_list中的每个目标的出现帧数初始化为0,并返回步骤(1-2),否则转向步骤(4-2);

(4-2)目标之间的关联匹配策略如下:

对于统计队列people_list中的每个目标,首先判断队列head_list中是否有和该目标相近的检测目标,这里相近指得是二者中心点的欧氏距离的平方小于阈值1000,若有,在相近的检测目标中,找出与该目标之间的灰度互相关数值最小的一个(灰度互相关的确定方法已在中国专利201010122671.7中予以披露),假定为u,并记下两者之间的灰度互相关数值的大小,及与之匹配的目标u的下标。以同样的方法,记录people_list中和队列head_list中每个目标相匹配的统计目标的下标。

(5)对统计队列people_list中的目标进行跟踪;

这里使用高斯加权的均值漂移方法对统计队列people_list中的目标进行跟踪。对于people_list中的每个目标,由其在图像pPre中的区域位置,跟踪后得到其在图像pCur中的区域位置,并记录两帧图像中的两个区域之间的灰度互相关数值。

(6)对统计队列people_list中的目标位置进行更新,具体包括以下子步骤:

(6-1)对于统计队列people_list中的每个目标,判断步骤(4-2)中是否记录与此目标匹配的检测目标的下标,若有,则判断该检测目标区域与此目标区域之间的灰度互相关数值是否小于阈值90,若满足,则保存目标的中心位置到其运动轨迹数组,并用此检测目标的位置对该目标的位置进行更新,目标出现帧数加1,转向步骤(6-3),否则转向(6-2);

(6-2)判断该目标是否已经出现两帧或以上,且匹配的跟踪区域和原来的目标区域之间的灰度互相关数值是否小于70,若是则保存目标的中心位置到其运动轨迹数组,并用跟踪到的区域位置对此目标位置进行更新,目标出现帧数加1,否则此目标位置不更新,并转向步骤(6-3);

此处对目标出现至少两帧的限制,即通过时间上的约束,减少了只检测出一帧的虚假目标。若不加此限制,由于跟踪算法总会找到目标的下一个位置,这就可能导致虚假目标的位置不断通过跟踪的位置更新而被计数,此策略结合步骤(3),对人头目标进行统计的效果见图5,(a)为人头目标未跨线前的计数状态,(b)中显示的是未使用此发明的计数结果,目标被计数后用白框框出,可见只有一个人头跨线,却被计数两次,(c)中显示的是使用此发明后的计数结果,实现了准确的计数。

(6-3)对于队列head_list中的每个目标,如果统计队列people_list中没有目标与其相匹配,则该目标被认为是新目标,加入到统计队列people_list中。

(7)对统计队列people_list中的目标进行统计,具体为:对于统计队列people_list中的每个目标,通过该目标的运动轨迹数组中的数值,对目标进行轨迹分析,判断它是从上向下走并跨线还是从下向上走并跨线,若是从上向下走并跨线,则统计的向下走的人数Dw=Dw+1;否则统计的向上走的人数Up=Up+1;判断完毕,返回步骤(1-3)。

本发明可以准确提取行人数量,为各应用场所制定策略提供必要的依据。加入的去虚警策略,使方法适应性增强。此外,提取运动点检测的方式也保证了检测的实时性。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号