曹伟东,张中炜
(东华大学 信息科学与技术学院,上海 201620)
机器视觉下升降机内人数检测算法
曹伟东,张中炜
(东华大学 信息科学与技术学院,上海 201620)
为了限制建筑升降机的人数,防止升降机超载,文中提出了一种基于机器视觉的建筑升降机内人数动态检测方法。该算法是在工人进门的区域内,利用改进的Vibe算法实现视频图像中的运动目标分割,采用领域平滑去除图像噪声,根据人头特征采用椭圆拟合的方式拟合人的头部,利用基于卡尔曼滤波的最近距离匹配法对椭圆的质心进行跟踪并计数。实验表明,文中算法对于升降机内俯视图像中人员计数的实现准确率较高,鲁棒性较好。
机器视觉;升降机人数统计;人头分割;目标跟踪
随着我国基础设施建设不断加强,高层建筑不断增多,建筑升降机超载成为安全问题,建筑升降机的载客量一般有人数限制,但是有时虽然己经达到载客量的上限却还是有人进入,乘坐超载的建筑升降机给建筑工人的人身安全带来了威胁。因此,对进出建筑升降机的人进行计数以防止电梯超载是必要的。目前对于建筑升降机的轿厢内人数统计的方法较少,但针对类似于升降机轿厢的电梯轿厢[1]有很多研究,其主要采用两类技术来统计电梯轿厢或者公交车内的乘客人数:红外线检测[2]和基于计算机视觉[3]的方法。
本文采用改进的Vibe算法分割运动目标,这种分割方法对光照和摄像机轻微抖动等干扰有好的抑制效果。
1.1经典Vibe算法
经典Vibe算法[4]将物体检测看成一个分类问题,也就是确定一个像素点是否属于背景点。在视频序列图像中,如果
M(x,y)∩SR(I(x,y))=
{I1,I2,I3,…,IN}∩SR(I(x,y))>T
(1)
那么就认为点(x,y)属于背景点。其中,其中,I(x,y)表示坐标值为(x,y)处像素点的灰度值;M(x,y)={I1,I2,I3,…,IN}表示坐标值为(x,y)像素点处的背景样本集(样本集大小为N);SR(I(x,y))表示以点(x,y)为中心R为半径的区域;T表示特定的阀值。
ViBe算法的初始化仅通过一帧图像即可完成。对于一个像素点,随机选择它的邻居点像素值作为它的模型样本值,设t=0初始时刻,在像素点(x,y)的8领域内随机选取N个像素值I1,I2,I3,…,IN作为点(x,y)的背景样本集。
1.2改进的Vibe算法
Vibe算法虽然能较好地适应环境变化,但是还存在诸多问题:像素样本集的重复选取;由于阀值是人为选定,前景提取会出现小目标和空洞;由于本文研究的视频是从头顶往下拍摄,所以提取的前景图像中,人头和身体部分会重叠,影响后期人头特征的处理[5]。
(1)样本选取问题。由于经典的Vibe算法在初始化背景M(x,y)时,采用随机策略从I(x,y)的8领域中选取20个样本,所以每一个样本至少被重复选取了2次。这样的选取方式导致选取样本过于集中,会造成像素的错误分类。针对这一问题,本文采用扩大邻域的方式,采用均匀分布的随机数生成算法,从I(x,y)的24邻域中选取20个样本用于初始化背景模型,从而有效避免像素的重复选取,降低了错误分类的概率;
(2)小目标丢弃与空洞修复。由于受光照变化和背景中小目标运动的干扰,导致检测结果中会出现一些虚假的小目标,且运动目标会出现残缺现象,如图1所示,这会对实际应用系统的精确性产生影响[6]。例如,在智能视频监控中,虚假小目标的出现会导致虚假警报的发生;运动目标残缺会导致目标漏检问题。因此,改进的Vibe算法采用了对一些小的目标进行丢弃,并修复真实运动目标空洞的策略。算法步骤如下:求取前景图像上的联通区域,得到联通区域集合B1{b1,b2,…,bm};如果联通区域内的像素数 图1 改进的Vibe算法效果图 (3)人头轮廓与身体重叠的问题。如图2(b)所示,虽然前景图像被完美提取出来,但是人头与身体部分重叠较多,影响后期人头特征的提取及人数清点。在本文研究过程中,发现帧差法在本课题中不是很合适,由于人进出升降机时的速度不是很快,所以帧差法提取的前景中有很大空洞。但是如果结合Vibe算法提取的前景,可以让头部的轮廓更加明显[7]。所以本文提出了一种融合了帧差法的Vibe算法。 该算法实现起来很简单,假设由帧差法提取的二值化前景图像为FD(x,y),而改进后的Vibe算法得到的二值化前景图像为Vibe(x,y),将两者简单相与 (2) 当两个算法中对应像素点都为前景点时,该像素点才为前景点,再用小目标丢弃与空洞修复的方法,即可得到如图2(d)所示的二值化前景图像。 图2 融合了帧差法的Vibe算法图 图3 提取轮廓 2.1人头特征点选取 由于一般的升降机摄像头都安装在相对于升降机出口的内测,而本文对人头跟踪的区域仅限于升降机出口处,所以摄像头相对于人头是一种斜视的角度,当人进出升降机时,在监控视频中需要跟踪计数的区域内,人头顶部的点有一个特征:该点位于跟踪区域垂直方向局部最高处[8]。所以在前景提取的结果图中,该点的左边m个像素均为背景像素,并且该点竖直方向上的上一个点和它的左右各n个像素点也为背景点。求取人头顶部特征点的步骤如下:(1)提取图像中运动目标的轮廓,如图3所示;(2)从图像左上角开始扫描图像,发现像素值为255(运动目标轮廓点),则检测图像中该点的左边m个点的像素值大小。否则,该点不可能为特征点,检测图像中下一点;(3)若这m个像素值均为0(背景),则检测该点上一个点和它左右各n个像素值的大小。否则该点不可能为特征点,舍弃,检测下一点;(4)若再次检测的点均为0(背景),则该点可能为人头顶部的点,存入动态数组中。否则该点不是人头部点,舍弃,检测下一点。 2.2数据点采集 特征点选取完成后,依次在特征点左右两边的轮廓线上采集K个数据点存到动态数组中。图4为人头部轮廓图,点H为求取的人头部顶点,从H点开始分别向左右两边依次在轮廓采集K个数据点存入动态数据中。由于本文采用单目摄像机,升降机内监控区域只有进出口这块区域,所以头部目标和摄像机之间的距离相差不大,需要采集的数据点的数目也大致相同。所以不必考虑K取值的多样性。 图4 人头部轮廓示意图 图5 椭圆拟合效果图 2.3椭圆拟合 采集完所有特征点对应的数据点以后,本文采用闫蓓提出的基于最小二乘法的椭圆拟合改进算法进行椭圆拟合[9]。 二次平面方程可以写成 H(γ,Y)=γTY=ax2+bxy+cy2+dx+ey+f=0 (3) 其中,γ=[abcdef]T;Y=[x2xyy2xy1]T。由数学原理可知,当曲线方程系数满足b2-4ac=-1时,式(3)中表示的曲线方程为椭圆。 该最小二乘椭圆拟合,采用广义特征根方法进行求解,算法简单高效,并且鲁棒性好。结果如图5所示。 人头拟合后,将检测出人头的质心作为运动的跟踪点,这样在跟踪过程中,若头部的某一部分被遮挡,只要头部能被检测并拟合,跟踪目标就不会丢失。 3.1最近距离匹配算法 本文还考虑了两帧间同一目标点的欧几里得距离、运动速度和方向信息,给出了一种跟踪算法。由于人进入升降机时绝大多数情况都是匀速进入,并且由于视频的两帧图像时间间隔很短,完全可以把两帧之间的运动物体看作是匀速运动[10]。 设一图像序列I=(I1,I2,…,In,…)第n帧图像检测到m个目标s1,n,s2,n,…,sm,n,目标si,n(1≤i≤m)的中心坐标记为(pos_xi,pos_yi)。第n-1帧检测到的k个目标记作T=(T1,T2,…,TK),其中Ti=(pri_xi,pri_yi,vx,vy,…,flag),pri_xi和pri_yi表示第i个目标的坐标。vx,vy表示第i个目标的速度,t表示连续未匹配成功的帧数。flag为目标初始位置标志,初值为-1。 具体算法如下: (1)位置预测。利用卡尔曼滤波器估计n-1帧各目标质心点在第n帧的位置和速度,以目标Tj(1≤j≤k)为例,表示第j个目标在第n-1帧检测到的参数,设该点在第n帧的预测位置为sj; (2)计算sj,n和sj的欧几里得距离,得出距离值d=‖sj,n-sj‖; (3)对第n-1帧目标链T中所有目标Tj(j=1,2,…,k),计算目标的深度值D=(d1,d2,…,dk),求得dj=min(D)。设同一头部目标在两帧间运动距离上限记为th。若di≤th则匹配成功,判定sj,n为Tj在第n帧出现的新位置,执行步骤(4),否则判定sj,n为一个新目标,执行步骤(5); 3.2跟踪计数算法 结合本课题需实时监测在升降机中的人数,所以把检测区域设为升降机的进出口,如图6所示,在升降机的检测区内,设置两条辅助线Line1和Line2, 当人头在图6中Line1到升降机门这个区域内首次被检测到时,人头质心的flag赋值为0;当人头在Line2到升降机内部这个区域内首次被检测到时,人头质心的flag赋值为4。 当人进入升降机的检测区域时,人头的质心被追踪到后: (1)当flag为0或2的情况下,质心先经过Line1,再经过Line2时,flag为1,则升降机内人数加1。当目标离开检测区域,将其删除; (2)当flag为1或3的情况下,质心先经过Line2,再经过Line1时,flag为2;则升降机内人数减1。当目标离开检测区域,将其删除。 图6 跟踪计数示意图 为验证本文跟踪计数算法的优越性,通过模拟升降机平台的坏境进行了实验,实验设备包括:瑞士堡盟工业相机,型号为EXG50c,实验用的计算机配置:Intel 酷睿 I5-4200H 2.8 GHz CPU,4 GB DDR3 内存。处理图像分辨率为640×480,实验时,摄像头放在适当的高度,拍摄区域与升降机内部空间大小相似。 实验时,测试了7种不同的检测人数,图7所示为检测人数为2人时的情况。 图7 实验检测图 图7(a)中为原始视频的第611帧图像,通过改进的Vibe算法对其进行运动分割,得到大致的头部区域,再通过椭圆拟合得到运动目标的质心,通过对质心的跟踪,实时得到升降机内的人数。该图中,测试人员均向着门外走去,当目标如图7(b)中第623帧图像所示时,失去追踪目标,升降机内人数减2。试验后,获取结果如表1所示。 表1 算法运行时不同人数比较 表1为本文算法运行时不同人数的比较,由于该算法是实时检测的,并且在关闭升降机门后不检测。相比较文献[8]的算法,本文算法对光照变化不敏感,检测精度也有所提高,检测具有实时性。 本文采用动态的方式,在建筑工人进出升降机的区域内对升降机内人数进行实时统计。当升降机门关闭时,停止检测计数,实时性和鲁棒性较高,能够准确判断升降机内人数是否超载,具有较高的使用价值。 [1]应俊,李强.基于改进的Hough变换的电梯轿厢内人数统计算法[J].计算机工程及应用,2014,50(19):165-168. [2]靳海燕,熊庆宇,王凯,等.基于图像处理的电梯轿厢内人数统计方法研究[C].仪器仪表学报,2011,32(6):161-165. [3]王君伟.基于DTW的红外自动乘客计数方法研究[D].上海:上海交通大学,2008. [4]郑翔翔,张怡.基于头部检测和跟踪的人数统计方法[J]. 计算机应用与软件, 2011,28(2):44-46. [5]严红亮,王福龙,刘志煌,等.基于ViBe算法的改进背景减去法[J].计算机系统应用,2014,23(6):130-134. [6]尹凯,魏江,李正,等.改进的Vibe运动目标检测[J].电子设计工程,2014,22(16):177-180. [7]李洪杰,程欣宇,任海林.一种基于帧差法和vibe算法的前景检测方法[J].图像与多媒体技术,2014(21):119-120. [8]顾德军,伍铁军.一种基于人头特征的人数统计方法研究[J].机械制造与自动化,2010(4):134-138. [9]闫蓓,王斌,李媛.基于最小二乘法的椭圆拟合改进算法[J].北京航空航天大学学报,2008,34(3):295-298. [10]宋迎春.动态定位中的卡尔曼滤波研究[D].长沙:中南大学,2006. Use of Machine Vision in Counting of the People in Building Lift CAOWeidong,ZHANGZhongwei (CollegeofInformationScienceandTechnology,DonghuaUniversity,Shanghai201620,China) Inordertolimitthenumberofbuildinglifts,andtopreventoverloadingofthelifts,amethodforthedetectionofthenumberofworkersinliftbasedonmachinevisionisproposedinthispaper.Intheareawheretheworkersentertheentry,theimprovedVibealgorithmisusedtosegmentmovingobjectsinvideoimages,andfieldsmoothingtoremoveimagenoise.Theheadisfittedbyellipsefitting,andthecentroidoftheellipseistrackedandcountedbythenearestdistancematchingmethodbasedontheKalmanfilter.Thisalgorithmhasgoodaccuracyandrobustnessincountingoftheworkersinthelift. machinevision;countingpeopleinlift;humanheadsegmentation;targettracking 2016- 12- 21 曹伟东(1990-),男,硕士研究生。研究方向:数字图象处理。张中炜(1957-),男,高级工程师,教授。研究方向:工业控制自动化等。 10.16180/j.cnki.issn1007-7820.2016.09.007 TP242.6+2 A 1007-7820(2016)09-022-042 人头的椭圆拟合
3 人员跟踪计数
4 实验结果与分析
5 结束语