基于视频处理的行人检测和跟踪系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于视频处理的行人检测和跟踪系统•摘要:行人检测和跟踪在智能视频监控、智能交通、汽车自动驾驶或辅助驾驶系统中均有广泛应用。本文选取OpenCV作为主要开发工具,设计并实现了智能监控系统中对感兴趣区域的行人进行检测、跟踪、计数和对异常行为进行报警的功能。行人检测阶段,引入自己提出的低维度SVM行人分类器和第二线程思想来实施精确行人检测。实验表明本系统具有较高的识别率,并能达到实时处理的实际应用需求。关键词:行人检测,行人跟踪,行人计数,危险报警,智能视频监控.PedestrianDetectionandTrackinginIntelligentVideoMonitoringSystemsChenYuanyuan1,2,GuoShuqin2,WangXiaoling1,ShouNa1,ZhangBiaobiao1,MiaoGuojing1,MaRui1,DuKelin1•EnjoyorLabs,EnjoyorInc.,Hangzhou310030•CollegeofInformationEngineering,ZhejiangUniversityofTechnology,Hangzhou310032Abstract:Pedestriandetectionandtrackingtechnologieshavebeenwidelyappliedtointelligentvideosurveillance,intelligenttransportation,automotiveautomaticallydrivingordriving-assistancesystems.WeselectOpenCVasthedevelopmenttooltoimplementpedestriandetection,tracking,countingandriskwarninginavideosegment.Experimentsindicatethatthesystemhasahighrecognitionaccuracy,andcanoperateinrealtime.Keywords:Pedestriandetection,pedestriantracking,pedestriancounting,riskwarning,intelligentvideomonitoring,.•1.引言基于视频处理的行人检测和跟踪是智能视频监控、智能交通等领域的一个重要课题[1],直接影响到行人计数、行人闯红灯等后续行为分析的效果。具体来说,它是指在一段视频图像序列中自动检测出用户感兴趣的目标,并且在后续的序列中持续对该目标进行定位的过程。目前,该技术主要针对于银行、军队、交通、广场、大型购物超市、储物仓库等高安全要求的场合地点,利用行人的检测和跟踪技术实时地检测行人,并后续分析大规模聚集、抢劫、盗窃等异常行为。•2.系统组成本系统以VisualStudio2010为开发平台,采用OpenCV作为主要开发工具,并根据系统需要对几个关键函数进行改进,最终实现了对智能视频监控中的行人进行检测、跟踪、统计和对某些异常行为的检测和报警。图1是系统工作框图,主要由五部分组成:1、制作系统的展示界面,实现加载、播放行人视频。2、通过与背景做差得到所加载视频中的前景运动目标。3、根据前景目标形状特征、抽象特征筛选出目标中的行人。4、选择感兴趣的一个或多个目标,实时跟踪并画出目标轨迹。5、分析上述位置信息和轨迹,统计行人数目和对某些越界行为进行报警。图1系统工作框图•3.系统工作原理•3.1行人检测行人检测即检测视频中每帧的行人目标,并将其按顺序标记存储到容器中。在摄像头固定的视频处理中行人检测方法总体上可归纳为三类:光流法、帧间差法和背景差法。本系统采用背景差分法[2],它简单易于实现。图2给出了本系统行人检测的流程图,由主线程模块和辅助线程模块两部分组成。主线程模块功能:首先通过与背景做差得到所加载视频中的前景目标,并利用行人形状特征(比如:宽高比、面积)初步筛选出目标中的行人;然后,利用输入为低维度HOG特征、输出为隶属于行人的概率值的SVM行人分类器对前景进一步精确识别,同时,把所有隶属分类不明确的前景目标顺序存储到队列中;最后,输出主线程模块行人检测的结果。辅助线程模块功能:调用输入特征维数较高的SVM分类器对主线程存储的隶属分类不明确的前景目标进行再识别处理。考虑到计算机线程利用有效率问题,我们只有当存储前景目标数达到10的时候才触发一次辅助线程,利用高维度SVM处理完10张图片并进行再识别处理后,辅助线程关闭,等待下一次的触发。下面对各模块原理进行详细介绍。输出更可靠的行人识别结果,与低维度软输出SVM行人分类器输出结果比较。若一致,直接进入下一张图片的判断;若不一致,用现输出结果覆盖之前的存储结果Themainthreadmodulefeatures:first,weobtainstheforegroundmovingtargetbydifferencewiththebackground,andscreenstheobjectsofpedestrianusingpedestrianphysicalcharacteristics,比如.Then,Weintroducealow-dimensionalandsoft-outputSVMpedestrianclassifiertoimplementprecisepedestriandetection.Meanwhilesavetheforegroundobjectswithoutclearclassificationsequentiallyinthequeue.Finally,wegetthepedestriandetectionresultsofthemainthreadmodule.Thesupportthreadmodulefeatures:Whentheforegroundobjectsstoredinthequeuereached10,wecallSVMclassifierofinputhigher-dimensionHOGfeaturetoprocessthemagain.Comparingthisresultwiththeresultoflow-dimensionalandsoftoutputSVMclassifier,iftheyarethesame,wegotothenextforegroundobjectinthequeue;otherwise,weusethisresultinsteadofthepreviousresults.图2行人检测算法框图3.1.1提取前景目标背景差分的关键在于使用背景建模提取背景。背景建模的方法很多,但一般建模后的背景并非十分干净清晰,而高斯混合模型[3]是建模最为成功的方法之一。它是用高斯模型即高斯概率密度函数来表征图像中每个像素点的特征:设为时刻的背景图像,对该时刻背景图像上每个像素点建立混合高斯模型:(1)其中,,,分别为所对应的权重系数、均值和方差,表示时刻第个高斯分量的分布函数。随着时间的变化,背景图像也会发生缓慢的变化,混合高斯模型需要不断更新:,(2)其中,为背景模型权重更新参数,为背景模型均值更新参数,为图像在像素点处的灰度值。对混合高斯模型,在时刻,式(1)背景模型的每个象素属性只包括两个参数:均值和方差。对于一幅给定的图像I,用每个像素点I与对应时刻的混合高斯模型匹配,如果满足(3)其中为我们设定的阈值,通常选取区间任意数,则认为匹配成功,判断为背景点;否则,为前景点。3.1.2筛选前景图片筛选前景图片是通过提取行人的某些特征对图像分割得到的一系列运动目标进行识别、分类,并把判断为行人的目标标识出来。传统的方法一般选取行人最直观的形状特征(比如宽高比、面积)进行识别,可简单、快速去除车辆等明显不是行人的目标,提高系统效率,但这种不使用行人任何抽象特征的识别方法往往精确度会很低。基于此,本文在传统方法的基础上引入分类器和第二线程的思想对目标进行精确判断、识别。设目标外接矩形面积为,每帧图像尺寸为,图像面积为。考虑到同一运动与摄像头距离不同,面积也会有显著差别,所以我们把获取的视频按横向或纵向坐标分成,,三个区域。判断是否满足(4)若满足(4),初次判断为行人,以去除车辆等面积过大目标和树叶、天线等过小目标。进一步,若目标外接矩形的宽高比满足(5)再次判定为行人。因为行人高挑的特征十分明显,故用该比例可很好分离出行人。我们进一步采用分类算法来实施行人检测。把每个运动目标当成一幅独立图片,经过归一化尺寸特征提取,依次输入分类器中。这些图片相对于任意的静态图片具有以下特点:1)图片尺寸小,提取的特征维数大大降低,分类算法复杂度随之减小;2)图片中目标所占比例较大,即主元信息较多,使分类器更容易识别出行人。基于这些特点,我们采用自己提出的低维度软输出SVM行人分类器来实施精确的行人检测。•通过对提取的前景图片高维度HOG特征进行降维处理,得到一个低维度SVM分类器。一般训练SVM分类器的样本图片均归一化为,对样本分块,块大小为像素;把每个块分为4个像素的单元,步长为8个像素。这样归一化处理后,每张图片HOG特征维数为维[5]。但是,本系统输入的前景图片尺寸较小,故我们把归一化尺寸降低为,同样方法每张图片HOG特征维数为维。综上,运算复杂度降低了5倍。•通过改变低维度SVM分类器输出结果,获得低维度软输出SVM分类器。低维度SVM分类器输出为类别判断信息,一般“”表示不属于该类别,“1”表示属于该类别。但实际应用时由于噪声等的污染,无法把处于类边界的样本明确地归为某一类,只能以一定概率或一定隶属度判别为某一类。因此,为了使SVM分类器更适用于这些问题,我们引入PlattJ.C.提出的软输出(softoutput)的概念[9]。用一个挤压函数sigmoid()作为连续函数把SVM的硬判断输出映射到,实现SVM的后验概率输出,称为隶属于行人的概率值。在使用该分类器进行行人检测时,把每个运动目标当成一幅独立图片,经过归一化尺寸HOG特征提取,依次输入SVM分类器,得到是否是行人的判断结果。同时,把可靠性参数属于的样本被分离出来,存储分离出的目标图片,并记录该图片所在帧的时刻。3.1.3辅助线程中纠错处理主程序处理过程中,软输出结果隶属分类不明确的前景目标及所在帧图片的对应时刻已经存储到一个定义好的队列中。辅助线程对这些图片进行处理:首先,为了节省辅助线程中的资源,我们只有当队列存储前景目标的数量大于10张时,才触发辅助线程开始工作。从队列中按先进先出的顺序读取存储的前景图片,并归一化尺寸为。提取前景图片HOG特征输入到训练好的SVM分类器中进行检测,与低维度软输出SVM行人分类器输出结果比较,若一致,直接进入下一张图片的判断,不一致,采用新结果替换之前结果。•3.2行人跟踪行人跟踪是监视各个行人在视频序列中的空时变化,包括人体的出现位置、大小、形状等[7]。我们选取以颜色为特征进行跟踪的CamShift(ConinuouslyAdaptiveMeanShift)算法,它可有效解决目标变形问题。本系统从实际应用出发,在传统半自动、单目标CamShift[8]算法的基础上,实现了以下功能:用户手动圈出一个或多个感兴趣目标,系统按目标的个数自动分配跟踪器,进而实时跟踪多个目标、画出目标轨迹并把轨迹存储到指定的文件夹中。具体工作原理和步骤如下:•鼠标选择感兴趣区域。设置标签表征是否选中第个目标:未选中赋值0,选中后赋值,跟踪结束后赋值。利用标签依次把选中的区域存入数组中。•获取初始目标及H分量直方图。调用setMouseCallback()函数,获取感兴趣目标的坐标值;调用calcHist()函数计算目标区域的H分量直方图;初始化搜索窗的大小和位置,定义为质心坐标。•利用直方图计算输入图像的反向投影图。反向投影图是一种记录给定图像中各像素点颜色信息出现在此处可

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功