![基于人体特征的运动检测与跟踪-_第1页](http://file4.renrendoc.com/view10/M00/32/35/wKhkGWVy9A-AHbGuAAGU1YVjL3I729.jpg)
![基于人体特征的运动检测与跟踪-_第2页](http://file4.renrendoc.com/view10/M00/32/35/wKhkGWVy9A-AHbGuAAGU1YVjL3I7292.jpg)
![基于人体特征的运动检测与跟踪-_第3页](http://file4.renrendoc.com/view10/M00/32/35/wKhkGWVy9A-AHbGuAAGU1YVjL3I7293.jpg)
![基于人体特征的运动检测与跟踪-_第4页](http://file4.renrendoc.com/view10/M00/32/35/wKhkGWVy9A-AHbGuAAGU1YVjL3I7294.jpg)
![基于人体特征的运动检测与跟踪-_第5页](http://file4.renrendoc.com/view10/M00/32/35/wKhkGWVy9A-AHbGuAAGU1YVjL3I7295.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于人体特征的运动检测与跟踪第1章绪论计算机视觉是实现利用计算机对于三维景物世界的理解,即实现人的视觉系统的某些功能.,是一个相当新且发展十分迅速的研究领域。机器视觉是在20世纪50年代从统计模式识别开始的,当时的工作主要集中在二维图像分析和识别上,如光学字符识别、工件表面、显微图片和航空图片的分析和解释等。到了80年代中期,机器视觉获得了蓬勃发展,新概念、新方法、新理论不断涌现;尤其是近年来,机器视觉技术正广泛地应用于各个方面,从医学图像到遥感图像,从工业检测到文件处理,从毫微米技术到多媒体数据库,从安全鉴别、监视与跟踪到国防系统,不一而足。可以说,需要人类视觉的场合几乎都需要机器视觉。数字图像处理技术是从20世纪60年代以来随着计算机技术和VISL(VisualInteraetiveSnyatxLeaming)的发展而产生、发展和不断成熟起来的一个新技术领域,它在理论上和实际应用上都取得了巨大的成就。数字图像处理的主要研究目的在于通过对原始图像的再加工,使之能具备更好的视觉效果或能满足特定的需求,在处理上主要包括图像的采集、编码、存储和传输,图像的合成,图像的增强、变换与复原等诸多内容。目前己广泛应用于工业、微生物领域、医学、遥感、航空航天及国防等许多重要领域,而且多年来一直得到世界各科技强国的广泛关注。尤其是在视觉要求越来越高的今天,数字图像处理作为机器视觉的基础,是机器视觉系统的关键工具。近年来,人体运动视觉分析成为计算机视觉领域备受关注的前沿方向。人体运动视觉分析是从包含人体的图像序列中检测、识别、跟踪人体以及获取运动参数,进一步对人的行为解释和描述。它属于图像分析和理解的范畴,其研究内容涉及计算机视觉、模式识别、图像处理、人工智能和人体运动学等方面,是一个跨多学科的研究课题。运动人体检测和跟踪是人体运动视觉分析的一个重要组成部分,有着广泛的前景和经济价值。它在视频监控、虚拟会议、人机交互、临床诊断、教育训练、虚拟现实等方面的应用都引起了广大科研人员和相关商家的浓厚兴趣,例如在银行、商场、军事基地等对安防要求较高的场合,实时的视觉监控将有重要意义;在智能控制方面,可以通过对人脸识别和表情分析以及手势识别等更好的实现人机交互。另一方面,运动人体检测与跟踪算法的实现可以节它是从图像序列中提取并描述人体轮廓的运动,然后进行跟踪,更高级的处理是对人的行为进行识别和理解。它在视频会议、医疗诊断、高级人机交互、小区、超市、银行等地带的安全监控,游戏动画中人的虚拟现实及基于内容的图像存储与检索等方面具有广泛的应用前景和潜在的经济价值。人体运动的检测、识别与跟踪这一课题主要应用于智能视频监控领域。通过实时地观测被监视场景的运动目标,如人或车辆等,分析描述他们的行为,节省了大量的人力物力。更重要的是,有些场合由于客观原因,人类可能不方便或者根本不可能亲自到现场进行查看,这时只有通过其他方法,如用计算机进行实时监视来完成需要的工作。这项技术研究内容丰要涉及到运动目标检测与提取、运动人体识别、运动人体跟踪、运动分析与运动理解、视频认证等方面的内容。因此研究智能视频监视技术有着重要的理论意义,而人体运动的检测与跟踪则是智能视频监控中的重要组成部分。节约大量的人力资源和物质资源,极大地降低了监控特定区域的成本。1.1国内外研究现状人体检测和跟踪人体检测和跟踪具有重要的理论价值和广泛的应用范围,很多国家的科研机构和有关部门都投入到该领域的研究之中。目前已有许多人体检测和跟踪的系统,如WrenC.R.等[4]开发的实时人体跟踪系统Pfinder,该系统跟踪复杂场景下非拥挤人群中的单个人,已用于许多应用中;美国国际商用机器公司与美国马里兰大学联合开发了的实时智能视频监控系统W4,它建立人类外形的的模型,可以检测和跟踪人群和在拥挤环境下的人体行为,用于民宅、停车场和银行等场合;美国DARPA资助卡内基梅隆大学戴维SARNOFF研究中心等大学和公司合作联合研制开发的VSAM视频监视与监控系统,该系统能够用于普通民用场景以及战场的实时监控;Olsen等开发的单人跟踪系统TI系统,它使用运动检测的方法检测室内场景下的运动物体,使用一阶预测跟踪他们并识别其行为。在国内也有很多科研机构对人体运动分析进行相关研究,包括中科院自动化所模式识别国家重点实验室、北京大学视觉与听觉信息处理国家重点实验室及清华大学智能技术与系统国家重点实验室。而国内的一些团队也对人体运动分析的某一部分进行了深入的研究,比如说中科院研究生院李华、刘国羿研究了基于人体姿态和骨架的检测算法;中南大学李弟平研究了一种基于人体上半身形态的运动检测算法。另外,国际上相关的权威期刊,如CVIU(ComputerVisionandImageUnderstanding)、PAM(IIEEETransactiononPatternAnalysisandMachineIntelligence),以及重要会议如ICC(InternationalConferenceonComputerVision)等,对人体检测跟踪、识别及运动分析领域有着重要的促进作用。1.2运动人体检测与跟踪难点尽管许多学者已经进行了有益的尝试,但是由于行人运动的复杂性和不规则性,使它很难用一个统一的方法进行研究。许多方法和模型或是过于简单而不能普遍采用,或是过于复杂难以在实际中进行应用。行人运动跟踪和分析还需要不断发展。目前存在的主要问题有:(1)运动人体检测、识别与跟踪还没有通用的方法,通常是在受限的条件下,针对特定的环境设计相应的检测方法。如人体运动期间不被遮挡、背景相对简单、摄像机静止不动等。(2)复杂背景下对运动人体的检测,由于受周围环境影响较大,通常对外界干扰无能为力。当行人所穿衣服颜色与背景着色相似或背景光线变化较大时,很难从背景中分割出运动的人体。(3)复杂背景下对人体运动的深入分析,一般通过对人体进行建模来完成,只能处理单个人体的运动,且测试条件比较苛刻,系统复杂。(4)单幅图像处理难以实现对人体的可靠检测,因而必须对序列图像进行处理,需要存储和处理的数据量大,且系统的实时性能很难保证。(5)行人检测与跟踪技术涉及到多种学科的知识,包括计算机视觉、图像处理、模式识别、人工智能等,如何将它们相结合也是值得深入研究的问题。而且由于人体是非刚性物体,运动比较灵活、复杂,具有不规则性,因此很难找到统一的模型描述人体的运动。而且人所处的环境千差万别,变化因素很多,不同的应用对人体检测与跟踪的性能要求不尽相同。而运动检测与跟踪算法的鲁棒性、准确性和实时性的统一仍是尚未解决好和正在努力追求的目标[5],难以采用一个通用的方法研究,满足所有环境下的性能要求。目前存在的难点主要有:(1)环境和人体特征的多变性。环境会随着时间变化,如光线的强弱,会影响图像的亮度、对比度及阴影;移动人体所穿衣服颜色与背景相似时,很难从背景中分离出人体目标。如何实现快速准确地进行运动检测,适应周围环境的变化是要面临的一个难点。(2)场景中运动物体的干扰。在应用场景中,可能存在大面积区域中各种目标的运动,如车辆的突然启动与停止;以及频繁变动的物体,如摇摆的树、波动的水面,都会增加人体运动目标检测的难度。因此,对运动物体如何有效分类,避免或减少跟踪目标的丢失,能区分虚假目标,进而提高跟踪算法的有效性,有着重要的作用。(3)遮挡。在复杂场景中,尤其是拥挤环境下,人与人之间、人与其他运动目标可能会相互遮挡,人体也会发生自遮挡,如何判断遮挡的开始和结束,采取何种策略处理遮挡,对检测和跟踪的准确性带来很大的影响。(4)目标的失踪。运动目标长时间停留在场景中,可能变成背景目标,造成跟踪丢失。(5)系统性能评估[6]。一般而言,人体运动分析系统的三个基本要求是鲁棒性、准确性、实时性。这三个性能的重要性在不同的应用存在着差别:鲁棒性对于监控系统特别重要,准确性对于控制系统特别重要,而实时性则对实时高速系统非常关键。因此,选择有效的算法和方案来适应不同的应用,提高系统的性能,降低计算复杂度具有很大的意义。同时,如何测试系统的鲁棒性、准确性、实时性也是值得考虑的问题。1.3本文研究内容由于人体运动的复杂性,从目前的研究现状和技术水平来看,建立一个适合所有情况的运动人体检测与跟踪系统是不现实的。因此,解决一定限定条件下或某种应用场景下的运动人体检测和跟踪问题仍是该领域主要的研究方向[7]。本文针对单个摄像机及摄像机静止的条件下,设计一种适用于简单环境下多人移动目标的跟踪算法。本文提出了一种基于多特征的人体移动目标跟踪算法,实现了对多个人体的有效跟踪。在运动人体检测方面使用统计方法,首先建立背景模型并周期性更新,通过把图像某像素点与模型比较得到运动的前景部分。对于运动前景采用中值滤波去除噪声,并使用数学形态学的开运算去除小面积的非人体运动部分。对于人体运动区域,该系统将轮廓投影分析和形状分析相结合,可以有效的去除大面积非人体活动区域和影子的影响,能够分析前景活动区包含几个运动者,将区域合理分配各每个运动者,并分别进行跟中。在跟踪中采用了区域跟踪和特征跟踪相结合的方法,把运动区域的中心点作为运动特征点进行跟踪。在水平与垂直连个方向上根据特征点位置分别建立卡尔曼滤波器,通过预测下一帧中该特征点的位置建立连续帧之间的特征点的联系。卡尔曼滤波的迭代计算采用衰减记忆滤波法与平方根滤波法,抑制了发散。该算法可以检测到运动者的数量和具体位置,但要手动设定背景。第2章人体运动目标检测与跟踪理论概述随着计算机视觉、模式识别等相关领域的研究和发展,人体运动目标的检测和跟踪的方法也层出不穷,以适应不同的应用环境。根据摄像头是否静止,可以将监视场景分为静态背景类型和动态背景类型:根据所包含的人体个数,可以将检测对象分为单人检测跟踪和多人检测跟踪;根据环境中运动人体有无遮挡,可以将跟踪分为有遮挡跟踪和无遮挡简单跟踪。静态背景下摄像机位置保持固定,只有跟踪目标和其他待滤除的运动物体发生相对运动,背景不改变或者只有微小的改变;动态背景下摄像机在跟踪过程中可能会发生移动或旋转,导致视频的前后相邻两帧和背景发生巨大变化。2.1人体运动检测方法人体运动目标检测是在输入图像中确定运动人体的过程,是整个人体运动分析系统的第一部分,运动目标检测的目的是将运动人体部分从图像中提取出来,能否正确地分离运动人体是整个系统成败的关键。运动目标检测由运动物体分割和运动物体分类两部分组成。2.1.1运动物体分割运动物体的分割就是把图像中的运动部分,比如汽车、行人等分离出来,因为只有运动的部分才是能够跟踪的部分。运动部分的分割常常受到光线变化、影子和遮挡等因素的影响。因此选用一种稳定可靠的分割方法是很重要的。常用的分割方法有以下几种。(1)背景减法。在运动检测中,背景减法(BackgroundSubtraction)是一种常用的技术,尤其是对于静态场景。它首先建立背景模型作为参考图像,通过将含有运动物体的图像与事先通过背景模型得到的背景图像相减得到运动部分其原理如图2-1所示。这种方案简单易行,但是极易受到光照等外部环境变化的影响,必须配合其他方法进行修正。背景模型的建立主要有3种方法,一是通过求多幅图像的像素点均值得到,二是通过多幅图像的像素点中值得到,三是通过建立自适应模型得到,从而能对抗外部环境变化。图2.1背景减除法原理示意图一种改进的阈值法是采用双阈值方法。这种自适应阈值的选择算法,克服了单阈值中阈值过高不能完整分割出目标,过低会产生大量的无关噪声(如影子)等缺陷。Mckenna等利用像素色彩和梯度信息相结合的自适应背景模型来处理影子和不可靠色彩线索对于分割的影响。Karmana与BrandtHl,Kilger喳采用基于卡尔曼滤波器(Kalmanfiltering)的自适应模型以适应天气和光照的时间变化。(2)统计方法。统计学方法是基于像素的统计特性从背景中提取运动信息。它首先计算背景像素的统计信息(颜色、灰度、边界等),使用个体的像素或一组像素的特征来建立一个较为高级的背景模型,而且背景的统计值可以动态地更新。通过对比当前背景模型的统计值,图像中每一个像素被分成前景或是背景。由于统计学方法在噪声,影子光线改变等于扰条件下具有较好的鲁棒性,已经成为研究热点。Stauffer和Grimson∞3的文章提出了一种实时跟踪中运用自适应背景混合模型来检测背景图像的方法。在这种方法中,他们为每一个像素建立一个混合高斯模型,并且用在线估计对它进行更新,并且运用自适应混合模型的高斯分布来评估并决定该像素是前景还是背景,可以有效的处理光线变化和背景混乱,设计出了一整套可靠、实时性强的室外跟踪系统。Haritaoglu的文章同样建立了统计模型。他是通过计算每个像素点所具有的3个值:最小强度、最大强度和在训练期观测到的连续帧之间的最大强度差分值来描述每一个像素,背景模型参数可以周期性地更新。林洪文阳利用统计学的方法获得背景模型,实时地对背景模型更新以适应光线和场景自身的变化,用形态学方法和检测连通域面积的方法进行处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。基于统计的方法由于涉及大量计算和变换,对现有的硬件设备要求较高,成为其制约因素。但随着计算机运算能力的日益增强,问题有望得到改善。(3)帧间差分法。帧间差分法(TemporalDifferencing)是在图像序列中通过相邻两帧或者三帧图像像素差,提取运动区域的运动目标检测方法。帧间差分对光线等变化不太敏感,对动态环境具有很强的自适应性,检测有效稳定。该方法的不足之处是一般不能提取所有相关的特征像素点,在运动实体内部可能会产生空洞现象。特别是当目标移动缓慢时,相邻两帧之间的差异很小,很难提取出整个运动区域,即使提取的区域也难以完整精确地描述运动目标。采用这种方法时,要考虑运动目标的移动速度,选择合适的时间间隔。对快速移动的目标,应选择较小的时间差,避免造成前后两帧没有重叠,而被分割为两个分开的物体;对于移动速度很慢的物体,则应选择较大的时间差,否则可能造成物体在前后两帧中重叠部分过大,而检测不到。一般过程见图2-2图2.2帧间差分法图中,表示第k帧图像,则检测和提取运动区域的过程包括以下几步:(a)、帧间差分。2.1为差分图像(b)、图像二值化。2.2T为设定阈值,为二值图像(c)、形态学滤波。对二值图像进行腐蚀和膨胀运算,得到一个或多个连通区域。(d)、连通区域判断。对连通区域分析判断,舍去面积较小的区域。(4)光流法。光流是图像中各像素点运动的速度分布,它是一种瞬时速度场,即向量场,每一个向量表示了景物中一个点在图像中位置的瞬时变化。光流法(OpticalFlow)是利用运动目标在序列图像中的位置随时间变化的光流特性,用来描述相邻帧之间某像素点的运动,通过计算运动物体在帧间的运动向量来检测运动区域。在比较理想的情况下,光流法在摄像机运动的条件下能检测到独立的运动目标,不需要预先知道场景的任何信息,可以很精确地计算出运动物体的速度。但计算方法复杂,对硬件要求比较高,可靠性差,对噪声敏感,难于应用在实时的视频流处理中。除了上述的基本分割方案,还有EEM(ExtendedExpectationMaximization)算法以及基于数学形态学的分割方法等2.1.2运动物体分类由运动分割得到的不同运动部分可能属于不同种类的运动物体,比如人体视频监控系统得到的运动部分就可能包括飞行的鸟、飘动的云和晃动的树等,要从中提取人体就要进行运动物体分类,把人从运动物体中识别出来。只有正确地识别出人体才能进行下一步的运动跟踪工作,以及后续的人体行为理解,所以运动物体的分类是非常必要的。一般可用形态学方法进行处理,考虑运动目标的分散度、面积、轮廓、高宽比等有关形态方面的参数,来区分人以外的运动目标,通过这些方法甚至可以去除部分噪声的影响。目前分类有两种:(1)基于人体特征分类。人不管外形特征还是皮肤颜色都是明显的,所以人的分类可以采取多种方法。基于形状的分类是利用检测出来的运动区域的形状特征信息来进行物体分类的。通过检测模块得到一个二值化的前景图像,对这个前景图像进行横向和纵向的投影可以得到横向和纵向的长度比,通常称之为“宽高比”。通过多个人的样本训练可以得到一般人体的“宽高比",这个“宽高比"作为人体特有的特征,可以用于确定检测出的运动目标是否为人体。这个人体特有的特征也可以是人体的“面积",它指的是在通过检测模块得到二值化的图像中人体所占像素的多少,通过面积的比较,可以除去一般情况下面积较大的运动的汽车、动物、以及摆动的树叶。另外的一些属于人体特有的特征还可以是人的皮肤颜色,因此可以通过识别人脸裸露的皮肤来确定是否有人的存在,这通常需要在色彩空间如RGB空间、HIS空间或YUV空间来进行检测与识别。(2)基于运动的分类。人体运动是非刚体运动,并呈现一定的周期性,这种周期性可以作为区分运动人体的重要依据。一种方案对于这种周期性的运动进行时频分析,利用人体运动周期性出现的自相似性来实现分类;还有方案将此方法与光流法结合,根据残留的大小来实现分类。实际中可以两种方法结合使用,显然如果能够合理利用图像的颜色信息和运动部分的速度信息,分类的结果将更加可靠。2.2运动目标跟踪运动目标跟踪也是计算机视觉领域的重要内容,它利用运动目标分割的结果,又为运动的分析理解等高级内容提供基础。跟踪的目的是在帧与帧之间建立人体运动目标的某些特征,若位置、速度、形状、纹理和颜色等之间的联系。目前常用的跟踪方案有以下4种.(1)基于模型的跟踪。基于模型的人运动跟踪方法首先预定义一个模型,然后再将实际运动与该模型匹配。模型通常由关节和线条骨架组成,用轴来表示状态空间中的关节自由度,用状态空间来描述姿态。其原理是先预测下一图像的姿态再将这一预测模型分析、合成、抽象然后与真实图像数据比较,直到找到最匹配的模型,并且更新系统模型。人体的几何模型有简单到复杂可以建立为棍状模型,二维边界模型和三维立体模型,建立模型之后就可以通过将运动物体与模型对比从而实现跟踪。由棍状模型到二维边界模型,再到三维立体模型,所实现的跟踪精度越来越高,但计算量也在增大。(2)基于区域的跟踪。区域跟踪思想是把每个运动物体与某个运动区域联系起来,然后对该区域进行跟踪。区域跟踪实现较为简单,在许多系统中有广泛应用,但在两种情况下有很大困难,一是人体存在较长影子,二是人体有重叠交错现象。(3)基于动态边界跟踪。动态边界模型又叫snake,能够表示不断变化的运动人体的边界。该方案计算量小,但是要求独立准确的初始化边界,实际中很难实现。(4)基于特征的跟踪。它包括特征提取和特征匹配两个基本过程。该方法通过跟踪目标的特征点、特征线来实现对人的跟踪,通常还需要结合纹理、色彩及形状特征来提高跟踪的鲁棒性。如Polana与Neson乜11的文章将每个行人用一个矩形框封闭起来,封闭框的质心被选择作为跟踪的特征;在跟踪过程中若出现两入互相遮挡时,只要质心的速度区分开来,跟踪仍能被执行。另外Tissainayagam.P和Surer.D[24]的文章中,物体由关键特征点来描述,这些关键点是运动轮廓的角点(cornerpoint),通过跟踪角点来跟踪人的运动。尽管对目标跟踪的算法可以粗略地分为上述几类,但是这些方法并不是孤立没有联系的。在进行目标跟踪时,为了保证跟踪的可靠性和准确性,往往几种算法混合才能得到更好的跟踪效果。这种方法在被跟踪目标出现遮挡交错等现象时仍能实现较为准确的跟踪。此方案必须在跟踪的复杂性与有效性之间进行折中。
第3章算法实现本文主要对室内、室外固定摄像背景下运动人体进行检测与跟踪。通过建立统计背景模型,将运动图像与模型比较,可以检测到运动前景部分。采用中值滤波和数学形态学方法(投影确定宽高比)可以准确得到人体运动部分。通过对人体运动前景分析得到各个运动者对应的模块,对各个运动模块继而采用卡尔曼滤波来实现跟踪。检测与跟踪流程图如图3.1所示。图3.1算法流程3.1读取与屏幕显示3.1.1AVI格式整个人体跟踪系统的输入采用AVI文件。AVI是一种RIFF文件格式,用于音视频捕捉、编辑、回放中。RIFF文件使用4字符码FOURCC来表征数据类型。它的文件头最开始是一个4字符码“RIFF”;紧跟着后面用4个字节表示次文件大小;然后又是4个字符码说明文件具体类型(AVI、WAVE等);最后是实际数据。RIFF实际数据中通常还使用列表(list)和块(chunk)的形式来组织。AVI文件类型用4字符码“AVI”表示。整个AVI文件的结构为:一个RIFF头+两个列表(一个用于描述媒体流格式、另一个用于保存媒体流数据)+一个可选的索引块。RIFF(‘AVI’LIST(‘hdrl’‘avih’(主AVI信息头数据)LIST(‘strl’‘strh’(流的头信息数据)‘strf’(流的格式信息数据)[‘strd’(可选的额外的头信息数据)[‘strn’(可选的流的名字)))LIST(‘movi’{stbchunk|LIST(‘rec’Subchunk1Subchunk2)})[‘idxl’(可选的AVI索引块数据)]RIFF表征文件类型,hdrl列表描述AVI文件中各个流的格式信息,hdrl嵌套了一系列块和子列表——avih块用于记录AVI的全局信息,比如流的数量、视频图像的宽和高等,可以使用一个AVIMAINHEADER数据结构来操作。然后就是一个或多个“strl”子列表(文件有多少流就有多少子列表),每个“strl”子列表至少包含一个“strh”块(保存编码器的一些配置信息)和一个“strf”块(保存流的名字),且是可选的。如果是视频流,则用BITMAPINFO数据结构来描述;如果是音频流,则用一个WAVEFORMATEX数据结构来描述。当所有的流都描述后“hdrl”列表的任务就完成了,随后跟着是用于保存真正媒体流数据的“movi”列表。那么怎么组织这些数据呢?可以将数据块直接嵌在“movi”列表里面也可以几个数据块分组成一个“rec”列表后在编排进“movi”列表。当AVI中含有多个流时,数据块和数据块间用4个字符码来区别。这个4字符码由2个字节的类型码和2个字节的流编号组成。类型码定义如下:“db”(非压缩视频帧)、“dc”(压缩视频帧)、“pc”(改用新的调色板)、“wb”(音缩视频)。紧跟在“movi”后是AVI可选的索引块。这个索引块为AVI文件中每一个媒体数据块进行索引,并且记录它们在文件中的偏移。索引块用一个“idxl”来表征,索引信息用一个数据结构AVIOLDINDEX定义。3.1.2BMP图片格式BMP文件格式是windows本身可以直接提供读取支持的位图文件格式。一个BMP格式文件通常有.bmp扩展名,但有些以.rle为扩展名。BMP文件可以用每像素1、4、8、16或24位来编码颜色信息,这个位数称为图像的颜色深度,决定了图像所含的最大颜色数。典型的BMP文件结构:一个位图文件头、一个位图信息头、一个颜色表(色表)和位图数据本身。表3.1位图文件头(bitmap-fileheader)14字节位图信息头(bitmap-informationheader)40字节彩色表/调色板(colortable)位图数据(bitmap-data)(1)位图文件头。包含关于这个文件的信息。如从哪里开始是位图数据的定位信息、文件大小等。(2)位图信息头。位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度(以像素为单位)、高度(以像素为单位)、目标设备的位平面数、图像的压缩格式(一般都是0)、图像数据大小(以字节为单位)、水平和垂直方向像素密度以及调色板实际使用的颜色数。(3)颜色表。颜色表一般针对16位以下的图像二设置的,对于16位以上的图像,由于其位图像素数据中直接对应杨素的RGB颜色进行描述,因而省去调色板。而对于16位以下的图像,由于其位图像素数据中记录的只是调色板的索引值,因此需要根据这个索引值到调色板去取得相应的RGB颜色。颜色表的作用就是创建调色板。对于显示卡来说,如果它不能一次显示超过256种颜色,读取和显示BMP文件的程序能够把这些RGB值转换到显示卡的调色板来产生准确的颜色。(4)位图数据。BMP文件的位图数据格式依赖于编码的每个像素颜色所用的位数。对于一个256色的图像来说,每个像素占用文件中位图数据部分的一个字节。像素值不是RGB颜色值,而是色表中一个索引。如果色表中第一个R/G/B值是255/0/0,那么像素值为0表示鲜红色,像素值按从左到右的顺序储存,通常从最后一行开始。所以在一个256色的文件中,位图数据中第一个字节就是图像左下角的像素的颜色索引,第二个就是它右边的那个像素的颜色索引。如果位图数据中每行的字节数是奇数,就要在每行都附加字节来调整成16位的整数倍。本系统使用256色的BMP文件输入。3.2人体运动检测人体运动检测部分是利用人体的形状特性在每一帧图像中提取出与人体相对应的运动部分,主要任务有3项。(1)建立基于统计的背景模型,以在背景略有变化的情况下,检测出每帧图像中运动的前景部分;(2)采用中值滤波和数学形态学(宽高比)的方法,在运动的前景部分中检测出对应于人体的运动部分;(3)判断人体运动部分是否包含多个运动者,如果包含进一步判断运动者的数量,并划分运动区域。3.2.1背景减法在实际应用中,采用对比的方法确定图像中的前景点,设为实际输入序列,th为某一确定阈值。(3-1)图3.2运动图像与背景模型图3.2是室外采集的图像序列中的一帧与此时对应的背景模型,进一步通过阈值对比就能确定前景区域。背景模型可以通过多幅图像取中值得到。图3.3一帧图像图3.4th=10时运动区域图3.5th=15时运动区域图3.6th=20时运动区域图3.7th=25时运动区域图3.8th=40时运动区域图3.3到图3.4是图像采用不同的检测阈值得到的运动区域对比。为了使效果更加明显,运动区域与非运动区域采用了二值化处理,以黑色表示运动区域,白色表示非运动区域。通过比较,可以看出当阈值满足20≦th≦25时,能够比较准确的得到人体运动区域的范围,同时受环境中非人体运动部分的影响较小,结合后面的中值滤波和数学形态学处理,可以得到更为准确的人体运动区域的轮廓。为了跟踪,要建立一个Tracking类,包括读入背景函数ReadBackground()、背景减法函数GetError()。由于光照条件变化等外部原因和摄像机成像质量不佳等原因,每一帧活动图像中都有可能存在噪声,这样由背景模型得到的前景区域也可能含有噪声,为此应采用中值滤波的方法处理。前景区域中有部分面积较小的连续区域可能对应背景中树叶等非人体部分,同时摄像机可能出现轻微晃动,导致前景区域含有细小的图像边缘轮廓,为此有必要采用数学形态学方法进行处理,以得到较为准确的人体运动区域。3.2.2中值滤波中值滤波是一种非线性信号处理方法,由J.W.Tukey于1971年首先提出并应用于一维信号处理中,后来被二维图像信号处理技术所使用。中值滤波在一定条件下可以克服线性滤波器,如最小均方滤波和均值滤波等带来的图像细节模糊,而且对于滤除脉冲干扰和图像扫描噪声最为有效,同时在计算过程中不需要知道图像的统计特性,比较便于实现。对于图像的二维中值滤波一般采用一个含有奇数个点的滑动窗口,用窗口中各点灰度值的中值代替指定点(一般为窗口中点)的灰度值。对于奇数个元素,中值是指灰度值按大小排列后中间的数值;对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。中值滤波窗口的形状和尺寸对滤波效果影响很大,实际中采用的窗口形状有线性、方形、圆形、十字形等,采用的窗口尺寸一般为3*3或3*5。若以Med{}表示中值滤波,K为常数,则对窗口W点集进行的中值滤波有以下特性。(3.2)(3.3)(3.4)本方案采用的是方形滤波器。实验证明,在一般情况下,采用的窗口尺寸以3*5或3*3最佳,更大的滤波窗口虽然可以更有效的滤除噪声,但是会带来过分的平滑,是人体运动区域细节内容消失,给下面处理带来困难。3.2.3二值化一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群,称为图像的二值化。图像的二值化处理就是讲图像上的点的灰度置为0或255,将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。为了得到理想的二值图像,一般采用封闭、连通的边界定义不交叠的区域。所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。如果某特定物体在内部有均匀一致的灰度值,并且其处在一个具有其他等级灰度值的均匀背景下,使用阀值法就可以得到比较的分割效果。如果物体同背景的差别表现不在灰度值上(比如纹理不同),可以将这个差别特征转换为灰度的差别,然后利用阀值选取技术来分割该图像。动态调节阀值实现图像的二值化可动态观察其分割图像的具体结果。二值化包括全局二值化和局部自适应二值化。全局二值化就是设定一个全局的阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色(或者黑色),小于T的像素群的像素值设定为黑色(或者白色)。全局二值化在图像细节方面有很大缺陷。局部二值化的方法就是按照一定的规则将整幅图像划分为N个窗口,对这N个窗口中的每一个窗口再按照一个统一的阈值T将该窗口内的像素划分为两部分,进行二值化处理。局部自适应二值化,该方法就是在局部二值化的基础之上,将阈值的设定更加合理化。该方法的阈值是通过对该窗口像素的平均值E,像素之间的差平方P,像素之间的均方根值Q等各种局部特征,设定一个参数方程进行阈值的计算,例如:T=a*E+b*P+c*Q,其中a,b,c是自由参数。这样得出来的二值化图像就更能表现出二值化图像中的细节。3.2.4数学形态学数学形态学是分析几何形状和结构的数学方法,是建立在几何代数基础上,用集合论的方法定量描述集合结构的科学。形态学最早Matheron于二十世纪六十年代提出,1985年以后,它逐渐成为分析图像几何特征的工具。数学形态学是一门建立在严格数学理论上的学科,其基本思想和方法对图像处理的理论和技术都产生了重大影响。数学形态学是由一系列形态学的代数运算子组成的,基本的运算子包括:腐蚀、膨胀、开和闭运算。用这些算子及其组合来进行图像结构和形状的分析和处理,包括图像分割、特征提取、边缘检测、图像滤波、图像增强和恢复等方面的内容。形态学完备的数学理论为它在图像分析和处理,形态滤波器的分析和系统设计等方面的应用奠定了坚实的基础,近年来形态学的研究和应用在国内外得到了不断发展,成为最活跃的领域之一。为了去除前景图像中小面积的活动区域,最直观的想法是采用腐蚀的形态学滤波方法。虽然腐蚀方法能有效地去除微小非人体活动区域,但它对人体运动区域的损伤更大。如果在腐蚀后适当的进行膨胀,也就是进行开运算,则能够在滤除大部分微小非人体活动区域的同时尽量保持人体运动区域的形状不受损伤,为下一步处理创造有利条件。图3.9原始运动区域图3.10腐蚀运算结果图3.11开运算结果形态学处理效果如图3.10和3.151所示,本方案采用3*3方形腐蚀元和膨胀元。图3.9是原始运动区域,图3.10是腐蚀运算的处理结果,图3.11是膨胀运算的处理结果,实验表明,仅采用腐蚀运算时,图3.10中人体头部位置就受到严重的腐蚀,这对接下来的运动区域分析会造成非常严重的不良影响。当采用开运算时图3.11中残留非人体运动区域虽然比图3.10中多,但是能够基本保持人体的头部形状,这对分析运动者的数量是至关重要的。3.3运动区域分析经过中值滤波和数学形态学处理后得到的前景图像主要包含对应于运动者的活动区域和大面积的非人体活动区域,接下来的任务是从处理后的前景图像中找出运动者的准确位置。怎么将运动的人体和非人体区分开来呢?我采用的是投影宽高比分析,不同物体横向和纵向投影的宽高比是不同的(人体宽高比大约在0.24到0.36之间),所以就可以通过检测运动区域的投影来区别人体和非人体。所谓运动区域的投影就是将运动区域所对应的二值化图像投影到水平轴或垂直轴上,通过观察其中各个位置上的投影值的数量变化来分析运动区域的特征。当运动区域包含多个运动者时,可以进一步将前景区域分割成对应不同运动者的小区域。3.3.1纵向与横向投影在直立的一般情况下,人体轮廓对于垂直轴有一定的轴对称性,因此纵向投影也具有一定的轴对称性,通常头部对应的投影值较大,向两边逐渐减少,头顶部对应投影的局部极大值。通过以上分析可知,通过纵向投影的形状就可以大致过滤出非人体,而且通过计算纵向投影的局部极大值可以合理地确定人体头部位置。图3.12图3.13图3.14图3.15图3.13是由图3.12得到的人体轮廓,箭头表示头部位置,图3.14是图3.13的纵向投影,其最大值的箭头位置与图3.13基本相同。受外部条件和人体姿势影响,简单的纵向投影得到的局部极大值可能不能准确反映头部位置,因为图3.14有两个相邻的头部极大值。这时可以采用对投影进行一维中值滤波滤去多余峰值,如图3.15。为了得到人体运动区域的高度进而对运动人体进行框定,在得到头部位置后还要计算运动者脚部位置。从直立人体的对称性考虑,与人体头部位置横坐标对应区域的最下部就是脚部位置,但是实际中还有影子的影响。通常情况下,无论室内还是室外,运动者都会有影子存在,影子是一块面积较大灰度值较高的跟随运动者而动的区域。如果背景模型相应的位置灰度值较低,由前面的方法得到的运动区域会有影子存在。影子方向不同决定了它对运动区域检测的影响不同,如果影子被运动者挡在身后,影响可以忽略不计。但是影子一旦存在于运动者的左或右,不会对运动者的脚部位置确定产生影响但会对左右位置确定产生影响。影子存在于正下方时脚部位置的确定就会被严重地影响了,所以还要用横向投影加以修正。影子位于运动者正下方,如果忽略影子影响,通过计算运动者头部和脚部位置得到的人体高度与真实高度有很大误差。此时如果将人体轮廓进行横投影,因为人体脚部轮廓宽度小于腿、腰和肩,运动者的脚部将对应较小的投影值,并且会出现一个局部极小值。因此可以把检测到人体轮廓横投影的局部极小值作为脚部位置。结合前面得到的人体头部位置,就可以比较准确地得到人体高度。由于人的脖子位置的轮廓宽度较小,也将对应横向投影的局部极小值,此极小值如果与脚部对应的极小值相混淆,将会给计算带来极大误差。为避免此情况出现,局部极小值计算范围一般限制在整体轮廓高度中心处20%--30%,这时基本能够得到准确的人体高度。为了滤除噪声等因素的影响,可以对横向投影值进行一维的中值滤波使局部极小值的位置更加清晰和准确。必须指出的是,无论室内还是室外环境中,光照的变化一般比较缓慢,因此运动者的影子通常不会发生本质性的变化。对于是室内采集的图像序列,光源位置相对固定,完全可以通过运动者的位置定影子出现的方向;在室外光源是太阳,根据时间日期和太阳周期性运动也可以大致确定影子方向,这样可以根据实际情况决定是否采用横向投影。3.3.2前景区域轮廓分析运动检测部分的根本目的是确定属于人体的运动区域的坐标范围,前面通过纵向投影和横向投影已经得到了运动者的高度,接下来要进一步计算运动者对应区域的宽度。首先要做的是确定一个前景区域中一共包含几个运动者。当运动区域只包含一个运动者是,通过简单的纵向投影分析就能得到运动区域的宽度,当运动区域包含多个运动者时,问题就复杂得多,应根据各个运动者是否相重叠的具体情况加以分析。如果进一步考虑影子的影响,则要根据影子的不同方向,采用不同的计算方法。图3.16为了检测运动者的数量,就要分析运动区域纵向投影值的分布情况。图3.16是一帧含有多个运动者的图像检测到的运动区域纵投影。对图3.16进行纵投影。纵向投影的局部极大值一般对应运动者的头部,所以首先要检测出投影的局部极大值,并用、···表示,如图3.17。即使进行了形态滤波和中值滤波处理,也不能保证所有的局部极大值都对应人体头部,图3.21中就是由影子或非人体运动区域造成的,为了去除这些伪极大值,要检测得到的极大值满足一定的条件。,···>(3.5)阈值通常由以下经验公式确定=(3.6)不满足条件的极大值被滤去。如果对投影值的一维中值滤波不能完全滤除噪声造成的取值较大的局部极大值,或存在由人体姿势本身造成的局部极大值,则通常这些伪极大值与真实极大值的距离比较接近,可以通过引入一个距离阈值来去除。(3.7)当不满足次条件时,如果,则保留,除去;如果,则保留,除去。阈值一般通过对监控场景的先验知识确定,也可由经验公式=。图3.17纵向投影轮廓通过以上处理,基本上能得到运动者的准确数量。为了得到各个运动者对应的运动区域的横向范围,需要进一步结合纵向投影值的局部极小值加以分析。设通过前满分析得到的对应人体头部的局部极大值为0≤i≤m,则由横坐标开始向左右两个方向分别寻找最接近的局部极小值和,对应横坐标分别是和。由前面的分析可以发现,每出现一个伪局部极大值,在它和真实局部极大值之间就会出现一个伪局部极小值,为了去除这些伪局部极小值,引入一个距离阈值,满足以下要求。(3.8)0≤i≤m(3.9)如果<,则向右方继续寻找局部极小值,直到满足阈值条件;如果<,则向左方继续寻找局部极小值,直到满足阈值条件。阈值由经验公式=1/6,如图3.18所示。检测到所有满足条件的局部极小值之后,可以通过这些极小值的横坐标判断人体运动区域是否重叠。设满足条件的局部极小值为,,如果≥,则可以断定与对应的运动者重叠,此时对局部极小值进行修正。==½(+)(3.10)由于影子的存在,它可能被计算在运动者的横向范围内,为了克服影子的不利影响,对局部极小值进一步做如下修正。对某一确定的0≤i≤m,如果≤,则=2-;(3.11)如果≤,则=2-;(3.12)图3-18纵向投影轮廓2在经过以上分析后,可以认为与相对应的第i个运动者的运动区域的横向范围是(,),结合横向投影得到的人体高度信息,就可以实现人体运动区域的辨别和划分。在确定了人体的区域和宽高后就可以用一个矩形框将运动人体框住。3.4卡尔曼滤波简单来说,卡尔曼滤波器是一个最优化自回归数据处理算法。卡尔曼滤波器用状态方程和观测方程分别来描述动态系统的状态和观测值,并对状态序列进行线性最小方差估计。其思想是时序中通过预测、校正两个步骤不断迭代更新,使得过程噪声及观测噪声等引起的误差逐渐减小,以获得最佳的状态参数。状态估计是卡尔曼滤波的重要组成部分。一般来说,根据观测数据对随机量进行定量推断就是估计问题,特别是对动态行为的状态估计,它能实现实时运行状态的估计和预测功能。比如对飞行器状态估计。状态估计对于了解和控制一个系统具有重要意义,所应用的方法属于统计学中的估计理论。最常用的是最小二乘估计,线性最小方差估计、最小方差估计、递推最小二乘估计等。其他如风险准则的贝叶斯估计、最大似然估计、随机逼近等方法也都有应用。受噪声干扰的状态量是个随机量,不可能测得精确值,但可对它进行一系列观测,并依据一组观测值,按某种统计观点对它进行估计。使估计值尽可能准确地接近真实值,这就是最优估计。真实值与估计值之差称为估计误差。若估计值的数学期望与真实值相等,这种估计称为无偏估计。卡尔曼提出的递推最优估计理论,采用状态空间描述法,在算法采用递推形式,卡尔曼滤波能处理多维和非平稳的随机过程。而在计算机视觉中,卡尔曼滤波常被用于在运动估计。将有关位置、速度、形状、纹理、颜色等特征值看作状态值,一般过程是首先根据前一个时刻的状态值进行预测,然后根据预测状态值和错误协方差确定搜索范围,在搜索范围内查找特征和进行匹配运算,得到状态的测量值,然后用卡尔曼滤波进行修正,得到当前状态的估计值。利用卡尔曼滤波来进行预测,还可以估计出预测的不确定性,以确定感兴趣区域。通常情况下,在一个有噪声的系统中,我们用描述系统在k时刻的状态,为在k时刻观察到的特征向量。通过我们可以对的值有一个估计,如果我们还知道如何随时间变化,我们就会对有一个预测。这表明了一个预测反馈的机制。这种预测反馈机制就是卡尔曼滤波的思想。当系统为线性动态系统(LinearDynamicSystem,LDS)时,观察值是系统状态值的线性函数,且系统和测量的噪声均为高斯白噪声,卡尔曼滤波原型可以描述为:(3.13)(3.14)A是描述系统演变的矩阵,H是测量矩阵,它描述了观测值和模形状态之间的关系。为高斯白噪声。它们满足p(w)~N(0,Q),p(v)~N(0,R)(Q,R为,的协方差矩阵)。现在我们需要解决两个问题:①给定系统当前状态,如何求出下一时刻的状态的概率分布?②对于给定观测值,如何求出系统状态的概率分布?第一个问题实际上是预测问题。卡尔曼滤波通过公式(3.13)可以直接给出的先验估计为。第二个问题是对观测值的校正,是去噪的过程。定义后验估计错误为-,卡尔曼滤波根据观测值,通过最小化后验估计错误计算的后验估计。形式上,卡尔曼滤波将后验估计表示为先验估计值与测量值影响的加权和。称为卡尔曼增益矩阵,它根据最小化后验错误的协方差通过最小二乘法求得。其中,是先验和后验估计错误协方差矩阵,也是通过递归的方法求得,计算公式分别为和。通常卡尔曼对状态参数的概率分布是线性的单模型适用。而扩展的卡尔曼滤波可以处理非线性系统。卡尔曼滤波算法预测计算量小,可实时计算,可以准确地估计目标的位置和速度。对于线性的目标模型和高斯噪声的条件下,卡尔曼滤波器是最优的处理器,简单且鲁棒性高。为了使KF能适应非线性系统,改进的卡尔曼滤波器也被提出来,包括无迹卡尔曼滤波器(UnscentedKalmanFilter,UKF)和扩展卡尔曼滤波器(ExtendedKalmanFilter,EKF)。但实际的系统很多是非线性非高斯的,EKF和UKF难以对其精确地描述。3.5实验结果图3.20是系统运行时的界面,实验结果由图3.21——图3.27所示,右侧是输入的视频流序列,左侧是检测与跟踪序列。系统运行时先打开自己设定的初始背景,在用“打开文件”按钮打开要检测的AVI视频,点击开始就可以进行检测。对比序列图可以看出算法较准确地检测出了运动人体并框住进行跟踪。即使人体倾斜手臂摆动也不影响检测结果。说明本文的算法基本达到了预期要求。图3.20系统界面图3.21第一秒图3.22第二秒图3.23第三秒图3.24第四秒图3.25第五秒图3.26第六秒图3.27第七秒第4章结论4.1毕业设计工作总结本文对单个摄像机、摄像机静止条件下的人体跟踪问题展开研究。深入研究了现有的运动目标检测和跟踪方法,根据要求和自身的完成能力设计了一种基于人体影子特征的检测跟踪算法,算法可以在一定程度上减少光照和噪声的干扰,可以实现稳定准确的跟踪。主要工作总结如下。(1)采用了简单的背景减除法检测运动区域,并用膨胀和腐蚀算法去除了噪声和小面积非人体运动区域。(2)采用纵向和横向投影来描述目标,建立目标模型,确定运动人体的数据。解决了人体重叠的问题。(3)采用卡尔曼滤波算法解决了短暂遮挡的问题。4.2系统的不足和展望由于研究时间和个人能力有限,这个系统还有很多不足。其实本来这个系统是准备使用opencv来做的,但是由于个人学习水平有限,还是选用了自己熟悉的C和C++混合编程。使得系统代码变得很庞大,不易于应用于硬件上。还有一方面,我一直认为人体检测如果可以基于人体运动的不同姿态就可以使检测效果更好而且不易出错,但是我的能力实在有限,这个想法无能为力。不过我了解到的人体不同姿态的轮廓直方图就有20000多种,而常用的有24种,那么如果在较复杂的情况下(如跳水比赛,跳伞比赛等)将检测到的运动物体轮廓直方图与人体不同姿态的轮廓直方图来比对验证,势必导致计算量的增大,那么当读入的视频帧速率稍微大一点就会导致实时性变差。在运动物体提取时,背景减除和二帧差法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论