均值漂移,可以对非刚性物理进行跟踪,是分参数估计,过程是迭代的过程,对光和形态不敏感,缺点是检测目标是固定的,特征不较少,模板背景没有实时更新,没有目标的位置精度预测只是梯度浓聚,

  原理:

  用文字标书就是在圆弧r范围内也就是划定的目标区域内,进行灰度像素直方图的相加取均值,这个均值就是目标中心的浓聚,借用公式如下

  从每个像素开始,首先估计有相似颜色的邻近像素点的密度(局部密度)的梯度,而后利用迭代算法求出局部密度的峰值(即重心点),把能够聚类到同一个峰值点的所有像素点划分成一个区域。

以上为mean shift的数学原理。有关文字的叙述已经在上一篇中提到了。用mean shift来跟踪属于确定性算法,粒子滤波器属于统计学方法。meanshift跟踪算法相对于粒子滤波器来说可能实时性更好一些,但是跟踪的准确性在理论上还是略逊于粒子滤波器的。mean shift跟踪的的实质就是通过对应的模板来确定目标的下一个位置。

质心计算:

1 给定目标的初始位置和尺寸, 计算目标在图像中的直方图;
2 输入新图像, 迭代直到收敛: 
计算图像上对应区域的新直方图;
新直方图与目标直方图比较,计算权重;
根据权重,计算图像上对应区域的形心/质心;
根据形心,修正目标位置;

效果:

直方图分为两部分, 每部分大小4096,
RGB的256*256*256种组合, 缩减为16*16*16=4096种组合. 
如果目标区域的点是边缘点, 则计入直方图的后一部分, 
否则计入直方图的前一部分.

针对缺点的改进:

不足

缺乏必要的模型更新方法;整个跟踪过程中跟踪窗口的大小保持不变,当目标存在尺度变化的时候会导致尺度定位不准确。

连续自适应的Meanshift(CamShift)算法

Bradski根据Mean Shift算法的不足,提出了Camshift算法。CamShift算法,即Continuously Adaptive Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算,将上一帧结果作为下一帧的初始值,迭代下去。
该算法采用不变矩对目标的尺寸进行估算,实现了连续自适应地调整跟踪窗口的大小和位置,并将其应用在对连续彩色图像序列中的运动目标的快速跟踪。
简单点说,Mean Shift是针对单张图片寻找最优迭代结果,而Camshift则是针对视频序列来处理,并对该序列中的每一帧图片都调用Mean Shift来寻找最优迭代结果。正是由于Camshift针对一个视频序列进行处理,从而保证其可以不断调整窗口的大小,如此一来,当目标的大小发生变化的时候,该算法就可以自适应地调整目标区域继续跟踪。

http://blog.csdn.net/dadaadao/article/details/6029583 meanshift 详解

http://blog.csdn.net/jinshengtao/article/details/30258833

http://www.xuebuyuan.com/1767617.html 公式推导

http://blog.csdn.net/jinshengtao/article/details/30970733 粒子滤波

http://www.kuqin.com/shuoit/20141007/342498.html

https://github.com/RonnyYoung/ImageFeatures/tree/master/source hog特征

http://wenku.baidu.com/link?url=qKZQnQqyR6qrx8ik3TXd2nzDl4mlDUf1WauB6OWq9f8-jo0VPWSBRDC_KPRXvms-yXC_8NzsMzGYC5ewQxuRpqO55_ZFEqrm2kJyw-Q3dyC 卡尔曼滤波预测

http://www.pudn.com/downloads56/sourcecode/multimedia/vfw/detail197185.html 卡尔曼滤波的实现

http://www.pudn.com/downloads154/sourcecode/graph/detail685202.html c实现

http://www.docin.com/p-1393012472.html 人流统计

http://xueshu.baidu.com/s?wd=paperuri:(d8adc654defc2e795fa1dab8a7014c7d)&filter=sc_long_sign&sc_ks_para=q%3D一种基于二部图匹配的智能多目标跟踪算法&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8 学术

http://blog.csdn.net/jinshengtao/article/details/18599165 人脸识别

http://blog.csdn.net/jinshengtao/article/details/23122269 一流检测

