基于视频处理的行人检测和跟踪系统_第1页
基于视频处理的行人检测和跟踪系统_第2页
基于视频处理的行人检测和跟踪系统_第3页
基于视频处理的行人检测和跟踪系统_第4页
基于视频处理的行人检测和跟踪系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于视频处理的行人检测和跟踪系统摘 要:行人检测和跟踪在智能视频监控、智能交通、汽车自动驾驶或辅助驾驶系统中均有广泛应用。本文选取 OpenCV 作为主要开发工具,设计并实现了智能监控系统中对感兴趣区域的行人进行检测、跟踪、计数和对异常行为进行报警的功能。行人检测阶段,引入自己提出的低维度SVM行人分类器和第二线程思想来实施精确行人检测。实验表明本系统具有较高的识别率,并能达到实时处理的实际应用需求。关键词:行人检测,行人跟踪,行人计数,危险报警,智能视频监控.Pedestrian Detection and Tracking in Intelligent Video Monitoring S

2、ystemsChen Yuanyuan1,2, Guo Shuqin2, Wang Xiaoling1, Shou Na1, Zhang Biaobiao1, Miao Guojing1, Ma Rui1, Du Kelin1 Enjoyor Labs, Enjoyor Inc., Hangzhou 310030 College of Information Engineering, Zhejiang University of Technology, Hangzhou 310032Abstract: Pedestrian detection and tracking technologies

3、 have been widely applied to intelligent video surveillance, intelligent transportation, automotive automatically driving or driving-assistance systems. We select OpenCV as the development tool to implement pedestrian detection, tracking, counting and risk warning in a video segment. Experiments ind

4、icate that the system has a high recognition accuracy, and can operate in real time.Keywords: Pedestrian detection, pedestrian tracking, pedestrian counting, risk warning, intelligent video monitoring,. 1.引言基于视频处理的行人检测和跟踪是智能视频监控、智能交通等领域的一个重要课题1,直接影响到行人计数、行人闯红灯等后续行为分析的效果。具体来说,它是指在一段视频图像序列中自动检测出用户感兴趣的

5、目标,并且在后续的序列中持续对该目标进行定位的过程。目前,该技术主要针对于银行、军队、交通、广场、大型购物超市、储物仓库等高安全要求的场合地点,利用行人的检测和跟踪技术实时地检测行人,并后续分析大规模聚集、抢劫、盗窃等异常行为。 2. 系统组成本系统以Visual Studio 2010为开发平台,采用OpenCV作为主要开发工具,并根据系统需要对几个关键函数进行改进,最终实现了对智能视频监控中的行人进行检测、跟踪、统计和对某些异常行为的检测和报警。图1是系统工作框图,主要由五部分组成:1、制作系统的展示界面,实现加载、播放行人视频。2、通过与背景做差得到所加载视频中的前景运动目标。3、根据前

6、景目标形状特征、抽象特征筛选出目标中的行人。4、选择感兴趣的一个或多个目标,实时跟踪并画出目标轨迹。5、分析上述位置信息和轨迹,统计行人数目和对某些越界行为进行报警。图1 系统工作框图 3. 系统工作原理 3.1 行人检测行人检测即检测视频中每帧的行人目标,并将其按顺序标记存储到容器中。在摄像头固定的视频处理中行人检测方法总体上可归纳为三类:光流法、帧间差法和背景差法。本系统采用背景差分法2,它简单易于实现。图2给出了本系统行人检测的流程图,由主线程模块和辅助线程模块两部分组成。主线程模块功能:首先通过与背景做差得到所加载视频中的前景目标,并利用行人形状特征(比如:宽高比、面积)初步筛选出目标

7、中的行人;然后,利用输入为低维度HOG特征、输出为隶属于行人的概率值的SVM行人分类器对前景进一步精确识别,同时,把所有隶属分类不明确的前景目标顺序存储到队列中;最后,输出主线程模块行人检测的结果。辅助线程模块功能:调用输入特征维数较高的SVM分类器对主线程存储的隶属分类不明确的前景目标进行再识别处理。考虑到计算机线程利用有效率问题,我们只有当存储前景目标数达到10的时候才触发一次辅助线程,利用高维度SVM处理完10张图片并进行再识别处理后,辅助线程关闭,等待下一次的触发。下面对各模块原理进行详细介绍。输出更可靠的行人识别结果,与低维度软输出SVM行人分类器输出结果比较。若一致,直接进入下一张

