TransCenter: Transformers with Dense Queries for Multiple-Object Tracking-程序员宅基地

技术标签: MOT  多目标跟踪(MOT)  目标追踪  

论文地址:TransCenter: Transformers with Dense Queries for Multiple-Object Tracking


主要贡献:

  1. 使用transformer进行多目标中心追踪,定义为TransCenter
  2. 提出多尺度密集query推理位置热图,·使用学习层在当前图的编码上计算得出。

介绍和相关工作

作者认为TransTrack 和 TrackFormer使用Bbox表示行人是很容易理解的,因为检测中边界框也是广泛使用的,但是当处理密集场景的情况,基于边界框的追踪方法往往会有很多缺点,并且基于框的方法往往由于重叠性很难处理遮挡问题。本论文,作者基于Transformer的center检测方法,去解决遮挡问题。

首先第一个困难就是获得密集表示(如中心热图),为此作者提出使用(像素级别)密集多尺度query。除了允许基于热图的MOT外,密集query的使用克服了用少量query查询解码器所带来的限制。

TransCenter有两个不同的解码器:一个用于行人检测,一个用于行人追踪。两个解码器基于当前图片在不同的可学习层提取query。当前帧的的缓存(transformer编码器的输出)送于检测解码器,过去帧的缓存送到追踪解码器。

基于点的检测方法表面了基于anchor的检测方法对于MOT来说不一定是最合适的,作者这里也是使用点来进行追踪。

TransCenter

过去的基于Transformer的工作都尝试学习边界框的推理,但是作者探索了一种另外的可替代的方法:热图。但是,不同于边界框,热图是密集的,而不是稀疏的。所以,作者引入了密集多尺度query,并且这应该是第一次使用密集query的特征图来进行缩放输入图像。实验中,decoder大概有14k个query。考虑到内存损耗,受可变卷积启发,提出了可变解码器。

作者将MOT任务分解为两个子任务,一个是在时间 t t t的目标检测任务,以及和时间 t − 1 t-1 t1的检测进行关联的关联任务。通过使用全可变性双解码结构,两个任务平行工作。检测解码器的输出用于估计检测的中心和大小,通过和追踪解码器的组合,估计目标的位移。通过组合中心热图和一个双向解码结构,目标关联不仅可以依赖几何特征(IoU),还可以依赖解码器的视觉特征。

概述

网络总体框架如下图所示:
在这里插入图片描述
t t t帧和 t − 1 t-1 t1帧的视频图像喂入CNNbackbone产生多尺度特征,然后通过可变编码器分别产生缓存 M t M_t Mt M t − 1 M_{t-1} Mt1 M t M_t Mt通过两个query学习网络(QLN)获得密集多尺度检测和追踪query( D Q T DQ_T DQT T Q t TQ_t TQt)。 D Q T DQ_T DQT T Q t TQ_t TQt顺带 M t M_t Mt M t − 1 M_{t-1} Mt1分别喂入检测和追踪可变性解码器,获得输出多尺度检测和追踪特征( D F t DF_t DFt T F t TF_t TFt),用于估计中心热图和目标尺寸。所有的多尺度特征和生成的 t − 1 t-1 t1帧的中心热图一起计算每个中心点的位移。

密集多尺度query

传统的Transformer输出和输出元素相同,这些输出和实体相关(行人边界框)。当推导中心热图的时候,一个像素成为行人中心的概率成为了这样的实体,需要解码器来获得这些编码器加上QLN产生的多尺度密集query。两个QLN,一个用于前向传播进行像素级处理,获得 D Q t DQ_t DQt,第二个通过处理 D Q t DQ_t DQt来获得 T Q t TQ_t TQt。都送入完全可变性双解码器中。

完全可变性双解码器

通过两个子可变性解码器分别平行处理检测和追踪两个子任务,检测解码器通过 D T t DT_t DTt M t M_t Mt,加上注意力模块获得 I t I_t It的目标检测,追踪解码器通过 T Q t TQ_t TQt M t − 1 M_{t-1} Mt1来将检测目标和他们在过去图片 I t − 1 I_{t-1} It1上的位置进行关联。

