meanshift算法通俗讲解是什么意思?为什么说Camshift是由Meanshift推导而来?

2023-01-18 09:46:27 来源:创视网

meanshift算法通俗讲解

这几天学习《学习OpenCV》中的第十章运动跟踪,里面讲到了meanshift算法,根据书上所讲实在难以理解,meanshift在运动跟踪这个过程中到底起到什么作用,于是经过几天不断地看相关资料和别人的博客文章,慢慢思路清晰了,也终于知道了meanshift这个算法它到底是什么作用,起到什么样的角色,虽然为了弄明白这个算法花了几天的时间,但是通过这个过程学到了很多其他的知识。好了,接下来进入正题。

首先要介绍一下meanshift这个算法,它的本质是一个迭代的过程,那么这个算法的最终效果是什么呢?或者说这个算法能做什么事情?它能够在一组数据的密度分布中寻找到局部极值,它比较稳定,而且是无参密度估计(它不需要事先知道样本数据的概率密度分布函数,完全依靠对样本点的计算),而且它在采样充分的情况下,一定会收敛,即可以对服从任意分布的数据进行密度估计。下面来根据几张图片来理解一下meanshift算法的最终效果:

这里就不把meanshift的数学公式什么的都写出来了,只为了让大家知道meanshift是什么作用;高维的我们也先不考虑,以二维来说明可能更容易理解,下图中的很多的红点就是我们的样本特征点,meanshift就是在这些点中的任意一个点为圆心,然后以半径R画一个圆(在opencv中是一个矩形),然后落在这个圆中的所有点和圆心都会对应的一个向量,把所有这些向量相加(注意是向量相加),最终我们只得到一个向量,就是下图中用黄色箭头表示的向量,这个向量就是meanshift向量。

Camshift 是由Meanshift 推导而来 Meanshift主要是用在单张影像上,但

是独立一张影像分析对追踪而言并无意义,Camshift 就是利用MeanShift的方

法,对影像串列进行分析。

(1) 首先在影像串列中选择ㄧ区域。

(2) 计算此区域的颜色2D几率分布。

(3) 用MeanShift演算法来收敛欲追踪的区域。

(4) 集中收敛的区域,并标示之。

(5) 每个frame重复(3)(4)。

Camshift 关键就在于当目标的大小发生改变的时候,此算法可以自适应调整目标区域继续跟踪。

对于OPENCV中的CAMSHIFT例子,是通过计算目标HSV空间下的HUE分量直方图,通过直方图反向投影得到目标像素的概率分布,然后通过调用CV库中的CAMSHIFT算法,自动跟踪并调整目标窗口的中心位置与大小。

这个算法对于纯色物体在黑白背景下的跟踪效果是很好的,但是如果背景的颜色与目标相近,或者目标附近有与目标的色调相近的算法比较物体,则CAMSHIFT会自动将其包括在内,导致跟踪窗口扩大,甚至有时会将跟踪窗口扩大到整个视频框架。

x 广告
x 广告

Copyright   2015-2022 财富赢家网版权所有  联系邮箱:920 891 263@qq.com

京ICP备2022016840号-48