现在从目标检测和单目标跟踪方向转来做多目标跟踪的小伙伴应该有不少,但由于多目标跟踪任务本身的复杂性,导致其入门会比目标检测与单目标跟踪困难不少。再加上论文分布在各个会议,开源代码较少,都造成了多目标跟踪的研究门槛较高。本文旨在带领大家入门多目标跟踪,了解多目标跟踪领域的发展概况,让大家更方便直观地理解这个问题。

1. 简介

多目标跟踪,即MOT(Multi-Object Tracking),顾名思义,就是在一段视频中同时跟踪多个目标。MOT主要应用场景是安防监控和自动驾驶等,这些场景中我们往往需要对众多目标同时进行追踪。这是仅用目标检测算法或单目标跟踪算法都无法做到的,人们就自然就开始了对多目标跟踪算法的。

DuKeMTMCT数据集,是一个典型的多目标跟踪场景

而由于是多目标,自然就会产生新目标进入与旧目标消失的问题,这就是与单目标跟踪算法区别最大的一点。而由于这一点区别,也就导致跟踪策略的不同。在单目标跟踪中,我们往往会使用给定的初始框,在后续视频帧中对初始框内的物体进行位置预测。而多目标跟踪算法,大部分都是不考虑初始框的,原因就是上面的目标消失与产生问题。取而代之,在多目标跟踪领域常用的跟踪策略是TBD(Tracking-by-Detecton),又或者也可叫DBT(Detection-Based-Tracking)。即在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪,这一步我们一般称之为数据关联(Data Assoiation)。

这里自然引出了多目标跟踪算法的一种分类:TBD(Tracking-by-Detecton)DFT(Detection-Free Tracking),也即基于检测的多目标跟踪与基于初始框无需检测器的多目标跟踪。TBD则是目前学界业界研究的主流。下图比较形象地说明了两类算法的区别。

TBD与DFT

不得不提的是另一种多目标跟踪算法的分类方式:在线跟踪(Online)离线跟踪(Offline)。上文提到,大家往往会使用数据关联来进行多目标跟踪。而数据关联的效果,与你能使用的数据是有着直接的关系的。在Online跟踪中,我们只能使用当前帧及之前帧的信息来进行当前帧的跟踪。而在Offline跟踪中则没有了这个限制,我们对每一帧的预测,都可以使用整个视频的信息,这样更容易获得一个全局最优解。两种方式各有优劣,一般视应用场合而定,Offline算法的效果一般会优于Online算法。而介于这两者之间,还有一种称之为Near-Online的跟踪方式,即可以部分利用未来帧的信息。笔者认为,在实际应用中Near-Online的方式会是最合适的,其相关方法十分值得研究。下图形象解释了Online与Offline跟踪的区别。

上图为Online,下图为Offline

关于Online,还有一点需要补充,Online跟踪是不允许修改以往的跟踪结果的,这一点也不难理解,因为一旦修改,算法自然就不再符合Online跟踪不能利用未来帧的要求了,变成了NearOnline或者Offline。

2. 一些术语

看论文时经常会碰到一些术语,初入门的小伙伴可能会云里雾里似懂非懂。有必要在这里列出来。

Trajectory(轨迹):一条轨迹对应这一个目标在一个时间段内的位置序列

Tracklet(轨迹段):形成Trajectory过程中的轨迹片段。完整的Trajectory是由属于同一物理目标的Tracklets构成的。

ID switch(ID切换):又称ID sw.。对于同一个目标,由于跟踪算法误判,导致其ID发生切换的次数称为ID sw.。跟踪算法中理想的ID switch应该为0。

3. 评价指标

对于多目标跟踪,最主要的评价指标就是MOTA。这个指标综合了三点因素:FP、FN、IDsw.。FP即False Postive,为误检测的目标数量;FN即False Negetive,为未检出的真实目标数量;IDsw.即同一目标发生ID切换的次数。

MOTA越高,代表一个Tracker综合性能越好,上限为100,下限负无穷。

除此之外,多目标跟踪还有很多的评价指标,比如MOTP、IDF1、MT、ML、Frag等。作为入门,读者最需要关注的就是MOTA,其他指标可以等对MOT有了进一步了解后再关注。

下表为MOTchallenge官网的Evaluation Measures,有兴趣的读者可以一看。

MOTchallenge:https://motchallenge.net/results/MOT17/

本系列的第一篇文章希望能带大家对MOT有一个直观的了解。暂未涉及任何具体算法,只是介绍了多目标跟踪的任务,一些术语和评价指标。希望大家有什么问题可以在下面评论,欢迎交流讨论。码字仓促,文中若有错误还请大家不吝指教,多多包涵。

参考文献

[1]Luo, W., Xing, J., Milan, A., Zhang, X., Liu, W., Zhao, X., & Kim, T.-K. (2014). Multiple Object Tracking: A Literature Review, 1–18. Retrieved from Multiple Object Tracking: A Literature Review

下一篇开始将涉及具体的跟踪算法,从一些经典算法说起,逐渐深入到多目标跟踪这一领域。