具体的检测编码器通过多尺度特征 D Q t DQ_t DQt输出多尺度检测特征 D F t DF_t DFt,用于寻找目标中心和边界框大小。 可变形追踪编码器找到 M t − 1 M_{t-1} Mt1中的目标,将他们和 t t t中的目标进行关联。为此,追踪编码器中的多头可变性注意力实现了多尺度特征 T Q t TQ_t TQt M t − 1 M_{t-1} Mt1之间的时序交叉关联,输出多尺度追踪特征 T F t TF_t TFt T F t TF_t TFt包含用于估计位移的时序信息。

检测和追踪解码器都输入密集query特征图,同属输出密集信息。但是传统Transformer中的多头注意力模型占存很大且算力复杂,为此作者使用可变形多头注意力层来代替传统注意力层处理多尺度特征。

中心、大小和追踪分支

解码器生成的两个多尺度特征图 D F t DF_t DFt T F t TF_t TFt分别缩放为原图的1/64, 1/32, 1/16 和1/8的分辨率大小。对于中心点和目标大小分支,不同分辨率的特征图通过可变性卷积和双线性差值进行组合,如下图结构:
在这里插入图片描述
最终获得1/4的原图分辨率大小的特征图 C t ∈ [ 0 , 1 ] H / 4 × W / 4 C_t\in [0,1]^{H/4\times W/4} Ct[0,1]H/4×W/4 S t ∈ [ 0 , 1 ] H / 4 × W / 4 × 2 S_t\in [0,1]^{H/4\times W/4\times 2} St[0,1]H/4×W/4×2 S t S_t St的两个通道编码了长和宽。

对于追踪分支,两个多尺度特征通过相同的(不同参数)上采样获得两个1/4分辨率大小特征图。两个特征图和下采样后的过去的中心热图 C t − 1 C_{t-1} Ct1进行concat,和其他分支一样,一个卷积层块计算最终的输出,如目标位移 T t ∈ R H / 4 × W / 4 × 2 T_t\in R^{H/4\times W/4\times 2} TtRH/4×W/4×2,两个通道代表水平和垂直位移。

训练

TransCenter通过联合学习目标中心热度图的分类任务和一个目标大小及追踪位移的回归任务组成。

