运动目标跟踪主流算法大致分类

不全,需要慢慢补充

一.运动目标检测

(一)背景差

1.帧差

2.GMM

背景减算法可以对背景的光照变化、噪声干扰以及周期性运动等进行建模,在各种不同情况下它都可以准确地检测出运动目标。因此对于固定摄像头的情形,目前大多数的跟踪算法中都采用背景减算法来进行目标检测。背景减算法的局限性在于它需要一个静态的固定摄像头。

(二)运动场

光流法

光流估计的方法都是基于以下假设:图像灰度分布的变化完全是目标或者场景的运动引起的,也就是说,目标与场景的灰度不随时间变化。这使得光流方法抗噪声能力较差,其应用范围一般局限于目标与场景的灰度保持不变这个假设条件下。另外,大多数的光流计算方法相当复杂,如果没有特别的硬件装置,其处理速度相当慢,达不到实时处理的要求。

二.目标跟踪

1.区域与区域匹配

这种算法的优点在于当目标未被遮挡时,跟踪精度非常高,跟踪非常稳定。但其缺点首先是费时,当搜索区域较大时情况尤其严重;其次,算法要求目标变形不大,且不能有太大遮挡,否则相关精度下降会造成目标的丢失。

2.特征点(关键点)跟踪

KLT:Shi和Tomasi 在1994年提出的KLT 跟踪算法是一种被广泛应用的基于特征点跟踪算法。由于特征点分布在整个目标上,因此即使有一部分被遮挡,仍然可以跟踪到另外一部分特征点,这也是基于特征点跟踪算法的优点。

基于特征点的跟踪算法中,比较困难的问题是当目标发生旋转或者被遮挡时,如何准确地完成特征点的提取、保存、删除等工作

3.基于主动轮廓的跟踪算法

主动轮廓模型也称为Snake 模型,这种方法能较精确地跟踪上目标的轮廓。Snake 模型非常适合可变形目标的跟踪,如对运动细胞的跟踪。这种模型与卡尔曼滤波相结合能够更好地进行跟踪。Snake模型比较适合单目标的跟踪,对于多目标跟踪更多地是采用基于水平集(Level Set)方法的主动轮廓模型

4.光流

Lucas-Kanade稀疏光流calcOpticalFlowPyrLK(利用金字塔)

Horn-Schunck稠密光流calcOpticalFlowHS

稠密光流需要很大的计算量,OpenCV中对此方法做了简化,即对前后连续帧的一个像素的邻域进行匹配,这种方法叫块匹配。

稀疏光流需要在跟踪之前指定一组点,如果这些点具有某些明显特征,那么跟踪就会相对稳定和可靠。可见,其运算量比稠密光流要小很多。

首先利用goodFeaturesToTrack函数得到图像中的强边界作为跟踪的特征点,接下来要调用calcOpticalFlowPyrLK函数,输入两幅连续的图像,并在第一幅图像里选择一组特征点,输出为这组点在下一幅图像中的位置。再把得到的跟踪结果过滤一下,去掉不好的特征点。再把特征点的跟踪路径标示出来。

(实际效果一般)

5.mean-shift和 camshift

Mean-shift优缺点

meanShift算法用于视频目标跟踪时,采用目标的颜色直方图作为搜索特征,通过不断迭代meanShift向量使得算法收敛于目标的真实位置,从而达到跟踪的目的。

传统的meanShift算法在跟踪中有几个优势:

(1)算法计算量不大,在目标区域已知的情况下完全可以做到实时跟踪;

(2)采用核函数直方图模型,对边缘遮挡、目标旋转、变形和背景运动不敏感。

同时,meanShift算法也存在着以下一些缺点:

(1)缺乏必要的模板更新;

(2)跟踪过程中由于窗口宽度大小保持不变,当目标尺度有所变化时,跟踪就会失败;

(3)当目标速度较快时,跟踪效果不好;

(4)直方图特征在目标颜色特征描述方面略显匮乏,缺少空间信息;

