meanShift算法介绍
2014-03-17 09:42
176 查看
转自:/article/2724695.html
meanShift,均值漂移,在聚类、图像平滑、分割、跟踪等方面有着广泛的应用。meanShift这个概念最早是由Fukunage在1975年提出的,其最初的含义正如其名:偏移的均值向量;但随着理论的发展,meanShift的含义已经发生了很多变化。如今,我们说的meanShift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,然后以此为新的起始点,继续移动,直到满足一定的结束条件。
在很长一段时间内,meanShift算法都没有得到足够的重视,直到1995年另一篇重要论文的发表。该论文的作者Yizong Cheng定义了一族核函数,使得随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同。其次,他还设定了一个权重系数,使得不同样本点的重要性不一样,这大大扩展了meanShift的应用范围。此外,还有研究人员将非刚体的跟踪问题近似为一个meanShift的最优化问题,使得跟踪可以实时进行。目前,利用meanShift进行跟踪已经相当成熟。
meanShift算法其实是一种核密度估计算法,它将每个点移动到密度函数的局部极大值点处,即,密度梯度为0的点,也叫做模式点。在非参数估计部分(请参考/article/2724693.html),我们提到,多维核密度估计可以表示为:
估计为0。meanShift向量也总是指向密度增加最大的方向,这可以由上式中的分子项来保证,而分母项则体现每次迭代核函数移动的步长,在不包含感兴趣特征的区域内,步长较长,而在感兴趣区域内,步长较短。也就是说,meanShift算法是一个变步长的梯度上升算法,或称之为自适应梯度上升算法。
meanShift,均值漂移,在聚类、图像平滑、分割、跟踪等方面有着广泛的应用。meanShift这个概念最早是由Fukunage在1975年提出的,其最初的含义正如其名:偏移的均值向量;但随着理论的发展,meanShift的含义已经发生了很多变化。如今,我们说的meanShift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,然后以此为新的起始点,继续移动,直到满足一定的结束条件。
在很长一段时间内,meanShift算法都没有得到足够的重视,直到1995年另一篇重要论文的发表。该论文的作者Yizong Cheng定义了一族核函数,使得随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同。其次,他还设定了一个权重系数,使得不同样本点的重要性不一样,这大大扩展了meanShift的应用范围。此外,还有研究人员将非刚体的跟踪问题近似为一个meanShift的最优化问题,使得跟踪可以实时进行。目前,利用meanShift进行跟踪已经相当成熟。
meanShift算法其实是一种核密度估计算法,它将每个点移动到密度函数的局部极大值点处,即,密度梯度为0的点,也叫做模式点。在非参数估计部分(请参考/article/2724693.html),我们提到,多维核密度估计可以表示为:
估计为0。meanShift向量也总是指向密度增加最大的方向,这可以由上式中的分子项来保证,而分母项则体现每次迭代核函数移动的步长,在不包含感兴趣特征的区域内,步长较长,而在感兴趣区域内,步长较短。也就是说,meanShift算法是一个变步长的梯度上升算法,或称之为自适应梯度上升算法。
相关文章推荐
- Java中的Enum的使用与分析
- 双色LED灯一些特性研究
- 怎样用VB自动更新应用程序
- js 捕获浏览器关闭或者刷新页面给出提示
- codeforce 402A - Nuts
- iptables配置
- java中的单例模式和工厂模式举例:
- Compass
- NSString用法总结
- 【懒懒】我不生产笑话,我只是笑话的搬运工 [问题点数:200分]
- SQL Server 常用SQL总结
- 解决炉石传说战网无法更新问题
- 【grunt整合版】30分钟学会使用grunt打包前端代码
- Sinatra+SQLite3+DataMapper - 十分完整的tutorial - “Superdo”
- JSON基础笔记
- 我的第一个博客
- RedHat yum安装配置藏
- ASP.NET中cs代码页找不到aspx页面中的控件ID
- V4L2 API详解 <二> Camera详细设置
- 25个可遇不可求的jQuery插件