热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多目标追踪——【Transformer】MOTR:EndtoEndMultipleObjectTrackingwithTRansformer

目录文章侧重点将ObjectObjectObjectQueryQueryQuery变成TrackTrackTrackQueryQueryQuery需要解决的问题总体网络结构——时序




目录


  • 文章侧重点





  • O


    b


    j


    e


    c


    t



    Object


    Object





    Q


    u


    e


    r


    y



    Query


    Query
    变成




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    需要解决的问题
  • 总体网络结构——时序融合网络
    • QIM——Query交互模块

  • 训练逻辑
    • Tracklet-Aware Label Assignment
    • Collective Average Loss



论文链接:https://arxiv.org/abs/2105.03247


文章侧重点
  1. 受到DERT启发,将目标检测中的




    O


    b


    j


    e


    c


    t



    Object


    Object





    Q


    u


    e


    r


    y



    Query


    Query
    迁移到多目标追踪中,构造了




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    。这个出发点也决定MOTR也是一个基于检测的追踪。
  2. 当前许多基于检测的追踪方法是外观建模+运动建模 (后置处理,如卡尔曼滤波等),而MOTR提出了时序融合网络,利用




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    的逐帧更新,同时对外观和运动建模。
  3. MOTR为了保证时序建模的有效性,提出了基于轨迹的标签构造【tracklet-aware label assignment】训练策略+联合平均损失【collective average loss】增强模型的时序建模。






O


b


j


e


c


t



Object


Object





Q


u


e


r


y



Query


Query
变成




T


r


a


c


k



Track


Track





Q


u


e


r


y



Query


Query
需要解决的问题

通常来讲,虽然目标检测与目标跟踪都是CV领域,但由于下端的根本任务不同,所以直接套用肯定有问题,所以要仔细设计。


  1. 用一个




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    追踪同一个目标。
    因为DERT中的




    O


    b


    j


    e


    c


    t



    Object


    Object





    Q


    u


    e


    r


    y



    Query


    Query
    是基于每一帧识别,每一个目标和




    O


    b


    j


    e


    c


    t



    Object


    Object





    Q


    u


    e


    r


    y



    Query


    Query
    并不存在对应关系,如下图(a)。但多目标追踪需要对序列中每个目标生成追踪轨迹,这必然要求目标轨迹的一致性,不能发生ID Switch的问题。 这就意味着目标检测+目标轨迹匹配都要用




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    来实现,这也是端到端的精髓了,取消后置处理。本文引入基于轨迹的标签构造【tracklet-aware label assignment】训练策略,使得用同一个ID的边界框去监督训练检测+匹配的过程。
    在这里插入图片描述
  2. 对新出现目标和消失目标的处理。 因为多目标追踪中会面临某个目标突然消失或突然出现等情况,所以固定长度的




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    并无法满足实际的需求。故本文提出了两个变量集合——




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    (可变长度)和




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    (固定长度)来处理目标出现和消失等情况。
    如上图(b),对于每一帧都要迭代式更新




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    ,将消失的目标将其对应的




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    删去,并且每一帧用




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    检测该帧有多少目标,新目标通过




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    检测出来加入




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    的集合中。具体过程如下图所示:
    在这里插入图片描述

总体网络结构——时序融合网络

在这里插入图片描述
可以看到,上图的结构解析如下:


  1. Enc 表示特征提取阶段:Backbone网络+Deformable DERT的Encoder;
  2. Dec 表示Deformable DERT的Decoder。
    • 在第一帧由于追踪目标还未出现,故输入是固定长度的





      q


      d




      q_d


      qd
      和为空集的





      q



      t


      r





      q_{tr}


      qtr
      ,而后续帧的输入就是





      q


      d




      q_d


      qd
      和上一帧传递的





      q



      t


      r





      q_{tr}


      qtr
    • 输出是中间态特征,用于生成追踪预测结果和QIM的输入。

QIM——Query交互模块

在这里插入图片描述
此模块的作用是处理目标的出现和消失等情况。图中的分数表示Head预测追踪目标的分类得分。


  • 输入:Decoder输出的中间态特征,如上图最左侧输入。黄色部分表示





    q


    d




    q_d


    qd
    ,橙色为





    q



    t


    r





    q_{tr}


    qtr
  • 第一步:将其和Head预测追踪目标的分类得分,分别输入到处理(a)目标出现、(b)目标消失两个分支中。这里分别设定了两个阈值作为filter,筛选有效的query。
  • 第二步:对于 (a)目标出现分支中,将分类分数大于阈值的检测目标视为新增目标。
  • 第三步:对于 (b)目标消失分支中,当筛选出新的




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    之前,要经过 【时序增强网络】TAN ,该网络本质是一个self-attention机制。输入是本帧的目标query





    q



    t


    r



    i




    q_{tr}^i


    qtri
    、第一步(b)分支输出的中间态特征。该输出是下一帧的追踪目标。
  • 输出:第二步与第三步的输出拼接起来为下一帧的追踪目标





    q



    t


    r




    i


    +


    1





    q_{tr}^{i+1}


    qtri+1

训练逻辑

Tracklet-Aware Label Assignment

【目的是为




T


r


a


c


k



Track


Track





Q


u


e


r


y



Query


Query
对轨迹与目标的一对一关系建模。】
TALA 有两种策略,分别对应着




D


e


t


e


c


t



Detect


Detect





Q


u


e


r


y



Query


Query





T


r


a


c


k



Track


Track





Q


u


e


r


y



Query


Query
的训练策略


  • 针对




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    :沿用DERT中的检测策略专门来检测追踪序列中每一帧出现的新目标。训练策略是对于




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    与新增目标的GroundTruth进行双向匹配。
    在这里插入图片描述

  • 针对




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    :本文设计一个目标一致的训练策略。本帧的




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    由上一帧的




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    +




    D


    e


    t


    e


    c


    t



    Detect


    Detect





    Q


    u


    e


    r


    y



    Query


    Query
    。对于第一帧,




    T


    r


    a


    c


    k



    Track


    Track





    Q


    u


    e


    r


    y



    Query


    Query
    为空集。
    在这里插入图片描述


Collective Average Loss

【目的是为




T


r


a


c


k



Track


Track





Q


u


e


r


y



Query


Query
对时序信息的传递进行前后帧建模。】
通常的训练策略是计算帧的loss,如此策略忽略了序列中存在的关于目标的运动信息。故本文设计了一个联合平均损失预测以video clip为基本单位的损失。联合平均损失=(单帧的追踪损失+单帧的检测损失)之和 / 帧数。
在这里插入图片描述

与强同学。
在这里插入图片描述







推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
author-avatar
淡淡木香coolgirl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有