原文:http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html

伪代码及简介:http://blog.csdn.net/dadaadao/article/details/6029583

记得刚读研究生的时候,学习的第一个算法就是meanshift算法,所以一直记忆犹新,今天和大家分享一下Meanshift算法,如有错误,请在线交流。

Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.

1. Meanshift推导

给定d维空间Rd的n个样本点 ,i=1,…,n,在空间中任选一点x,那么Mean Shift向量的基本形式定义为:

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

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

以上是官方的说法,即书上的定义,我的理解就是,在d维空间中,任选一个点,然后以这个点为圆心,h为半径做一个高维球,因为有d维,d可能大于2,所以是高维球。落在这个球内的所有点和圆心都会产生一个向量,向量是以圆心为起点落在球内的点位终点。然后把这些向量都相加。相加的结果就是Meanshift向量。

如图所以。其中黄色箭头就是Mh(meanshift向量)。

再以meanshift向量的终点为圆心,再做一个高维的球。如下图所以,重复以上步骤,就可得到一个meanshift向量。如此重复下去,meanshift算法可以收敛到概率密度最大得地方。也就是最稠密的地方。

最终的结果如下:

Meanshift推导:

把基本的meanshift向量加入核函数,核函数的性质在这篇博客介绍:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495788.html

那么,meanshift算法变形为

(1)

解释一下K()核函数,h为半径,Ck,d/nh 为单位密度,要使得上式f得到最大,最容易想到的就是对上式进行求导,的确meanshift就是对上式进行求导.

(2)

令:

K(x)叫做g(x)的影子核,名字听上去听深奥的,也就是求导的负方向,那么上式可以表示

对于上式,如果才用高斯核,那么,第一项就等于fh,k

第二项就相当于一个meanshift向量的式子:

那么(2)就可以表示为

下图分析的构成,如图所以,可以很清晰的表达其构成。

要使得=0,当且仅当=0,可以得出新的圆心坐标:

(3)

上面介绍了meanshift的流程,但是比较散,下面具体给出它的算法流程。

  1. 选择空间中x为圆心,以h为半径为半径,做一个高维球,落在所有球内的所有点xi
  2. 计算,如果<ε(人工设定),推出程序。如果>ε, 则利用(3)计算x,返回1.

2.meanshift在图像上的聚类:

真正大牛的人就能创造算法,例如像meanshift,em这个样的算法,这样的创新才能推动整个学科的发展。还有的人就是把算法运用的实际的运用中,推动整个工业进步,也就是技术的进步。下面介绍meashift算法怎样运用到图像上的聚类核跟踪。

一般一个图像就是个矩阵,像素点均匀的分布在图像上,就没有点的稠密性。所以怎样来定义点的概率密度,这才是最关键的。

如果我们就算点x的概率密度,采用的方法如下:以x为圆心,以h为半径。落在球内的点位xi   定义二个模式规则。

(1)x像素点的颜色与xi像素点颜色越相近,我们定义概率密度越高。

(2)离x的位置越近的像素点xi,定义概率密度越高。

所以定义总的概率密度,是二个规则概率密度乘积的结果,可以(4)表示

(4)

其中:代表空间位置的信息,离远点越近,其值就越大,表示颜色信息,颜色越相似,其值越大。如图左上角图片,按照(4)计算的概率密度如图右上。利用meanshift对其聚类,可得到左下角的图。