目标跟踪之meanshift---meanshift2的更多相关文章

  1. 目标跟踪算法meanshift优缺点

    原博主:http://blog.csdn.net/carson2005/article/details/7341051 meanShift算法用于视频目标跟踪时,采用目标的颜色直方图作为搜索特征,通过 ...

  2. 基于MeanShift的目标跟踪算法及实现

    这次将介绍基于MeanShift的目标跟踪算法,首先谈谈简介,然后给出算法实现流程,最后实现了一个单目标跟踪的MeanShift算法[matlab/c两个版本] csdn贴公式比较烦,原谅我直接截图了 ...

  3. 目标跟踪之camshift---opencv中meanshift和camshift例子的应用

    在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要.为了让大家先达到一个感性认识.这节主要是看懂和运行op ...

  4. 目标跟踪之粒子滤波---Opencv实现粒子滤波算法

    目标跟踪学习笔记_2(particle filter初探1) 目标跟踪学习笔记_3(particle filter初探2) 前面2篇博客已经提到当粒子数增加时会内存报错,后面又仔细查了下程序,是代码方 ...

  5. 目标跟踪之meanshift---均值漂移搞起2000过时的

    基于灰度均值分布的目标跟踪! http://blog.csdn.net/wds555/article/details/24499599 但他有些有点: 1.不会受遮挡太多影响 Mean Shift跟踪 ...

  6. 目标跟踪ObjectT综述介绍

    此文也很详细:http://blog.csdn.net/maochongsandai110/article/details/11530045 原文链接:http://blog.csdn.net/pp5 ...

  7. 目标跟踪--CamShift

    转载请注明出处! !! http://blog.csdn.net/zhonghuan1992 目标跟踪--CamShift CamShift全称是ContinuouslyAdaptive Mean S ...

  8. 目标跟踪_MeanShift

    找到一些关于目标跟踪的资料 http://blog.csdn.net/jinshengtao/article/details/30258833 http://blog.sina.com.cn/s/bl ...

  9. TLD目标跟踪算法

    1. 简介 TLD目标跟踪算法是Tracking-Learning-Detection算法的简称.这个视频跟踪算法框架由英国萨里大学的一个捷克籍博士生Zdenek Kalal提出.TLD将传统的视频跟 ...

  10. KCF目标跟踪方法分析与总结

    KCF目标跟踪方法分析与总结 correlation filter Kernelized correlation filter tracking 读"J. F. Henriques, R. ...

随机推荐

  1. C++11 强枚举类型

    在标准C++11之前的枚举是继承C的,枚举类型不是类型安全的.枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较. 一.C中enum类型的局限语法: enum type1{a, b, c}; ...

  2. python TCP编程

    1.socket 服务端和客户端通过socket套接字进行通信 2.服务端 import socket import threading def tcp_handler(connect_sock, a ...

  3. canvas的图片绘制案例

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  4. linux和windows共享鼠标键盘

    先说下原因,因为无线鼠标突然没电了,需要在两台PC间共享鼠标.好吧查找下方案,最后选择Synergy. Synergy 特别说明下,Synergy是开源软件,只是近期修改为下载付费模式. Synerg ...

  5. Linux各个文件夹的作用~~~非常实用!!

    linux下的文件结构,看看每个文件夹都是干吗用的/bin   二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录 ...

  6. tf.constant

    tf.constant constant( value, dtype=None, shape=None, name='Const', verify_shape=False ) 功能说明: 根据 val ...

  7. C#正则表达式提取HTML中IMG标签的SRC地址

    一般来说一个 HTML 文档有很多标签,比如“<html>”.“<body>”.“<table>”等,想把文档中的 img 标签提取出来并不是一件容易的事.由于 i ...

  8. MBCS与Unicode的转换

    一.绪 其实刚开始编程的时候我不太喜欢用Unicode编码,所以比较喜欢 VC6.0,即使使用VS2010,也会设置为未设置模式. 后来,没办法的接触了些Unicode的编程的东西,必须得研究字符集的 ...

  9. BAT-增加JAVA环境变量(WIN764位)

    相关资料:1.http://www.jb51.net/article/52756.htm2.http://blog.csdn.net/fireghost57/article/details/21103 ...

  10. Ubuntu16.04怎么将桌面左侧的启动器移动到屏幕底部

    与其他 Linux 发行版不同,Ubuntu 多年来一直使用 Unity 做桌面环境,该环境的最突出特点就是桌面左侧有一个启动器栏(Launcher).从 16.04 版本开始,Ubuntu 提供了一 ...