中心focal_loss:
为了训练中心分支,需要构建GT热度图 C ∗ ∈ [ 0 , 1 ] H / 4 × W / 4 C^*\in [0,1]^{H/4\times W/4} C[0,1]H/4×W/4。我们通过考虑以每一个 K > 0 K >0 K>0为中心的高斯核集的最大响应构造 C ∗ C^∗ C。对于每个像素位置 ( x , y ) (x,y) (x,y),GT热图表示为:
C x y ∗ = max ⁡ k = 1 , … , K G ( ( x , y ) , ( x k , y k ) ; σ ) (1) \mathbf{C}_{x y}^{*}=\max _{k=1, \ldots, K} G\left((x, y),\left(x_{k}, y_{k}\right) ; \sigma\right) \tag{1} Cxy=k=1,,KmaxG((x,y),(xk,yk);σ)(1)
其中 ( x k , y k ) (x_k,y_k) (xk,yk)为GT框的中心, G ( ⋅ ; ⋅ ; σ ) G(·;·;σ) G(σ)表示以σ为传播因子的高斯核,实验中设置为目标大小。考虑到GT C ∗ C^∗ C和推理 C C C中心热图,使用中心focal loss L c L_c Lc计算损失: L C = 1 K ∑ x y { ( 1 − C x y ) α log ⁡ ( C x y ) C x y ∗ = 1 ( 1 − C x y ∗ ) β ( C x y ) α log ⁡ ( 1 − C x y )  otherwise  (2) L_{\mathrm{C}}=\frac{1}{K} \sum_{x y}\left\{\begin{array}{ll} \left(1-\mathbf{C}_{x y}\right)^{\alpha} \log \left(\mathbf{C}_{x y}\right) & \mathbf{C}_{x y}^{*}=1 \\ \left(1-\mathbf{C}_{x y}^{*}\right)^{\beta}\left(\mathbf{C}_{x y}\right)^{\alpha} \log \left(1-\mathbf{C}_{x y}\right) & \text { otherwise } \end{array}\right. \tag{2} LC=K1xy{ (1Cxy)αlog(Cxy)(1Cxy)β(Cxy)αlog(1Cxy)Cxy=1 otherwise (2)
缩放因子α = 2 ,β = 4。

稀疏回归损失:
S S S T T T只在那些目标中心存在的位置进行监督,例如在 C x y ∗ = 1 C^*_{xy}=1 Cxy=1使用L1损失进行监督:
L S = 1 K ∑ x y { ∥ S x y − S x y ∗ ∥ 1 C x y ∗ = 1 0  otherwise  (3) L_{\mathrm{S}}=\frac{1}{K} \sum_{x y}\left\{\begin{array}{ll} \left\|\mathbf{S}_{x y}-\mathbf{S}_{x y}^{*}\right\|_{1} & \mathbf{C}_{x y}^{*}=1 \\ 0 & \text { otherwise } \end{array}\right. \tag{3} LS=K1xy{ SxySxy10Cxy=1 otherwise (3)

L t L_t Lt L s L_s Ls使用追踪输出和GT相似计算。并且为了弥补稀疏问题,加入一个额外的L1回归损失,表示为 L R L_R LR计算由 S t S_t St计算的边界框的中心和GT中心的损失。

总体损失为所有损失之和: L = L C + λ S L S + λ T L T + λ R L R (4) L=L_{\mathrm{C}}+\lambda_{\mathrm{S}} L_{\mathrm{S}}+\lambda_{\mathrm{T}} L_{\mathrm{T}}+\lambda_{\mathrm{R}} L_{\mathrm{R}} \tag{4} L=LC+λSLS+λTLT+λRLR(4)

实验

匹配关联还是直接使用的匈牙利算法,保留60帧。
网络方面,输入图片为640 × 1088,编码器和解码器有6层256维度的8个注意力头。QLN由连个全连接层加rulu几号组成。CNN的bakbone为ResNet-50。训练损失权重 λ S = 0.1 , λ R = 0.5 、 λ T = 1.0 λ_S = 0.1, λ_R = 0.5、 λ_T = 1.0 λS=0.1,λR=0.5λT=1.0,总体优化为AdamW优化器。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41214679/article/details/115528784

智能推荐

毕设分享 python大数据房价预测与可视化系统-程序员宅基地

文章浏览阅读1.2k次,点赞19次,收藏15次。# 0 简介今天学长向大家介绍一个适合作为毕设的项目毕设分享 python大数据房价预测与可视化系统项目获取:https://gitee.com/assistant-a/project-sharing对于数据挖掘工程师来说,有时候需要抓取地理位置信息,比如统计房子周边基础设施信息,比如医院、公交车站、写字楼、地铁站、商场等,一般的爬虫可以采用python脚本爬取,有很多成型的框架如scrapy,但是想要爬百度地图就必须遵循它的JavaScriptApi,那么肯定需要自己写JavaScript脚本与百度API

在vscode工具中,使用eslint,stylelint,htmlhint对vue项目代码格式的检查_vscode stylelint 总是检查js 语法-程序员宅基地

文章浏览阅读4.6k次。1. 对js代码格式的检查:首先全局安装以下插件:“eslint”“vue-eslint-parser”“babel-eslint”“eslint-config-alloy”“eslint-plugin-html”“eslint-plugin-import”“eslint-plugin-node”“eslint-plugin-promise”在项目根目录添加 .eslint..._vscode stylelint 总是检查js 语法

C语言经典算法-6-程序员宅基地

文章浏览阅读945次,点赞22次,收藏23次。c语言经典算法,数字拆解,选择、插入、气泡排序,shell排序,shaker排序

yum的repo文件详解、以及epel简介、yum源的更换_epel.repo-程序员宅基地

文章浏览阅读5.6k次,点赞2次,收藏18次。一、什么是repo文件repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!YUM的工作原理并不复杂,每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装 哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来_epel.repo

mac mysql的使用教程_Navicat for mac使用教程-程序员宅基地

文章浏览阅读710次。1.安装后第一次打开会弹出此框要求你连接mysql。连接名随便填,password 默认为 root.屏幕快照 2014-12-16 上午12.03.48.png2.完成之后,进入主界面你会看到你刚看创建的Connection.(这里我创建的连接名字为DB)屏幕快照 2014-12-16 上午12.06.58.png3.打开DB,你会发现里面有几个已经创建的数据库,这是系统自动帮你创建的,不用管他..._navicat for mysql用法 mac版

uniapp小程序实现内容自适应并向上滚动弹幕_uniapp 弹幕 滚动-程序员宅基地

文章浏览阅读691次,点赞9次,收藏7次。uniapp小程序实现内容自适应并向上滚动弹幕_uniapp 弹幕 滚动

随便推点

Arduino for PKE8720DF-C13-F10——UART产生时钟信号_串口实现时钟信号-程序员宅基地

文章浏览阅读155次。PKE8720DF-C13-F10提供三组UART,SERIAL1_TX(PB19) 和 SERIAL1_RX(PB18)、SERIAL2_TX(PA12) 和 SERIAL2_RX(PA13)、LOG_TX(PA7) 和 LOG_RX(PA8)PKE8720DF-C13-F10提供了三组UART,使用其中的SERIAL1这组UART来产生时钟信号,定义UART_TX及UART_RX对应的Pin脚。PKE8720DF-C13-F10开发板UART端口配置。1 x PKE8720DF-C13-F10开发板。_串口实现时钟信号

用Python做50道ACM之《Number Triangle 》_python数字三角形acm-程序员宅基地

文章浏览阅读703次。5.Number Trianglehttp://acm.fzu.edu.cn/problem.php?pid=1004自底向上地解决,从倒数第二行开始,每个数字用其本身和其左右子节点中较大值的和来替代。# 动态规划import sysline_left=0 # 每个用例剩余未读取行数while true: read_in=sys.stdin.readline() if..._python数字三角形acm

android 获取api key_安卓应用内置api转id-程序员宅基地

文章浏览阅读785次。1. 首先先要获取你的debug keystore位置:打开Eclipse--->Windows--->Preferences--->Android--->Build查看默认的debug keystore位置,我的是C:/Documents and Settings/MYNAME /.android/debug.keystore2. 在cmd中执行:keytool -l_安卓应用内置api转id

基于LOAM框架的激光SLAM开源程序汇总-程序员宅基地

文章浏览阅读655次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达1 前言LOAM, 即Lidar Odometry and Mapping,是 Ji Zhang 博士于2014年提出的使用激光雷达..._loam系开源算法汇总

sentaurus光电器件仿真笔记(sde部分)(一)_sentaurus网格如何划分-程序员宅基地

文章浏览阅读5.8k次,点赞4次,收藏42次。项目场景:最近由于项目组做光电器件有流片机会,所以在找了个简单的器件进行仿真实现。mesh网格策略:一般的三维器件仿真模拟的网格策略为:(sdedr:define-refinement-window “W.Global” “Cuboid”(position -200 -200 0)(position 200 200 0) ..._sentaurus网格如何划分

微信公众号支付 错误chooseWXPay:fail, the permission value is offline verifying-程序员宅基地

文章浏览阅读4.8w次,点赞3次,收藏3次。一是在模拟器中实行发起支付,要在真机是发起二是微信公众号支付授权目录要填写实际发起支付的url地址,比如你的页面是http://www.newfms.com/order/pay/id-115,那么此处应该填http://www.newfms.com/order/pay/ 如果在uni-APP 生成的h5网址结构中比如:https://www.xxxx.cn/h5/#/pages/s..._choosewxpay:fail, the permission value is offline verifying

推荐文章

热门文章

相关标签