Mean Shift详细介绍相关推荐

  1. Linux shell脚本基础学习详细介绍(完整版)2

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  2. 苹果电脑快捷键有哪些?mac系统快捷键大全详细介绍(全部)_苹果MAC_操作系统_脚本之家

    苹果电脑快捷键有哪些?mac系统快捷键大全详细介绍(全部) 电脑中的每对快捷键有对应了一种操作效果,对于使用苹果电脑的操作系统的新人来说,快捷键是个很麻烦的问题,要一个个的找到快捷键也不是很容易的问题 ...

  3. 【转】ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍

    转自:ARM 之七 主流编译器(armcc.iar.gcc for arm.LLVM(clang))详细介绍_itexp-CSDN博客_armcc 必备   在讲解各编译器之前,必须先了解一下以下文件 ...

  4. labelimg如何调整框的颜色_PS学习之旅:如何更好调整画面明暗?明度、色阶详细介绍,收藏...

    ps中调色工作其实就是调整人对三要素的感受,调色是一门比较大的学问,那么调整好明暗程度对作品来说是相关重要的,本文详细介绍如何控制画面的明暗. 1工具/原料 Adobe Photoshop CS6软件 ...

  5. 5 重启应用_iphone8黑屏怎么办 iphone8黑屏重启方法【详细介绍】

    iphone8黑屏怎么办如何重启?相信小伙伴们一定很好奇,下面小编为大家带来了iphone8黑屏重启方法详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. 在使用的过程中,如果发现iphone8黑屏的 ...

  6. 台式电脑键盘字母乱了_电脑键盘的详细介绍,想懂点电脑必看

    今天结合键盘的实物图,给大家讲解一下键盘上各个按键的功能及作用,还有就是各个按键的意义.大神可以绕道,非大神如果觉得此文对你有所帮助,别忘了分享和点击文章末尾的在看哦! 键盘的类型有很多种,在这里就简 ...

  7. Cookie和Session的详细介绍和使用规范

           Cookie和Session的详细介绍和使用规范 Cookie的由来(浏览器端的会话技术--保存数据技术) Cookie的需求分析 场景: 现象:进入淘宝的登陆页面,显示了我上次登录的用 ...

  8. Vue详细介绍及使用

    Vue详细介绍及使用 一.Vue定义及简介 1.Vue定义 关于Vue简介,百度百科给出的解释是:Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设 ...

  9. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

  10. 卷积神经网络(CNN)超详细介绍

    文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图 ...

最新文章

  1. registry ---------仓库 -----------------镜像
  2. 科技部部长:基础研究是科技创新“总开关”
  3. node.js request get 请求怎么拿到返回的数据_NodeJS运维: 从 0 开始 Prometheus + Grafana 业务性能指标监控...
  4. flink wordcount示例
  5. CodeForces - 1437G Death DBMS(AC自动机fail树上树链剖分建线段树/暴跳fail)
  6. 使用AzureFunction开发最简单的Teams Outgoing Webhook
  7. SQL算法中的变量使用占位符动态赋值
  8. Python进阶:并发编程之Asyncio
  9. AndroidStudio_安卓原生开发_Android中使用HttpURLConnection发送同步Post请求_json数据到springBoot后台---Android原生开发工作笔记139
  10. 机房智能直冷优化应用技术
  11. java基础案例教程第二版pdf,Java系列学习进阶视频
  12. 信息系统项目10大管理-4W1H
  13. 易语言高级表格写入MYSQL_易语言高级表格读写EXCEL源码
  14. TSP问题(推销员问题)
  15. 论文笔记| 后门攻击|Composite Backdoor Attack for Deep Neural Network byMixing Existing Benign Features
  16. 智商情商哪个重要_情商与智商哪个更重要?三个方面让你彻底明白
  17. 中国山梨酸市场运营动态分析与前景方向预测报告2022-2028年
  18. chrome边解析Html边显示,谷歌浏览器插件侧边翻译Edge Translate
  19. AQS: CLH 介绍
  20. 根据TXT文件中的文件名复制文件

热门文章

  1. 【WFA】【WIFI6】HE-5.31.2_6G Fail
  2. 一图读懂CA证书申请流程
  3. 【牛客】D 扔硬币(组合数)
  4. 2019数据表明,程序员离职人数占公司总人数的1-6,android开发平台的发展
  5. 两道CTF流量分析题分享
  6. Unity 清理掉项目中垃圾文件——UnityAssetCleaner
  7. RF手机天线仿真介绍(二):孔径调谐和阻抗调谐
  8. Docker运行Redis并恢复历史数据
  9. 足下校园html评估系统答案,七下道德与法治期中的试题及答案
  10. python3维图形_matplotlib 填充3维闭合图像