CSTrack文章解读

论文连接:https://arxiv.org/abs/2010.12138
代码:https://github.com/JudasDie/SOTS/tree/MOT

CSTrack: Rethinking the competition between detection and ReID in Multi-Object Tracking

精读笔记

  • 检测和ReID模型是存在不公平的过度竞争

在一阶段网络中,目标类别的置信度,目标尺度,id信息都来自于共享的Embedding,尽管这样可以提升效率,但是不同任务之间的内在差异被忽略了。不能同时兼顾检测和reid任务,检测要求在同类的不同目标之间拥有相似的语义信息,保证(类间)距离最大,而ReID则是保证类内间距最大

  • 目标尺度变化较大

在reid中,图像被调整到统一的固定尺寸,在MOT中,提供ReID网络的特征需要拥有尺寸感知能力,沿着帧目标可能会有巨大的尺寸变化。

  • 互相关网络,来改进单阶段跟踪框架下detection和ReID任务之间的协作,首先将检测和ReID解耦成两个分支,然后两个任务的特征通过自注意力方式获得自注意力权重图和互相关性权重,自注意力图是促进各自任务的学习,互相关是为了提高两个任务的协同学习。SAAN尺寸注意力感知网络,解决尺寸变化问题。

网络框架

在这里插入图片描述

CCN网络(互相关)用于将检测和ReID两个分支解耦,原始的JDE是将特征送入检测和Reid分支中,作者任务这样会造成后续的混淆,(FairMOT用的另一种解决方式),

与JDE的区别:

  • 检测头换成了yolov5

  • 在多任务前将detection和reid解耦

  • 使用SAAN网络

  • 改进的两部分都是在特征优化上进行的

CCN(相关网络)

用于提取更适合检测和reid任务的一般特征和特定特征。通过学习反映不同特征通道之间相互关系的联系来增强每个任务的特征表示。

用自注意力机制学习不同特征通道之间的相互关系来增强任务表示。这块不懂可以看下面的补充。

假设检测器最后的输出特征为

F

R

(

C

H

W

)

F∈R^{(C * H * W)}

FR(CHW),通过平均池化之后,得到更小的特征

F

R

(

C

H

W

)

F'∈R^{(C * H' * W')}

FR(CHW),然后通过输入卷积层获得针对不同任务的特征映射$T_1和T_2
KaTeX parse error: Expected '}', got 'EOF' at end of input: …任务独立的通道注意力图得到 {{W_{T1},W_{T2}}$}

R

(

C

C

)

∈R^{(C*C)}

R(CC)在M1和M2的转置之间进行矩阵乘法,学习不同任务之间的共性。 然后进行softmax 生产互相关权重映射, {

W

S

1

,

W

S

2

{W_{S1},W_{S2}}

WS1,WS2}

R

(

C

C

)

∈R^{(C*C)}

R(CC)。通过可训练的参数λ,融合自相关和互相关权重。得到 {

W

1

,

W

2

{W_{1},W_{2}}

W1,W2}

R

(

C

C

)

∈R^{(C*C)}

R(CC)

W

1

/

2

=

λ

W

T

1

/

T

2

+

(

1

λ

)

W

S

1

/

S

2

W_{1/2} = λW_{T1/T2}+(1-λ)W_{S1/S2}

W1/2=λWT1/T2+(1λ)WS1/S2

将原始特征F映射重排为形状

R

(

C

N

)

R^{(C*N)}

R(CN),其中N = H x W,然后在重塑特征和学习的权重映射之间进行矩阵乘法,来获得每个任务的增强表示,将增强表示与原始F通过残差计算进行融合,防止信息丢失。

尺寸感知注意力网络

在这里插入图片描述

从不同的分辨率聚合特征来获得不同尺寸目标的鲁棒性ID信息表示。 首先,把1/16和1/32尺度(原图的)的特征进行下采样到1/8,然后使用3 x 3的卷积,对重塑的特征进行编码,第二步,为了增强目标相关特征,通过抑制背景噪声,引入空间注意力机制来处理特征,也就是SAM模块。对每一个尺度学习一个空间注意力的mask,对每一个尺度的特征图在空间上做权重调整,使得每一个目标在不同尺度下获得的关注不同,来缓解MOT中目标尺寸变化大和尺寸重叠的问题。 第三步,将不同尺度的特征在通道方向concat连接在一起,通过通道注意力机制学习对每一个特征语义通道的注意力权重,实现对通道注意力的调节。(CAM操作)。最后将点乘上注意力权重的特征图通过卷积操作获得的特征输出E$
∈R^{(512WH)} $,在(x,y)处的目标锚的ReID特征,可以由后续的ReID任务提取。ID训练LOSS和训练方法同JDE相同。

