视频序列中人体运动目标的检测与跟踪研究_第1页
视频序列中人体运动目标的检测与跟踪研究_第2页
视频序列中人体运动目标的检测与跟踪研究_第3页
视频序列中人体运动目标的检测与跟踪研究_第4页
视频序列中人体运动目标的检测与跟踪研究_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

视频序列中人体运动目标的检测与跟踪研究信息学院信研11毕莎莎4LinuxFedoraGCC验证了算法的可了系统的实时性。过计数线的人数。1.1课题相关背景目标的识别与跟踪是基于对一个图像序列的研究,从序列图像中检测到运动的目标,并且对目标运动的规律加以预测,实现对指定的目标进行准确且连续的跟踪。其目的是通过计算机视觉从复杂的变化的背景环境中准确识别出所需的运动目标,提取稳定的目标特征,并对目标的位置和姿态等信息进行快速实时的跟踪。随着计算机处理能力的显著提高,该技术在众多领域都有越来越广泛的应用。1.2项目简介本项目利用图像处理和模式识别的方法研究并设计了基于视频的客流量统计系统。本文提出的算法是在Linux系统Fedora8、GCC编译器平台,利用海康威视的采集卡及摄像头进行设计的,通过实验验证了算法的可行性,并且我们提出的算法大大提高了运动目标检测和跟踪的准确度,减少了计算量,提高了系统的实时性。本项目之所以选择Fedora8系统主要是因为:fedora8的系统核和海康威视采集卡DS4008HS驱动要求的核相匹配;另外此项目运行时,要长期处在工作的状态,需要比较稳定的操作系统。而Linux系统Fedora8比较稳定;可移植性较好;具有安全性的服务器,很少会感染病毒,所以本项目选择了此操作系统。程序设计自由度大。6)可移植性好。用C语言编写的程序基本上不作修改就能用于各种型号的计算机和各种操作系统。2.3海康威视采集卡海康DS4008HS:含了板卡开发软件、播放器开发软件、网络开发软件、MediaPlayer控件。SDK开发包提供的函数有很多,在本项目中用到的有:InitDSPs();初始化DSPChannelOpen();通道打开,本项目使用的是第4通道ChannelClose();通道关闭RegisterImageStreamCallback();注册数据voidImageStreamCallback(unsignedintchannelNumber,void*context)中断函数,每40ms调用一次,即每秒调用25次2、支持Windows2000/XP/2003,Linux操作系统。本系统选用海康威视的采集卡,摄像头,在装有Fedora8系统的计算机上进行开发。在终端中使用命令对程序进行编译和调试。当程序运行时,可以在界面观察到摄像头所录入的视频,及在我们所添加的窗口中看到相关的处理信息。1)首先对界面进行修改与设计,方便显示跟踪及计数的信息2)可以准确跟踪到某一运动物体。3)对经过某一区域的人进行计数。4)可适用于超市,或大卖场等的入口及出口处,对客流量进行统计整个系统设定的主要功能模块有:图像预处理,人体跟踪模块,计数模块图像预处理:膨胀、腐蚀、滤波等人体跟踪:跟踪到人体的运动坐标及轨迹计数:对进入某一区域的人进行计数视频序列输视频序列输入运动分割运动目标转换运动人体跟踪计数GTK是用于实现图形用户接口的函数库。一般情况下,如果要创建普通的图形接口应用GTK。GTK+和Gnome构件库提供了极为丰富的构件,足以构造非常这时可以采用Xlib,更好的方法是使用GDK库,它可以应付绝大多数的编程需要。图3-2初始界面图3-3Preview图像4.1帧间差分法原理在众多基于运动图像序列检测的算法之中,帧间差分法是依据相邻两帧图像间的强相关性而提出的检测算法。所谓帧间差分法,是指将相邻两帧图像中的相应像素点的灰度值进行相减,若其差值较小,可以认为该点无运动目标;相反,若灰度差值较大,则认为有运动目标。YUV4:2:0的格式:YUVYUV1][Y2U2V2][Y3U3V3][Y5U5V5][Y6U6V6][Y7U7V7][Y8U8V8]Y5V5Y6Y7V7Y8YUVYUV][Y2U2V7][Y3U2V7][Y5U0V5][Y6U0V5][Y7U2V7][Y8U2V7]个像素点共用同一个U,V,依次类推下去,而在imageBuf中的存放方式为:YYYYYYYY[352*288]UUUU[176*144]VVVV[176*144]。应像素点取帧差:本设计中使用的检测运动物体的方法是帧差法:即两帧图像对应像素点的Y,U,V的值相减,若满足abs(Y1-Y2)>60||abs(U1-U2)>50||abs(V1-V2)>50的话,则把此点置黑。把所有的黑点找出来则可以检测到运动物体的轮廓。阈值的设定可以根据实际情况来规定,根据现场的情况进行调试。当阈值比较小时,检测到被跟踪物体的像素点比较多,而干扰点,噪声点也会比较多;反之,检测到轮廓的像素点则比较少,会对结果造成影响。而当人停止在某一处时,若噪声干扰很少的话,则认为屏幕是白色。膨胀和腐蚀这两种操作是形态学处理的基础,许多形态学算法都是以这两种运算为基础膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。A被B结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。⑴用3*3的结构元素B,扫描图像A的每一个像素;⑵用结构元素与其覆盖的二值图像做“与”操作;⑶如果都为0,结果图像的该像素为0,否则为1,使二值图像扩大一圈。⑴用3*3的结构元素B,扫描图像A的每一个像素;⑵用结构元素与其覆盖的二值图像做“与”操作;⑶如果都为1,结果图像的该像素为1,否则为0;腐蚀处理的结果是使原来的二值图像减先腐蚀后膨胀的过程:利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。而先膨胀后腐蚀的过程:利用它可以填充物体细小空洞,连接临近物体、平滑其边界,但平时并不会明显改变原来物体的面积。通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效地改善这种情况,而有时,我们需要经过多次腐蚀之后再加上相同次数的膨胀,才能产生比较好的处理效果。可见图像腐蚀与图像膨胀相结合有时可使图像有较理想的处理效果。 (1)寻找有效点在检测到运动目标后,用一个10*10的方格对所得到的帧差的像素点进行循环,若有一个黑点出现在此方格,则停止循环,把此方格置黑,并把方格的最左上角的点存放到一个数 (2)寻找连通域存在的话,则也把这些点也放在zone1[k3][p1[k3]],并把标记改为0。就这样依次循环,可寻找到帧差图像所有的连通域,最后可得到若干个连通域。则可以把每一个大于5个点的连通域当做一个运动的人,其他的当做噪声点处理。 (3)画圆并把部涂黑找到连通域之后,寻找此连通域的最左minxx,最右maxx,最上miny,及最下maxy的第一个出现黑点的坐标,可以近似找到此区域的中心,然后以此中心点为圆心,半径为25来画圆(半径大小根据实际情况来定,但圆要覆盖住人的帧差),并把此圆的部分涂黑。这样就可以把检测到的帧差转换成一个黑色的圆。当人运动时,此圆也会相应的运动。当trace=0时显示imgbuf4的容,即根据连通域的点画的圆两个人并排行走的时候则会建立两个结点,可以跟踪到两个圆:图6-2两人并排行走 (4)帧之间圆的匹配跟踪在要进行计数时,要先在距边界大概50-100个像素的位置建立结点,然后在两帧之间此刻的状态,则更新结点信息,然后依次更新,到240时,删掉这个结点,然后对IN进行计数。反之亦然,在190-240之间建立结点,跟踪到50时,删除结点,并对OUT进行计数。这样可以准确地对一段时间进出某一区域的人进行计数。而跟踪算法除了用于计数,还可以根据不同时刻的坐标值,来分析运动人体的轨迹。6.2跟踪算法2 (1)首先创建结点-100和190-240,若在此区域出现有效点,则对这些点进行求连通域,方法如5.1(2),若连通域的点大于10,则求连通域的边界,确定连通域的中心画圆,创建结点。若连通域的点数大于30的话,认为创建区不止有一个人,则对此大的连通域进行划分。方法如下:求出连通域的宽度dx,把一个人的标准宽度设为40,则用dx/40可得到n个否则就为n。然后分别求出各个人的中心,画圆,创建结点。 (2)进行跟踪建立了各自的结点后,要对各个结点进行跟踪,方法如下:1)在下一帧时,各个结点首先在半径为30的圆进行寻找自己的点,把找到的点标记为0,存放在数组node[i]里,然后向前移动结点中心,还是在半径为30的圆寻找标记为1,即还没被找到过的点,找到之后也存在刚刚的数组中,再次移动中心坐标找点,循环四次,中心y坐标每次移动5个像素点,最后把有找到的点都放在node[i]里。2)求这些点构成的区域的上、下、左、右四个边界;(node[i].maxy-node[i].miny)>40&&node[i].in_or_out==1(进)时,则把node[i].maxy-50,把这高度为50的点赋给此结点,计算结点的中心,把之前的结点中心更新为此中心,最后把剩下的点的标志位再置为1。当方向标志node[i].in_or_out==0时方法 (3)跟踪计数而当结点的中心y坐标大于240的时候,则对计数num1进行加1。在190-240的创建区域创建的点node[i]且node[i].in_or_out为0,对结点进行跟踪,不断对其进行更新结点信结点的中心y坐标小于50的时候,则对计数num0进行加1。6.3两种算法的比较第一种算法仅适用于单个人和多个人并排行走,前后挨的比较近或者品字形等多种情形下并不能进行正常跟踪和计数。第二种算法:在第一种的基础上加以改进,首先对落在创建区域的点进行寻找连通域,创建结点;之后跟踪的时候就是各个结点寻找自己附近的点,如果寻找到的点过多,再把一部分的标志位改为1。这种算法理论上适用任何一种走法,一个人、多个人、品字形,前后挨所以第二种算法的适用性比较广泛,实验结果也比较准确。最后我们选用的跟踪算法2来分析运动人体的运动轨迹和用于接下来的计数模块。在精心控制的系统环境下,采用相应的技术手段,利用一组事先构好达到测试事例执行程序以发现程序中存在的问题,并确认系统功能,性能符合需求的一个综合过程。7.2测试方案首先是一个人在规定的区域行走,观察跟踪和计数的结果,看是否与实际情况满足一致,如果有差别或有干扰,要进行分块测试,把每一个模块进行测试后,找出出现问题的模块,进行修改。若满足实际情况,则可以使两个人或多个人一起行走,观察现象,进行分析。7.3测试报告把测试到的结果列在一个表格,分析跟踪到的运动目标的运动轨迹及对计数的影响。单个人行走时,对运动人体的跟踪情况:XXY帧在近似等差的进行增加,半径则不变。第一分钟误差第一分钟误差总和总和进出测量值556579误差率0%%0000000005第二分钟第二分钟5第三分钟第三分钟0进出本系统已通过几个不同场所的测试,实验说明本系统可以满足实际需求。总体来说:计数还是比较准确的,但由于系统的稳定性不是非常的好,并且在受一些噪音等外界因素的干扰时,偶尔会进行多记或少计,但是从设计理论来讲,帧检测、跟踪算法等都是可行的。在一些方面系统也有待改进,主要有以下因素影响客流量统计结果:首先图像分割是影响系统性能的一个很大因素,也是当前图像处理方面的难题之一;在实际环境中,光线问题、运动阴影的出现会给分割带来很大的困难,所以在这些方面还需要再加以改进和完善。3.侯志强,崇昭.视觉跟踪技术综述.自动化学报,32(4):603-617,2006.D2006年9.顾德军,伍铁军;一种基于人头特征的人数统计方法研究-机械制造与自动化2010.39(4)7unFanWenxinChenHongxingLiAnImprovedColorBasedParticleFilterforObjectTracking95-3334-6

温馨提示

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

评论

0/150

提交评论