机器学习实践系列之5 - 目标跟踪

本文介绍了目标跟踪在计算机视觉中的重要性,并探讨了多种跟踪算法,如Mean-Shift、CamShift、TLD、CT和KCF。通过算法详解和实际应用,展示了各自的特点和优势,为读者提供了深入理解目标跟踪的基础。
摘要由CSDN通过智能技术生成

       提到 目标跟踪(Object Tracking),很多专业人士都不陌生,它是计算机视觉里面 用于视频分析的一个很大的分类,就像目标检测一样,是视频分析算法的底层支撑。

       目标跟踪的算法有很多,像 Mean-Shift、光流法、粒子滤波、卡尔曼滤波等 传统方法,也有 TLD、CT、Struct、KCF 等掺杂了某些 “外力”,不那么纯粹的方法。但不管怎样,Tracking这项工作有着很大的研究群体,也不乏有人为之奋斗终生!


• CamShift

       CamShift 连续自适应的Mean-Shift算法(Continuously Adaptive Mean-SHIFT),作为入门级的目标跟踪,包括两部分:

1. 对视频中的每一帧做 Mean-Shift;

2. 将上一帧的 Mean-Shift 结果 作为下一帧的输入,反复迭代;

       算法步骤非常简单,问题可以演化为: Mean-Shift 是什么?其输入输出又是什么?

       Mean-Shift 就是大名鼎鼎的 均值漂移,这里面有两层含义:

       1)均值 

             空间R中有N个样本点,任选一点x0,假定有k个点落在x的邻域范围(半径h)内,那么MeanShift向量可以定义为:

            

            其中Sk是一个半径为h的高维球区域,满足公式:

              

       说的再通俗一点,分两步:

A) 任选空间内的一点x0,以该点为圆心做一个半径h的球(可能扩展到高维),统计球内的所有点,为x0的邻域点;

B) 圆心到邻域点连线作为向量,所有向量和求均值,即得到 Mean-Shift 向量

       

       通过均值计算,我们得到一个(x0, x'0)的向量,如图橘色箭头。

       2)漂移

            将圆心 x0 移动到 Mean-Shift 向量 的终点 x'0 ,就是 漂移(比平移好听)。以x'0 为新的中心,重复上面的过程,迭代计算,直到收敛。

       Mean-Shift 这种特征使得其在 目标跟踪、聚类、图像平滑等问题上都有应用。

       核心思想是 利用概率密度的梯度爬升 来寻找局部最优。输入一个图像的区域范围,逐步迭代,对应区域朝 质心(重心)漂移。

      

概率密度函数 与 反向投影

       事实上,我们需要将 待跟踪的目标 ROI进行提取 直方图,计算输入图像对应直方图的 反向投影,得到输入图像在已知目标颜色直方图的条件下的颜色概率密度分布图,包含了目标在当前帧中的相干信息。 

       对于目标区域内的像素,可得到该像素属于目标像素的概率,而对于非目标区域内的像素,该概率为0。

       参考下面代码进行理解:

/* linolzhang 2013.11
   CamShift跟踪
*/
#include "opencv/cv.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/video/tracking.hpp"
#include "opencv2/highgui/highgui.hpp"

#pragma comment(lib,"opencv_core24
  • 7
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值