由于其计算速度快,对目标变形和遮挡有一定的鲁棒性,所以,在目标跟踪领域,meanShift算法目前依然受到大家的重视。但考虑到其缺点,在工程实际中也可以对其作出一些改进和调整;例如:

(1)引入一定的目标位置变化的预测机制,从而更进一步减少meanShift跟踪的搜索时间,降低计算量;

(2)可以采用一定的方式来增加用于目标匹配的“特征”;

(3)将传统meanShift算法中的核函数固定带宽改为动态变化的带宽;

(4)采用一定的方式对整体模板进行学习和更新;

CamShift算法

CamShift算法的全称是"ContinuouslyAdaptive Mean-SHIFT",即:连续自适应的MeanShift算法。其基本思想是对视频序列的所有图像帧都作MeanShift运算,并将上一帧的结果(即搜索窗口的中心位置和窗口大小)作为下一帧MeanShift算法的搜索窗口的初始值,如此迭代下去。简单点说,meanShift是针对单张图片寻找最优迭代结果,而camShift则是针对视频序列来处理,并对该序列中的每一帧图片都调用meanShift来寻找最优迭代结果。正是由于camShift针对一个视频序列进行处理,从而保证其可以不断调整窗口的大小,如此一来,当目标的大小发生变化的时候,该算法就可以自适应地调整目标区域继续跟踪。

在OpenCV自带的camShift的例子当中,是通过计算目标在HSV空间下的H分量直方图,通过直方图反向投影得到目标像素的概率分布,然后通过调用OpenCV的CAMSHIFT算法,自动跟踪并调整目标窗口的中心位置与大小。该算法对于简单背景下的单目标跟踪效果较好,但如果被跟踪目标与背景颜色或周围其它目标颜色比较接近,则跟踪效果较差。另外,由于采用颜色特征,所以它对被跟踪目标的形状变化有一定的抵抗能力。 

OpenCV自带例子中的camShift算法,可以分为三个部分:

A、计算色彩投影图(反向投影):

(1)为了减少光照变化对目标跟踪的影响,首先将图像从RGB颜色空间转换到HSV颜色空间;

(2)对H分量进行直方图统计,直方图代表了不同H分量取值出现的概率,或者说可以据此查找出H分量的大小为x时的概率或像素个数,即,得到颜色概率查找表;

(3)将图像中每个像素的值用其颜色出现的概率进行替换,由此得到颜色概率分布图;

以上三个步骤称之为反向投影,需要提醒的是,颜色概率分布图是一个灰度图像;

B、meanShift寻优

