均值漂移跟踪算法
均值漂移算法python

均值漂移算法python
均值漂移算法(Mean Shift Algorithm)是一种非参数化的聚类算法,用于在数据集中寻找局部密度最大的区域,从而实现数据点的聚类。
该算法的核心思想是通过计算数据点的概率密度,不断迭代调整数据点的位置,使其向密度最大的区域漂移,最终形成聚类结果。
均值漂移算法的原理相对简单,主要分为以下几个步骤:
1. 初始化:选择一个数据点作为初始种子点,并确定一个搜索窗口的大小。
2. 密度估计:对于每个种子点,在搜索窗口内计算其密度,通常使用核函数(如高斯核函数)来计算。
3. 均值漂移:根据密度估计的结果,将种子点向密度最大的方向漂移,即将种子点移动到密度估计值最大的位置。
4. 更新种子点:更新漂移后的种子点,并返回第2步,直至收敛。
5. 聚类结果:根据最终的种子点位置,将数据点归类到最近的种子点所代表的聚类中。
均值漂移算法的优点在于不需要事先设定聚类的数量,且对于聚类形状的适应性较好。
同时,均值漂移算法也具有较好的鲁棒性,对
初始种子点的选择不敏感。
在实际应用中,均值漂移算法可以广泛应用于图像分割、运动目标跟踪等领域。
例如,在图像分割中,可以利用均值漂移算法对图像进行分割,将具有相似颜色特征的像素点聚类到一起,从而实现对图像的分割。
均值漂移算法还有一些改进和扩展的方法。
例如,基于密度的均值漂移算法(Density-Based Mean Shift)可以更好地处理数据集中存在不同密度区域的情况。
均值漂移算法是一种简单而有效的聚类算法,具有较好的性能和鲁棒性。
在实际应用中,可以根据具体问题的需求选择合适的变体和改进方法,以获得更好的聚类效果。
基于均值漂移——连通域标记的多目标跟踪算法

重心坐标 以及大小 和方 向 , 将其作为 当前 MenS i 算 法跟 并 a hf t 踪的起始信息 。在 目标丢失 情况下 能够搜 索到 目标并进 行跟 踪, 提高算法鲁棒性 。
1 改进 Me nS i 跟 踪算 法 a ht t
的跟踪算 法中 , a h t Me Si 算法 由于具 有理论严谨 、 时 陛好 和 n f 实
跟踪精 度 较 高 等 最 a
S i 算法最早 由 F kng ht f u u aa等人 提 出 , 作为 一个 非参数 化 的 数据统计 方法 , 于数据 聚类 , 称之为 峡谷 搜索 算法 ( a e— 用 也 vl ly
鲁好波 ,李坚强 ,王小 民
( 圳 大学 计 算机 与软件 学 院 , 东 深圳 586 ) 深 广 100 摘 要 :提 出一种基 于 M a h 改 进算 法与 连通域 标记 的 多 目 跟 踪 算法 。在 多 目标跟 踪过 程 中, 目 瞬 enSi t f 标 对 标
间丢 失 、 标 遮挡 或 重 叠 时 目标 跟 踪 失 败 等 情 况 有 较 好 的 改 进 。在 跟 踪 过 程 中 , 目标 丢 失 时 , 于 改进 的 目 当 基
MenS i 方法是一种最优 的寻找概率密度极大值 的梯度 a hf t
基金项 目:国家自然科学基 金资助项 目( 10 15 60 18 )
作者简介 : 鲁好波( 9 5 ) 男 , 东青岛人 , 18 . , 山 硕士研究生 , 主要研 究方向为多媒体信息处理( ho o3 4 6 . o ) 李 坚强( 90 ) 男, 东 1 ab_ 0 @13 c ; u n r 18 一 , 广 韶 关人 , 讲师 , 博士 , 主要研究方向为 多媒体信息处理 ; 王小民( 97 ) 男 , 1 5 - , 河南长葛人 , 副教授 , 硕士 , 主要研 究方向为计 算机 网络与信 息安全.
核函数带宽自适应的均值漂移目标跟踪算法

摘 要 :针 对均值 漂移 ( a h t MenS i )算法在跟踪视频 目标过 程 中核 函数带 宽 固定不 变的缺 陷,提 出 了一种核 函数带 宽与 f 目标大小 自适应 变化的 MenS i 视 频 目标跟 踪算法。用 MenS i 算 法搜 索到 目标 ,以搜 索框 中心不 变,将搜 索窗 口扩 a hf t a hf t 大,并计算新搜索框的模 型及每 个像 素的核 函数权值 ;通过将每个像素点的核 函数 权值 代替像 素值 ,并利用不 变矩计 算方
收 稿 日期 :2 1-72 ;修 订 日期 :2 1 -20 0 10 —5 0 20 —6
基金项 目:“ 1 工程”三期建设基金项 目 ( -0 1 ) 21 812 8 ;中央高校基本科 研业务 费资 助基金项 目 ( D XS 0 8 1 2 ;重庆 大学 研究生 创新 C J 1113)
矩在统计学 中被用 来反 映随机 变量 的分 布情 况 ,推广 到力学 中,它被用 作刻 画空 间物体 的质量 分布 。同样 的道 理 ,如果我们将 图像 的像 素值看 作是一 个二 维或三 维的密
S r ie Co u ig i b rP y ia o it ,M i it y o u a i n e v c mp tn Cy e h sc lS ce y n n s r fEd c t ,Ch n q n i e st o o g i g Un v r i y,Ch n q n 0 0 0,Ch n ) o g ig 4 0 3 ia
均值偏移算法

