技术标签: MOT 多目标跟踪(MOT) 目标追踪
论文地址:TransCenter: Transformers with Dense Queries for Multiple-Object Tracking
作者认为TransTrack 和 TrackFormer使用Bbox表示行人是很容易理解的,因为检测中边界框也是广泛使用的,但是当处理密集场景的情况,基于边界框的追踪方法往往会有很多缺点,并且基于框的方法往往由于重叠性很难处理遮挡问题。本论文,作者基于Transformer的center检测方法,去解决遮挡问题。
首先第一个困难就是获得密集表示(如中心热图),为此作者提出使用(像素级别)密集多尺度query。除了允许基于热图的MOT外,密集query的使用克服了用少量query查询解码器所带来的限制。
TransCenter有两个不同的解码器:一个用于行人检测,一个用于行人追踪。两个解码器基于当前图片在不同的可学习层提取query。当前帧的的缓存(transformer编码器的输出)送于检测解码器,过去帧的缓存送到追踪解码器。
基于点的检测方法表面了基于anchor的检测方法对于MOT来说不一定是最合适的,作者这里也是使用点来进行追踪。
过去的基于Transformer的工作都尝试学习边界框的推理,但是作者探索了一种另外的可替代的方法:热图。但是,不同于边界框,热图是密集的,而不是稀疏的。所以,作者引入了密集多尺度query,并且这应该是第一次使用密集query的特征图来进行缩放输入图像。实验中,decoder大概有14k个query。考虑到内存损耗,受可变卷积启发,提出了可变解码器。
作者将MOT任务分解为两个子任务,一个是在时间 t t t的目标检测任务,以及和时间 t − 1 t-1 t−1的检测进行关联的关联任务。通过使用全可变性双解码结构,两个任务平行工作。检测解码器的输出用于估计检测的中心和大小,通过和追踪解码器的组合,估计目标的位移。通过组合中心热图和一个双向解码结构,目标关联不仅可以依赖几何特征(IoU),还可以依赖解码器的视觉特征。
网络总体框架如下图所示:
t t t帧和 t − 1 t-1 t−1帧的视频图像喂入CNNbackbone产生多尺度特征,然后通过可变编码器分别产生缓存 M t M_t Mt和 M t − 1 M_{t-1} Mt−1。 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} Mt−1分别喂入检测和追踪可变性解码器,获得输出多尺度检测和追踪特征( D F t DF_t DFt和 T F t TF_t TFt),用于估计中心热图和目标尺寸。所有的多尺度特征和生成的 t − 1 t-1 t−1帧的中心热图一起计算每个中心点的位移。
传统的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} Mt−1来将检测目标和他们在过去图片 I t − 1 I_{t-1} It−1上的位置进行关联。
具体的检测编码器通过多尺度特征 D Q t DQ_t DQt输出多尺度检测特征 D F t DF_t DFt,用于寻找目标中心和边界框大小。 可变形追踪编码器找到 M t − 1 M_{t-1} Mt−1中的目标,将他们和 t t t中的目标进行关联。为此,追踪编码器中的多头可变性注意力实现了多尺度特征 T Q t TQ_t TQt和 M t − 1 M_{t-1} Mt−1之间的时序交叉关联,输出多尺度追踪特征 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} Ct−1进行concat,和其他分支一样,一个卷积层块计算最终的输出,如目标位移 T t ∈ R H / 4 × W / 4 × 2 T_t\in R^{H/4\times W/4\times 2} Tt∈RH/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∑{
(1−Cxy)αlog(Cxy)(1−Cxy∗)β(Cxy)αlog(1−Cxy)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∑{
∥∥Sxy−Sxy∗∥∥10Cxy∗=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优化器。
文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...
文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置
文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!
文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题
文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。
文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学
文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.
文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1
文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.
文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出
文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别
文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下