发明内容
本发明的目的在于提供一种基于角度灰度信息的行人计数方法,降低对公共区域中的行人进行计数时计算机的系统开销,并提高对公共区域内对行人进行人数统计的效率与准确度。
为实现上述发明目的,本发明提供了一种基于角度灰度信息的行人计数方法,该方法包括以下步骤:
S1、获取监控区域的视频流图像作为输入图像;
S2、将全局光流法与帧间差分法相结合作用于输入图像,得到包含行人运动区域的二值化图像R(x,y);
S3、将二值化图像R(x,y)与输入图像的光流场Gof(x,y)做与运算,得到行人运动区域的光流场角度信息θ(x,y),按照如下公式计算得到角度灰度信息fint(x,y)以计算其角度灰度直方图,
S4、利用角度灰度直方图对运动行人区域的行人运动方向进行分割;
S5、利用线性回归分析方法统计各方向运动行人的人数。
作为本发明的进一步改进,所述步骤S2中的“全局光流法”具体为:
利用全局光流法对步骤S1中所获取的输入图像进行全局光流场计算,得到输入图像的光流场Gof(x,y),并利用窗口大小为5*5的高斯滤波器对输入图像的光流场进行高斯滤波处理,然后通过阈值分割得到输入图像光流场的二值图像Rof(x,y)。
作为本发明的进一步改进,所述“阈值分割”的计算公式具体为:
其中,阈值Thof=0.05;光流场的速度取值范围为[0,1]。
作为本发明的进一步改进,所述步骤S2中的“帧间差分法”具体为:根据步骤S1获取的输入图像,利用当前帧图像与前一帧图像按如下公式作差分运算,以得到差分图像,
Dk(x,y)=Fk(x,y)-Fk-1(x,y)
其中,Fk-1(x,y)为前一帧图像中像素点的灰度值,Fk(x,y)为当前帧图像中像素点的灰度值,Dk(x,y)为二者的差分图像。
作为本发明的进一步改进,所述步骤S2还包括:将包含行人运动区域的二值化图像R(x,y)作形态学处理。
作为本发明的进一步改进,所述形态学处理具体为对行人运动区域的二值化图像R(x,y)先进行膨胀运算,后进行腐蚀运算;其中,膨胀运算中的膨胀参数为7,腐蚀运算中的腐蚀参数为3。
作为本发明的进一步改进,所述步骤S4具体为:对角度灰度直方图进行求导运算以确定该曲线中的两组极值点;合并极值点中距离相近的灰度点,并删除不同极值点角度之差小于45°的极值灰度点,以确定分割点;并通过所述分割点将运动行人区域分割为“进”与“出”两个类别,从而得到运动行人区域内各行人的运动方向信息。
与现有技术相比,本发明的有益效果是:在本发明中,利用角度灰度直方图对运动行人区域的行人运动方向进行分割,并利用线性回归分析方法统计各方向运动的行人数量,从而有效地实现了对公共区域中行人人数统计的效率和准确度。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
参图1所示,图1为本发明一种基于角度灰度信息的行人计数方法的流程示意图。在本实施方式中,该行人计数方法包括以下步骤:
步骤S1:获取监控区域的视频流图像作为输入图像。
具体参图2所示,本发明一种基于角度灰度信息的行人计数方法可适用于摄像机10垂直拍摄或采用基本垂直于监控区域30的情形,并可适用于室外环境和室内环境。具体的,该步骤S1具体为:通过摄像机10获取监控区域30的视频流图像作为输入图像,所述监控区域30位于摄像机10的正下方。
进一步的,该摄像机10设置在出入口20的正上方,行人可沿着箭头201的方向上在出入口20中来回走动。摄像机10所获取的监控区域30可完全覆盖出入口20的全部区域。该出入口20可设置在需要对行人人数进行统计的商场、车库、银行等需要重点监控场所的大门口或者走廊中。
需要说明的是,本发明在摄像机10垂直地正对着监控区域30时的效果最佳,当然可也将摄像机10倾斜地对着需要进行行人人数计数统计的区域,以通过摄像机10覆盖整个监控区域30。
在本实施方式中,该监控区域30为矩形;当然也可以为正方形或圆形或者其他形状。摄像机10位于监控区域30的中心点301的正上方,此时该监控区域30位于摄像机10的正下方。
S2、将全局光流法与帧间差分法相结合作用于输入图像,得到包含行人运动区域的二值化图像R(x,y)。
参图3所示,在本实施方式中,全局光流法的具体实施过程为:对输入图像40,每5*5像素块画一条光流线,光流线的长度表示该点的运动速度,角度表示该点的运动方向。光流线的单位长度为10*21/2像素,即如果某像素点光流的水平速度和垂直速度都是1像素/帧,则该点的光流线长度为10*21/2像素。像素点运动速度差别不尽相同,这是由运动物体的运动速度决定的。全局光流法不仅能检测出运动物体的运动信息,也包括背景中运动信息,如周围建筑表面反射光线的信息等等。
在本实施方式中,将全局光流法与帧间差分法相结合的算法具体实现过程为:参图4所示,利用全局光流法对步骤S1中所获取的输入图像进行全局光流场计算,得到输入图像的光流场Gof(x,y)。由于会出现计算误差,输入图像的光流场中存在高频噪声,利用窗口大小为5*5的滤波器对输入图像的光流场进行平滑处理,然后通过阈值分割得到输入图像光流场的二值图像Rof(x,y)。
其中,阈值分割具体为:
具体的,对输入图像的光流场进行阈值分割的阈值Thof=0.05,光流场的速度取值范围为[0,1]。
帧间差分法具体的实现过程为:根据步骤S1获取的输入图像,利用当前帧图像与前一帧图像作差分运算以得到差分图像。帧间差分法的计算公式为Dk(X,y)=Fk(X,y)-Fk-1(x,y);
其中,Fk-1(x,y)为前一帧图像中像素点的灰度值,Fk(x,y)为当前帧图像中像素点的灰度值,Dk(x,y)为二者的差分图像。
然后,对差分图像Dk(x,y)进行二值化处理,该二值化处理的运算公式如下所示:
其中,Dk(x,y)为当前帧图像与前一帧图像经过差分运算后得到的差分图像,Rk(x,y)为差分法处理后所得到的二值图像,M为分割阀值。在本实施方式中,分割阀值M取值是70。当Rk(x,y)为0时,该像素点为背景点;当Rk(x,y)为1时,该像素点为前景点即运动物体。
然后,将两幅二值图像Rof(x,y)与Rk(x,y)做与运算,得到二值图像R′(x,y),最后利用形态学处理方法,对二值图像R′(x,y)进行去除噪音及修补空洞处理,获取最终的包含行人运动区域的二值化图像R(x,y)。具体的,本实施方式中的形态学处理具体为:先进行膨胀运算,后进行腐蚀运算。其中,膨胀运算中的膨胀参数为7,腐蚀运算中的腐蚀参数为3。
S3、将二值化图像R(x,y)与输入图像的光流场Gof(x,y)做与运算,得到行人运动区域的光流场角度信息θ(x,y),按照公式(1)计算得到角度灰度信息fint(x,y)以计算其角度灰度直方图。
在本实施方式中,根据步骤S2得到的运动行人区域的二值化图像R(x,y)与输入图像的光流场Gof(x,y)做与运算,得到行人运动区域的光流场角度信息θ(x,y),其中N是行人运动区域的像素点的总个数,θ(x,y)∈[0°,360°)。然后,将光流场角度信息以公式(1)转换为角度灰度信息:
利用公式(1)的转换方法,行人运动区域的像素点的取值范围为[0,250),背景区域的像素值为255。
利用图像处理的方法,对由公式(1)转换得到的角度灰度信息计算其角度灰度直方图。进一步的,可利用窗口大小为5*5的高斯平滑模板对角度灰度直方图进行高斯滤波处理。需要说明的是,对不同窗口大小的高斯平滑模板可用迭代离散卷积的方法得到。假设设定的平滑参数为ω,对应的平滑模板为f(ω)由公式(2)计算得到:
f(ω)=f(ω-2)*f(ω-2),ω≥5 (2)
初始高斯平滑模板为f(3)=[0.2261,0.5478,0.2261]。平滑参数ω可选择为5,7...等奇整数。
当ω=3时,初始模板的长度为3,随着平滑参数的增大,平滑模板的长度lenf(w)以如公式(3)的变化规则而变化:
具体的,当ω=11时,模板长度为33。基于直方图长度为250,优选的,在本实施方式中,该高斯平滑模板参数ω=7。
S4、利用角度灰度直方图对运动行人区域的行人运动方向进行分割。
具体参图5所示,角度灰度直方图曲线的波峰波谷比较明显,曲线大体呈“M”形分布。通过对角度灰度直方图曲线求导,以确定该角度灰度直方图曲线的极大值和极小值(即角度灰度直方图导数曲线的过零点就是角度灰度直方图的极值点)。
具体的,可采取如公式(4)的计算公式,通过角度灰度直方图导数曲线中的过零点,寻找角度灰度直方图曲线的极值点:
其中,p为角度灰度直方图导数曲线中的过零点所对应的灰度值,{max i}{min i}分别是极大值向量和极小值向量。
由角度灰度直方图导数曲线得到的两组极值点,除去背景像素点外,呈现出一对一的状态。即两个极大值之间存在一个极小值,两个极小值之间存在一个极大值,并且相邻两个极值点代表的运动方向是相似的。
基于此,将极值点中距离相近的点合并。在本实施方式中,将不同极值点的角度之差小于45°的极值灰度点舍去。该角度阈值按公式(1)转化成灰度值为Thcbm=31,并以如下步骤合并极值点,并确定最终分割点:
首先,将代表背景的极大值点255舍去。
然后,按如下规则合并极大值中相近的灰度点:
if|max i-max j|≤31
if N(max i)≥N(max j)
max j=255;
else max i=255;
其中,max i,max j是两个相邻的极大值点,N(max i),N(max j)分别为这两个极大值点代表的灰度点个数。将灰度点赋值255,表示将灰度该点舍去,因为255代表背景像素点。由于角度灰度直方图中,灰度值为0和255所表征行人运动的方向是一致的,因此该角度灰度直方图两端的极大值点也应合并,合并规则如下:
if max i<31&&max j>219& &|max i-max j+250|≤31
if N(max i)≥N(max j)
max j=255;
else max i=255;
经过上述处理,极大值集合{max i}更新为极大值集合{max i′}。
最后,按照两组极值一一对应的关系,从极小值集合{min i}中挑选若干极小值点插入到极小值结合{max i′}数值中间。挑选规则如下:假设相邻极大值点max i′和max j′间有k个极小值点min1,min2,...,min k,并仅保留上述k个极小值点中最小的极小值点,然后把其余的k-1个极小值点删除。该极小值集合{min i}更新后的极小值集合为{min i′}。
假设初始得到的两组极值点经过合并更新后变为:
a2,b2作为不同运动流之间的分割点,a1,b1作为不同运动流的运动方向。
本实施方案主要应用于对进出如图2所示的监控区域30的客流量进行统计。所以在本实施方式中,利用角度灰度信息直方图将运动行人区域分割为“进”和“出”两个类别。其中,“进”类别代表沿箭头201的方向进入并通过监控区域30的行人;“出”类别代表沿箭头201的方向离开并通过监控区域30的行人。
S5、利用线性回归分析方法统计各方向运动行人的人数。
在本实施方式中,运动行人区域不会全都是单个行人,也有可能是两个人甚至多个人,需要通过对运动行人区域进行分析计算出运动行人区域内的人数。
在本实施方式中,利用线性回归算法,分别统计向“进”运动的行人的人数,和向“出”运动的行人的人数,从而得到通过该监控区域30中的行人的总人数,同时也可单独计算进入该监控区域30的总人数及单独计算离开该监控区域30的总人数。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。