opencv中常用的检测和跟踪算法原理介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、背景减法 背景减法的原理是利用当前图像与背景图像的差分来检测运动区域的一
种技术。它一般能够提供最完整的特征数据,而且速度快,能适合实时系统 的要求。但是对于动态场景的变化,如光照和外来无关事件的干扰特别敏感。
2、时间差分 时间差分方法利用图像序列中前后几个相邻帧图像之间的差分来提取图
像中的运动区域例如Lipton等利用两帧差分方法从实际视频图像中检测出运 动目标,进而用于目标的分类与跟踪。一个改进的方法是利用三帧差分代替 两帧差分,如VSM开发了一种自适应背景减除与三帧差分相结合的混合算法, 它可以快速有效地从背景中检测出运动目标。时间差分运动检测方法对于动 态环境具有较强的自适应性,但它一般不能完全提取出所有相关的特征像素 点,在运动实体内部容易产生空洞现象。
2、Camshift算法
CamShift算法,即"Continuously Apative Mean-Shift"算法,是一种运动跟踪算法。它 主要通过视频图像中运动物体的颜色信息来达到跟踪的目的。我把这个算法分解成三个部分, 便于理解: 1) Back Projection计算 2) Mean Shift算法 3) CamShift算法
X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3) 其中Kg为卡尔曼增益(Kalman Gain):
Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4) 到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要使卡 尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k) 的covariance: P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5) 其中I 为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k) 就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。
3、光流 光流方法的运动检测采用了运动目标随时间变化的光流场特性,从而有
效地提取和跟踪运动目标。该方法的优点是在摄像机运动存在的前提下也能 检测出独立的运动目标,而缺点在于计算方法相当复杂,且抗噪声性能差, 如果没有特别的硬件装置则不能被应用于全帧视频流的实时处理。
4、统计方法 统计方法是利用单个像素或几组像素的变化特征建立背景模型,克服了
P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2) 式 (2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应 的 covariance,A’表示A的转置矩阵,Q是系统过程的covariance。式子1,2 就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。现在我们 有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值 和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):
Байду номын сангаас
1、Kalman滤波器
卡尔曼滤波是基于高斯分布的状态预测方法,可实时地进行跟踪预测。其 基本思想是,若有一组强而合理的假设,给出系统的历史测量值,则可以建 立最大化这些早期测量值的后验概率的系统状态模型。即重复更新系统状态 模型。
Kalman滤波器需要二个重要的假设(1)被建模的系统是线性的;即k时 刻的系统状态可以用某个矩阵与k-1时刻的系统状态的乘积表示。(2)假设 噪声是高斯分布的白噪声,即噪声与时间不相关。 Kalman算法流程:
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系 统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1) 式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的 结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。 到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的 covariance还没更新。我们用P表示covariance:
传统背景减法对动态干扰因素较敏感的问题。如利用背景注册技术构建可靠 的背景模型,将当前帧与背景模型相减提前前景区域。该方法能成功克服噪 声和光照变化的影响,但是需要捕获大量数据建立背景模型,如果背景变化 较大,则前若干帧则无法获得完整的背景模型。
二、运动物体的跟踪方法
运动物体跟踪就是在图像序列间创建基于位置、速度、形状等有关 特征的对应匹配问题。运动跟踪算法与运动检测算法会进行大量的信 息交互。跟踪通常是利用点、线、或区域等特征在后续图像中进行运 动目标的匹配;常用的算法有Kalman算法,mean-shift和camshift算法, condensation算法等。
一、运动物体的检测方法
运动目标检测指从图像序列中将前景变化区域从背景图像中提取 出来;现阶段运动目标的检测的难点主要在:动态变化着的背景的提 取与更新、光线变化(渐变、突变、反光)问题、阴影干扰、目标遮 挡、背景物体变化(如树叶、水波、天气变化等)、及目标运动过程 不连续、速度缓慢、往返运动等问题上。现阶段主要的基本的检测算 法视频图像的时域和空域信息;主要检测算法如下:
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机 微分方程(Linear Stochastic Difference equation)来描述: X(k)=A X(k-1)+B U(k)+W(k) 再加上系统的测量值: Z(k)=H X(k)+V(k) 上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B 是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H 是测 量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测 量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的 covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。 对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡 尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出。
相关文档
最新文档