网上已有很多关于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. WPF基础篇之资源文件路径

    WPF资源文件的路径 关于WPF资源文件的路径 这几天在WPF中调用资源文件的Uri时,因为是在代码里调用Uri写的Uri总是不对,要么运行直接报异常,要么说找不到资源文件.下面是我解决的整个经过和碰 ...

  2. C#多线程编程(4)--异常处理+前三篇的总结

    本来是打算讲并行For和PLINQ的,但是我感觉前三篇我没有讲得很清晰.之前一直在看<CLR via C#>(后文简称CLR)的多线程部分,其中有些部分不是很明白,今天翻开<果壳中的 ...

  3. THUWC2018滚粗记

    THUWC2018滚粗记 前言 又是一篇滚粗记, 不过可能还要写过很多很多篇滚粗记, 才会有一篇不是滚粗记的东西啦 总而言之,我现在还是太菜了 还要过一大段时间我才会变强啦 Day -inf 联赛考完 ...

  4. Bzoj4817:[SDOI2017]树点涂色

    题面 Bzoj Sol 做个转化 最开始都是虚边 操作\(1\)就是\(LCT\)里的\(Access\)操作 求的就是路径上虚边的个数+1 然后就好办了 用树链剖分+线段树来维护每个点到根虚边的个数 ...

  5. js对象的合并

    问题情况:将2个或2个以上对象(object{....})中的属性进行合并,即最后合并为一个object{.....}传递给后端. 问题场景:多页表单数据的一同提交 解决办法:Object.assig ...

  6. TP5模型关联问题

    在使用模型关联时:假如有表   merchant商户表   m_store 店铺表  m_store_ref 商户店铺关联表  user 普通用户表 $mer = Merchant::with([ ' ...

  7. sprintf函数使用

    功能 把格式化的数据写入某个字符缓冲区. 所需头文件 stdio.h 原型 int sprintf( char *buffer, const char *format, [ argument] - ) ...

  8. docker 使用案例:部署nginx

    首先安装docker.可以参考这篇教程: http://www.runoob.com/docker/windows-docker-install.html 本教程以windows10+ubuntu:1 ...

  9. Java并发编程实战(chapter_1)(原子性、可见性)

    混混噩噩看了很多多线程的书籍,一直认为自己还不够资格去阅读这本书.有种要高登大堂的感觉,被各种网络上.朋友.同事一顿外加一顿的宣传与传颂,多多少少再自我内心中产生了一种敬畏感.2月28好开始看了之后, ...

  10. PAT 输出华氏-摄氏温度转换表

    输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper].且每次增加2华氏度的华氏-摄氏温度转换表. 温度转换的计算公式:C=5×(F−3 ...