8、图片的判断;若不一致,用现输出结果覆盖之前的存储结果The main thread module features: first, we obtains the foreground moving target by difference with the background, and screens the objects of pedestrian using pedestrian physical characteristics, 比如. Then, We introduce a low-dimensional and soft-output SVM pedestrian classi

9、fier to implement precise pedestrian detection. Meanwhile save the foreground objects without clear classification sequentially in the queue. Finally, we get the pedestrian detection results of the main thread module. The support thread module features: When the foreground objects stored in the queu

10、e reached 10, we call SVM classifier of input higher-dimension HOG feature to process them again. Comparing this result with the result of low-dimensional and soft output SVM classifier, if they are the same, we go to the next foreground object in the queue; otherwise, we use this result instead of

11、the previous results. 图2 行人检测算法框图3.1.1提取前景目标背景差分的关键在于使用背景建模提取背景。背景建模的方法很多,但一般建模后的背景并非十分干净清晰,而高斯混合模型3是建模最为成功的方法之一。它是用高斯模型即高斯概率密度函数来表征图像中每个像素点的特征:设为时刻的背景图像,对该时刻背景图像上每个像素点建立混合高斯模型: (1) 其中,, , 分别为所对应的权重系数、均值和方差,表示时刻第个高斯分量的分布函数。随着时间的变化,背景图像也会发生缓慢的变化,混合高斯模型需要不断更新:, (2) 其中,为背景模型权重更新参数,为背景模型均值更新参数,为图像在像素点处的

12、灰度值。对混合高斯模型,在时刻,式(1)背景模型的每个象素属性只包括两个参数:均值 和方差。对于一幅给定的图像I,用每个像素点I与对应时刻的混合高斯模型匹配,如果满足 (3)其中为我们设定的阈值,通常选取区间任意数,则认为匹配成功,判断为背景点;否则,为前景点。3.1.2 筛选前景图片筛选前景图片是通过提取行人的某些特征对图像分割得到的一系列运动目标进行识别、分类,并把判断为行人的目标标识出来。传统的方法一般选取行人最直观的形状特征(比如宽高比、面积)进行识别,可简单、快速去除车辆等明显不是行人的目标,提高系统效率,但这种不使用行人任何抽象特征的识别方法往往精确度会很低。基于此,本文在传统方法

13、的基础上引入分类器和第二线程的思想对目标进行精确判断、识别。设目标外接矩形面积为,每帧图像尺寸为,图像面积为。考虑到同一运动与摄像头距离不同,面积也会有显著差别,所以我们把获取的视频按横向或纵向坐标分成, , 三个区域。判断是否满足 (4)若满足(4),初次判断为行人,以去除车辆等面积过大目标和树叶、天线等过小目标。进一步,若目标外接矩形的宽高比满足 (5)再次判定为行人。因为行人高挑的特征十分明显,故用该比例可很好分离出行人。我们进一步采用分类算法来实施行人检测。把每个运动目标当成一幅独立图片,经过归一化尺寸特征提取,依次输入分类器中。这些图片相对于任意的静态图片具有以下特点:1)图片尺寸小

14、,提取的特征维数大大降低,分类算法复杂度随之减小;2)图片中目标所占比例较大,即主元信息较多,使分类器更容易识别出行人。基于这些特点,我们采用自己提出的低维度软输出SVM行人分类器来实施精确的行人检测。 通过对提取的前景图片高维度HOG特征进行降维处理,得到一个低维度SVM分类器。一般训练SVM分类器的样本图片均归一化为,对样本分块,块大小为像素;把每个块分为4个像素的单元,步长为8个像素。这样归一化处理后,每张图片HOG特征维数为维5。但是,本系统输入的前景图片尺寸较小,故我们把归一化尺寸降低为,同样方法每张图片HOG特征维数为维。综上,运算复杂度降低了5倍。 通过改变低维度SVM分类器输出