前面提到过meanShift算法(http://blog.csdn.net/carson2005/article/details/7337432)是一种非参数概率密度估计方法,它通过不断迭代计算得到最优搜索窗口的位置和大小。

C、camShift跟踪算法

前面提到,camShift其实就是在视频序列的每一帧当中都运用meanShift,并将上一帧的meanShift结果作为下一帧的初始值,如此不断循环迭代,就可以实现目标的跟踪了。

6.kalman滤波(预估器)

运动目标检测跟踪主流算法相关推荐

  1. python运动目标检测与跟踪_基于OpenCV的运动目标检测与跟踪

    尹俊超,刘直芳:基于 OpenCV 的运动目标检测与跟踪 2011, V ol.32, No.8 2817 0 引 言 运动目标检测跟踪技术在航空航天遥感. 生物医学. 工业 自动化生产. 军事公安目 ...

  2. 卡尔曼实时检测跟踪算法(论文总结)

    论文来源:检索-中国知网 1.引言概述 从2015年至今,运动目标检测与跟踪发展迅速,一直以来不断有新的目标检测与跟踪算法被提出,例如:Kalma算法.UPDT算法等,其中卡尔曼滤波算法就是一种功能强 ...

  3. MATLAB运动目标检测系统

    1 绪论 1.1 课题研究背景及意义 运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注.在实际中,视频监控利用摄像机对某一特定区域进行监视,是一 ...

  4. MATLAB运动目标检测

    1 绪论 课题研究背景及意义 运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义, 长久以来一直被国内外学者所关注.在实际中,视频监控利用摄像机对某一特定区域进行 监视,是一个细 ...

  5. 单目标跟踪--KCF算法(核化相关滤波算法)Python实现(超详细)

    Tracking-KCF Algorithm 注:本文涉及的算法的代码实践已上传至GitHub,恳求大佬们指点!^ _ ^ 1. 目标检测跟踪与算法背景概述 ​ 目标跟踪任务在许多的计算机视觉系统中都 ...

  6. java光流法运动目标检测_基于光流法运动目标检测和跟踪算法.PDF

    第,+ 卷第' 期 东 北 大 学 学 报 ( 自 然 科 学 版 ) 5# (! ,+ ,*#! ' ! " #' 年 ' 月 "#$%&'( #) *#%+,-'.+- ...

  7. 无人机视频图像运动目标检测算法综述------2019年-------------

    本篇为该综述阅读笔记 论文出处: 国内外研究: 目前,国内外学者利用无人机视频图像开展运动目标检测大多将研究重点放在典型运动目标--车辆上,例如美国[3]德国[4]等,我国也开展了利用无人机检测运动车 ...

  8. 基于opencV的动态背景下运动目标检测及跟踪(修改版)

    基于openCV的动态背景下的运动目标检测 from: http://www.mianfeiwendang.com/doc/89c6692a222a84b2ced0d502/1 摘要:介绍在动态背景下 ...

  9. ICPR 2022 第一届卫星视频运动目标检测与跟踪挑战赛正式开赛

    关注公众号,发现CV技术之美 ICPR 2022: The 1st Challenge on Moving Object Detection and Tracking in Satellite Vid ...

最新文章

  1. BestCoder冠军赛 - 1005 Game 【DP】
  2. How to open robotium-solo-1.4.0 javadoc.jar to get the information of robotium.
  3. 转载:浏览器开发系列第一篇:如何获取最新chromium源码
  4. 代码审计XSS 0day
  5. 图 邻接表 建立 深度遍历 广度遍历
  6. Android FancyCoverFlow的使用实现图片画廊形式的呈现
  7. 强者不能恒强,偏向虎山行
  8. Frame buffer分析 - fbmem.c【转】
  9. 集算器(仓库版)发布,黑科技获得用户好评
  10. Swift 5用Template自动创建VIPER架构代码
  11. [Android]Android TraceView工具使用
  12. Excel转批量转Csv工具软件
  13. 文字输入效率神器:输入法辅助工具 KeyboardHolder
  14. 基于物理流体模拟(PFSPH和DFSPH)
  15. PDMan-国产免费通用数据库建模工具(极简,漂亮)
  16. php元换成万元,元换算成万元换算器(元与万元的换算器)
  17. flutter 报错 type ‘int‘ is not a subtype of type ‘String‘ 奇葩经历
  18. 经典分子动力学势能模型拟合程序atomicrex介绍
  19. finalcut剪切快捷键_Final Cut Pro 笔记(一) 常用快捷键与技巧
  20. 设计模式在美团外卖营销业务中的实践

热门文章

  1. css3搜索框呼出键盘,移动端 input 输入框实现自带键盘“搜索“功能并修改X
  2. 常见思维模型汇总(一)
  3. VMware虚拟机多开克隆教程
  4. 【笔记】因子投资:方法与实践
  5. eBPF/XDP实现Conntrack功能
  6. MQTT.fx连接RabbitMQ-MQTT出现bad user name or password问题
  7. Visual Studio 编译器修改IDE背景图片
  8. 真无线蓝牙耳机推荐:2021最受欢迎的TWS耳机品牌
  9. 偏移出来的数据不准_cad偏移(cad偏移数据和输入的数据不准确)
  10. 世界最具影响力的100个品牌