mean-shift算法概述
基于Mean Shift的织物图像分割算法

( . ol eo lc i l n i ei 1 C l g Eetc gn r g,Z ea g U i ri e f ra E e n hj n nv sy,H n zo i e t a gh u,Z ea g 3 0 2 C ia; hj n 0 7, hn i 1 2 C m ue ytm E gneig C , t ,Z eag U i ri . o p t Sse n i r o. Ld. h in nv sy,H n zo r e n j e t a gh u,Z ea g 3 0 2 ,C i ) hj n 10 7 hn i a
摘 要 首 先 介 绍 了 M a ht 法 的 处 理过 程 , 后 以处 理 织 物 图 像 分 割 为研 究 对象 , 扩 展 形式 的 Mensi 算 enSi 算 f 然 将 a h t f
法 用 于 解 决 织 物 图像 分 割 问题 。新 提 出 的织 物 图像 分 割算 法 包 括 2个 步 骤 : a h t Men S i 图像 滤 波 和 MenS i 图 像 f a h t f
分 割 , 介绍 了各 自的 原 理 。分 割 效 果 有 3 关 键 参 数 控 制 : 域 带 宽 、 度 域 带 宽 和 最 小 区域 限 制 。 实验 结 果 给 并 个 空 色
出 了 3个参 数 的影 响 和 选 取 分 析 , 后 给 出该 织 物 图 像 分 割 算 法 与 原 C D处 理 效 果 比较 图 , 明该 算 法 具 有 可 行 最 A 表 性 、 效性 和 鲁 棒 性 。 有 关键词 均 值 转 移 ; 物 图像 ;图像 滤 波 ;图像 分 割 织
基 于 MenS i 的织 物 图像 分 割算 法 a hf t
诸 葛振 荣 徐敏 刘 洋 飞 , ,
背景建模算法

背景建模算法1 基本原理视频图像中运动目标检测的一种方法,其基本思想是对图像的背景进行建模。
一旦背景模型建立,将当前的图像与背景模型进行某种比较,根据比较结果确定前景目标(需要检测的运动目标)。
2 难点(1)环境光照的变化(光照突然性的变化和缓慢的变化)(2)背景的多模态性(背景中存在的细微的运动将影响前景目标检测的结果)(3)运动物体的阴影(4)图像噪声(5)新的不动的物体进入到背景中(如何快速适应背景的变化)3 分类背景建模方法可以分为两类,颜色背景模型和纹理背景模型。
3.1 颜色背景模型颜色背景模型其思想是对图像中每个像素的颜色值(灰度或彩色)进行建模。
如果当前图像坐标(x,y)上的像素颜色值与背景模型中(x,y)上的像素颜色值有较大差异时,当前像素被认为是前景,否则为背景。
颜色背景模型的一个最明显的缺点是对阴影敏感,即将阴影误检测为运动目标。
在特定场合下,需要在检测后对阴影进行抑制和消除。
3.1.1 平均背景模型平均背景模型(Average Background Model)是一种简单、计算速度快但对环境光照变化和背景的多模态性比较敏感的一种背景建模算法。
其基本思想是:计算每个像素的平均值作为它的背景模型。
检测当前帧时,只需要将当前帧像素值I(x,y)减去背景模型中相同位置像素的平均值u(x,y),得到差值d(x,y),将d(x,y)与一个阈值TH进行比较,那么得到输出图像output的值如下:(3-1)(3-2)这里TH可以采用自适应算法进行确定,需要计算每个像素的帧间差的平均值和标准差。
公式如下:令代表t时刻的图像中(x,y)处的像素值,inter代表两帧之间的间隔,通常设置为3,令如下:(3-3)(3-4)(3-5)M通常要足够大(>30+inter)来保证和的精确性。
得到了和后TH 可以这样确定:TH = + (3-6)其中一般设置为2。
为了提高算法的鲁棒性,可以在检测完之后要对背景模型进行更新,对于所有像素(x,y),令,,更新后分别为,,:(3-7)(3-8)(3-9)这里为学习率(0~1),越大,对背景变化的适应速度越快。
Mean-Shift算法在车辆目标检测跟踪中应用