均值偏移算法1. 概述均值偏移算法(Mean Shift algorithm)是一种非参数化的聚类算法,能够对数据进行自动的聚类分析。
该算法的原理基于密度估计和梯度下降,通过不断迭代的方式找到数据的局部最大密度区域,从而将数据划分成不同的簇。
均值偏移算法在计算机视觉、图像处理以及模式识别等领域都有应用。
2. 均值偏移原理均值偏移算法的核心思想是通过计算样本点与其邻近点之间的距离来寻找密度最大的区域,并将距离小于某个阈值的样本点划分到同一簇中。
具体步骤如下:2.1. 初始化首先,需要初始化聚类中心点。
可以选择从样本中随机选择一些点作为初始的聚类中心。
2.2. 密度估计对于每个聚类中心点,计算它与所有样本点的距离。
可以使用欧氏距离或者其他距离度量方法。
根据距离大小,将样本点按照距离聚类中心点的远近分别分为不同的簇。
2.3. 均值迁移对于每个样本点,计算它距离所属簇其他样本点的中心的平均距离,并将该样本点迁移到距离最近的中心。
重复这一过程,直到所有样本点不再发生迁移。
2.4. 聚类结果经过迭代的均值偏移过程之后,每个样本点都会被分配到一个簇中。
最终的聚类结果即为各个样本点所属的簇。
3. 实例详解下面通过一个实例来详细解释均值偏移算法的工作原理。
假设我们有一组二维数据点,如下所示:[(1, 2), (1.5, 1.8), (5, 8), (8, 8), (1, 0.6), (9, 11)]3.1. 初始化我们随机选择两个点作为初始的聚类中心,比如选择(1, 2)和(9, 11)。
3.2. 密度估计计算每个样本点与聚类中心的距离:距离中心点(1, 2)的距离:[0, 0.2828, 10.8167, 10.8167, 1.412, 13.6015]距离中心点(9, 11)的距离:[13.6015, 13.193, 4.4721, 1.4142, 11.6619, 0]根据距离的大小,可以将数据分为两个初始簇:初始簇1: [(1, 2), (1.5, 1.8), (1, 0.6)]初始簇2: [(5, 8), (8, 8), (9, 11)]3.3. 均值迁移对于簇1中的样本点(1, 2),计算其与其他样本点的平均距离,并将其迁移到距离最近的中心点。
基于部分背景加权更新的均值漂移跟踪算法

