有关meanshift

Posted ariel-dreamland

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关meanshift相关的知识,希望对你有一定的参考价值。

meanshift可以被用来做目标跟踪图像分割

参考《Mean Shift:A Robust Approach Toward Feature Space Analysis》

        公式就不写了。meanshift其实原理挺简单的,就是随便找个种子点,然后开始在该种子点邻域内寻找其目标点的密度中心,那么种子点到密度中心点的向量方向就是密度上升方向了,更新密度中心点为种子点,迭代,直到到达截止条件(opencv里的meanshift把截止条件定为迭代次数和截止精度,当然这两者可以随意组合)。

        改进的meanshift使用了核函数(区别种子点附近和远处点的权重)和权重系数(区别不同样本的权重),但基本原理还是一样的。

        这篇论文很长,在实现该方法的同时,同时系统地证明了meanshift算法是沿着最大密度梯度方向搜索的,并且随着多次迭代,种子点趋于稳定。

        其实在上面讲述的时候去掉了一个背景,就是所有样本都采样自概率密度函数,但这并不影响我们理解其原理。

       

        通过分析meanshift的原理,其目的就是寻找局部最优点,这样很容易联想到它在图像分割或聚类上的应用。

        对于图像处理方面的应用,其样本可认为是(x,y),x值二维坐标,y是颜色空间(p维,maybe  1or3),那么总维数是p+2。

        meanshift也可用作图像平滑,但是对每一个像素点操作用迭代截止值代替,算法复杂度肯定很高了。

        用meanshift算法做目标跟踪时,先预先取一个目标矩形框,在目标移动的时候,就会迭代更新密度中心点到当前目标的密度中心,这样只是一个固定的矩形框的局部范围搜索,算法复杂度肯定可以接受,实时性就不错了。但是通过分析发现用meanshift做跟踪的话,目标突然消失又突然出现,这个算法就凉凉了,所以换句话说,目标必须连续移动。

  关于用meanshift做图像分割,后面详细介绍一波:

以上是关于有关meanshift的主要内容,如果未能解决你的问题,请参考以下文章

有关告别,有关漂泊

有关事件绑定的基础知识

Allegro之无法保存(提示和用户有关或者和lock有关)

记录一下js有关知识点的练习

求教json的有关问题,google库gson的bug有关问题

嵌入式软件开发杂谈:Linux下最大能创建多少线程?