mean-shift算法概述.doc

上传人:wj 文档编号:4842610 上传时间:2023-05-07 格式:DOC 页数:16 大小:1.82MB
下载 相关 举报
mean-shift算法概述.doc_第1页
第1页 / 共16页
mean-shift算法概述.doc_第2页
第2页 / 共16页
mean-shift算法概述.doc_第3页
第3页 / 共16页
mean-shift算法概述.doc_第4页
第4页 / 共16页
mean-shift算法概述.doc_第5页
第5页 / 共16页
mean-shift算法概述.doc_第6页
第6页 / 共16页
mean-shift算法概述.doc_第7页
第7页 / 共16页
mean-shift算法概述.doc_第8页
第8页 / 共16页
mean-shift算法概述.doc_第9页
第9页 / 共16页
mean-shift算法概述.doc_第10页
第10页 / 共16页
mean-shift算法概述.doc_第11页
第11页 / 共16页
mean-shift算法概述.doc_第12页
第12页 / 共16页
mean-shift算法概述.doc_第13页
第13页 / 共16页
mean-shift算法概述.doc_第14页
第14页 / 共16页
mean-shift算法概述.doc_第15页
第15页 / 共16页
mean-shift算法概述.doc_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

mean-shift算法概述.doc

《mean-shift算法概述.doc》由会员分享,可在线阅读,更多相关《mean-shift算法概述.doc(16页珍藏版)》请在冰点文库上搜索。

mean-shift算法概述.doc

MeanShift概述

MeanShift简介

MeanShift这个概念最早是由Fukunaga等人[1]于1975年在一篇关于概率密度梯度函数的估计中提出来的,其最初含义正如其名,就是偏移的均值向量,在这里MeanShift是一个名词,它指代的是一个向量,但随着MeanShift理论的发展,MeanShift的含义也发生了变化,如果我们说MeanShift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.

然而在以后的很长一段时间内MeanShift并没有引起人们的注意,直到20年以后,也就是1995年,另外一篇关于MeanShift的重要文献[2]才发表.在这篇重要的文献中,YizongCheng对基本的MeanShift算法在以下两个方面做了推广,首先YizongCheng定义了一族核函数,使得随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同,其次YizongCheng还设定了一个权重系数,使得不同的样本点重要性不一样,这大大扩大了MeanShift的适用范围.另外YizongCheng指出了MeanShift可能应用的领域,并给出了具体的例子.

Comaniciu等人[3][4]把MeanShift成功的运用的特征空间的分析,在图像平滑和图像分割中MeanShift都得到了很好的应用.Comaniciu等在文章中证明了,MeanShift算法在满足一定条件下,一定可以收敛到最近的一个概率密度函数的稳态点,因此MeanShift算法可以用来检测概率密度函数中存在的模态.

Comaniciu等人[5]还把非刚体的跟踪问题近似为一个MeanShift最优化问题,使得跟踪可以实时的进行.

在后面的几节,本文将详细的说明MeanShift的基本思想及其扩展,其背后的物理含义,以及算法步骤,并给出理论证明.最后本文还将给出MeanShift在聚类,图像平滑,图像分割,物体实时跟踪这几个方面的具体应用.

MeanShift的基本思想及其扩展

基本MeanShift

给定d维空间中的n个样本点,i=1,…,n,在点的MeanShift向量的基本形式定义为:

(1)

其中,是一个半径为h的高维球区域,满足以下关系的y点的集合,

(2)

k表示在这n个样本点中,有k个点落入区域中.

我们可以看到是样本点相对于点的偏移向量,

(1)式定义的MeanShift向量就是对落入区域中的k个样本点相对于点的偏移向量求和然后再平均.从直观上看,如果样本点从一个概率密度函数中采样得到,由于非零的概率密度梯度指向概率密度增加最大的方向,因此从平均上来说,区域内的样本点更多的落在沿着概率密度梯度的方向.因此,对应的,MeanShift向量应该指向概率密度梯度的方向

.

图1,MeanShift示意图

如上图所示,大圆圈所圈定的范围就是,小圆圈代表落入区域内的样本点,黑点就是MeanShift的基准点,箭头表示样本点相对于基准点的偏移向量,很明显的,我们可以看出,平均的偏移向量会指向样本分布最多的区域,也就是概率密度函数的梯度方向.

扩展的MeanShift

核函数

首先我们引进核函数的概念.

定义:

代表一个d维的欧氏空间,是该空间中的一个点,用一列向量表示.的模.表示实数域.如果一个函数存在一个剖面函数,即

(3)

并且满足:

(1)是非负的.

(2)是非增的,即如果那么.

(3)是分段连续的,并且

那么,函数就被称为核函数.

举例:

在MeanShift中,有两类核函数经常用到,他们分别是,

单位均匀核函数:

(4)

单位高斯核函数:

(5)

这两类核函数如下图所示.

图2,(a)单位均匀核函数(b)单位高斯核函数

一个核函数可以与一个均匀核函数相乘而截尾,如一个截尾的高斯核函数为,

