原文:

http://blog.csdn.net/ikerpeng/article/details/19235391

文章:Robust object tracking with on-line  multiple instance learning

Boris Babenko, Student Member, IEEE, Ming-Hsuan Yang, Senior Member, IEEE and Serge Belongie, Member, IEEE ;PAMI ,2011.

文章开头就说的明了:本文的tracking只给定了第一帧目标的位置,没有其余的信息了(上一篇论文是拿了前10帧的图片来训练的)。本文解决的问题同样是on-line tracking出现的漂移的问题(Slight inaccuracies in the tracker can therefore lead to incorrectly labeled sample)。使用的方法是:MIL。特点是:调节的参数少。(BTW:其中提到了一个叫做bootstrap的概念,通俗的将就是对已有的观测样本反复的有放回抽样,通过多次计算这些放回抽样的结果,获取统计量的分布。)

接下来,文章介绍了跟踪中当前存在的主要挑战: 1、形变所产生的巨烈的表观的变化;2、平面外的旋转;3、场景光照度的变化。 同时,介绍了典型的跟踪系统的三个组成部分:1、appearance model,估计跟踪目标在特定位置的可能性; 2、 motion model ,同跟踪物体随时间改变的位置有关;3、a search strategy for finding,找到当前帧中目标最有可能的位置。本文重点放在第一部分,作者想达到的目标是能够跟踪到部分遮挡的物体而不出现明显的漂移,并且只有较少的参数。

对于appearance model的设计,一般有两种考虑。一种是只model 目标;另一种是将目标和背景都model。而后者其他领域已经取得了成功。参见后者,在on-line tracking中,常用的更新自适应appearance model的方法是:将当前tracker的位置作为正样本(有的时候也扩展非常邻近的位置作为正样本),将这个位置周围的位置作为负样本来更新appearance model。这也使得漂移的产生成为可能。为了解决这个问题,引入了半监督的方法。如Grabner et al.提出的semi-supervised的方法,将tracker得到的目标都认为是无标签的样本,而只有第一帧中的样本是有标签的。然后通过聚类的方法给定这些无标签样本一个伪标签,在继续使用有标签的方法进行跟踪。这个方法没有充分的利用到视频中有用信息,比如说相邻的帧之间的变化非常的小等等。tracker所得到的样本标签的模糊性促使multiple instance learning(MIL)的提出。MIL的基本思想是,在训练的过程中,样本不再是单个的patch块,而是将多个patch块放在一个小的样本集(称作bag)里。整个小的样本集(bag)有一个标签。又规定,若是这个bag里面至少有一个正样本,那么它的标签就是正的,反之就是负的。由这些小的样本集组成整个的training set。这样做的原因是学习的过程对于找到决策的边界有更好的灵活性。

对于tracker得到的或是扩展得到的图像patch块,计算出每个patch块的Harr-like特征,对于每一个图像patch块x,都由Harr-like特征的feature vector表示。对于每一帧待检测的图像,提取一个patch块的集合,这个集合满足:。其中,l(x)表示x patch块的位置,l*t-1表示前一帧的目标位置,s为参数,度量patch块与前一帧目标位置的最大距离。得到的是一个目标的可能位置的集合。然后计算这个集合里面所有patch块的概率p(y=1| x),选出概率最高的patch块作为当前的目标的位置。在得到目标的位置以后,扩展样本:通过扩展正样本,放在一个bag里面,标签为正;通过扩展负样本(不放在一个bag里面),标签为负。 每一次的motion model里面只保留似然概率最大的那一个样本。(这部分是MIL特色的地方)

同时也可以考虑引入尺度变换参数,这样的好处是结果可以更加的准确;坏处是增加了参数的空间维度。可根据需求决定。

所以问题的关键是要求得使得概率最高时的那个bag(集合X),即:argmax(L),  (*)。根据NOR model 知道 ,所以求概率的最大值就转化为求(*)的最大值。但是这种算法不能够应用到on-line的tracking当中,因为它需要一次得到全部的数据(it needs the entire training dataset at once)。

于是,仿造on-line boosting的方法,构造on-line MIL算法。

首先,由第一帧得到的信息,扩展正负样本,形成一组由patch块集合组成的数据集bags(带标签的);

然后,计算各个patch块的harr-like特征向量,用它来表示每一个image patch 块。样本的特征的条件概率分布满足高斯分布,均值和方差分别通过新得到样本更新,再由贝叶斯法则得到它的概率;

然后,构造一组M个弱分类;通过公式来构造。

接下来,(用motion model 根据上一帧目标的位置,扩展目标的可能位置;根据公式:。?)还是从M个弱分类器中选出响应最好的K个强分类器;

然后,计算上面得到的目标位置集合中样本的似然概率的最大值,并将这个样本作为当前帧目标的位置;概率可以由sigmoid函数表示,又根据NOR model知道,又为了方便计算,对数化这个值在转化为求的最大值。

最后,由上面更新的目标的位置,跟新分类器,如此在迭代上述过程。

