网上已有很多关于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. Django学习-17-CSRF

    CSRF(跨站请求伪造)         用户请求获取数据时,加入一段加密字符串,只有服务器能反解.         XSS(跨站脚本攻击),JS脚本在网站中运行,如果获取到用户Cookie,可以利用 ...

  2. 关于json.parse和json.stringify的区别

    json.parse是将字符串解析成json格式 而json.stringify是将json解析成字符串格式

  3. Tmux使用说明

    tmux通过一个终端登录远程主机并运行,其中可开启多个控制台的终端复用.其结构如下:      server 服务器.输入tmux命令时就开启了一个服务器. session 会话.一个服务器可以包含多 ...

  4. [HNOI2008]水平可见直线

    按斜率排序后画个图,用单调栈维护这个半平面交 # include <bits/stdc++.h> # define IL inline # define RG register # def ...

  5. [BZOJ1602] [Usaco2008 Oct] 牧场行走 (LCA)

    Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走, ...

  6. 关系型数据库工作原理-查询优化器之数据访问方式(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  7. 使用Python解析豆瓣上Json格式数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  8. Java中的代理模式--静态代理和动态代理本质理解

    代理模式定义:为其他对象提供了一种代理以控制对这个对象的访问. 代理模式的三种角色: Subject抽象主题角色:抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求. Real ...

  9. 用Canvas生成随机验证码(后端前端都可以)

    一 .使用前端生成验证码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  10. 3D模型展示以及体积、表面积计算

    本文原创 如转载请注明出处!!! 本博客地址http://www.cnblogs.com/we-jack 本文原创,如果有同样需求的小伙伴请第一时间联系我 或者在留言区留言 上次为大家提供了3D模型的 ...