(6)

图3显示了不同的值所对应的截尾高斯核函数的示意图.

图3截尾高斯核函数(a)(b)

MeanShift扩展形式

(1)式我们可以看出,只要是落入的采样点,无论其离远近,对最终的计算的贡献是一样的,然而我们知道,一般的说来,离越近的采样点对估计周围的统计特性越有效,因此我们引进核函数的概念,在计算时可以考虑距离的影响;同时我们也可以认为在这所有的样本点中,重要性并不一样,因此我们对每个样本都引入一个权重系数.

如此以来我们就可以把基本的MeanShift形式扩展为:

(7)

其中:

是一个单位核函数

是一个正定的对称矩阵,我们一般称之为带宽矩阵

是一个赋给采样点的权重

在实际应用的过程中,带宽矩阵一般被限定为一个对角矩阵,甚至更简单的被取为正比于单位矩阵,即.由于后一形式只需要确定一个系数,在MeanShift中常常被采用,在本文的后面部分我们也采用这种形式,因此(7)式又可以被写为:

(8)

我们可以看到,如果对所有的采样点满足

(1)

(2)

则(8)式完全退化为

(1)式,也就是说,我们所给出的扩展的MeanShift形式在某些情况下会退化为最基本的MeanShift形式.

MeanShift的物理含义

正如上一节直观性的指出,MeanShift指向概率密度梯度方向,这一节将证明MeanShift向量是归一化的概率密度梯度.在本节我们还给出了迭代MeanShift算法的详细描述,并证明,该算法会收敛到概率密度函数的一个稳态点.

概率密度梯度

对一个概率密度函数,已知d维空间中n个采样点,i=1,…,n,的核函数估计(也称为Parzen窗估计)为,

(9)

其中

是一个赋给采样点的权重

是一个核函数,并且满足

我们另外定义:

核函数的剖面函数,使得 (10);

的负导函数,即,其对应的核函数(11)

概率密度函数的梯度的估计为:

(12)

由上面的定义,,,上式可以重写为

(13)

上式右边的第二个中括号内的那一部分就是(8)式定义的MeanShift向量,第一个中括号内的那一部分是以为核函数对概率密度函数的估计,我们记做,而(9)式定义的我们重新记做,因此(11)式可以重新写为:

(14)

由(12)式我们可以得出,

(15)

(15)式表明,用核函数G在点计算得到的MeanShift向量正比于归一化的用核函数K估计的概率密度的函数的梯度,归一化因子为用核函数G估计的x点的概率密度.因此MeanShift向量总是指向概率密度增加最大的方向.

MeanShift算法

算法步骤

我们在前面已经指出,我们在提及MeanShift向量和MeanShift算法的时候指代不同的概念,MeanShift向量是名词,指的是一个向量;而MeanShift算法是动词,指的是一个迭代的步骤.我们把(8)式的提到求和号的外面来,可以得到下式,

(16)

我们把上式右边的第一项记为,即

(17)

给定一个初始点,核函数,容许误差,MeanShift算法循环的执行下面三步,直至结束条件满足,

(1).计算

(2).把赋给

(3).如果,结束循环;若不然,继续执行

(1).

由(16)式我们知道,,因此上面的步骤也就是不断的沿着概率密度的梯度方向移动,同时步长不仅与梯度的大小有关,也与该点的概率密度有关,在密度大的地方,更接近我们要找的概率密度的峰值,MeanShift算法使得移动的步长小一些,相反,在密度小的地方,移动的步长就大一些.在满足一定条件下,MeanShift算法一定会收敛到该点附近的峰值,这一收敛性由下面一小节给出证明.

算法的收敛性证明

我们用,来表示MeanShift算法中移动点的痕迹,由(17)式我们可写为,

(18)

与对应的概率密度函数估计值可表示为,

(19)

下面的定理将证明序列和的收敛性.

定理:

如果核函数有一个凸的,单调递增的剖面函数,核函数由式(10)和(11)定义,则序列和是收敛的.

证明:

由于n是有限的,核函数,因此序列是有界的,所以我们只需要证明是严格递增的的,即要证明,对所有j=1,2,…如果,那么

(20)

不失一般性,我们可以假设,由(19)式和(10)式,我们可以得到

(21)

由于剖面函数的凸性意味着对所有且,有

(22)

因为,上式可以写为,

(23)

结合(21)与(23)式,可以得到,

(24)

由(18)式我们可以得出,

(25)

由于剖面函数是单调递减的,所以求和项,因此,只要(25)式的右边项严格大于零,即.由此可证得,序列收敛

为了证明序列的收敛性,对于,(25)式可以写为

(26)

现在对于标号j,j+1,…,j+m-1,对(26)式的左右两边分别求和,得到

(27)

其中表示对应序列的所有求和项的最小值.

由于收敛,它是一个Cauchy序列,(27)式意味着也是一个Cauchy序列,因此,序列收敛.

MeanShift的应用