a n i mp r o v e d a l g o r i t h m b a s e d o n c o l o r a n d t e x t u r e b l e n d i n g c h a r a c t e r i s t i c s a n d b a c k g r o u n d w e i g h t e d u p d a t e a p p r o a c h . T h e o r i g i — n a l R GB i ma g e w a s e o n v e  ̄e d i n t o t h e HS V c o l o r s p a c e ,t h e n c o l o r f e a t u r e wa s e x t r a c t e d i n t h e H, S c h a n n e l a n d t e x t u r e l e a — t u r e wa s e x t r a c t e d b a s e d o n t h e L BP d e s c r i p t o r i n t h e V c h a n n e 1 .B a s e o n t h i s ,t h i s p a p e r e s t a b l i s h e d t h e c o l o r — t e x t u r e h i s t o —
g r a m o f t h e o b j e c t r e g i o n a n d b a c k g r o u n d . D u r i n g o b j e c t t r a c k i n g , i t u p d a t e d t h e b a c k g r o u n d r e g i o n u s i n g w e i g h t e d u p d a t e a p —
基于颜色纹理直方图的带权分块均值漂移目标跟踪算法

中图 法分 类 号 :T 3 1 P 0
( c ol fIf r t nS i c S h o o n o ma i ce e& T c n lg ,S nY t e n v r i Gu n z o 5 0 0 ) o n eh o o y u a— n U ie s y. a g h u S t 10 6 ”( to a g n e ig Ree rh C n e g tl f , a g h u 5 0 0 ) Na in l En i ern sa c e tro Di i e Gu n z o 1 0 6 f a Li
o de o h nd et r blm s o a ta c u i s a s h e r rt a l he p o e fp r i loc l son nd po ec ng s,we p op e a weg e r gme t r os i ht d f a n—
基 于颜 色 纹 理直 方 图的 带权 分块 均 值 漂移 目标 跟 踪算 法
李冠彬 , 吴贺丰
”( 山 大学 信 息科 学 与技 术 学 院 广 州 5 0 0 ) 中 1 0 6 ( 家 数字 家庭 工 程 技 术 研 究 中心 广 州 5 0 0 ) 国 1 0 6
(ib su e t s s e u c ) 1 @ t d n . y u. d . n g
第 2 3卷 第 1 期 2
21 0 1年 1 2月
深度信息辅助的均值漂移目标跟踪算法

