MATLAB运动目标检测--光流法

、概述

    运动目标检测是指当监控场景中有活动目标时,采用图像分割的方法从背景图像中提取出目标的运动区域。运动目标检测技术是智能视频分析的基础,因为目标跟踪、行为理解等视频分析算法都是针对目标区域的像素点进行的,目标检测的结果直接决定着智能视觉监控系统的整体性能。

    运动目标检测的方法有很多种。根据背景是否复杂、摄像机是否运动等环境的不同,算法之间也有很大的差别。其中最常用的三类方法是:光流场法、帧间差分法、背景减法。下面对这三类方法进行介绍,通过实验结果,对它们各自的算法性能进行分析,为进一步的目标检测算法研究建立良好的基础。

二、光流场法简介

    光流场(Optical Flow)是用来表征图像中像素点的灰度值发生变化趋势的瞬时速度场。在现实世界中,目标的运动通常是通过视频流中各个像素点灰度分布的变化表征的。图2-1表现了昆虫在飞行过程中所处的三维光流场。C图中箭头的长度和指向表征了各点光流的大小和方向。美国学者Horn和 Schunck在1981年提出了光流场的计算方法,他们在两帧图像的灰度变化和时间间隔都很小的前提下,推导出了光流的基本约束方程,从而奠定了光流场计算的理论知识。

                MATLAB运动目标检测--光流法_第1张图片

三、实现思想

    利用光流场法实现目标检测的基本思想是:首先计算图像中每一个像素点的运动向量,即建立整幅图像的光流场。如果场景中没有运动目标,则图像中所有像素点的运动向量应该是连续变化的;如果有运动目标,由于目标和背景之间存在相对运动,目标所在位置处的运动向量必然和邻域(背景)的运动向量不同,从而检测出运动目标。

    通过计算光流场得到的像素运动向量是由目标和摄像机之间的相对运动产生的。因此该类检测方法可以适用于摄像机静止和运动两种场合。但是光流场的计算过于复杂,而且在实际情况中, 由于光线等因素的影响,目标在运动时,其表面的亮度并不是保持不变的,这就不满足光流基本约束方程的假设前提,导致计算会出现很大的误差。光流场法很少应用于实际的

 

你可能感兴趣的:(MATLAB学习笔记)