原文:

http://www.cnblogs.com/ronny/p/4256150.html

最近对运动目标检测与跟踪这一块的知识进行了一个整体性的回顾,又看了几篇综述性的论文,所以这篇博客算是做一个简单的记录,对几个重要的概念进行了描述与分析。并没有去研究现在这一领域那些最近的研究成果。因为在我看来,算法的主体想法都是一致的,每种方法都有它适应的场景。抓住轴心就够了!

前景检测这一块,我比较推荐参数方法,高斯混合模型与码本方法都是经过验证,在实际工程中表现极好的,但是你必须根据你需要的场景对算法做一些改进。这篇文章只是初稿,后面会进行完善,加入一些论文链接,希望对运动检测这一块进行一个完整的综述。

1. 运动检测的简介

用于安防的监控视频大多数具有单镜头固定场景的特点。

2 运动目标检测的基本方法

2.1 帧间差分法

通常相邻两帧图像在时间上的间隔很短(一般用于视频监控的摄像机每秒可以拍摄8/12/24帧),所以当背景变化不是非常剧烈和迅速的时候可以利用前后两幅图像的差值来判断画画中运动的目标,通过设定阈值的调整可以改变方法检测的灵敏度。

优点:运算量小,实现简单,噪点较少,对光照不敏感。
缺点:不能检测速度过慢的物体,物体内部会造成空洞,物体本身也不完整。速度过快的物体,会形成两个前景区域。

2.2 光流法

对画面中图像首先进行逐像素矢量赋值,当画面中出现运动目标时,运动目标在画面总所占据的像素点和背景像素点之间的矢量必然会有差异,如果没有运动目标出现则画面中的像素点的矢量变化应当为平滑的。正是由于有这样的差异,才能利用差异检测出运动目标在画面中的像素点。

优点:适合于背景不断变换的场景(移动摄像头),不需要预先的视频进行训练。
缺点:抗噪能力差,计算量大,光照影响比较大。

2.3 背景差法

帧间差分法的流程图可以看出两幅流程图的基本框架大致相同,不同的地方在于背景差分法中有一个背景模型,这个背景模型是用来和所有的检测帧进行差分运算的,而不同于帧间差分法的用上一帧图像和下一帧图像进行差分运算。

3 CodeBook背景模型

3.1 CodeBook的原理

设X={x 1 ,x 2 ,⋯,x N } X={x1,x2,⋯,xN}为视频序列中某位置像素点在不同时刻的连续的色彩值。其中x t  xt为t t时刻采样到的RGB向量值,N N代表用于生成背景模型的帧数。

设Cbook={c 1 ,c 2 ,⋯,c L } Cbook={c1,c2,⋯,cL}为该像素点汇总的各个聚类形成的码书,其中c i (i=1,⋯,L) ci(i=1,⋯,L)表示码书中的一个码字(codeword),其中每个码字由v t =(R t ,G t ,B t ) vt=(Rt,Gt,Bt)和u t =<I min t ,I max t ,f t ,λ t ,p t ,q t > ut=<Itmin,Itmax,ft,λt,pt,qt>组成。其中1<t<N 1<t<N ,v t  vt表示码字在RGB色彩空间中三个轴的向量值,u t  ut表示v t  vt的统计信息,其中I min t ,I max t  Itmin,Itmax表示该码字的最小的和最大的亮度值,f f表示该码字出现的频率,λ λ表示码字出现的最大时间间隙,p p表示码字第一次出现的时间,q q表示码字最后一次出现的时间。

码书的构建中,用于判定一个像素点是否属于码书中的某个码字的条件是:

1) 比较色彩的空间距离colordist(x t ,v i ) colordist(xt,vi),其中x t =(R t ,G t ,B t ) xt=(Rt,Gt,Bt)是当前图像中某一像素的输入色彩值,v i  vi为该像素点码书中的一个码字的聚类,colordist的定义如下:

colordist(x t ,v i )=||x t || 2 −p 2  − − − − − − − − −  √  colordist(xt,vi)=||xt||2−p2

其中p p为x t  xt余弦夹角下的投影值。如果上面计算到的距离小于某一阈值T 1  T1,则进行下一步判定。

2)像素点的亮度必须在一定的范围(I low ,I hi  Ilow,Ihi)内。

如果像素与码书中的某个码字,则要对该码字进行更新,颜色值按加权平均重新计算。如果当前的像素点不满足上面的两种情况,则重新建一个新的码字。

按上面的方法对每个像素点建立码本,这样的情况下,前景像素也会生成为码本中的码字(一个聚类单元)。对于那些出现的最大间隔λ λ小于N/2 N/2的码字删除。

3.2 码书算法的两个改进

1)不要只单一的考虑单个像素点,同时考虑其周围邻域的变化
2)RGB空间用夹角余弦计算距离并不合适。可以考虑用YUV空间。

3.3 颜色空间

亮度(V):人的视觉最敏感的亮度变化,光的能量大小。
色调(H):也就是我们常说的颜色,用于颜色的命名。
饱和度(S):反映色调的鲜艳程度。

3.4 行列分块的YUV码书模型

有时候摄像机会存在抖动,且背景上有些像素也会随着环境做不稳定的变动。

对图像进行网格划分,每5*5的网格共用一个码本,这样可以消除局部的抖动。

还有一种方法,是将行码书(1*5)与列码书(5*1)分开考虑,一个像素点的行码书或列码书判定为前景时,该点则为前景点。列码书的判定可以对行码书的阈值进行调整。

4. 运动目标跟踪方法

4.1 运动目标的表示

目标跟踪问题中,目标的表示形式是目标跟踪的基础。

最为常见的就是基于目标形态的表示方法。它可以有以下几种方法:

