网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长。若希望详细了解,建议阅读原文。

本文是tracking by detection 方法进行多目标跟踪的文章,在SORT的基础上进行了改进(SORT见前一篇随笔)。

论文地址:https://arxiv.org/pdf/1703.07402.pdf

代码地址:https://github.com/nwojke/deep_sort

文章概述

本方法最大的特点是加入了appearance信息来提高之前SORT的性能,用cosine 距离来度量 tracks 和 detection 的相似度以减少 SORT算法中ID switch的次数(减少了45%),并使用Kalman预测和实际detection间的平方马氏距离来过滤可能性小的匹配。

文章观点

  • SORT算法ID switch次数高是因为采用的关联矩阵只在状态预测不确定性较小的时候准确;(既状态估计模型存在缺陷)
  • SORT在通过遮挡进行跟踪时存在缺陷,因为它们通常出现在正视的相机场景中;
  • 本文将关联度量替换为结合运动和外观信息的度量。

文章方法

采用递归卡尔曼滤波和逐帧数据关联的传统单一假设跟踪方法。

1. 状态估计

  • 我们的追踪场景的定义是基于8维状态空间,由于并非本文核心思想,详细含义见原文在此不再赘述;
  • 本文使用具有等速运动和线性观测模型的标准卡尔曼滤波器,将bounding box坐标作为物体状态的直接观测模型;
  • 对于每个track,计算该帧距上次匹配成功的帧数,该计数器在卡尔曼滤波器预测期间递增,并且当轨道已经与测量相关联时重置为0;
  • 如果计数器得出的数目大于阈值则判断为离开场景,将其ID删除。如果现有的追踪不能匹配就开启一个新的track ID;
  • 本文引入一个试验track的概念,既新的track出现的前三帧被看作为试验阶段,在这一阶段每一帧都要匹配成功,否则就算匹配失败,会被删除。

2. 指派问题

  • 使用平方马氏距离来度量预测track的Kalman状态(BBOX的几何位置)和新到来detection之间的距离;

  • 使用cosine距离来度量各个track的appearance feature(128维)和detection feature之间的距离,来跟准确地预测ID;

  • 引入两个二值函数来限制assignment矩阵,分别比较平方马氏距离以及cosine距离和阈值的大小来进行判断,将两个函数结合起来对矩阵进行限制;

  • 使用combined距离来作为cost matrix进行度量各个track和detection之间的距离,这里文中只使用cosine距离进行度量(即将lambda设置为0),使用马氏距离排除不可能的情况,既基于由卡尔曼滤波器推断的可能的物体位置忽略不可行的分配。

3. 级联匹配

  • 物体被遮挡一段时间后,卡尔曼滤波预测的不确定性大大增加并且状态空间上可观察性变得很低,并且马氏距离更倾向于不确定性更大的track,这是由于减少了detection的标准差距预计的轨迹的距离。因此这里引入级联匹配,优先匹配detection与最近出现的track;
  • Matching Cascade算法见下,在最后结束算法时使用SORT中的IOU距离来解决局部遮挡的问题,通过计算unmatched tracks(只有前一帧是unmatched的) 和 unmatched detection的IOU distance,详细见最后的代码流程图。

4.  Appearance 描述 

通过在大规模re-id数据集上pre-trained深度网络来提取128维的appearance特征,用L2正则化将特征投影到单位超球面上来与余弦距离进行匹配,网络结构见下(需要注意的是此处的detection用的是POI中的detection坐标,文中的CNN网络用于提取bbox中的特征)。

文章结果

  • 相对于SORT,本文主要解决的是ID Switch过大的问题,从结果中可以看出ID Switch比之前下降了45%,并达到了state-of-the-art;
  • MOTA,MOTP,MT,ML,FN指标相对于之前都有提升,并且速度下降不大,很实用;
  • FM的上升主要是因为联合的matrix中过于强调appearance,导致在有遮挡或者丢失时detection的错误导致;
  • FP的升高很多,文章中提出这主要是由于静态场景中detection的错误以及过长的允许丢失的track age所导致的(相对于SORT只用相邻帧进行匹配来说,Deep SORT允许高达30帧的丢失,而Kalman的等速运动模型没有改变,这主要造成了FP的升高)。

 代码流程图

