opencv学习---运动目标(前景)检测
1.帧差法
原理:视频序列相邻两帧或三帧间采用基于像素的时间差分,通过闭值化来提取出图像中的运动区域。
优点:算法简单、计算量小,无需训练背景,对缓慢变换的光照不是很敏感。
缺点:容易受天气、阴影及杂乱背景干扰,阈值T的选择相当关键,稳定性差。
2.背景差分法
原理:用背景的参数模型来近似背景图像,将当前帧与背景图像进行差分比较实现对运动区域的检测
优点:计算量小,较高的实时性,利用已有帧信息进行背景动态更新
缺点:如何建立对于不同场景的动态变化均具有自适应性的背景模型,减少动态场景变化对运动分割的影响。
3.GMM混合高斯模型
原理:使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,为图像的每个像素点指定一个初始的均值、标准差以及权重,收集N帧图像利用在线EM算法得到每个像素点的均值、标准差以及权重。从N+1帧开始检测每个点是否属于背景点。
优点:适应光线的变化,对缓慢移动的物体效果也较好。
缺点:计算量大,难于实现实时性。
4.光流法
原理:光流法的主要任务就是计算光流场,即在适当的平滑性约束条件下,根据图像序列的时空梯度估算运动场,通过分析运动场的变化对运动目标和场景进行检测与分割。
通常有基于全局光流场和特征点光流场两种方法
优点:在比较理想的情况下,它能够检测独立运动的对象,不需要预先知道场景的任何信息,可以很精确地计算出运动物体的速度,并且可用于摄像机运动的情况
缺点:全局光流场计算方法计算量大,噪声、多光源、阴影和遮挡等因素会对光流场分布的计算结果造成严重影响;而且光流法计算复杂,很难实现实时处理
5.Vibe算法
原理:利用单帧视频序列初始化背景模型,对于一个像素点,结合相邻像素点拥有相近像素值的空间分布特性,随机的选择它的邻域点的像素值作为它的模型样本值。背景模型为每个背景点存储一个样本集,然后每个新的像素值和样本集比较判断是否属于背景。
优点:计算量小,易于实时性,抗噪性及目标分割的完整性较好,
缺点:由于可能采用了运动物体的像素初始化样本集,容易引入拖影(Ghost)区域,并且鬼影消除慢。