1)点表示的方法。将目标通过一个点来表示,即其中心点来表示。对于比较大的目标可以选择用一组点来表示。这种表示方式适合目标相对于整个图像来说比较小时。

2)几何形状表示法。通过定义椭圆或矩阵框来表示目标区域。只这种表示方法只适合不易发生形变的刚性物体的运动。

3)骨架表示法。将目标的轮廓经中轴变换后,即可提出物体骨架模型。

4)轮廓表示法。物体的轮廓表示物体的边界。

其次比较重要的表示法还有目标的外观特征表示方法。一种有以下几种:

1)目标概率密度表示方法。

2)模板表示方法。

3)主动外观模型表示法。对目标的形状和外观同时建模。

4)多视点模型表示法。

4.2 多特征组合

颜色特征:Lab空间

边缘特征:不受光照变化的影响。

纹理特征:LBP特征,

4.3 跟踪方法

1) 基于点的跟踪

2)基于统计的跟踪

3)基于轮廓的跟踪

4.4 基于光流法的跟踪

一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:

1)基于区域或者基于特征的匹配方法;

2)基于频域的方法;

3)基于梯度的方法;

简单来说,光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。

光流法的前提假设:

1)相邻帧之间的亮度恒定;

2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;

3)保持空间一致性;即,同一子图像的像素点具有相同的运动。

光流法用于目标跟踪的原理:

(1)对一个连续的视频帧序列进行处理;

(2)针对每一个视频序列,利用一定的目标检测方法,检测可能出现的前景目标;

(3)如果某一帧出现了前景目标,找到其具有代表性的关键特征点(可以随机产生,也可以利用角点来做特征点);

(4)对之后的任意两个相邻视频帧而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标;

(5)如此迭代进行,便可实现目标的跟踪;

目标跟踪算法的分类(二)相关推荐

  1. 目标跟踪算法的分类(三)

    原文: http://www.360doc.com/content/16/0315/10/25664332_542332518.shtml 目标跟踪的任务是获得目标在连续图像序列中位置随时间变化的轨迹 ...

  2. 目标跟踪算法的分类(一)

    运动目标跟踪主流算法大致分类 主要基于两种思路: a)不依赖于先验知识,直接从图像序列中检测到运动目标,并进行目标识别,最终跟踪感兴趣的运动目标: b)依赖于目标的先验知识,首先为运动目标建模,然后在 ...

  3. TLD目标跟踪算法学习(二)

    转自:http://johnhany.net/2014/05/tld-the-theory/ 正如名字所示,TLD算法主要由三个模块构成:追踪器(tracker),检测器(detector)和机器学习 ...

  4. 目标跟踪领域研究(二)跟踪算法

    视觉目标跟踪(Visual Object Tracking)是计算机视觉领域的一个重要问题.尽管近年来受到了广泛研究,目标跟踪问题由于本身的高难度.高质量数据的稀少,研究热度比目标检测.语义分割等基本 ...

  5. 目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

    目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 原文:https://zh ...

  6. 目标跟踪算法综述与分析

    本人硕士期间研究过10个月左右的目标跟踪算法,刚入门时苦于没人指点,自己每天乱看文章,后来发现看的好多文章都是没有意义的(ps....看了一大堆meanshift,kalman啥的......),做了 ...

  7. 2017目标跟踪算法综述

    转自  https://www.zhihu.com/question/26493945 作者:YaqiLYU 链接:https://www.zhihu.com/question/26493945/an ...

  8. 2016年之前目标跟踪算法总结

    作者:YaqiLYU 链接:https://www.zhihu.com/question/26493945/answer/156025576 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

  9. 基于元学习的红外弱小点状目标跟踪算法

    基于元学习的红外弱小点状目标跟踪算法 人工智能技术与咨询 昨天 本文来自<激光技术>,作者热孜亚·艾沙等 引言 红外点状目标的跟踪是红外搜索和跟踪(infrared search and ...

最新文章

  1. PowerShell的开源实现
  2. wpf 动画_WPF中监视动画进度
  3. MySQL导入csv文件内容到Table及数据库的自增主键设置
  4. 不会提示是否关闭浏览器 IE6、IE7、FF通用代码
  5. php date 有warning,php提示PHP Warning: date(): It is not safe to rely on the......错误的解决办法...
  6. 带有数据库的动态级联菜单
  7. 2022-01-10总结
  8. LINUX CGROUP 概述
  9. Layer单选框非空校验注意
  10. 什么是Word2Vec?如何有效的表征文本的?
  11. C# 计算农历日期方法(2021版)
  12. 日语动词变形(概念明确篇)
  13. 域名注册绑定内网穿透项目部署
  14. 暗影精灵6触摸板驱动安装
  15. ESP32S2(12K)-DS18B20数码管显示温度
  16. 原生js实现购物车添加删除商品、计算价格功能
  17. 笔记本电脑无法进入睡眠状态_笔记本电脑进入睡眠状态后无法通过鼠标或键盘来唤醒屏幕怎么解决...
  18. 神经网络中epoch、batch、batchsize
  19. 基于遗传算法的大规模工程优化设计方法初探
  20. 电影推荐:阿兰·图灵--一个伟大而又悲惨的天才

热门文章

  1. 实时计算之storm
  2. android 几个快速编译images指令
  3. 计算机基础(五):堆和栈区别
  4. python基础系统性学习
  5. server-2016安装软件提示缺失msvcr120.dll解决
  6. 3h精通OpenCV(四)-绘制形状与文本
  7. Qt5.12下载和安装教程(图文详解,简单易上手)
  8. 支持哪些格式的图标_免费矢量图标素材资源网站,您一定会有需要(建议收藏)...
  9. 实验1 java程序基础_《Java程序设计》实验1
  10. mysql分布式数据库_分布式数据库搭建详细教程