实验

首先,先将JDE的yolov3更换成yolov5,保证有更好的检测精度和更快的速度,

CStrack与其他跟踪器比较,两阶段的方法:DeepSort,RAR 16w VGG,TAP, CNNMTT,POI

一阶段的JDE

非reid方法进行数据关联的联合检测跟踪方法 Ctracker V1,TubeTK,centerTrack

在这里插入图片描述

(a)表示的是GT的检测;(b)表示当前帧检测到的目标的ID Embedding可视化;(c)表示当前帧检测到的目标的ID Embedding两两间的相互关系,其中红色越深表示其关联性越高,理想情况下我们只希望对角线(与它自己)是深红色的,其他地方是深蓝色的;(d)表示目标序列模板的ID Embedding可视化;(e)表示目标序列模板的ID Embedding两两间的相互关系,同(c);(f)表示当前帧检测到的目标的ID Embedding与目标序列模板的ID Embedding之间的匹配关系。
在可视化的时候,红色越深表示的是两个ID embedding的余弦相似性越进,反之蓝色表示两个目标更不相似。在第一个矩阵中,是当前帧的结果自己和自己比较,也就是说如果当前帧有10个检测框,那边就是个10x10的矩阵,那么对角线表示的是目标自己和自己的比较,所以一定是深红色的,其他地方是和其他目标的比较,最理想肯定是要蓝色,要不同目标可以区分开来

CSTrack所获得的ID Embedding无论是目标相互之间的区分性或是匹配性能都优于JDE,同时在密集场景仍然有很高的区分度。在Table 3中可见,在相同的检测情况下,IDF1相比于JDE提高了9个点,同时相比于两阶段的DeepSORT来说,或可以获得略优的性能。

补充

self attention

在这里插入图片描述

self attention 的原始形态是

S

o

f

t

m

a

x

(

X

X

T

)

X

Softmax(XX^T)X

Softmax(XXT)X,

一个矩阵乘以它自己的转置,也就是这个向量与其他向量的内积。内积的几何意义:表两个向量的夹角,表征一个向量在另一个向量上的投影。

在这里插入图片描述

分别与其他的向量做内积,得到一个新的向量,这个新的向量是行向量$x_{i}^T
$在自己和其他行向量上的投影,投影的值越大,表示两个向量的相关性越大。

而$x_{i}^T
$是词向量在高维空间的映射,词向量之间的相关度高,表示在一定程度上,在关注词A的时候,也应该给以词B更多的关注。

S

o

f

t

m

a

x

(

X

X

T

)

X

Softmax(XX^T)X

Softmax(XXT)X,中softmax的意义又是什么呢!

sotfmax之后,这些数字的和为1,归一化之后,当关注“早”这个字的时候,应当分配0.4的注意力给它本身,剩下0.4关注“上”,0.2关注“好”

S

o

t

f

m

a

x

(

X

X

T

)

X

Sotfmax(XX^T)X

Sotfmax(XXT)X中已经理解了一半,那么最后一个X的意义又是什么呢。

还是取之前的“早”经过softmax之后,得到一个行向量,与X列向量相乘,得到新的行向量,且与X的维度相同。 在新的向量中,每一个维度的数值,都是由3个词向量在这一维度的数值加权求和得到的,这个新的行向量就是“早”字词向量经过注意力机制加权求和之后的表示。

版权声明:本文为CSDN博主「顾北轻声寒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gubeiqing/article/details/121335219

顾北轻声寒

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLO-V3-SPP详细解析

YOLO-V3-SPP 继前两篇简单的YOLO博文 YOLO-V1 论文理解《You Only Look Once: Unified, Real-Time Object Detection》YOLO-V2论文理解《YOLO9000: Bet

目标检测部署(卡牌识别)

最近在折腾yolov5,训练了一个识别纸牌的模型,最后使用onnxruntime进行部署,感兴趣的可以上github上clone下来玩玩,模型的权重文件上传到了百度网盘,链接

Yolo(3)(项目)Yolo v3 目标检测(85分类)

目录 基础理论 一、 读取文件 二、神经网络初始化 1、搭建神经网络 2、GPU加速 三、打开摄像头、按帧读取图像 四、向神经网络输入 五、获取神经网络输出 1、获取各层名称 2、获取输出层名称 3、获取输出层图像&#xff