个人觉得这篇文章的思想非常的新颖。漂移问题是on-line tracking最主要的问题。引起漂移最主要的原因就是,分类器更新时使用的样本本身的准确率存在问题。为了解决这个问题。有的作者采取的方式是放弃掉tracker得到的结果。将这些得到的patch块认为是无标签的,再通过聚类的方式得到一个伪标签,再通过有标签的方式来训练分类器。很显然这样的结果可以很好的解决目标跑出视频的情况。当目标再一次出现的时候可以继续跟踪到。但是,这样浪费掉了很多的有用信息。同时,增加了伪标签的求解过程,速度应该比on-line boosting方法还要慢。而本文作者处理的方式是:既然所得到的样本标签的准确率有问题,那么对得到的样本进行扩展,作为一个事件集。选出里面错误率最低的时间来更新目标的位置,也由此来更新分类器。准确率和速度都会好很多。

运动目标跟踪(十四)--MIL跟踪相关推荐

  1. Unity镜头跟踪的四种方法

    Unity镜头跟踪的四种方法 新手代码 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.C ...

  2. ORB-SLAM2详解(四)跟踪

    ORB-SLAM2详解(四)跟踪 本人邮箱:sylvester0510@163.com,欢迎交流讨论, 欢迎转载,转载请注明网址http://blog.csdn.net/u010128736/   这 ...

  3. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  4. Udacity机器人软件工程师课程笔记(二十四) - 控制(其二) - PID优化,梯度下降算法,带噪声的PID控制

    7.非理想情况 (1)积分饱和 到目前为止,我们一直使用的"理想"形式的PID控制器很少用于工业中."时间常数"形式更为常见. 当前说明了理想形式的一些重大缺陷 ...

  5. ROS探索总结(十三)(十四)(十五)——导航与定位框架 move_base(路径规划) amcl(导航与定位)

    ROS探索总结(十三)--导航与定位框架 导航与定位是机器人研究中的重要部分.         一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建 ...

  6. 《Linux内核设计与实现》读书笔记(十四)- 块I/O层

    最近太忙,居然过了2个月才更新第十四章.... 主要内容: 块设备简介 内核访问块设备的方法 内核I/O调度程序 1. 块设备简介 I/O设备主要有2类: 字符设备:只能顺序读写设备中的内容,比如 串 ...

  7. 系统架构师学习笔记_第十四章_连载

    第十四章  基于ODP的架构师实践 14.1  基于ODP的架构开发过程 系统架构 反映了功能在系统系统构件中的 分布.基础设施相关技术.架构设计模式 等,它包含了架构的 原则 和 方法.构件关系 与 ...

  8. 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

    设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的有用 ...

  9. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

  10. 数据结构思维 第十四章 持久化

    第十四章 持久化 原文:Chapter 14 Persistence 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在接下来的几个练习中,我们将返回到网页搜索引擎的构建.为了回 ...

最新文章

  1. 一起学nRF51xx 14 -  temp
  2. arch linux网络配置,关于archlinux网络的 配置
  3. 欢迎来到开源的世界!
  4. web应用插件开发_Web应用程序的简单插件系统
  5. 某8位微型计算机地址码为18位,2015广东海洋大学计算机组成原理试题
  6. oracle在archivelog模式进行rman备份和恢复
  7. cups 设置打印机纸张_惠普打印机打印模糊怎么办 惠普打印机打印模糊解决【方法】...
  8. 80% 的公司在招聘时都忽略的一个细节
  9. 企业落地Kubernetes的问题与对策
  10. 提取PCA变换后的图像的各主成分(matlab代码)
  11. 右键添加cmd命令快捷键,右键cmd快捷键丢失
  12. shopex PHP Notice,解决最新shopex乱码问题
  13. keygen_Laravel随机密钥与Keygen
  14. 双目视觉(一)-相机标定及各坐标系间转换关系
  15. Python数据分析实用程序
  16. 怎么样用matlab做视频,MATLAB:使用writeVideo制作视频
  17. 九联unt401h装软件_九联UNT401H南传刷机包 V1.0 免费版
  18. 运行python代码import cv2时报错的解决方法
  19. Hunter的读《高效程序员的45个习惯》
  20. 白领做全身体操可有效防治鼠标手

热门文章

  1. linux线程退出正确姿势demo
  2. yv12转nv12,nv12转I420
  3. 深度学习自学(三十三):通过结构正则化深度聚类解决无监督域自适应问题
  4. qt文件怎么设置全局变量_QT编程之——使用全局变量
  5. linux 查看端口是否被占用 解决端口占用问题 address already in use
  6. Duplicate keys detected: ‘checks‘. This may cause an update error. found in
  7. Android从启动到程序运行整个过程的整理
  8. python自动化测试框架开发_webUI自动化测试框架(Python+selenium)
  9. mysql密码登陆过程_mysql单实例忘记密码如何登陆过程
  10. 飞磨科技php,昆虫飞行信息系统(飞行磨)