采用STLK算法的高密度人群行人计数
2017-07-25陈涵奇陈浩胡涛吴召选刘金鹏尹伟石
陈涵奇,陈浩,胡涛,吴召选,刘金鹏,尹伟石
(长春理工大学 理学院,长春 130022)
采用STLK算法的高密度人群行人计数
陈涵奇,陈浩,胡涛,吴召选,刘金鹏,尹伟石
(长春理工大学 理学院,长春 130022)
传统的行人计数方法对人群密度较高的场景适应性较差,而高密度下的人群行人计数有其重要的社会意义和市场价值,行人计数的结果对社会治安问题能起到很好的预警效果。为了提高对高密度人流的计数精确度,首先采用了Shi-Tomasi角点检测法来识别出视频中的特征点,然后借由Lucas-Kanade光流法以目标区域的光流方向作为角点的运动方向,再通过多个特征点的运动状态在短时间内相似的特性消除趋同的角点,从而获得人数。最后通过Python平台和opencv库设计一个演示环境,实现对高密度人流的识别,算法的计数精确度达到89.77%,具有较好的识别效果.
行人计数;角点检测;光流跟踪;STLK算法
1 视频人数统计背景
近年来,随着大规模群众性活动的不断增加,使得公共场所的人流密度增大,导致公共场所踩踏事件发生的概率增加,对于视频中高密度人群的计数已经成为一个热点问题。
H Foroughi[1]等人基于回归的行人计数的方法来处理拥挤的场景的能力,对于高密度人群数据,过高的时间复杂度和过长的训练时间使得计数变得非常困难。K Seetharaman[2]基于卡尔曼滤波对摄像头中的低密度行人进行跟踪,但出现的人群不可过于密集。吴坤[3]等人验证了Shi-Tomasi角点检测能有效地抵抗包括裁剪、翻转、旋转等的几何攻击。王彬[4]等人采用Lucas-Kanade光流法能够保证快速及大尺度运动时的系统鲁棒性。刘荣[5]等人验证了背景差分与光流法结合的可行性。闫钧华[6]等人通过CAMShift算法准确地跟踪了被遮挡目标。
采用了Shi-Tomasi角点检测法来识别出视频中的特征点,然后借由Lucas-Kanade光流法以目标区域的光流方向作为角点的运动方向,再通过多个特征点的运动状态在短时间内相似的特性消除趋同的角点,实现对高密度人群的计数。
2STLK算法
采用Shi-Tomasi角点检测法进行角点检测,并基于Lucas-Kanade光流法对角点进行跟踪,最后消除趋同的角点达到人数统计的目的,记该方法为STLK算法。
2.1 Shi-Tomasi角点检测
Shi-Tomasi角点检测[3]的算法如下:
首先将窗口向各个方向移动(u,v),然后计算所有差异的总和。即计算图像像素的灰度变化:
其中,I(x,y)与I(x+u,y+v)分别表示像素坐标(x,y)与(x+u,y+v)处的灰度值。
为了找到使E值尽量大的点,对式(1)右边进行泰勒展开得的:
其中,Ix和Iy表示图像在x和y方向的导数。再进行进一步整理后得:
设窗口函数M为:
其中,w(x,y)表示的是高斯窗口中的权重。
将窗口函数M考虑进去后得:
其中,M可以是正常的矩形窗口也可以是对每一个像素给予不同权重的高斯窗口。
最后,打分公式为:
其中,λ1和λ2是矩阵M的特征值。
如果打分超过给定的某个阈值,就认为它是一个角点。所以角点检测的结果是一个由角点分数构成的灰度图像。选取适当的阈值对结果图像进行二值化就可以测到图像中的角点。
2.2 光流法
(1)光流约束方程
设I(x,y,t)是t时刻图像上某点在该时刻的亮度值,该点的光流在x,y方向上的分量设为m(x,y),n(x,y),在t+dt时刻移动到 (x+mdt,y+ndt)。
令x,y,t连续可导,将上式等号左边按照泰勒级数展开,化简得:
即为光流约束条件方程[5]。
(2)光流计算
若某一个区域的像素点运动是一致的,就可以建立一个区域像素的系统方程来求解中心像素的运动,由光流约束条件方程可得:
假设在(m,n)的一个小的局部邻域内,高度是恒定的,那么:
即Am→=b,由最小二乘法可得,当ATA可逆时,方程的解如下:
2.3STLK算法
高密度人流的运动情况具有复杂性、无规则性,用传统的背景差分来发现运动对象,再用CAMShift来跟踪人群难以达到精确的结果。考虑到Shi-To⁃masi角点检测法能有效识别出图片中的各种物体的特征点,且高密度人流视频中的每帧图片中的物体大部分都为人体,故如图1(a)所示采用Shi-Tomasi角点检测法来识别视频中的人流,然后如图1(b)所示借由Lucas-Kanade光流法来跟踪这些特征点,从而获得每个特征点在每一时刻的运动位置和它们接下来的运动方向,最终达到识别密集人群视频中人的运动轨迹的目的。
由于人群的稠密性,单个人身上的多个特征点的运动状态在短时间内相似,那么可以假设同一个人身上的特征点的运动向量之间的余弦值近似于1,而不同人身上的特征点的运动向量之间的余弦值与1相差较大。设在第一帧中检测到特征点a1,a2,…,an,个体P上有特征点a1和a2,个体Q上有特征点a3,在第二帧中用光流法跟踪这些角点得到它们新的坐标…,,相减得到光流向量=,从而有:
由于光流法的局限性,视频中的一些特征点因为遮挡、帧间亮度变化过大等原因丢失后,光流法还会返回一个预期接近的点,从而影响计数的精确性,故需对这些点做反向检测,即用LK光流法反向跟踪得到在第一帧中的坐标,若的值小于一定误差,这些点才可做为计数的参考。考虑到密集人流中的人群的进出情况,每隔一定的帧数就要对角点重新进行一次检测。由此可以去除同一个人身上的多余角点,从而如图2所示,实现对高密度人群在视频中人的计数操作。
图2 视频计数
STLK算法步骤如下:
第一步:设置计数器count=0,people为人群集合,最初为空集;
第二步:检测得出帧i中的角点集合K;
第三步:在第i+1帧中用光流法跟踪K,得到K′;
第四步:在第i帧中用光流法反向跟踪K′,得到K″;
第五步:对于K′中的每一个角点若>ε,则从中移去
第六步:循环操作:对于K′中的每一个角点,若与people中的每个角点都不符合公式(12),则count+=1,并把储存于people中;
第七步:最后得出第i+1帧中的人数count。
3 数值实验
对拍摄所得的视频,运用STLK算法得到其中随机几帧中的人数,再与实际人数比较,得到如表1所示数据。
其中帧数为i,总帧数为n,实际人数为xi,检测结果为,则相对误差Δ为
利用角点检测法计算出角点数,通过光流法跟踪得到行人数后,STLK法的误差为10.23%;可以看出,STLK法具有较好的计数精确度,计数效果良好。
表1 STLK算法检测效果
4 结论
采用Shi-Tomasi角点检测法与Lucas-Kanade光流法对高密度人群进行行人计数,在很大程度上改进了高密度人群行人计数的计数效果,但在具体应用中仍然存在许多不足。例如在识别行人的过程中,很难兼顾算法的自适应性、实时性、图像的细节信息等。高密度的行人计数算法在未来的研究与发展中,不仅要考虑到人群的严重遮挡问题,还要注重算法的自适应性和实时性,以使得算法能得到广泛的应用。
[1] Foroughi H,Ray N,Zhang H.Robust people counting using sparse repregcisentation and random projection[J]. Pattern Recognition,2015,48(10):3038-3052.
[2] Seetharaman K.An efficient real time people counting system based on identification and tracking using surveil⁃lance camera[J].International Journal of Advanced Re⁃search in Computer Science Engineering and Informa⁃tion Technology,2016,4(3):495-501.
[3] 吴坤,王小华,姚金良.Shi-Tomasi角点区域的拷贝图像检测[J].中国计量学院学报,2014,25(3):263-267.
[4] 王彬,翁政魁,王坤,等.基于Lucas-Kanada光流法的人眼特征点实时跟踪方法[J].计算机工程,2015,41(7):244-249.
[5] 刘荣,金国伟.基于背景差分和光流法的运动目标检测与跟踪[J].现代制造技术与装备,2015(2):8-11.
[6] 闫钧华,陈少华,艾淑芳,等.基于Kalman预测器的改进的CAMShift目标跟踪[J].中国惯性技术学报,2014,22(4):536-542.
[7] 廉绿松,蒋汉元,曹颖.卡尔曼滤波方法在经纬仪图像数字传感系统中的应用[J].长春理工大学学报:自然科学版,2013,36(5):120-122+126.
[8] 谷欣超,刘俊杰,才华,等.基于Kalman滤波器的运动目标跟踪算法[J].长春理工大学学报:自然科学版,2015,38(5):136-139.
Counting Pedestrians in High-density Crowd Seens Using STLK Algorithm
CHEN Hanqi,CHEN Hao,HU Tao,WU Zhaoxuan,LIU Jinpeng,YIN Weishi
(School of Science,Changchun University Of Science and Technology,Changchun 130022)
The traditional pedestrian counting method is less adaptable to the crowd with high density,but the pedestrian count⁃ing at high density has its important social significance and market value.The result of pedestrian count can play a good warning to the social security problem.In order to improve the accuracy of counting the high density of people,the Shi-Tomasi corner detec⁃tion method is used to identify the feature points in the video.By using Lucas-Kanade optical flow method,the direction of the light flow in the target area is defined as the direction of motion of the corner.Then the convergent corners is eliminated by the simi⁃larity of the motion states of several feature points in a short time to get the number of people.Finally,through the Python plat⁃form and the opencv library to design a demo environment and achieve the identification of high density flow.The counting accura⁃cy of the algorithm is up to 89.77%.It has a good recognition effect.
people counting;corner detection;optical flow tracking;STLK algorithm
TP391.41
A
1672-9870(2017)03-0122-03
2017-03-21
国家自然科学基金(51378076,51278221);大学生创新创业计划(2016S001)
陈涵奇(1996-),男,本科,E-mail:chen429561213@foxmail.com
尹伟石(1980-),男,博士,讲师,E-mail:yinweishi@foxmail.com