转载请联系作者并注明出处,侵权必究。

轨迹跟踪主要方法_带你入门多目标跟踪(一)领域概述相关推荐

  1. 带你入门多目标跟踪(一)领域概述

    现在从目标检测和单目标跟踪方向转来做多目标跟踪的小伙伴应该有不少,但由于多目标跟踪任务本身的复杂性,导致其入门会比目标检测与单目标跟踪困难不少.再加上论文分布在各个会议,开源代码较少,都造成了多目标跟 ...

  2. 轨迹跟踪主要方法_DELMIA教程:基于指令形式的机器人TCP轨迹局部跟踪方法

    上一期为大家介绍了基于工具条中的"TCP Trace"命令按钮的全局TCP轨迹跟踪,之所以称之为全局轨迹跟踪,是因为只要命令被打开,机器人运行的全部轨迹都将实现跟踪.既然有全局TC ...

  3. 【CV】带你入门多目标跟踪(一)领域概述

    现在从目标检测和单目标跟踪方向转来做多目标跟踪的小伙伴应该有不少,但由于多目标跟踪任务本身的复杂性,导致其入门会比目标检测与单目标跟踪困难不少.再加上论文分布在各个会议,开源代码较少,都造成了多目标跟 ...

  4. python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)

    原标题:带你用 Python 实现自动化群控(入门篇) 来自公众号: AirPython 1. 前言 群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 H ...

  5. gromacs 安装_带你入门带你飞 gromacs材料计算模拟系列

    为了帮助大家了解掌握gromacs材料计算模拟计算,材料人于9月28日举办该主题研讨会.视频回看已经上线.培训内容 1 GROMACS入门操作基础 1.1掌握GROMACS所用的Linux命令1.2 ...

  6. storyline发布方法_(完整)ArticulateStoryline入门教程

    1 目录 1.Articulate Storyline 入门教程:中文安装教程 ( 图文 ) ............................................. 2 2.Art ...

  7. springboot 得到端口_带你入门SpringBoot

    SpringBoot是一个非常强大的框架,该框架是由 Pivotal 团队提供的一个全新框架,目前已经成为当今最流行的微服务开发框架.SpringBoot设计的目的就是用来简化新 Spring 应用的 ...

  8. 【CV】带你入门多目标跟踪(二)SORTDeepSORT

    上一篇文章大概给大家介绍了一下多目标跟踪MOT的一些基础知识.初次了解还是从经典的算法开始,SORT和DeepSORT是多目标跟踪中两个知名度比较高的算法.DeepSORT是原团队对SORT的改进版本 ...

  9. 带你入门多目标跟踪(二)SORTDeepSORT

    上一篇文章大概给大家介绍了一下多目标跟踪MOT的一些基础知识.初次了解还是从经典的算法开始,SORT和DeepSORT是多目标跟踪中两个知名度比较高的算法.DeepSORT是原团队对SORT的改进版本 ...

最新文章

  1. windows 的系统命令介绍
  2. redis3.2安装过程分享
  3. recyclerview 滑动到当前_Android recyclerview的滑动到指定的item
  4. ElasticSearch聚合aggs入门
  5. mysql导入数据,涉及到时间转换,乱码问题解决
  6. rails4 mysql2_ruby-on-rails – Rails 4 – Gem :: LoadError:为数据库适配器指定了“mysql2”,但gem未加载...
  7. Windows 7 64位系统上搭建Hadoop伪分布式环境(很详细)
  8. Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的
  9. 【转】2015-新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序
  10. python find函数 和index的区别_python list的index()和find()的实现
  11. bootstrap confirm 确认后在执行_如何利用 Laravel 提供的密码确认功能来保护用户信息安全...
  12. 二叉树和等于某值路径_Go刷LeetCode系列:二叉树(3)二叉树路径和
  13. python自动交易app_股票自动交易Python下单接口
  14. 计算机mac地址设置路由器,路由器mac地址怎么设置
  15. Mac常用快捷键组合
  16. 计算机上无线网络开关在哪里,笔记本无线网络开关在哪里
  17. 微型计算机分类可以分为哪些,微型计算机的分类通常以微处理器的什么来划分...
  18. 国家一级职业资格证书 计算机类有哪些
  19. Scrum如何拥抱变化
  20. 【微信公众号】微信扫一扫,条形码/一维码,二维码功能解析

热门文章

  1. Spring Boot基础学习笔记23:用户自定义授权管理
  2. JDBC连接MySQL数据库:建立SSL连接出现警告信息
  3. 二级VB培训笔记04:程序控制结构、数组和过程
  4. 伪元素before、after示例
  5. bzoj3551 [ONTAK2010]Peaks加强版 kruskal重构树
  6. 【Level 09】U1 The way I see it L1 A great adventure
  7. 【英语学习】【WOTD】impetus 释义/词源/示例
  8. python pandas 排序_python – pandas:单独对每列进行排序
  9. db2连接工具_ETL工具(kettl)使用系列(一)
  10. OS X上搭建distcc使用XCode进行分布式编译