Ab s t r a c t : T h e b a c k g r o u n d n o i s e i n t h e c a n d i d a t e o b j e c t mo d e l d i mi n i s h e s t h e o b j e c t c o l o r c h a r a c t e r i s t i c . a n d i n d u c e s l o c a l i z a -
C o m p u  ̄r En g i n e e r i n g a n d A p p l i c a t i o n s 计算 机 工程 与应用
深 度 信 息 辅 助 的均 值 漂 移 目标 跟 踪 算 法
宋康康 , 陈 恳 , 郭运 艳
S ONG Ke n , GUO Yu n y a n
c a n s u ic f i e n t l y we a k e n t h e b a c k g r o u n d n o i s y i n t e r f e r e n c e i n he t k e r n e l wi n d o w, e n h a n c e he t o b j e c t ’ S c o l o r f e a t u r e i n f o r ma t i o n ,
t i o n e r r o r . T o r e d u c e t h e e r r o r , a c c o r d i n g t o t h e d i s c r i mi n a t i v e d e p t h l e v e l b e t we e n t h e o b j e c t ’ S a n d he t b a c k g r o u n d ’ S , a Me a n
目标跟踪meanshift算法综述均值漂移

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 1xF xx⎧<⎪=⎨≥⎪⎩(4) 单位高斯核函数:2()xN x e-=(5) 这两类核函数如下图所示.图2, (a) 单位均匀核函数(b) 单位高斯核函数一个核函数可以与一个均匀核函数相乘而截尾,如一个截尾的高斯核函数为,()2 if()0 ifxe xN F xxββλλλ-⎧<⎪=⎨≥⎪⎩(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 jndiiy y y y Mh w x++--+=⎡⎤≥-++-⎢⎥⎣⎦∑2211()j m jndiiy y Mh w x++=≥-∑(27)其中M表示对应序列{}j y的所有求和项21n i jix ygh=⎛⎫-⎪⎪⎝⎭∑的最小值.由于{}ˆ()jf y收敛,它是一个Cauchy序列,(27)式意味着{}j y也是一个Cauchy序列,因此,序列{}j y收敛.Mean Shift的应用从前面关于Mean Shift和概率密度梯度的关系的论述,我们可以清楚的看到,Mean Shift 算法本质上是一个自适应的梯度上升搜索峰值的方法,如下图所示,如果数据集{},1,...ix i n=服从概率密度函数f(x),给定一个如图初始点x,Mean Shift算法就会一步步的移动,最终收敛到第一个峰值点.从这张图上,我们可以看到Mean Shift至少有如下三方面的应用:(1)聚类,数据集{},1,...ix 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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在无人驾驶车辆测试平台上利用均值漂移跟踪算法实现移动图像的实时跟踪Benjamin Gorry, Zezhi Chen, Kevin Hammond, Andy Wallace, and Greg Michaelson摘要:本文描述了一种用来跟踪移动目标的新型计算机视觉算法,该算法是作为无人驾驶车辆长期研究的一部分而被发展的。
我们将介绍在视频序列中利用变量核进行跟踪的研究结果。
其中,均值漂移目标跟踪算法是我们工作的基础;对于一个移动目标,该算法通常用来在初始帧中确定一个矩形目标窗口,然后利用均值漂移分离算法处理该窗口中的数据,将跟踪目标从背景环境中分离出来。
我们并没有使用标准的Epanechnikov内核,而是利用一个倒角距离变换加权内核来提升目标表示和定位的精度,利用Bhattacharyya系数使RGB色彩空间中两个分布之间的距离最小化。
实验结果表明,相对于标准算法,本算法在跟踪能力和通用性上有一定的提升。
这些算法已经运用在机器人试验平台的组成部分中,并证明了这些算法的有效性。
关键词:Hume,函数程序设计,无人驾驶车辆,先驱者机器人,视觉I.引言本文比较和对比了在视觉序列中跟踪移动目标的三种计算机视觉算法。
对于很多无人驾驶车辆(A V)来说,在复杂背景中检测和跟随移动目标的应用是至关重要的。
例如,这可以让一个全尺寸无人驾驶车辆跟踪行人或者移动车辆并避免与之相撞。
同时对于机器人而言,这项技术也可以提升导航性能和增强安全性。
对单个移动目标的良好隔离,将便于我们针对感兴趣的目标进行应用开发。
而所有的这些应用都要求我们能够实时的处理全彩色的视频序列。
我们的工作是在基于先驱者P3-AT全地形机器人的无人驾驶车辆测试平台上进行的,它是一个英国项目的一部分。
这个庞大的项目是由国防科学技术中心(DTC)下辖的无人系统工程(SEAS)为了开发新型无人驾驶车辆传感器技术而建立的。
国防科学技术中心的无人系统工程是由英国工业联盟操作管理,旨在通过采取系统工程的方法在整个系统和子系统层次上,研究有关无人系统的创新性技术,以此达到利用科学技术进步促进军事能力发展的目的。
本文有许多独到之处。
第一,基于之前探讨的均值漂移算法,我们介绍了在复杂、混乱的背景下追踪移动图像的新算法。
第二,我们展示了我们的算法能够在全尺寸视频图像中实时地追踪移动目标。
第三,我们以先驱者P3-AT全地形机器人为基础,介绍了如何在一个简易无人车辆测试平台上配置新算法。
最后,我们的实现方式是与众不同的,因为我们采用新颖的Hume[1,2]编程语言来编写程序。
这一语言的新奇之处在于将函数式编程概念与编写实时反应系统的有限状态自动机有机结合起来。
B. Gorry, Z. Chen, G. Michaelson来自苏格兰瑞卡顿的赫瑞瓦特大学计算机科学系。
K. Hammond来自苏格兰圣安德鲁斯的圣安德鲁斯大学计算机科学学院。
A. Wallace来自苏格兰瑞卡顿的赫瑞瓦特大学电子与计算机工程系II.均值漂移视觉算法A.均值漂移分离算法我们将介绍利用不同内核对视频序列中移动目标实时跟踪的研究结果。
这些内核是由Comaniciu和Meer[4,5,6]第一次应用于图像分离处理,其具有如下特征,底层的、简单的、鲁棒性的以及不同的均值漂移、聚类算法[3]。
对于在无人驾驶车辆上的应用,我们首先通过分割及交互式的选择确定一个感兴趣的目标,然后当该目标在摄像机视野范围内移动时对其实施跟踪。
设计均值漂移算法是用来寻找数据的众数(或者说数据高度集中区域的中心),而这些数据是由任意维向量表示的。
该算法处理过程如下所示[7]。
●选择搜索窗口的半径●选择窗口的初始位置(中心点)●重复如下步骤计算整个窗口数据点的均值,然后将窗口中心点平移到该均值点●直到中心点的平移距离小于预设的阀值特征空间中的高密度区域对应于在图像域中色彩/饱和度有限范围内拥有的足够大数量的像素。
因此,这些像素就形成了连通区域(这种情况在相对平滑图像中是很常见的);该算法本质上就是为了找到在对比度/色彩上基本无变化的相对较大的连通区域(被人们理解并定义的区域)。
事实上,本算法是这样进行处理的,每一次随机地放置一个搜索窗口,找到相应的众数,然后将所有特征向量从特征空间移动到最终窗口中。
因此,人们总是希望能够快速找到较大区域。
(a)一个320×240的彩色图像(b)对应的RGB图像(c)对应的Luv色彩空间图1 图像,RGB和Luv之间的关系在实现过程中,我们将通常在RGB色彩空间中呈现的像素映射到Luv色彩空间,Luv色彩空间有一个通过L表示的亮度分量和两个通过u和v表示的色度分量。
通常认为后一个色彩空间等方性更好,因而更适合用在众数寻找算法中。
最后,当我们定义了一个可变核,该可变核就会在显示跟踪结果时被约束在我们之前提到的矩形窗口中。
图1举例说明了图像和特征空间之间的关系。
图2展示了分别在RGB与Luv空间中的分离结果。
至少主观上,我们可以看到在这个实例中利用Luv参数化所带来的提升。
通过Hume 编程语言将RGB映射到Luv的实现流程图如图3所示。
图4是均值漂移分离算法的流程图。
(a)在RGB色彩空间中分离结果(b)在Luv色彩空间中分离结果图2 分离结果图3 RGB到Luv的流程图(Hume)图4 均值漂移分离算法流程图(Hume)B. 均值漂移目标跟踪算法在初始帧中,首先针对目标区域定义一个矩形窗口。
然后在Luv 色彩空间中运用均值漂移算法,将跟踪目标从背景中分离出来。
当目标移动时,利用独特的倒角距离变换加权内核来提升目标表示和定位的精度,同时利用Bhattacharyya 系数使两个颜色分布之间的距离最小化。
在通过彩色图像序列跟踪目标的过程中,假设我们能够利用色彩空间中某一区域的样本离散分布将目标表示出来,并利用一个能够确定当前位置的内核进行定位。
因此,我们就要找到函数ρ分布中的最大值。
该函数是相对于之前的模版图像,在候选图像中目标位置(漂移)的函数,用来计算加权色彩分布之间的相似度。
而Bhattacharyya 系数[8]是重叠数量的估算值。
如果能够得到相对密度p (x )和q ( x )的两组参数,则Bhattacharyya 系数定义如下: ()()p x q x d x ρ=⎰ (1) 因此,我们在处理从彩色图像中得到的离散采样数据时,我们就使用在模版和候选图像中应用以m 进制直方图存放的离散密度。
模版图像的离散密度定义如下:{}1,1,2,,1mu u u q q u m q ===⋅⋅⋅=∑ (2)同样地,在随后帧中的给定位置y 处,候选图像的预估直方图是:()(){}1,1,2,,1mu u u p y p y u m p ===⋅⋅⋅=∑ (3)根据方程(1)的定义,Bhattacharyya 系数的样本估计定义如下:()()()1,mu u u y p y q p y q ρρ===⎡⎤⎣⎦∑ (4)由色彩密度函数()f x 得到一组独立的随机样本{}12,,,n x x x ⋅⋅⋅。
如果K 是标准的内核函数,那么内核密度估计由下式给出:()()1nn i i i q K X b X u δ==-⎡⎤⎣⎦∑ (5)用这种方式估算色彩密度时,那么均值漂移算法就用来在目标帧中不断移动位置y ,以此来寻找Bhattacharyya 系数分布的众数(方程4)。
围绕u p (0y )展开泰勒级数,则Bhattacharyya 近似为[8]:()()()011,1122m n u u i i u i p y q p y q w K X ρ==≈⎡⎤⎣⎦+∑∑ (6) 其中 ()()10mu i i u u q w b X u p y δ==-⎡⎤⎣⎦∑ (7)当方程(6)的第一项独立于y 时,方程(6)的第二项取得最大值,则方程(4)取最大值。
在均值漂移算法中,内核不断地从当前位置0y 移动到新位置1y ,0y 到1y 的关系如下: ()()10011n n i ii i i i i y X wG y x wG y x ===--∑∑ (8)其中,G 是K 的梯度函数。
这等价于基于色彩直方图的内核过滤相似度函数梯度的阶跃上升。
图5是均值漂移目标跟踪算法的流程图。
图5 均值漂移目标跟踪算法流程图(Hume )III.在无人驾驶车辆测试平台上应用跟踪算法我们的硬件测试平台由先驱者P3-AT全地形机器人组成,即SEBO(SEAS机器人,图6)。
我们为SEBO配置了前阵声纳光盘,无线以太网,前后安全保险杠以及一个安装在表面用来收集均值漂移视觉算法数据的摄像头。
我们通过如下的标准软件连接到先驱者机器人从而实现Hume程序应用:ARIA(先进机器人应用程序接口)。
该软件是一个连接机器人微控制器的开源开发环境,并且提供了基本的马达和摄像功能接口;VisLib是一个基于C语言的开源视觉处理程序库,它提供了基本的图像处理能力。
图6 SEBO - the Heriot-Watt/St Andrews先锋机器人P3-ATA.软件体系结构图7展示了在测试平台上实现的软件结构。
在机器人上实线箭头代表本地套接字通信而虚拟箭头表示无线套接字通信。
除了在笔记本电脑上运行的Java GUI以外,所有的代码都是存储于机器人上的。
位于机器人上的图像处理程序将机器人摄像机捕获的实时图像以Hume语言方式记录,然后通过无线方式发送到笔记本电脑,并在其中实时的显示出来。
每个图像的红色,蓝色和绿色分量都能被捕获到。
由于其中被捕获的图像大小是240×320,因此要求有一个尺寸为3×240×320的存储结构。
图7 机器人测试平台结构图8 接口界面的截图我们已经在笔记本电脑上实现了一个简单命令的接口。
当用户决定移动机器人时,电脑会发送一个无线信号到位于机器人上的Hume程序中。
然后Hume程序与一个C++ ARIA程序通信,该程序把基本的电机命令发送到机器人。
以类似控制机器人的方式控制摄像头。
图7展示了当用户选择控制相机时,控制信号就通过无线从笔记本电脑发送到机器人上的Hume程序中。
然后,Hume程序就会与C++ ARIA程序通信,并让其发送相机的控制命令。
图8左上部分显示的是相机面板,用于控制相机的摇摄,倾斜和变焦功能。
这里提供了两套相机控制。
第一组允许设定相机的最小运动或对焦距值,而第二组允许设定相机的最大运动或对焦值。
B.结合视觉算法图7中有星号标记的Hume方框图可以先后被替换为:1.LUV转换算法;2.均值漂移分离算法;3.均值漂移目标跟踪算法。
这些算法产生不同的图像效果。
从最初的实验中,每一个算法都可以作为测试平台结构的一部分,并通过简单地更换Hume盒,将图像从相机传到Java界面上。