15、结果,获得低维度软输出SVM分类器。低维度SVM分类器输出为类别判断信息,一般“”表示不属于该类别,“1”表示属于该类别。但实际应用时由于噪声等的污染,无法把处于类边界的样本明确地归为某一类,只能以一定概率或一定隶属度判别为某一类。因此,为了使SVM分类器更适用于这些问题,我们引入Platt J. C.提出的软输出(soft output)的概念9。用一个挤压函数sigmoid()作为连续函数把SVM的硬判断输出映射到,实现SVM的后验概率输出,称为隶属于行人的概率值。在使用该分类器进行行人检测时,把每个运动目标当成一幅独立图片,经过归一化尺寸HOG特征提取,依次输入SVM分类器,得到是否是行

16、人的判断结果。同时,把可靠性参数属于的样本被分离出来,存储分离出的目标图片,并记录该图片所在帧的时刻。3.1.3 辅助线程中纠错处理主程序处理过程中,软输出结果隶属分类不明确的前景目标及所在帧图片的对应时刻已经存储到一个定义好的队列中。辅助线程对这些图片进行处理:首先,为了节省辅助线程中的资源,我们只有当队列存储前景目标的数量大于10张时,才触发辅助线程开始工作。从队列中按先进先出的顺序读取存储的前景图片,并归一化尺寸为。提取前景图片HOG特征输入到训练好的SVM分类器中进行检测,与低维度软输出SVM行人分类器输出结果比较,若一致,直接进入下一张图片的判断,不一致,采用新结果替换之前结果。 3

17、.2 行人跟踪行人跟踪是监视各个行人在视频序列中的空时变化,包括人体的出现位置、大小、形状等7。我们选取以颜色为特征进行跟踪的CamShift (Coninuously Adaptive Mean Shift) 算法,它可有效解决目标变形问题。本系统从实际应用出发,在传统半自动、单目标CamShift8算法的基础上,实现了以下功能:用户手动圈出一个或多个感兴趣目标,系统按目标的个数自动分配跟踪器,进而实时跟踪多个目标、画出目标轨迹并把轨迹存储到指定的文件夹中。具体工作原理和步骤如下: 鼠标选择感兴趣区域。设置标签表征是否选中第个目标:未选中赋值0,选中后赋值,跟踪结束后赋值。利用标签依次把选中

18、的区域存入数组中。 获取初始目标及H分量直方图。调用setMouseCallback()函数,获取感兴趣目标的坐标值;调用calcHist()函数计算目标区域的H分量直方图;初始化搜索窗的大小和位置,定义为质心坐标。 利用直方图计算输入图像的反向投影图。反向投影图是一种记录给定图像中各像素点颜色信息出现在此处可能性的一种离散化的度量。可通过调用calcBackProject()实现。 运行MeanShift跟踪算法,搜索目标图像新的窗口区域。设为搜索窗口中图像像素位置,是投影图中的像素值。定义搜索窗口的零阶矩和一阶矩,:得到搜索窗口质心位置为 移动搜索窗口的中心到质心的位置设为点,原质心位置设

19、为点。令,。设为误差阈值,为最大迭代次数。如果或者,则迭代结束,返回新的目标位置;否则,跳转到(4)继续执行。 把每帧中获得的质心保存至vector<Point2f>容器中,间隔5个点连接成线,获取目标跟踪的轨迹。 3.3 行人计数和异常报警行人计数是行人检测和跟踪的一个具体应用,即对视频中某个特定区域的行人数目进行统计9。我们选取的视频图像大小是480×360。首先把每帧图片沿轴坐标分成4段,如图8所示:左右两侧是方向标志区域,中间两个为计数区域。当检测到行人进入视频,若为左侧进入,则左侧对应的标志符为1而右侧标志符为0,当行人前进到左侧的计数区域时相应的计数器加1;若

20、为右侧进入时同理。图8 行人计数原理图异常报警是行人检测和跟踪的另一个具体应用。在小区、公园、商场等场景的视频监控中,很多区域是禁止行人进入的,故本系统实现了对此类异常行为的自动检测和报警的功能。首先,选定禁止入内的区域。比如:园区中的绿化带,商场中的收银台。然后,判断行人识别后的行人坐标是否在预设区域。最后,设置报警的效果,比如按钮闪烁等。 4. 系统软件实现软件运行环境是在Visual Studio 2010开发平台下创建的一个基于对话框的MFC应用程序。实现过程中,调用了OpenCV2.3.1中图像处理相关函数。具体流程如图3所示。 4.1 系统界面界面是人机交互的接口,为我们更改系统参

