from:运动背景下的运动目标检测

各种目标检测方法介绍(懒人可以直接略过)

  目标检测是一个老话题了,在很多算法当中都有它的身影。目标检测要做的就两件事:检测当前图片中有没有目标?如果有的话,在哪?按照先验知识和背景运动来划分的话,目标检测方法大概可以分为两大类:

  第一,已知目标的先验知识。在这种情况下检测目标有两类方法,第一类方法是用目标的先验知识训练一堆弱分类器,然后这些弱分类器一起投票来检测目标,如boosting,  random forest 都是这个思路,大家熟知的adaboost人脸检测也是如此,这一类方法我会在以后的文章中讨论。第二类方法是根据先验知识找到目标和非目标的最佳划分线,如SVM.这两类方法各成一家,各有所长,都有着不错的表现。

  第二,未知目标的先验知识。此时不知道要检测的目标是什么,于是什么是目标就有了不同的定义。一种方法是检测场景中的显著目标,如通过一些特征表达出场景中每个像素的显著性概率,然后找到显著目标。另一种方法就是检测场景当中的运动目标了,这也是本文下面将要讨论的重点内容。

  在检测运动目标时,如果背景是静止的,so easy,略过。当背景也跟随一起运动时就比较麻烦了,现如今大概有两种方法来处理。第一种方法是背景补偿,即通过平移,缩放,仿射变换等计算出背景的运动,然后补偿背景再做差分。不过这种方法有两个问题,一是仿射变换运算量巨大,二是即使求出背景补偿向量,背景中的远景和近景的向量也会有相对误差,所以这种方法几乎不可行。第二种方法就是传说中的optical flow(光流)了,下面进入正文。

正文

光流法的大致流程如下:

1.在一帧图像中选取大量的光流点(具体选取方法可以不同,如fast角点,随机选,等间隔选...)。

2.计算所有光流点的运动矢量(常用方法有LK光流,HS光流等)。

3.根据这些矢量和其它一些特征检测运动目标。

下面以一个具体例子进行分析

1.首先在一帧图像内随机均匀选取k个点,并滤除那些邻域纹理太光滑的点,因为这些点不利于计算光流

2.计算这些点与上一帧图像的光流矢量,如上右图,此时已经可以看出背景运动的大概方向了

3.接下来的这一步方法因人而异了。

2007年cvpr的一篇文章Detection and segmentation of moving objects in highly dynamic scenes的方法是把这些光流点的(x, y, dx, dy, Y, U, V)7个特征通过meanshift聚类来聚合到一起,最后形成运动目标轮廓。

而我的方法很简单,只用到了(dx, dy)两个特征,如上左图,首先把所有光流点投射到直角坐标,图中的坐标轴是(dx,dy), 然后通过meanshift找到密度最大的(dx, dy)坐标点,也就是背景矢量最集中的位置(图中点的亮度越大代表该位置矢量的密度越大),如红圈所示,红圈外面的矢量就可以认为是运动目标了,如上右图所示。

  补充:

  最近问我问题的人太多了,补充几组实验图片供大家参考:

  第一组是用dx,dy两个特征检测的结果:

  第二组在dx, dy 的基础上混入了显著性(saliency)特征:

  第三组同上

运动背景下的运动目标检测相关推荐

  1. 动态背景下的运动目标检测

    各种目标检测方法介绍(懒人可以直接略过) 目标检测是一个老话题了,在很多算法当中都有它的身影.目标检测要做的就两件事:检测当前图片中有没有目标?如果有的话,在哪?按照先验知识和背景运动来划分的话,目标 ...

  2. Python与OpenCV(二)——基于背景差分法的运动目标检测程序分析

    背景差分法是传统运动目标检测算法中最常用的方法.其基本原理如图所示. 从图中可知,背景差分法是通过建立背景模型,比较当前帧与背景模型对应像素的差异点来检测运动目标的方法. 背景模型的建立主要通过两种方 ...

  3. 针对无人机航拍视频中动态背景下的目标检测

    目录 目录 传统目标检测技术 传统目标检测技术 1. 帧间差分 通过连续两帧相同位置像素点间的灰度差来确定目标移动.但只适用于静态背景和目标单一条件的目标检测.仅适用于无人机悬停状态下的目标检测. 2 ...

  4. 基于平均背景建模的运动目标检测

    建立一个场景模型,包含图像灰度均值.帧间平均差值. 对于输入的后续视频,当灰度在区间内时,认为是静止区域,反之为运动目标.判断静止灰度区间为: diff实际上可认为是为了抑制一定的噪声,当图像序列噪声 ...

  5. 运动目标检测ViBe算法

    一.运动目标检测简介   视频中的运动目标检测这一块现在的方法实在是太多了.运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测.先简单从视频中的背景类型来讨论. ...

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

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

  7. 【opencv】动态背景下运动目标检测 SURF配准差分

    主要思路是,读入视频,隔帧采用SURF计算匹配的特征点,进而计算两图的投影映射矩阵,做差分二值化,连通域检测,绘制目标. 如果背景是静态的采用camshift即可. 本文方法速度debug下大概2-3 ...

  8. 静态背景下运动目标检测

    前言:运动对象常用在视频监控领域,目的是从序列图像中将变化区域从背景图像中提取出来,运动区域的有效检测对目标分类.跟踪.行为理解等后期处理非常重要.根据摄像机与运动目标之间的关系可分为静态背景下的运动 ...

  9. 复杂背景下的自动驾驶目标检测数据集

    复杂背景下的目标检测数据集: 一.有雾场景下的目标检测数据集 发展: 2017年Li等提出第 1 个端到端的去雾网络 AODNet, 并且讨论了图像去雾对目标检测任务的影响. 其选取目标检测网络 Fa ...

最新文章

  1. 【转】ASP.NET中“字母和数字混合的验证码”详解
  2. Dependabot:自动创建GitHub PR修复潜在漏洞
  3. 关于net::ERR_CONNECTION_ABORTED和Firebug 达到了 Post 请求大小限制的问题
  4. android 邮件分享链接,Android应用从通过电子邮件发送的链接打开
  5. win8系统配置服务器地址,win8系统默认服务器地址
  6. ios 怎么禁止点击子视图的时候不响应父视图的点击事件
  7. C语言断言assert详解
  8. vc2008工程转vc2005
  9. 利用js打开新页面,每次打开都是同一窗口
  10. 超声波传感器测距实验
  11. Yii2基本概念之——行为(Behavior)
  12. 「现场参会攻略」| 2018AI in China之智能制造数据驱动产业变革高峰论坛
  13. 这,是一篇有“味道”的科普…
  14. 阿里云OSS对象存储-图文详解
  15. 微信开放平台开发(3) 移动应用微信登录
  16. 如何快速构建一套稳定、高效、可靠的网页无插件监控、直播、点播解决方案
  17. List Set Map 集合不可修改
  18. MySQL转账储存过程_mysql中用存储过程实现转账过程
  19. 【知识兔】会计财务最常用的10个公式函数,必须收藏
  20. 学习PLC的重要知识点,你知道哪些?

热门文章

  1. ecshop数据表结构说明
  2. Linux 基础知识(十)DNS服务器主从复制,子域授权
  3. [转]Supporting OData Query Options in ASP.NET Web API 2
  4. Uva 10217 概率
  5. JAVA编码规约(阿里)
  6. Canvas、Paint、Path
  7. SQL语句一次INSERT多条记录的方法
  8. MongoDB增加用户认证:增加用户、删除用户、修改用户密码、读写权限、只读权限...
  9. rpm的使用 怎样查看rpm安装包的安装路径
  10. SQL server2000数据库备份和还原语句