从前面关于MeanShift和概率密度梯度的关系的论述,我们可以清楚的看到,MeanShift算法本质上是一个自适应的梯度上升搜索峰值的方法,如下图所示,如果数据集服从概率密度函数f(x),给定一个如图初始点,MeanShift算法就会一步步的移动,最终收敛到第一个峰值点.从这张图上,我们可以看到MeanShift至少有如下三方面的应用:

(1)聚类,数据集中的每一点都可以作为初始点,分别执行MeanShift算法,收敛到同一个点算作一类;

(2)模态的检测,概率密度函数中的一个峰值就是一个模态,MeanShift在峰值处收敛,自然可以找到该模态.(3)最优化,MeanShift可以找到峰值,自然可以作为最优化的方法,MeanShift算法进行最优化的关键是要把最优化的目标转化成MeanShift隐含估计的概率密度函数.

图4.MeanShift算法示意图

MeanShift算法在许多领域获得了非常成功的应用,下面简要的介绍一下其在图像平滑,图像分割以及物体跟踪中的应用,一来说明其强大的生命力,二来使对上文描述的算法有一个直观的了解.

图像平滑与分割

一幅图像可以表示成一个二维网格点上p维向量,每一个网格点代表一个象素,表示这是一个灰度图,表示彩色图,表示一个多谱图,网格点的坐标表示图像的空间信息.我们统一考虑图像的空间信息和色彩(或灰度等)信息,组成一个维的向量,其中表示网格点的坐标,表示该网格点上p维向量特征.

我们用核函数来估计的分布,具有如下形式,

(28)

其中控制着平滑的解析度,C是一个归一化常数.

我们分别用和,i=1,…,n表示原始和平滑后的图像.用MeanShift算法进行图像平滑的具体步骤如下,

对每一个象素点,

1,初始化,并且使

2,运用MeanShift算法计算,直到收敛.记收敛后的值为

3.赋值

图5是原始图像,图中4020白框区域被选中来更好的显示基于MeanShift的图像平滑步骤,图6显示了这一区域的平滑步骤,x,y表示这一区域内的象素点的坐标,图6(a)在一个三维空间显示了各个象素点的灰度值,图6(b)显示各点的移动痕迹,黑点是最终收敛值,图6(c)显示了平滑后的各象素点的灰度值,图6(d)是继续分割后的结果.

图5.原始图像

图6.(a)原始图像的各象素点灰度值.(b)各象素点的MeanShift移动路径.(c)平滑后的各象素点的灰度值.(d)分割后的结果

图7显示了图5经过平滑后的结果,我们可以看到,草地上的草地纹理被平滑掉了,而图像中边缘仍然很好的保持着.

.

图7平滑后的结果

在基于MeanShift的图像平滑中,式(28)中的是非常重要的参数,人们可以根据解析度的要求而直接给定,不同会对最终的平滑结果有一定的影响,图7显示了这两个参数对平滑结果的影响,我们可以看出,影响更大一些.

图8,原始图和平滑后的图

基于MeanShift的图像分割与图像平滑非常类似,只需要把收敛到同一点的起始点归为一类,然后把这一类的标号赋给这些起始点,在图像分割中有时还需要把包含象素点太少类去掉,图6(d)显示分割后的灰度值.图8,显示了图5经过分隔后的结果

图8,分割后的结果

物体跟踪

我们用一个物体的灰度或色彩分布来描述这个物体,假设物体中心位于,则该物体可以表示为

(29)

候选的位于的物体可以描述为

(30)

因此物体跟踪可以简化为寻找最优的,使得与最相似.

与的最相似性用Bhattacharrya系数来度量分布,即

(31)

式(31)在点泰勒展开可得,

(32)

把式(30)带入式,整理可得,

(33)

其中,

对式(33)右边的第二项,我们可以利用MeanShift算法进行最优化.

在Comaniciu等人的文章中,他们只用平均每帧图像只用4.19次MeanShift迭代就可以收敛,他们的结果很显示在600MHz的PC机上,他们的程序可以每秒处理30帧352240象素的图像.下图显示了各帧需要的MeanShift迭代次数.

图9,各帧需要的MeanShift迭代次数

下图显示了Comaniciu等人的跟踪结果

图10,基于MeanShift的物体跟踪结果

结论

本文回顾了MeanShift的发展历史,介绍了它的基本思想,给出了具体的算法步骤,详细证明了它与梯度上升搜索法的联系,并给出MeanShift算法的收敛性证明,最后给出了MeanShift在图像平滑,图像分割以及实时物体跟踪中的具体应用,显示MeanShift强大的生命力.

参考文献

[1]TheEstimationoftheGradientofaDensityFunction,withApplicationsinPatternRecognition(1975)

[2]Meanshift,modeseeking,andclustering(1995)

[3]MeanShift:

arobustapproachtowardfeaturespaceanalysis(2002)

[4]Real-timetrackingofnon-rigidobjectsusingmeanshift(2000)

[5]Mean-shiftBlobTrackingthroughScaleSpace(2003)

[6]Analgorithmfordata-drivenbandwidthselection(2003)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2