基于快速SIFT 匹配的行人信息检测*
2012-08-09杜金辉管业鹏时勇杰
杜金辉,管业鹏,时勇杰
(上海大学通信与信息工程学院,上海 200072)
随着现代社会各种突发安全事故的频繁发生,人们对安全的要求也愈来愈高,同时也大大刺激了相关产业的发展。异常行为检测就是智能视频监控的一个重要应用。智能视频监控就是依赖计算机视觉技术,对视频内容进行处理。复杂场景下,人体作为非刚体,形态变化多样,且容易发生遮挡,跟踪起来场景变化快等,以人体为参照,所得效果会大打折扣,如何在复杂场景下对人进行检测以及跟踪识别,这也是目前研究的难点和热点。目前主要的检测方法有人头曲率检测几何特征跟踪法[1],依据人头曲率检测来检测人的头部,并根据几何特征来跟踪,克服了阴影和光照,但对于相似曲率的物体容易检测为人头,并且跟踪效果也因此大打折扣,误检率高。改进的粒子滤波检测跟踪法[2],该方法最大的缺点是只能跟踪一个物体,且跟丢的可能性很大,计算量大,费时.粒子滤波作为一种基于贝叶斯估计的非线性滤波算法,在处理非线性运动目标跟踪问题方面有着特殊的优势。但是当对多个目标进行跟踪,目标如果相互遮挡时,会出现跟踪目标的“失跟”现象。此外,多个目标之间的干扰也会影响跟踪的准确性;能量信息人群检测法[3],通过自定义的能量函数来评估观测区域的拥挤程度和异常检测的方法,未能精确的计算个体运动信息对异常对象进行识别;三维纹理分析法[4],算法复杂度高,且泛化能力不足,对于具有较多对象时,计算比较费时;卡尔曼滤波法[5]对于复杂背景下运动目标识别与跟踪问题,要实现实时控制,对算法的实时性和准确性都有较高的要求。基于卡尔曼滤波器预测功能的运动目标快速跟踪算法可以通过预测目标物体在下一帧中的位置,将全局搜索问题转化为局部搜索,提高算法的实时性。
通常的目标识别算法都是基于像素的全局搜索方法存在以下显著缺点:
(1)全局搜索计算量大、耗时,实时性无法满足;
(2)全局搜索抗干扰能力差,容易受到背景中相似特征物体的干扰。
本文利用人体头部结构比较稳定且受干扰小不易发生遮挡,干扰噪声小等优势,提出了一种针对人头的检测的快速SIFT 匹配的人体运动信息检测方法。论文主要贡献有以下3点:
(1)依据场景设置感兴趣区域,避免对图像的全局搜索,提高了检测效率;
(2)利用Adaboost 级联分类器检测人体头部,快速有效地检测出人体头部,且依据人体头部这个刚体信息能有效区分运动个体;
(3)利用SIFT 特征仅仅对检测到人头部分进行匹配,得到人体的运动信息,并提出一些机制,进行有效判断移动对象进出检测区域。
本文主要分成以下几个部分,第1 部分讲述本文方案,第2 部分描述具体算法。第3 部分对实验详细描述,与相关方法进行对比。第4 部分对全文进行总结。
1 本文方案
Adaboost 分类器[6]能够直接对分类器进行分级放大,然后在检测区域利用不同尺寸的分类器进行搜索。从而避免了对图像中的人体头部进行归一化的操作,提高了运算效率,有效解决了对于头部距离摄像头远近不同造成的人头部尺度不一致的问题。我们在本文中采用离线方法训练Adaboost 分类器,选择大量人的头部样本,提取Haar 特征和训练得到的Adaboost 级联分类器进行人体头部检测。
本文依据采集视频的场景,其中大部分摄像头都是在机场,公交车等场景中固定位置,可以明显分析出大部分场合不需要对场景进行全局检测,若要进行全屏幕检测,在实时性上面要大打折扣。对此,我们采用背景差分的方法检测运动前景得到感兴趣区域,提取运动区域时,以前若干帧平均值作为背景,与当前帧进行差分取得运动前景,对的得到的前景区域取连通域外接边框,并作适当扩大,避免造成检测头部区域的不完整。在感兴趣区域内进行检测,有效减少了检测时的搜索时间。
通过在感兴趣区域进行人头检测得到人体头部的数目、大小等信息,在此基础上,利用SIFT 特征进行不同人体头部之间的匹配。SIFT 特征是一种具有强烈方向性及亮度性的特征,这使得它适用于人头这种刚体。我们对相邻帧进行快速SIFT 匹配,得到相邻帧间同一个运动的人体头部的具体的运动方向,运动速度等信息,结合以往若干帧得到历史信息,进行推理判断最终得到精确的检测结果。
2 实时行人检测与匹配算法
2.1 人体头部的检测
在公共场合,尤其是人比较多的场合,人体的遮挡很大,根据人体头部作为检测特征,有遮挡少,不易变化的特点[7],把头部作为有效的特征来衡量人群信息,相对于其他特征而言,头部受光线、噪声、阴影等影响较小,可以得到运动个体的有效位置信息。
Adaboost 分类器算法利用大量的分类能力一般的简单分类器通过一定的方法叠加起来,构成一个分类能力很强的分类器,再将若干个强分类器串联成为分级分类器完成图像搜索检测,串联的级数依赖于系统对错误率和识别速度的要求。本文采用离线训练Adaboost 分类器,通过大量的具有比较明显的Haar 特征(矩形)的头部图像用模式识别的方法训练出分类器。
图1 部分人头样本
本文对利用帧间差分得到的感兴趣区域进行检测[8],检测人体头部效果如图2所示。通过选定的区域,能够有效减少检测时间,同时,对通过区域的人群有效区分。如果是背后检测人体头部,可能受到衣服颜色等相关方面干扰,故后期对检测得到的头部序列进行筛选,由于分类器是级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子分类器则由许多Haar 特征构成。识别物体的时候,同样计算积分图像为后面计算Haar 特征做准备,然后采用与训练的时候有物体的窗口同样大小的窗口遍历整幅图像,以后逐渐放大窗口,同样做遍历搜索物体。遍历窗口大小为10×10 到40×40,故头部尺度大小一般是10×10到40×40,超过或者小于这个区间头部大小的检测结果都是误检,如图3所示,提高检测的精确度。
图2 人头检测效果
图3 人头误检结果
2.2 快速SIFT 匹配
SIFT 特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性,而对物体运动、遮挡、噪声等因素也保持较好的可匹配性,从而可以实现差异较大的两幅图像之间特征的匹配,同时SITF特征具有独特性好,能够有效区分出不同对象;信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。多量性,即使少数的几个物体也可以产生大量SIFT 特征向量,本文只是针对检测得到的头部进行匹配,由于检测区域较小,仍然能够得到大量有效的SIFT 特征;高速性,经优化的SIFT 匹配算法甚至可以达到实时的要求;可扩展性,可以很方便的与其他形式的特征向量进行联合。
目前对于异常行为判断中,针对人体检测的识别[9],大部分方法都是集中于跟踪预测或者提取运动轨迹判断[10],本文采用文献[11]的快速SIFT 匹配算法,解决了采用跟踪算法费时且容易跟丢的问题。本文只是针对检测得到的头部之间互相匹配,无需对整个相邻帧全部像素的匹配过程,这也大大减少了匹配时间。具体匹配结果如图4所示。
图4 具体匹配结果
由图4 可知,相同头部用快速SIFT 进行匹配,有较多的匹配SIFT 特征点,可以依据此效果来有效区分不同的人头。同时,通过连续视频帧的检测,也能有效地去除某一帧误检的人头。
在SIFT 匹配后,仅仅以匹配点数来确定个体之间的关系,单独取头部进行匹配可能由于头发的颜色相似度高,也产生较大的误差,通过实验验证我们匹配时将头部以及下方的10个像素部分包括在内进行匹配,取得较好的匹配效果。
为了更好的衡量匹配的正确率,我们用下面的公式来评估匹配效果[17]:
其中,TP 是正确匹配点的匹配点数,TN 正确匹配点的未匹配点数。FN 是错误匹配点的匹配数,FP 是错误匹配点的未匹配数。具体关系如图5所示,由此可知,匹配点数的多寡,与检测率呈正相关。
图5 匹配率与检测率关系
在本文中,相邻帧中匹配率最高的运动对象被视为相同的运动个体。对于已匹配的个体,不再进行匹配,进一步节约算法时间。
对于利用粒子滤波[12]对人体头部进行跟踪,由于头部特征相似度高,尤其是头部区域小,当出现多个头部交叉的时候,容易出现“错跟”现象。本算法效果明显优于粒子滤波。
2.3 判断推理
在检测过程中,人进出监控区域,会对之前匹配结果进行干扰,仅仅依据匹配点数可能导致较大匹配误差,此时我们引入一个推理判断机制:
(1)人头状态信息
(2)人头运动的变化
(3)统计人头匹配的基本范围,建立拒绝域
由于检测方面的误差以及检测区域的不断变化,为了提高算法的稳定性,我们需要对过去的帧的信息进行积累来对当前帧进行判断,在本算法中设置了一个缓冲的帧数区间,对于历史帧信息帧数大小设置,如果过大会导致处理速度降低,其距离当前帧较远的帧的信息影响对当前运动的推理判断,过小信息不具有代表性,相对于人运动的速率,一般取值范围为2 帧~11 帧,通过实验统计,检测率与缓冲帧值以及处理时间的关系的如图6所示。
图6 缓冲帧取值与检测率
由图6 可知,缓冲帧的取值取为6 误差最小,检测率达到了95.7%,,也可看出因缓冲帧过大,影响对当前的判断推理,故本文缓冲帧取为6,若6 帧人体头部仍然检测不到视为消失,连续6 帧出现的视为新进入检测区域的人体头部。针对人头状态变化,设置帧数的缓冲区间,若在缓冲区新增加的数目,表示为新加入的。
在缓冲帧得到历史信息的基础上,对于新进入感兴趣区域建立相应的新的人头状态信息。
其中,θn表示运动方向,(xn,yn)位头部区域位置,vn主要表现当前的运动速率,位置以头部的中心点为参考。运动信息主要是根据历史帧的运动信息,来比对当前帧的对象的运动信息及相对位置每帧之间的变化。
以人头部中心为中心点,Δτ表示相邻两帧中心点运动的欧氏距离,Xavg表示在X 轴方向上的中心点平均平移距离,Yavg表示在Y 轴方向上的平均平移距离,系数α、β为相邻帧的滑动系数,通过实验发现值分别取为0.8和0.2 得到较好的效果。表示取上述值的结果。依此为匹配前提,避免了对所有检测结果进行匹配,进一步减少了时间。
为了进一步提高算法的稳定性,依据匹配率的大小,取其最大值不足以表现匹配结果。需要对匹配的设置判断机制[15]。
其中p(Xt|Statet)表示当前人头的匹配模型,p(Xt|Statet-1)为动态匹配模型。
综合以上3个推理判断准则,能够很好地解决运动对象进出检测区域的问题,得到运动对象的准确信息。
3 实验及结果分析
本文算法实验选择主要的配置为:CPU为Intel Pentium E5300,主频为2.6GHz,2G 内存,Windows XP 操作系统,在VC++6.0 平台下,使用OpenCV 视觉库作为主要的图像处理工具进行实验。
同时,为了更好的评估本算法,本文同文献所提HOG 法[15]、粒子滤波[18]进行两个方面的对比:(1)检测误差,(2)运算速率。
我们采用CAVIAR 测试视频库,分别取其中的走廊、商场、通道三个视频进行匹配和跟踪实验。在对比中,我们在同等条件下,针对多场景以及多人的检测匹配。通过下面误检率和漏检率来判定头部检测效果[13]:
其中,Rateerror误检率,Nerror为误检人数,Ntotal为监控中出现总人数。
其中,Rateleak误检率,Nleak为误检人数,Ntotal为监控中出现总人数3个视频的检测率。为了更好的评估本方法的检测效果,我们与通用的HOG 检测人的方法[16]和粒子滤波的方法[18]进行对比。
表1 视频人体头部的检测率及匹配率
在人头部检测中,针对3个视频中出现的人的次数,误检的情况有以下几个方面:
①人的头发颜色以及身体某部分衣服;
②旁人遮挡头部情况;
③头戴装饰品比较明显,或者遮挡住头部。
可以明显得出本算法比粒子滤波算法在精度上有了明显的提高,并且检测识别后进行匹配比识别跟踪效果精度要高。
对于算法的效率,我们同样利用一个实验平台,检测时间利用式(7)来对各算法进行对比:
其中,ti是第i 帧视频的处理时间,¯t 表示每一类帧的平均处理时间,对3 类视频的检测结果,见表2。
表2 视频每帧平均处理时间 单位:ms
从表2 可以知道本算法平均处理时间比PF和HOG 效果要好,检测效率高,具有良好的实用性。
4 结论
本文提出了一种基于快速SIFT 匹配的行人检测算法,对于各种场景都有较好的检测效果,且检测精度高,具有一定的实用意义。
当然还存在一定的不足,后期工作还需要划分感兴趣区域改成运动区域的选择,然后对运动区域进行检测,以及对运动信息的向更高层次的建模来对行为进行判断,还有对于帧间相关信息的获取。相关参数的自适应获得等方面还有大量工作需要进行。随后工作需要对人群人数估计和运动方向分布的评价,利用人群人数变化和运动的混乱程度为人群异常检测提供基础。
[1]Chee B C.Detection and Monitoring of Passengers on a Bus by Video Surveillance[C]//Proceedings of 14th International Conference on Image Analysis and Processing,2007:143-148.
[2]Han H,Ding Y,Hao K.A New Immune Particle Filter Algorithm for Tracking a Moving Target[C]//Proceedings of 6th International Conference on Natural Computation,2010:3248-3252.
[3]Zhong Z,Xu Y.Crowd Energy and Feature Analysis[C]//Proceedings of IEEE International Conference on Integration Technology,2007:144-150.
[4]Elhabian S,Ali A,Farag A.Face Recognition at-a-Distance using Texture Sparse-Stereo and Dense-Stereo[C]//International Conference on Multimedia Technology,2011:6690-6695.
[5]Czyzewski A.Examining Kalman Filters Applied to Tracking Objects in Motion[C]//Proceedings of the 9th International Workshop on Image Analysis for Multimedia Interactive Services,2008:175-178.
[6]Talele K T,Kadam S.Face Detection and Geometric Face Normalization[C]//Proceedings of IEEE Region 10 Conference,2009:1-6.
[7]Li M,Zhang Z,Huang K,et al.Estimating the Number of People in Crowded Scenes by MID Based Foreground Segmentation and Head-Shoulder Detection[C]//Proceedings of International Conference on Pattern Recognition,2008,1:1-4.
[8]Fan H,Zhu L L,Tang Y D.An Extended Set of Haar-Like Features for Rapid Object Detection [C]//Proceedings of IEEE International Conference on Image Processing,2002,1:900-903.
[9]Guo L,Ge P S,Zhang M H,et al.Pedestrian Detection for Intelligent Transportation Systems Combining AdaBoost Algorithm and Support Vector Machine [J].Expert Systems with Applications,2012,39(4):4274-4286.
[10]Nguyen N T,Phung D Q.Learning and Detecting Activities from Movement Trajectories Using the Hierarchical Hidden Markov Models[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2005,2:955-960.
[11]Li K.A Fast SIFT Feature Matching Algorithm for Image Registration[C]//Proceedings of International Conference on Multimedia and Signal Processing,2011,1:89-93.
[12]Guo C.Tracking of Human Head with Particle Filter[J].Journal of Harbin Institute of Technology,2009,16(2):269-274.
[13]Seemann E,Fritz M,Schiele B.Towards Robust Pedestrian Detection in Crowded Image Sequences[C]//Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2007:1-8.
[14]Han Q L.An Automatic Pedestrian Detection and Tracking Method:Based on Mach and Particle Filter [C]//Proceedings of International Conference on Network Computing and Information Security,2011,1:385-389.
[15]Li M,Zhang Z,Huang K,et al.Estimating the Number of People in Crowded Scenes by MID Based Foreground Segmentation and Head-Shoulder Detection[C]//Proceedings of International Conference on Pattern Recognition,2008,1:1-4.
[16]Wang X Y,Han T X.An HOG-LBP Human Detector with Partial Occlusion Handling[C]//Proceedings of IEEE 12th International Conference on Computer Vision,2009:32-39.
[17]Xia L.Human Detection Using Depth Information by Kinect[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,2011:15-22.
[18]Sherrah J.Particle Filter to Track Multiple People for Visual Surveillance[J].IET Computer Vision,2011,5(4):192-200.