21、数、展示系统功能等提供了很大便利。本系统创建了基于对话框的MFC应用程序,最终实现的系统主界面如图6所示。主要包括选取视频源和视频处理两个区域。选取视频源区域即通过各个按钮实现本地磁盘或摄像头获取的行人视频的载入、正常播放和暂停。视频处理区域有Setting和Run/Stop两个选项。Setting:点击可弹出一个新的Detection界面,效果展示如图7所示,可在Detection对话框中选择运动目标检测、行人识别、跟踪对应的处理方法并在picture控件中播放处理效果。Run/Stop:播放显示用背景差分等方法处理后的视频。另有显示区域Warning,当设定区域发生异常时自动报警。 4.2

22、 系统实现(实现方法,住算法实现)首先,加载、关闭行人视频。视频是一帧一帧的图像,根据视频的帧率设置合适的时钟,定时对视频中的帧图像进行读取显示。加载视频可通过OpenCV中DrawToHDC()等函数实现;关闭视频可通过一个标签实现。First, load and close a pedestrian video. (行人视频的加载和播放) Video is composed of lots of frames images, we can set the appropriate clock to timing read and display each image. DrawToHDC()

23、 in OpenCV library can realize the function. Close video can realize by setting the value of a label.图6 主界面图7 副界面其次,行人检测模块。1)提取前景。本系统是用混合高斯模型进行背景建模,用当前帧和背景做差获取二值前景图片,进而获取每个轮廓外接矩形坐标,并存储为vector<Rect>类型。我们可通过调用OpenCV中morphologyEx()、erode()、dilate()、findContours()、boundingRect() 函数实现。后面的行人识别均是对vec

24、tor<Rect>类型的外接矩形进行操作。2)初步筛选前景。采用行人形状信息进行筛选。首先去除车辆等面积过大目标和树叶、天线等过小目标。计算目标外接矩形的宽高比满足式(4),再次判断为行人。3)精确识别前景。a) 调用resize()函数归一化前景图片为。b) 提取前景图片756维HOG特征。c) 输入到已训练好的SVM行人分类器中进行检测,输出行人检测结果。4)显示行人检测结果。画出判断为行人的前景目标外接矩形,可调用rectangle()函数实现。其中,训练低维度软输出SVM行人分类器时4,本系统采用已编译且可在Windows系统直接执行的LIBSVM分类器(下载网址为http

25、:/.tw/cjlin/),选取具有海量正负样本的INRIA数据库,样本归一化尺寸为。然后,行人跟踪模块。主要是依靠OpenCV中函数接口实现的。首先调用setMouseCallback()函数,获取感兴趣目标的坐标值;然后调用calcHist()、normalize()、calcBackProject()获得目标直方图和反向投影图;最后,用CamShift()实现对该目标的跟踪。在单人跟踪的基础上,设置标签容器表征是否选中第个目标:未选中赋值0,选中后赋值,跟踪结束后赋值。一旦目标处于选中状态,系统自动分配一个目标跟踪器,直到跟踪结束。最后,行人计数和危险报警

26、。行人检测的实现:当检测到有行人进入视频时,首先利用行人检测和跟踪获取的行人坐标判断行人进入视频的方向,并为相应方向的标签赋值;行人坐标存储在vector<Rect>容器中。然后,当行人坐标和检测线坐标吻合时,相应方向的计数器递增。最后,调用putText()把计数结果显示在主界面中。对异常行为的自动检测和报警的实现方法如下: 添加3个消息响应函数,获取禁止入内的区域。OnLButtonDown():鼠标左键单击视频任意位置,获取矩形一个顶点的坐标; OnMouseMove():拖动鼠标到选定的另一位置处;OnLButtonUp():释放鼠标获取矩形另一个对角线上的顶点,两顶点构建

27、平行于窗口的矩形。 更改画出的矩形方法:鼠标双击矩形边框任意处,所画矩形取消,再重新绘制新的矩形区域即可。 添加初始化属性为隐藏的Warning按钮,设置报警效果。调用ShowWindow()函数显示该按钮;调用SetDownColor(), SetUpColor()函数改变按钮颜色;重新调用ShowWindow()函数隐藏该按钮。 判断行人识别后的行人坐标是否在预设区域,若没有,正常输出;否则调用报警函数,实现报警,即Warning按钮闪烁且变成彩色。 4.3 实验结果为验证本文算法各功能模块实现效果,我们选取一段有车、人、绳线等细小运动干扰的园区视频,视频尺寸,帧率。程序在PC机上运行,P