朱 ,菁 张 , 峰 霞 史 菁, 勋姚宇
( 熟 理 工 学 院 计 算机 科 学 与 工 程 学 院 , 苏 苏 州 2 5 0 ) 常 江 15 0
摘 要 : 动 车辆 的检 测 与 跟 踪 是 现代 智 能 交通 系统 的重 要 组 成 部 分 , 直 接 关 系到 交通 流 参 数 获取 的 准 确 性 。 在 交 通 流检 测 系统 运 它 中 , 目标 跟 踪 技 术 越 来越 被 重视 。 该 文 给 出 了最 基 本 的 MenSi 跟 踪 算 法 ,采 用颜 色 直 方 图 作 为 目标 的 特 征 描 述 , 同 时 采 用 a hf t
’
M e n- h f g r t m o r e tc o n r c i g o e Ve il p ia i n a S i Al o ih f r Ta g tDee t n a d T a k n ft h ceAp l t t i h c o
Z a S n - ig Z NG X n Y — e g HU Xi HI ig j , HA u , AO Yu fn , J n
M en s f 算 法搜 索 目标 位 置 , 义 样本 均值 , a —h i t 定 实验 结 果 表 明 算 法 的有 效 性 。 关 键词 : a — hf 算 法 : Men S i t 车辆 跟 踪 : 目标 检 测 中 图分 类 号 : P 9 T 31 文 献标 识 码 : A 文 章 编 号 :0 9 3 4 (0 03 — 8 6 0 ・ 10 — 042 1)1 8 1— 2
基于结合Mean-shiftKalman多运动目标视频车辆检测器算法论文

基于结合Mean-shift的Kalman多运动目标视频车辆检测器算法摘要:传统的车辆检测器算法虽然简单快速,但依然存在许多误触发的问题,在此背景下,本文首先介绍了传统的mean shift跟踪算法和kalman跟踪算法,然后提出了解决多目标跟踪问题的结合mean shift的kalman跟踪算法,最后将此算法和传统的算法进行了实验对比和优缺点的分析。
关键词:mean-shift;kalman;车辆检测器中图分类号:tp291 文献标识码:a 文章编号:1007-9599 (2011) 22-0000-02kalman multiple moving targets video vehicle detector algorithm based on mean-shiftkang nan(computer college,sichuan university,chengdu610064,china)abstract:conventional vehicle detection algorithm is simple and fast,but there are still many problems,in some condition it will make lots of mistakes.this paper firstly describes mean-shift tracking algorithm and kalman tracking algorithm,and then proposed to solve the problem ofmulti-target tracking with a method of merging bothmean-shift and kalman algorithm.at the end of this paper,icompare this algorithm with the traditional algorithm and give the comparative advantages for experimental analysis.keywords:mean-shift;kalman;vehicle detector目前,国内许多公司的车辆检测器的设计都比较简单,其核心算法只是对相邻图像帧做帧间差,一旦相邻帧之间的差值到一定的阈值,就认为有运动物体闯入,然后就向车牌识别器发送触发信号,这种车辆检测器检测速度快,但会出现大量的误触发现象,进而会大大增加车牌识别器、中心数据处理系统的数据处理负担和模块间的网络通信负担,浪费大量的系统资源。
基于方向直方图的Mean shift目标跟踪新算法

相 似 性 函 数 用 于 描 述 目标 模 型 和 候 选 模 型 的 相 似 性 度 量 , 使 用 B a a h ry 数 作 为 相 似 性 函数 , 可 h t c ay a 系 t 即
() , P , (A( ) VP( ) py) q: ‘ ) ( ( ,)∑ y A , , ( ) y = q
A
法很难应用于灰度图像 , 限制 了 M a hf算 法 的适 应 环境 。 ensi t
经 典 的 Me ns i 算 法要 求 相 邻 两 帧 间 目标 模 板 区域 必 须 重 a f ht 叠 , 目标 较 快 运 动 的 情 况 下 容 易 跟 丢 目标 ; 目标 出 现 尺 在 在 度 变 化 的复 杂 条 件 下 , 跟 踪 结 果 往 往 出现 偏 差 , 至 跟 踪 其 甚 失 败 。笔 者 提 出 了基 于 空 间方 向直 方 图 的 M a hf跟 踪 算 ensi t
作 者 简 介 : 臻 ( 9 6 ) 男 , 西 西 安人 , 士 研 究 生 。研 究 方 向 : 秦 18 一 , 陕 硕 图像 压 缩 处 理 。
一
秦 臻, 等
1 相 似 性 函数 . 3
基 于方 向直方 图 的 Mensi 目标 跟踪 新 算法 a hf t
方 向编 码 的间 距 A 取 8 0 。用 Me ns i 跟踪 目标 模 型 和候 a f ht 选 模 型 时 , 跟 踪 区域 用 方 向 编 码来 描述 目标 。 向 编码 示 意 在 方
性函数可近似为 :
A
)  ̄/ A = _ X 粤 … ㈩ I A ( y
( 4)
22 跟踪 算 法 流 程 . 1 预 测 跟 踪 坐标 ) 利 用前 一 帧 图像 中 目标 的 位 置 信 息来
无监督算法有哪些

