热门标签 | 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为基本单位的损失。联合平均损失=(单帧的追踪损失+单帧的检测损失)之和 / 帧数。
在这里插入图片描述

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







推荐阅读
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • Hadoop集群搭建:实现SSH无密码登录
    本文介绍了如何在CentOS 7 64位操作系统环境下配置Hadoop集群中的SSH无密码登录,包括环境准备、用户创建、密钥生成及配置等步骤。 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • Kubernetes Services详解
    本文深入探讨了Kubernetes中的服务(Services)概念,解释了如何通过Services实现Pods之间的稳定通信,以及如何管理没有选择器的服务。 ... [详细]
  • 探索将Python Spyder与GitHub连接的方法,了解当前的技术状态及未来可能的发展方向。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
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社区 版权所有