具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
请参图1至图6所示的本发明一种复杂环境下的人数统计方法的一种具体实施方式。
参图2所示,在本实施方式中,为了在更加准确地获取公共区域中某一进出通道中进出的行人数量,首先可将视觉传感器10(如CCD摄像机)设置在需要对行人数量进行统计的出入口20的上方,并通过该视觉传感器10在该出入口20中所覆盖的区域形成一监控区域30。具体的,该监控区域30位于视觉传感器10的下方,并优选为正下方;同时该监控区域30可以为正方形、矩形或其他形状,并优选为矩形;进一步的,该视觉传感器10设置于该监控区域30的中心点301的正上方。
在本实施方式中,行人可沿出入口20中箭头201的方向在出入口20中来回走动,从而被设置在监控区域30顶部的视觉传感器10获取视频流图像,作为输入图像。该视频流图像中包含了需要统计的顾客的人数,也包含了特定人群的数量(例如商场的工作人员)。为了实现对进出商场的客户人数进行更加精确的统计,就需要将进出商场的工作人员(即特定人群)的数量排除。
然后,根据输入图像,通过背景差分法得到运动目标区域。具体的,背景差分法处理具体为:提取出第一帧无运动物体的场景图像作为背景图像,然后利用当前帧图像与背景图像作差分运算以得到差分图像,然后利用当前帧图像与背景图像做背景差分运算,以得到差分图像。该背景差分运算的计算公式为:
Dk(x,y)=Fk(x,y)-B(x,y);
其中,B(x,y)为背景图像中像素点的灰度值、Fk(x,y)为当前帧图像中像素点的灰度值、Dk(x,y)为二者的差分图像。
然后对差分图像进行二值化处理,该二值化处理的运算公式如下所示:
其中,Dk(x,y)为二者的差分图像,Rk(x,y)为差分法处理后所得到的二值图像,M为分割阈值,该M为40。
当Rk(x,y)为0时,该点为背景点;
当Rk(x,y)为1时,该点为前景点即运动物体。
接着,提取出行人区域及行人区域的质心Z(k)。
参图3所示,用矩形窗口40A对运动目标区域进行扫描,以提取出落在矩形窗口40A内的运动目标区域像素点401,然后对提取出的运动目标区域中的像素点401的个数总和Num进行统计,将像素点的个数总和Num与设定阈值P作比较,
若Num大于或等于设定阈值P,提取该运动目标区域中所有像素点作为行人区域;若Num小于设定阈值P,不提取该运动目标区域中的像素点。作为优选的实施方式,该设定阈值P为300。
参图4所示,为了便于实现Kalman滤波器的追踪,需要选取行人区域50的质心。根据提取出的行人区域50的最小外接矩形80的几何中心作为该行人区域50的质心Z(k)。
最后,基于Kalman滤波器的最近邻匹配跟踪法,跟踪行人目标。Kalman滤波是一种递归的估计,即只要获知上一时刻状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值,因此不需要记录观测或者估计的历史信息。配合参照图5所示,Kalman滤波器的操作包括两个阶段:预测与更新。在预测阶段,Kalman滤波器使用上一状态的估计,做出对当前状态的估计。在更新阶段,Kalman滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。
结合图5所示,在本实施方式中,最近邻匹配跟踪法具体为,假设图5中的实线51为在第n帧图像中检测到的行人轮廓50,5A为这个行人轮廓50的质心Z(k);虚线52为在第n+1帧图像中检测到的行人轮廓50,5B为这个行人轮廓50的质心Z(k)。
在图5中,5B点的匹配过程为:首先利用Kalman滤波器估计出5A在下一帧的位置,记为5A’,如图5中圆圈所示。然后计算5B点和5A’之间的欧几里得距离。图5中5B和5A’之间的距离为dBA’,若dBA’≤设定阈值th,则5B点和5A’点匹配成功,即实线51与虚线52为同一个行人在连续帧图像下的位置,并更新Kalman滤波器状态;若dBA’>设定阈值th,则5B点和5A’点匹配不成功,即实线51与虚线52是不同的行人,并不更新Kalman滤波器状态。优选的,该设定阈值th为15。
参图6所示,本具体实施方式中,执行步骤S1:在监控区域30中通过分别设置若干采样点的第一计数线50d和第二计数线50e形成跟踪区域50b。
所述步骤S1中的第一计数线50d和第二计数线50e设置相同数量的采样点。所述步骤S1中的第一计数线50d和第二计数线50e上的采样点之间的距离相等,并将所述第一计数线50d和第二计数线50e等分。
具体的,在监控区域30中设置一条第一计数线50d和一条第二计数线50e,并由该第一计数线50d和第二计数线50e与上述监控区域30共同形成跟踪区域50b。进一步的,可在该第一计数线50d与第二计数线50e上分别设置若干采样点。
参图6所示,矩形区域为步骤S1中的监控区域30;并且,50a、50b、50c三个区域共同构成所述监控区域30,特别的50b为跟踪区域;50d、50e两条线分别为第一计数线和第二计数线;点5A1、5B1、5C1、5D1、5E1为第一计数线50d上的5个平均设置的采样点,点5A2、5B2、5C2、5D2、5E2为第二计数线50e上的5个平均设置的采样点。第一计数线50d和第二计数线50e上设置相同数量的采样点,且每个采样点之间的距离相等。具体的,在本实施方式中,通过该第一计数线50d和第二计数线50e将所述监控区域30平均分割成面积相等的三个区域(即50a、50b、50c)。
在对特定人群服装的色相值H进行采样的时候,需要先让特定人群(例如商场的工作人员)穿着指定的工作服,沿着图6中箭头的方向,多次反复地连续通过该跟踪区域50b,从而被该监控区域30正上方设置的视觉传感器10获取连续的视频流图像。
在本实施方式中,提取特定人群服装的主颜色特征是通过统计行人区域的颜色信息直方图实现的。统计行人区域的颜色信息直方图具体为:对当前帧图像进行RGB颜色空间转换,得到R、G、B三个颜色通道,在各颜色通道上对根据由对特定人群的服装色相进行色相值H进行采样时所获取的行人区域进行直方图统计而得到。
统计行人区域的颜色色相信息直方图具体为:对当前帧图像进行从RGB颜色空间到HSV颜色空间的转换,得到每个像素点R、G、B三个颜色分量所对应的色相值H,该色相值H由根据上述步骤中所提取的行人区域进行色相直方图统计而得到。
HSV是对RGB色彩空间中点的有关系的表示,它们尝试描述比RGB更准确的感知颜色联系,并仍保持在计算上更加简单。从RGB颜色空间到HSV颜色空间的转换的公式为:
υ=max
设其中(r,g,b)分别是一个颜色的红(R)、绿(G)和蓝(B)坐标,它们的值是在0到1之间的实数。设max等价于R、G和B中的最大者。设min等于这些值中的最小者。要找到在HSV空间中的(h,s,v)值,这里的h∈[0,360)是角度的色相角,而s,v∈[0,1]是饱和度和亮度。
在本案中,我们只用到了色相值H,所以对于对特定人群服装的色相值H的提取,我们采用了简单的快速计算公式:
任意一种颜色(R’,G’,B’)的色相计算公式如下所示,Max为三个分量的最大值,Min为三个分量的最小值;
若Max=Min,表示灰度色,此时,H=0。
若Max≠Min,分为两种情况:
当G≥B时,H=(Max-R’+G’-Min+B’-Min)/(Max-Min)×60;
当G<B时,H=360-(Max-R’+G’-Min+B’-Min)/(Max-Min)×60。
在本具体实施方式中,我们以R通道为例进行详细阐述,对行人区域的直方图进行统计。将R通道的行人区域分为16个灰度级,[0,15],[16,31],....,[240,255]表示各灰度级的像素范围,即第1级灰度的像素范围为:[0,15];第2级灰度的像素范围为:[16,31];第16级灰度的像素范围为:[240,255]。R通道第k级灰度的直方图为:
其中,为当前帧图像R通道行人区域灰度级为k的像素个数,即为行人区域的像素值落在第k级灰度像素范围的像素个数,其中:k=1,2,...,16。以此方法依次对行人区域的G通道、B通道进行直方图的统计。
接着,执行步骤S2:对连续通过所述跟踪区域50b的若干连续帧图像中特定人群服装所包含的R、G、B颜色分量所对应的色相值分别统计直方图之和HR、HG、HB。
在本实施方式中,该步骤S2具体为:对连续通过所述跟踪区域的若干连续帧图像中特定人群服装所包含的R、G、B颜色分量从RGB颜色空间转化到HSV颜色空间,然后分别统计R、G、B颜色分量所对应的色相值的直方图之和HR、HG、HB。
以特定人群沿着点5A1、5A2所成的直线出现在监控区域为例,提取特定人群服装的主颜色特征具体为:若首次检测到的特定人群通过第一计数线50d进入跟踪区域50b,对当前第t帧行人区域的R通道颜色信息进行直方图统计,得到:截止当前第t帧,所有出现在跟踪区域50b内的行人区域的R通道颜色信息直方图之和为:
其中,为截止第t-1帧,所有出现在跟踪区域50b内的行人区域的R通道颜色信息直方图之和,其中:k=1,2,...,16。由于当前第t帧是行人区域首次出现在跟踪区域50b内,因此:
为截止当前第t帧,所有出现在跟踪区域50b内的行人区域的R通道颜色信息直方图之和,其中:k=1,2,...,16。
对特定人群进行跟踪,直到特定人群所对应的行人区域的质心Z(k)通过第二计数线50e离开跟踪区域50b时,对当前第T帧行人区域的R通道颜色信息进行直方图统计,得到:则截止当前第T帧,所有出现在跟踪区域内的行人区域的R通道颜色信息直方图之和为:
其中:为截止第T-1帧,所有出现在跟踪区域50b内的行人区域的R通道颜色信息直方图之和,其中:k=1,2,...,16。
为方便计算第一计数线50d、第二计数线50e上其他平均采样点各通道各级灰度的概率,可将各通道颜色信息直方图之和初始化为零,即
接着,执行步骤S3:保存所述直方图之和HR、HG、HB在采样点上色相值级度的概率PR、PG、PB,并存储到计算机文件中。具体的,步骤S3中所述计算机文件包括txt文件或者ini文件,并优选为txt文件。
当特定人群通过进计数线50d离开跟踪区域50b,R通道各灰度级发生的概率为:
其中,为R通道第k级灰度的概率;为截止第T帧,所有出现在跟踪区域内的行人区域的R通道颜色信息直方图之和;截止第T帧,所有出现在跟踪区域内的行人区域的R通道所有灰度级的像素总数,其中:k=1,2,...,16。
以此方法,依次计算并保存G通道、B通道各级灰度的概率 并将保存在点5A1处。
然后,分别计算并保存采样点5A2、5B1、5C1、5D1、5E1、5B2、5C2、5D2、5E2处的各通道各级灰度的概率。
最后,执行步骤S4:计算行人区域的质心Z(k)连续通过所述跟踪区域50b时,该行人区域的R、G、B色相值直方图之和HR’、HG’、HB’各级度的概率LR’LG’、LB’占所述第一计数线或者第二计数线上最近的采样点上在步骤S3中所保存的色相值级度的概率PR、PG、PB的占比值Co,若占比值Co≥70%,则对通过所述监控区域30的人数加1,否则不计数。
结合图5所示,在本实施方式中,所述步骤S4还包括:基于Kalman滤波器的最近邻匹配跟踪法对行人区域的质心Z(k)进行跟踪。
如图5所示,该矩形区域(50a、50b和50c所共同组成的区域)为步骤S1中的监控区域30,Lable标记行人轮廓50的质心Z(k)首次检测到的位置。
若行人进入跟踪区域50b前,首次检测到的行人轮廓50的质心Z(k)的行坐标Xmove大于或者等于第二计数线50e的行坐标Xout时,Lable记为1;
若行人进入跟踪区域50b前,首次检测到的行人轮廓50的质心Z(k)的行坐标Xmove小于或者等于第一计数线50d的行坐标Xin,则Lable标记为0,其数学描述为:
若行人轮廓50的质心Z(k)通过第二计数线50e离开跟踪区域50b,且Lable为0,即行人通过第一计数线50d进入跟踪区域50b,通过第二计数线50e离开跟踪区域50b,则出的人数增加1;
若行人轮廓50的质心Z(k)通过第二计数线50e离开跟踪区域50b,且Lable为1,即行人通过第一计数线50d进入跟踪区域50b,通过第二计数线50e离开跟踪区域50b,则进的人数增加1。
需要说明的是,在本具体实施方式中,将第一计数线50d定义为出计数线,而将第二计数线50e定义为进计数线;同理所述,也可将第一计数线50d定义为进计数线,而将第二计数线50e定义为出计数线;从而得到进出该监控区域30中去除特定人群后的所需要检测的行人的数量。
在本发明中,通过排除跟踪区域中包含特定人群服装色相值的行人区域所统计得到的人数,从而实现了对复杂环境中对用户需要检测的人群数量的更加精确的统计,提高了公共区域内的人数统计的效率与准确度。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。