28、C机配置:中央处理器(CPU)为Intel i3平台;内存(Memory)为2GB DDR3。检测效果分析如下。其中行人检测和跟踪的效果如图9所示。其中行人检测和的效果如图9所示。图9b展示系统能较完整的检测出运动目标,包括因天线抖动出现的一些细小噪声。在图9c的行人识别图片中抖动产生的影响消失,精确识别出了行人目标。在图9d中对目标准确跟踪,获取行人运动的轨迹。 原图 (b) 运动目标检测 (c) 行人识别 (d) 行人跟踪图9 基础处理部分效果图系统计数效果如图10所示。系统分别对从左、右两侧进入视频的行人进行统计。图10b中“in:2 out:0”表示从左侧进入共2人,右侧进入0人。图1

29、0c中“in:2 out:1”表示从左侧进入共2人,右侧进入1人。可见,两侧均能够准确计数。 (a) 设置检测线 (b) 左侧进入计数 (c) 右侧进入计数图10 行人计数效果图危险报警效果如图11所示,当有人践踏草坪时,系统可自动报警。首先在草坪上手动设置有效区域。无人跨进该区域时Warning按钮会一直隐藏。当有人跨进设定区域时,Warning按钮会一直闪烁,系统开始报警,并记录下轨迹,同时录下视频片段,如图11b示。 设置有效区域 (b) 危险报警图11 危险预警效果图 5. 总结本文结合了混合高斯建模、背景差分、HOG特征提取、分类算法、CamShift算法等图像处理知识,较好的实现了

30、视频监控中行人的检测、识别和跟踪,并在此基础上设计算法完成了智能视频监控中的行人流量统计和对某些异常行为的检测和报警。最后,在Visual Studio 2010开发平台下,利用OpenCV中的库函数,实现了该系统并可根据不同场景自由设置。 参考文献 References1P. Spagnolo, M. Leo, T. DOrazio & A. Distante, Robust moving objects segmentation by background subtraction. Proc. Interactive Services (WIAMIS), Lisboa, Portu

31、gal, 2004, 81-84. 2J. Rymal, J. Renno, D. Greenhill, J. Orwell & G. A. Jones, Adaptive eigen-backgrounds for object detection. Proc. IEEE Int. Conf. on Image Processing (ICIP), Singapore, 2004, 3:1847-1850.3M. Andriluka, S. Roth & B. Schiele, Pictorial structures revisited: people detection

32、and articulated pose estimation. Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Miami, Florida, USA , 2009, 1014-1021. 4N. Shou, H. Peng, H. Wang, L.-M. Meng, K.-L. Du, An ROIs based pedestrian detection system for single images. Proc. 5th. Int. Congress on Image and Signal Processing

33、(CISP), chongqing, China, Oct. 2012, 1205-1208.5Q. Zhu, S. Avidan, M.-C. Yeh & K.-T. Cheng, Fast human detection using a cascade of histograms of oriented gradients. Proc. IEEE Conf. Computer Vision Pattern Recogn., New York, 2006, 2: 1490-1499. 6Platt J. C. Probabilistic Output for Support Vect

34、or Machine and Comparisons to Regularized Likelihood Methods. Advances in Large Margin Classifiers: MIT Press, 1999.7C. Wen, A. Azarbayejani, T. Darrell & A. P.Pfinder, Real-time tracking of the human body. IEEE Trans. Pattern Anal. Mach. Intell., 1997, 19(7):780-785. 8M. Andriluka, S. Roth &

35、; B. Schiele, People-tracking-by-detection and people-detection-by -tracking. Proc. IEEE Conf. Proc. Computer Vision and Pattern Recognition, Anchorage, Alaska, USA, 2008, 1-8.9Y.-L. Hou & G.K.H. Pang, People counting and human detection in a challenging situation. IEEE Trans. Syst. Man Cybern., 2011, 41(1):24-33. Select positive and negative samples for training the classifier

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论