meanshift和cameshift
来源:互联网 发布:金数据app官网免费下载 编辑:程序博客网 时间:2024/05/21 11:56
原理:f(x)=1/n∑ni=1Kh(x−xi)=1/nh∑ni=1K((x−xi)/h)
meanshift, 均值漂移,好多人把它当做一种聚类算法,我觉得稍有不妥。它就是一个算法,而聚类只不过是一个算法的应用罢了。
假设我们有一堆同类的数据,而我们的目标是去寻找一个数据密度最大的部分。简单的来看,meanshift就是提供了一个方法来求解上面的问题。
meanshift的解决方法如下:
1. 初始化随机选择一个数据点,以它为中心,并且设置一个半径r,这个作为每一次选择的数据区域。
2. 以中心为圆心,做一个半径为r的高维球(二维上它应该是一个圆,到了高维就是说不清道不明的东西了)。这样我们可以确定落在球中的所有点
3. 以圆心为起点,以每一个球内的点为终点,生成一个向量,将所有向量进行矢量相加,就可以得到一个和向量(这个和向量的方向其实是向着数据密度大的部分的)
4. 以和向量的终点为圆心,以r为半径重复上面的操作,meanshift可以收敛到密度最大的部分
二维空间中大体过程如下图所示:
上文已经说明,meanshift实质上是一个密度梯度上升算法,这就是涉及到了密度估计的东西。在统计学中,kernel density estimate(KDE,核密度估计)是一种估计概率密度函数的非参数方法。
KDE原理:
假设一组数据x1,x2,...xn ,他们独立的采样与同一个分布,这个分布的概率密度函数未知,假设为f。那么KDE就是要用采样点估计出f.即
现在我们估计出函数f,然后我们要去求密度最大的地方,最简单的想法就是对函数求导,最后令导数等于0,我们即可求出下一个密度较大区域的圆心,截图如下:
OpenCV中的Camshfit是先计算目标的hue通道的颜色直方图,以此求出颜色概率分布,然后根据这个分布,将目标图像的hue通道进行反向投影,即根据一个颜色的概率,来替代该颜色的值。至于后面的meanshift,可以理解为,根据反向投影,求二阶矩,得到目标的重心和尺度。
- meanshift和cameshift
- Meanshift 和 Camshift
- Meanshift
- meanShift
- Meanshift
- Meanshift
- meanshift
- meanshift
- Meanshift和Camshift算法总结
- MeanShift和Camshift算法实现 Opencv
- 目标跟踪openCV Camshift和meanshift 源代码
- MeanShift和Opencv移动简单目标跟踪
- 运动跟踪之均值漂移(MeanShift)算法和Camshift算法(连续自适应的MeanShift)
- opencv中meanshift和camshift例子的应用教程示例
- opencv中meanshift和camshift函数的使用
- 聚类算法——kmeans和meanshift
- opencv中meanshift和camshift例子的应用
- Opencv目标跟踪—CamShift和meanshift算法
- K-Means 算法
- android Editview加入表情
- [转]Sql日期时间格式转换
- 分段函数求值
- 文件夹(分类)数据库存储设计
- meanshift和cameshift
- 第8周项目1—求简分段函数的值
- linux命令解析--ssh 在本地挂载点上挂载远程驱动器
- JDBC连接数据库
- Android豆瓣图书查询Demo
- 第八周练习题 项目一
- php.ini在哪里啊??
- mysql event
- Oracle的Roles管理