无监督算法有哪些无监督学习(Unsupervised Learning)是和监督学习相对的另一种主流机器学习的方法,无监督学习是没有任何的数据标注只有数据本身。
无监督学习算法有几种类型,以下是其中最重要的12种:1、聚类算法根据相似性将数据点分组成簇k-means聚类是一种流行的聚类算法,它将数据划分为k组。
2、降维算法降低了数据的维数,使其更容易可视化和处理主成分分析(PCA)是一种降维算法,将数据投影到低维空间,PCA可以用来将数据降维到其最重要的特征。
3.异常检测算法识别异常值或异常数据点支持向量机是可以用于异常检测。
异常检测算法用于检测数据集中的异常点,异常检测的方法有很多,但大多数可以分为有监督和无监督两种。
监督方法需要标记数据集,而无监督方法不需要。
无监督异常检测算法通常基于密度估计,试图找到数据空间中密集的区域外的点。
一个简单的方法是计算每个点到k个最近邻居的平均距离。
距离相邻点非常远的点很可能是异常点。
还有很多基于密度的异常检测算法,包括局部离群因子(Local Outlier Factor,LOF)和支持向量数据描述(Support Vector Domain Description,SVDD)。
这些算法比简单的k近邻方法更复杂,通常可以检测到更细微的异常[21]。
大多数异常检测算法都需要进行调整,例如指定一个参数来控制算法对异常的敏感程度。
如果参数过低,算法可能会漏掉一些异常。
如果设置过高,算法可能会产生误报(将正常点识别为异常点)。
4、分割算法将数据分成段或组分割算法可以将图像分割为前景和背景。
这些算法可以在不需要人工监督的情况下自动将数据集分割成有意义的组。
这个领域中比较知名的一个算法是k-means算法。
该算法通过最小化组内距离平方和将数据点分成k组。
另一种流行的分割算法是mean shift算法。
该算法通过迭代地将每个数据点移向其局部邻域的中心来实现。
mean shift对异常值具有较强的鲁棒性,可以处理密度不均匀的数据集。
多特征带宽自适应Mean Shift目标跟踪算法
M u l t i . f e a t u r e Ba n d wi d t h Ad a p t i v e
Me a n S h i t f T a r g e t Tr a c k i n g Al g o r i t h m
DI NG Ye - b i n g , ZHAO Fe n g , HAO S h i - h a i
] [ Ke y w o r d s ]t rg a e t t r a c k i n g ; k e me l f u n c t i o n b a n d wi d t h ; t e x t u r e ; p r o b a b i l i t y d e n s i y; t mo me n t
特征带宽 自 适应 目 标 跟踪算法 。采用颜色和纹理信 息创 建特征模型 ,在最优 目 标位置 区域投 影,以生成概率密 度分布 图 , 通过计算获得 目 标密 度块的长度和宽度 ,从而 自 适 应调整核函数带宽 ,用椭 圆锁定 目 标, 椭 圆形状参数 由 目 标概率密度 的
结合Kalman滤波器的Mean
结合Kalman滤波器的Mean摘要:本文首先简单分析了mean-shift算法的基本原理及mean-shift向量推导过程,接着通过多组实验的结果,分析和验证了算法的优劣。
然后,针对mean-shift算法本身所存在的缺陷,引入kalman滤波器,利用kalman滤波器来预测每帧mean-shift算法的初始搜索位置,然后再运行mean-shift算法获得目标位置,同时在跟踪过程中利用预测出的目标速度矢量更新kalman滤波器参数,实现了基于卡尔曼滤波框架的mean-shift算法,实验验证了本算法可以实现对快速运动目标的跟踪,并且对较大比例的目标遮挡也具有很好的鲁棒性。
关键词:mean-shift算法 kalman滤波器线性预测中图分类号:tp391.41 文献标识码:a 文章编号:1007-9416(2013)01-0109-011 算法基本思想为了增强mean-shift算法的适应性,针对算法的缺陷,本文对基本的mean-shift算法进行改进,引入kalman滤波器。
这种基于自适应滤波框架的mean-shift算法有效地减小了背景颜色和障碍物遮挡对跟踪的影响,提高了算法跟踪的鲁棒性。
2 卡尔曼滤波器建模卡尔曼滤波算法的主要思想是:利用前一帧图像的目标跟踪结果来预测当前帧图像中目标的大概位置,然后在该位置附近进行目标搜索,如果搜索区域内存在目标,则继续处理下一帧图像,否则,将搜索区域扩大,重新搜索当前帧图像,或者丢弃前一帧图像,直接处理下一帧图像。
算法的关键在于预测搜索区域的位置。
它不仅可以任意一点作为观测起点,而且具有计算量小,可实时计算的特点,因此本文采用kalman滤波器来估计目标运动参数,然后利用均值漂移算法搜寻目标在当前帧的真实位置。
卡尔曼滤波器包括两个模型:系统运动方程:(1)系统观测方程:(2)式中,状态向量xk=[x,y,dx,dy]t,测量向量zk=[x,y]t,x和dx分别是目标图像在水平方向的位置和运动速度;y和dy分别是目标图像在垂直方向的位置和运动速度。
edison_meanshift 结构
转】 Mean Shift2010-10-11 17:34转载自 aspireal最终编辑 zzf378139208Edge Detection and Image SegmentatiON (EDISON) System一、概述MeanShift并不算一种很新的特征空间分析算法,但是它原理简单,计算速度较快,通常能在一次分割后形成大量小的模态区域。
这样便直接将问题分析层次从像素域提升到特征域,对后续处理有很大的好处。
CVPR07不少新颖的分析算法(比如多目标分割)都是以mean shift为基础的。
因此,它仍然有很大的研究价值。
Rutgers的RIUL实验室将mean shift和synergistic分割算法以C++实现,并将派生的边缘检测方法集成到EDISON分析平台中,以自由软件的形式发放。
本日志不讨论meanshift原理和性能,而是分析EDISON控制台程序中mean shift 分割算法的实现过程和技巧。
EDISON控制台程序模块:1. 脚本解释器(parser.h/parser.cpp/globalfnc.cpp)由于程序参数是以脚本文件提供的,所以需要进行词法、语法分析。
这不是算法的重点,这里不讨论其实现方法。
调用函数为CheckSyntax() 脚本文件语法分析,查找是否有错误语法Run() 脚本执行2. 算法控制平台(edison.h/edison.cpp)控制输入输出、所有参数设置及算法执行,一般由globalfnc.cpp中EXECUTE()函数调用3. mean shift算法(ms.h/ms.cpp/msImageProcessor.cpp)算法核心,ms.h/ms.cpp定义了MeanShift基类,使用lattice迭代计算实现。
msImageProcessor派生至MeanShift,实现了区域合并、剔除、边界查找等应用。
分割过程:1.LoadImage 获取height, width, 数据指针pImg, 数据通道数(彩色为3,灰度为1)。
基于Mean Shift随机游走图像分割算法
M e n S f s d Ra o W a ke nt r c i e I a e S g e a i n Al o ih a hitBa e nd m l r I e a tv m g e m nt to g r t m
Y iY u e g” , Ga q ” , a d G uo Li fn o Li un n
s l e t e r b e t a t e o jc ie o t u i r n t he n l n e f he a ur 1 e t r o v h p o l ms h t h b e t c n o r s o e o t i fue c o t n t a t x u e v p
( p rme t f Me ia ma ig,T a j n e i l n v ri De a t n d c lI g n o i n i d c ie s y,Tin i 3 0 0 ) M a U t a j n 0 2 3
Absr c :A e n S f a e a om l r i e a tve i ge s g e a i n ago ih i o s d t ta t M a hitb s d r nd wa ke nt r c i ma e m nt to l rt m s pr po e o
t e smi rt o d e t e in . F n l h i l i a y f a jc n r go s a ial t e ic ee o e ta t e r i s d o ac lt t e y, h d sr t p t n il h o y s e t c lua e h u
分 割 得 到 的 同质 区域 进 行 分 类 , 以实 现 图像 分 割 . 验 结 果 表 明 , 传 统 方 法 相 比 , 算 法 在 分 割 精 度 和运 行 效 率 上 实 与 该
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mean Shift 概述Mean Shift 简介Mean Shift 这个概念最早是由Fukunaga 等人[1]于1975年在一篇关于概率密度梯度函数的估计中提出来的,其最初含义正如其名,就是偏移的均值向量,在这里Mean Shift 是一个名词,它指代的是一个向量,但随着Mean Shift 理论的发展,Mean Shift 的含义也发生了变化,如果我们说Mean Shift 算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.然而在以后的很长一段时间内Mean Shift 并没有引起人们的注意,直到20年以后,也就是1995年,另外一篇关于Mean Shift 的重要文献[2]才发表.在这篇重要的文献中,Yizong Cheng 对基本的Mean Shift 算法在以下两个方面做了推广,首先Yizong Cheng 定义了一族核函数,使得随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同,其次Yizong Cheng 还设定了一个权重系数,使得不同的样本点重要性不一样,这大大扩大了Mean Shift 的适用范围.另外Yizong Cheng 指出了Mean Shift 可能应用的领域,并给出了具体的例子.Comaniciu 等人[3][4]把Mean Shift 成功的运用的特征空间的分析,在图像平滑和图像分割中Mean Shift 都得到了很好的应用. Comaniciu 等在文章中证明了,Mean Shift 算法在满足一定条件下,一定可以收敛到最近的一个概率密度函数的稳态点,因此Mean Shift 算法可以用来检测概率密度函数中存在的模态.Comaniciu 等人[5]还把非刚体的跟踪问题近似为一个Mean Shift 最优化问题,使得跟踪可以实时的进行.在后面的几节,本文将详细的说明Mean Shift 的基本思想及其扩展,其背后的物理含义,以及算法步骤,并给出理论证明.最后本文还将给出Mean Shift 在聚类,图像平滑,图像分割,物体实时跟踪这几个方面的具体应用.Mean Shift 的基本思想及其扩展基本Mean Shift给定d 维空间dR 中的n 个样本点i x ,i=1,…,n,在x 点的Mean Shift 向量的基本形式定义为:()()1i hh i x S M x x x k ∈≡-∑ (1)其中,h S 是一个半径为h 的高维球区域,满足以下关系的y 点的集合,()()(){}2:Th S x y y x y x h ≡--≤ (2)k 表示在这n 个样本点i x 中,有k 个点落入h S 区域中.我们可以看到()i x x -是样本点i x 相对于点x 的偏移向量,(1)式定义的Mean Shift 向量()h M x 就是对落入区域h S 中的k 个样本点相对于点x 的偏移向量求和然后再平均.从直观上看,如果样本点i x 从一个概率密度函数()f x 中采样得到,由于非零的概率密度梯度指向概率密度增加最大的方向,因此从平均上来说, h S 区域内的样本点更多的落在沿着概率密度梯度的方向.因此,对应的, Mean Shift 向量()h M x 应该指向概率密度梯度的方向.图1,Mean Shift 示意图如上图所示, 大圆圈所圈定的范围就是h S ,小圆圈代表落入h S 区域内的样本点i h x S ∈,黑点就是Mean Shift 的基准点x ,箭头表示样本点相对于基准点x 的偏移向量,很明显的,我们可以看出,平均的偏移向量()h M x 会指向样本分布最多的区域,也就是概率密度函数的梯度方向.扩展的Mean Shift核函数首先我们引进核函数的概念.定义:X 代表一个d 维的欧氏空间,x 是该空间中的一个点,用一列向量表示. x 的模2T x x x =.R 表示实数域.如果一个函数:K X R →存在一个剖面函数[]:0,k R ∞→,即()2()K x k x=(3)并且满足:(1) k 是非负的.(2) k 是非增的,即如果a b <那么()()k a k b ≥. (3) k 是分段连续的,并且()k r dr ∞<∞⎰那么,函数()K x 就被称为核函数.举例:在Mean Shift 中,有两类核函数经常用到,他们分别是, 单位均匀核函数:1 if 1()0 if 1 x F x x ⎧<⎪=⎨≥⎪⎩(4)单位高斯核函数:2()xN x e-= (5)这两类核函数如下图所示.图2, (a) 单位均匀核函数 (b) 单位高斯核函数一个核函数可以与一个均匀核函数相乘而截尾,如一个截尾的高斯核函数为,()2if ()0 ifx e x N F x x ββλλλ-⎧<⎪=⎨≥⎪⎩ (6)图 3 显示了不同的,βλ值所对应的截尾高斯核函数的示意图.图3 截尾高斯核函数 (a) 11N F (b) 0.11N FMean Shift 扩展形式从(1)式我们可以看出,只要是落入h S 的采样点,无论其离x 远近,对最终的()h M x 计算的贡献是一样的,然而我们知道,一般的说来,离x 越近的采样点对估计x 周围的统计特性越有效,因此我们引进核函数的概念,在计算()h M x 时可以考虑距离的影响;同时我们也可以认为在这所有的样本点i x 中,重要性并不一样,因此我们对每个样本都引入一个权重系数.如此以来我们就可以把基本的Mean Shift 形式扩展为:()11()()()()()nHi i i i nHi i i Gx x w x x x M x Gx x w x ==--≡-∑∑ (7)其中: ()()1/21/2()H i i G x x HG H x x ---=-()G x 是一个单位核函数H 是一个正定的对称d d ⨯矩阵,我们一般称之为带宽矩阵()0i w x ≥是一个赋给采样点i x 的权重在实际应用的过程中,带宽矩阵H 一般被限定为一个对角矩阵221diag ,...,d H h h ⎡⎤=⎣⎦,甚至更简单的被取为正比于单位矩阵,即2H h I =.由于后一形式只需要确定一个系数h ,在Mean Shift 中常常被采用,在本文的后面部分我们也采用这种形式,因此(7)式又可以被写为:()11()()()()()ni i i i h ni i i x xG w x x x hM x x x G w x h ==--≡-∑∑ (8)我们可以看到,如果对所有的采样点i x 满足(1)()1i w x =(2) 1 if 1()0 if 1 x G x x ⎧<⎪=⎨≥⎪⎩则(8)式完全退化为(1)式,也就是说,我们所给出的扩展的Mean Shift 形式在某些情况下会退化为最基本的Mean Shift 形式.Mean Shift 的物理含义正如上一节直观性的指出,Mean Shift 指向概率密度梯度方向,这一节将证明Mean Shift 向量()h M x 是归一化的概率密度梯度.在本节我们还给出了迭代Mean Shift 算法的详细描述,并证明,该算法会收敛到概率密度函数的一个稳态点.概率密度梯度对一个概率密度函数()f x ,已知d 维空间中n 个采样点i x ,i=1,…,n, ()f x 的核函数估计(也称为Parzen 窗估计)为,11()ˆ()()ni i i n di i x x K w x h f x h w x ==-⎛⎫ ⎪⎝⎭=∑∑ (9)其中()0i w x ≥是一个赋给采样点i x 的权重()K x 是一个核函数,并且满足()1k x dx =⎰我们另外定义: 核函数()K x 的剖面函数()k x ,使得()2()K x kx=(10);()k x 的负导函数()g x ,即'()()g x k x =-,其对应的核函数()2()G x g x= (11)概率密度函数()f x 的梯度()f x ∇的估计为:()2'1212()ˆˆ()()()ni i i i nd i i x x x x k w x h f x f x h w x =+=⎛⎫--⎪ ⎪⎝⎭∇=∇=∑∑(12)由上面的定义, '()()g x k x =-,()2()G x gx=,上式可以重写为()()21212112112()ˆ()()()()2 ()()nii i i nd i i n i n i i i i i i n d n i i i i i x xx x G w x h f x h w x x x x x x x G w x G w x h h x x h h w x G w x h =+=====⎛⎫-- ⎪ ⎪⎝⎭∇=⎡⎤⎛⎫-⎡-⎤⎛⎫-⎢⎥ ⎪ ⎪ ⎪⎢⎥⎢⎥⎝⎭⎝⎭⎢⎥=⎢⎥-⎛⎫⎢⎥⎢⎥ ⎪⎢⎥⎝⎭⎢⎥⎣⎦⎣⎦∑∑∑∑∑∑ (13)上式右边的第二个中括号内的那一部分就是(8)式定义的Mean Shift 向量,第一个中括号内的那一部分是以()G x 为核函数对概率密度函数()f x 的估计,我们记做ˆ()Gf x ,而(9)式定义的ˆ()f x 我们重新记做ˆ()Kf x ,因此(11)式可以重新写为: ˆ()f x ∇=ˆ()K f x ∇=()22ˆ()Gh f x M x h(14)由(12)式我们可以得出,()2ˆ()1ˆ2()Kh G f x M x h f x ∇= (15)(15)式表明,用核函数G 在x 点计算得到的Mean Shift 向量()h M x 正比于归一化的用核函数K 估计的概率密度的函数ˆ()Kf x 的梯度,归一化因子为用核函数G 估计的x 点的概率密度.因此Mean Shift 向量()h M x 总是指向概率密度增加最大的方向.Mean Shift 算法 算法步骤我们在前面已经指出,我们在提及Mean Shift 向量和Mean Shift 算法的时候指代不同的概念,Mean Shift 向量是名词,指的是一个向量;而Mean Shift 算法是动词,指的是一个迭代的步骤.我们把(8)式的x 提到求和号的外面来,可以得到下式,()11()()()()ni i i i h n i i i x xG w x x hM x x x x G w x h ==-=--∑∑(16)我们把上式右边的第一项记为()h m x ,即11()()()()()ni i i i h n i i i x xG w x x hm x x x G w x h ==-=-∑∑(17)给定一个初始点x ,核函数()G X , 容许误差ε,Mean Shift 算法循环的执行下面三步,直至结束条件满足, (1).计算()h m x(2).把()h m x 赋给x(3).如果()h m x x ε-<,结束循环;若不然,继续执行(1).由(16)式我们知道, ()()h h m x x M x =+,因此上面的步骤也就是不断的沿着概率密度的梯度方向移动,同时步长不仅与梯度的大小有关,也与该点的概率密度有关,在密度大的地方,更接近我们要找的概率密度的峰值,Mean Shift 算法使得移动的步长小一些,相反,在密度小的地方,移动的步长就大一些.在满足一定条件下,Mean Shift 算法一定会收敛到该点附近的峰值,这一收敛性由下面一小节给出证明.算法的收敛性证明我们用{}j y ,1,2,...j =来表示Mean Shift 算法中移动点的痕迹,由(17)式我们可写为,111()()()()ni ji i i j ni j i i x y G w x x hy x y G w x h =+=-=-∑∑, 1,2,...j = (18) 与j y 对应的概率密度函数估计值ˆ()jf y 可表示为, 11()ˆ()()ni j i i K j n di i x y K w x h f y h w x ==-⎛⎫⎪⎝⎭=∑∑ (19)下面的定理将证明序列{}j y 和{}ˆ()jf y 的收敛性. 定理:如果核函数()K x 有一个凸的,单调递增的剖面函数,核函数()G x 由式(10)和(11)定义,则序列{}j y 和{}ˆ()jf y 是收敛的. 证明:由于n 是有限的,核函数()(0)K x K ≤,因此序列{}ˆ()j f y 是有界的,所以我们只需要证明{}ˆ()jf y 是严格递增的的,即要证明,对所有j=1,2,…如果1j j y y +≠,那么ˆ()j f y 1ˆ()j f y +< (20)不失一般性,我们可以假设0j y =,由(19)式和(10)式,我们可以得到1ˆ()j f y +ˆ()j f y -=221111 ()()n i j i ji ni d i i x y x y k k w x h h h w x +==⎡⎤⎛⎫⎛⎫--⎢⎥ ⎪ ⎪- ⎪ ⎪⎢⎥⎝⎭⎝⎭⎣⎦∑∑ (21)由于剖面函数()k x 的凸性意味着对所有12,[0,)x x ∈∞且12x x ≠,有'2121()()()()k x k x k x x x ≥+-(22)因为'()()g x k x =-,上式可以写为,2112()()()()k x k x g x x x -≥-(23)结合(21)与(23)式,可以得到,1ˆ()j f y +ˆ()jf y -222111211()()ni j i j i i n i d i i x y g x y x w x h h w x ++=+=⎛⎫-⎡⎤⎪≥--⎢⎥⎣⎦ ⎪⎝⎭∑∑221111211 2()()ni j T j i j i n i d i i x y g y x y w x h h w x +++=+=⎛⎫-⎡⎤⎪=-⎢⎥⎣⎦ ⎪⎝⎭∑∑12221211112()()()j n nT ii i i j i n d i i i i x x y x g w x y g w x h h h w x +++===⎡⎤⎛⎫⎛⎫=-⎢⎥ ⎪ ⎪ ⎪ ⎪⎢⎥⎝⎭⎝⎭⎣⎦∑∑∑(24)由(18)式我们可以得出,1ˆ()j f y +ˆ()jf y -2211211()n ij n i d i i x y g hhw x +=+=⎛⎫≥ ⎪ ⎪⎝⎭∑∑(25)由于剖面函数()k x 是单调递减的,所以求和项210ni i x g h =⎛⎫> ⎪ ⎪⎝⎭∑,因此,只要10j j y y +≠= (25)式的右边项严格大于零,即1ˆ()j f y +ˆ()jf y >.由此可证得,序列{}ˆ()j f y 收敛 为了证明序列{}j y 的收敛性,对于0j y ≠,(25)式可以写为1ˆ()j f y +ˆ()jf y -2211211()ni j j jn i d i i x y y y g hhw x +=+=⎛⎫- ⎪≥- ⎪⎝⎭∑∑(26) 现在对于标号j,j+1,…,j+m -1,对(26)式的左右两边分别求和,得到 ˆ()j m f y +ˆ()jf y -22111211...()ni j m j m j m ni d i i x y y y g h h w x +-++-=+=⎛⎫- ⎪≥-+ ⎪⎝⎭∑∑2211211()ni jj jn i d i i x y y y g hhw x +=+=⎛⎫- ⎪+- ⎪⎝⎭∑∑2211211...()j m j m j j n d i i y y y y M h w x ++--+=⎡⎤≥-++-⎢⎥⎣⎦∑2211()j m j n d i i y y M hw x ++=≥-∑(27)其中M 表示对应序列{}j y 的所有求和项21ni ji x y g h =⎛⎫-⎪ ⎪⎝⎭∑的最小值.由于{}ˆ()j f y 收敛,它是一个Cauchy 序列,(27)式意味着{}jy 也是一个Cauchy 序列,因此,序列{}j y 收敛.Mean Shift 的应用从前面关于Mean Shift 和概率密度梯度的关系的论述,我们可以清楚的看到,Mean Shift算法本质上是一个自适应的梯度上升搜索峰值的方法,如下图所示,如果数据集{},1,...i x i n =服从概率密度函数f(x),给定一个如图初始点x ,Mean Shift 算法就会一步步的移动,最终收敛到第一个峰值点.从这张图上,我们可以看到Mean Shift 至少有如下三方面的应用:(1)聚类,数据集{},1,...i x i n =中的每一点都可以作为初始点,分别执行Mean Shift 算法,收敛到同一个点算作一类;(2)模态的检测,概率密度函数中的一个峰值就是一个模态,Mean Shift 在峰值处收敛,自然可以找到该模态.(3)最优化,Mean Shift 可以找到峰值,自然可以作为最优化的方法,Mean Shift 算法进行最优化的关键是要把最优化的目标转化成Mean Shift 隐含估计的概率密度函数.图4.Mean Shift 算法示意图Mean Shift 算法在许多领域获得了非常成功的应用,下面简要的介绍一下其在图像平滑,图像分割以及物体跟踪中的应用,一来说明其强大的生命力,二来使对上文描述的算法有一个直观的了解.图像平滑与分割一幅图像可以表示成一个二维网格点上p 维向量,每一个网格点代表一个象素,1p =表示这是一个灰度图,3p =表示彩色图,3p >表示一个多谱图,网格点的坐标表示图像的空间信息.我们统一考虑图像的空间信息和色彩(或灰度等)信息,组成一个2p +维的向量(,)s r x x x =,其中s x 表示网格点的坐标,r x 表示该网格点上p 维向量特征.我们用核函数,s r h h K 来估计x 的分布, ,s r h h K 具有如下形式,22,2s rs r h h p s r sr C x x K k k h h h h ⎛⎫⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭⎝⎭ (28)其中,s r h h 控制着平滑的解析度,C 是一个归一化常数.我们分别用i x 和i z ,i =1,…,n 表示原始和平滑后的图像.用Mean Shift 算法进行图像平滑的具体步骤如下, 对每一个象素点, 1,初始化1j =,并且使,1i i y x =2,运用Mean Shift 算法计算,1i j y +,直到收敛.记收敛后的值为,i c y3.赋值(),,s r i i i c z x y =图5是原始图像,图中40⨯20白框区域被选中来更好的显示基于Mean Shift 的图像平滑步骤,图6显示了这一区域的平滑步骤,x, y 表示这一区域内的象素点的坐标,图6(a)在一个三维空间显示了各个象素点的灰度值,图6(b)显示各点的移动痕迹,黑点是最终收敛值,图6(c)显示了平滑后的各象素点的灰度值,图6(d)是继续分割后的结果.图5.原始图像图6.(a)原始图像的各象素点灰度值.(b)各象素点的Mean Shift移动路径.(c)平滑后的各象素点的灰度值.(d)分割后的结果图7显示了图5经过平滑后的结果,我们可以看到,草地上的草地纹理被平滑掉了,而图像中边缘仍然很好的保持着..图7平滑后的结果h h是非常重要的参数,人们可以根据解析度的在基于Mean Shift的图像平滑中,式(28)中的,s rh h会对最终的平滑结果有一定的影响,图7显示了这两个参数对平要求而直接给定,不同,s rh影响更大一些.滑结果的影响,我们可以看出,s图8,原始图和平滑后的图基于Mean Shift的图像分割与图像平滑非常类似,只需要把收敛到同一点的起始点归为一类,然后把这一类的标号赋给这些起始点,在图像分割中有时还需要把包含象素点太少类去掉,图6(d)显示分割后的灰度值.图8,显示了图5经过分隔后的结果图8,分割后的结果物体跟踪我们用一个物体的灰度或色彩分布来描述这个物体,假设物体中心位于0x ,则该物体可以表示为()21ˆi i s ns u i x xqC k b x u h δ=⎛⎫- ⎪⎡⎤=-⎣⎦ ⎪⎝⎭∑(29)候选的位于y 的物体可以描述为()21ˆ()hn s s i u h i i x ypy C k b x u h δ=⎛⎫-⎡⎤ ⎪=-⎣⎦ ⎪⎝⎭∑(30)因此物体跟踪可以简化为寻找最优的y ,使得ˆ()u py 与ˆu q 最相似. ˆ()u py 与ˆu q 的最相似性用Bhattacharrya 系数ˆ()y ρ来度量分布,即 []ˆ()(),mu y p y q ρρ=≡= (31)式(31)在ˆu p()0ˆy 点泰勒展开可得,[]1111(),(22m mu u u p y q p y ρ==≈∑(32)把式(30)带入式,整理可得,[]2111(),22mnhii u i C y x p y q w k h ρ==⎛⎫-≈ ⎪ ⎪⎝⎭∑ (33)其中,1[()mi i u w b x u δ==-∑对式(33)右边的第二项,我们可以利用Mean Shift 算法进行最优化.在Comaniciu 等人的文章中,他们只用平均每帧图像只用4.19次Mean Shift 迭代就可以收敛,他们的结果很显示在600MHz 的PC 机上,他们的程序可以每秒处理30帧352⨯240象素的图像.下图显示了各帧需要的Mean Shift 迭代次数.图9,各帧需要的Mean Shift迭代次数下图显示了Comaniciu等人的跟踪结果图10,基于Mean Shift的物体跟踪结果结论本文回顾了Mean Shift的发展历史,介绍了它的基本思想,给出了具体的算法步骤,详细证明了它与梯度上升搜索法的联系,并给出Mean Shift算法的收敛性证明,最后给出了Mean Shift在图像平滑,图像分割以及实时物体跟踪中的具体应用,显示Mean Shift强大的生命力.参考文献[1]The Estimation of the Gradient of a Density Function, with Applications in Pattern Recognition (1975)[2]Mean shift, mode seeking, and clustering (1995)[3]Mean Shift: a robust approach toward feature space analysis (2002)[4]Real-time tracking of non-rigid objects using mean shift (2000)[5]Mean-shift Blob Tracking through Scale Space (2003)[6]An algorithm for data-driven bandwidth selection(2003)。