多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC (Deep SORT)的更多相关文章

  1. 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING (SORT)

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是使用 tracking by detection 方法进行多目标跟踪的文章,是后续de ...

  2. 多目标跟踪(MOT)论文随笔-POI: Multiple Object Tracking with High Performance Detection and Appearance Feature

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,最大的特点是使用 ...

  3. 多目标跟踪MOT综述

    https://blog.csdn.net/u012435142/article/details/85255005 多目标跟踪MOT 1评价指标 https://www.cnblogs.com/YiX ...

  4. 多目标跟踪(MOT)评测标准

    MOT16是多目标跟踪领域非常有名的评测数据集,Ref 1详细阐述了这个数据集的组成以及评测标准(及其评测代码),Ref 2详细地解释了许多标准的由来和考虑,本部分主要介绍MOT任务中常用的评测标准. ...

  5. [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...

  6. 论文翻译:2021_A New Real-Time Noise Suppression Algorithm for Far-Field Speech Communication Based on Recurrent Neural Network

    论文地址:一种新的基于循环神经网络的远场语音通信实时噪声抑制算法 引用格式:Chen B, Zhou Y, Ma Y, et al. A New Real-Time Noise Suppression ...

  7. 论文笔记:AdaScale: Towards real-time video object detection using adaptive scalingAdaScale

    AdaScale: Towards real-time video object detection using adaptive scaling 2019-02-18 16:14:17 Paper: ...

  8. 多目标跟踪MOT评价指标

    目录 1. MOT评价指标 2. 实现思路 3. 计算指标 1. MOT评价指标 MOT:multiple object tracking 评价出发点: 所有出现的目标都要及时能够找到: 目标位置要尽 ...

  9. PMVS论文随笔(1)

    博客园排版系统真的比较挫,可以访问我的github.io阅读 关于Unit的概念 在pmvs的源代码中,有一个函数是getUnit ,其函数如下(在PMVS2的windows版本代码,optim.cc ...

随机推荐

  1. JDBC连接池-自定义连接池

    JDBC连接池 java JDBC连接中用到Connection   在每次对数据进行增删查改 都要 开启  .关闭  ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例 pack ...

  2. winfrom如何在listview中添加控件

    private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewIte ...

  3. 【转载】 Spark性能优化:资源调优篇

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  4. [POI2014]HOT-Hotels

    题目描述 There are towns in Byteotia, connected with only roads. Each road directly links two towns. All ...

  5. vue 父组件与子组件的通信

    参考博客地址:http://www.cnblogs.com/okaychen/p/7674211.html,很详细!

  6. Java最大公约数和最小公倍数的求法(辗转相除法)

    这道题计算了三个数的最小公倍数 import java.util.Scanner; public class D { public static int gcd(int a,int b) { int ...

  7. Eslint报错整理与解决方法(持续整理)

    1.'Unexpected tab character' 字面意思理解呢就是意想不到的制表符,当时出现的时候就是我习惯的使用Tab键去打空格,但是eslint默认不认可Tab,所以解决方法很简单: 在 ...

  8. SQL添加表字段

    通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smalli ...

  9. R语言学习 第八篇:常用的数据处理函数

    Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数,本文分享在数据处理时,经常使 ...

  10. 智能合约语言 Solidity 教程系列1 - 类型介绍

    现在的Solidity中文文档,要么翻译的太烂,要么太旧,决定重新翻译下.尤其点名批评极客学院名为<Solidity官方文档中文版>的翻译,机器翻译的都比它好,大家还是别看了. 写在前面 ...