视频序列运动目标检测.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

视频运动目标检测算法仿真

——实验报告

实验任务

(1)根据根本原理,编程实现追踪算法,自选序列

(2)序列可以是读取的视频(如AVI格式)各帧,或图片集合

(3)程序能输出原视频序列,目标检测结果序列

(4)结果序列以矩形盒包围目标,并显示中心

(5)程序包含注释说明

(6)另一种原理的目标检测〔*〕

实现步骤或思路

帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法,它可以很好地适用于存在多个运动目标和摄像机移动的情况。当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差异,两帧相减,得到两帧图像亮度差的绝对值,判断它是否大于阈值来分析视频或图像序列的运动特性,确定图像序列中有无物体运动。

具体过程如下列图:

(1)对序列图像进行3×3中值滤波预处理,去掉图像随机噪声;

(2)在视频图像序列中选取连续的两帧图像,其中前一帧图像pk-1(x,y),当前帧图像pk(x,y)(也可以是多帧之间差分);

(3)计算与前1帧的差得FG(x,y),得到运动目标的变化量;

(4)选择适当的阀值T,利用公式得到二值化后的二值图。

(5)对上述得到的二值图遍历,得到图中值为1的像素的边界,利用边界值画出边框和中心点。〔此方法只适用与单个运动目标,不适用于多运动目标,多运动目标检测将在第四局部提到〕

程序运行方式,子程序输入输出参数说明,每步中关键参数值说明

运行方式:直接运行part1.m文件

子程序说明:

VideoReader(path),返回path路径下对应的视频文件信息;

read(I,fram),返回视频I的第frame帧图像;

rgb2gray(J),将J图像转换为灰度图像;

medfilt2(M),对M图像进行中值滤波,默认为3X3矩阵;

im2bw(M,level),对M图像二值化,二值化阀值为level;

bwareaopen(BW,5),消除二值图BW中面积小于5的区域;

xmin、xmax、ymin、ymax分别为左边界、右边界、上边界、下边界的位置

w、h和ww、hh分别为视频的宽、高和运动目标的宽、高。

遇到问题及解决方法,体会与收获

1、帧间差分后二值图像存在少许干扰像素,计算得到的边框远大于实际目标,影响运动目标的检测。

解决方法:在差分后添加中值滤波滤除噪声等干扰,并使用bwareaopen函数消除面积小于5的区域,上述问题解决。

2、在使用rectangle画出目标边框时,提示宽、高小于零错误。

解决方法:在图像差分和计算目标宽度、高度时求绝对值。

3、运动目标像素点过少。

解决方法:使用graythresh获取自适应二值化阀值,或手动修改阀值。

4、本程序只能检测但运动目标。

解决方法:多运动目标检测需要背景建模,并进行背景差分,差分后的图像经过二值化,腐蚀,膨胀等处理后。利用regionprops函数获取各个目标的边框及质心数据信息,最后通过修改原图像各帧图像各个目标周围的像素值,到达标记运动目标的效果,但此方法在单目标不适用。因为本实验不要求多目标检测,故不做过多解释。具体代码见第七局部,运行结果如下列图。

输入,中间结果,输出图像〔多帧中的某一帧〕

第55帧原始图像:

第55帧与第54帧图像差分并二值化后:

第55帧检测结果:

程序代码及说明〔程序中加注释〕

您可能关注的文档

文档评论(0)

liuzhouzhong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档