Track to Detect and Segment: An Online Multi-Object Tracker

Track to Detect and Segment: An Online Multi-Object Tracker

论文和代码:https://jialianwu.com/projects/TraDeS.html
在交流群里看到作者公布了前段时间收录于CVPR2021的多目标跟踪论文,花了半天的时间看了一下,做个笔记。正片文章最主要的内容在于构建了一个端到端的模型,将跟踪信息用于辅助检测或者分割,在多目标跟踪(MOT)和像素级多目标跟踪(MOTS)上均达到了sota。


Introduction

现如今主流的MOT方法大致分为两种:track-by-detection(TBD)的二阶段方法和joint-detection-and-tracking的单阶段方法。TBD范式的方法将MOT分为两个独立的任务,先用一个现成的检测器检测出图像中的目标,再用其他的网络将其与现有轨迹相连,用的比较多的是Re-ID的网络。这种范式的问题便在检测和跟踪是两个独立的任务,分开训练,并不是一个端到端的模型,无法达到全局的最优解,而且通常来说速度较慢。为了解决这种二阶段带来的弊端,JDE提出了新的joint-detection-and-tracking范式,在一个前向过程中,同时进行检测和外貌特征提取,将MOT做到了端到端实现。
JDE范式依旧存在着问题:(1)虽然在这种范式中,骨干网络是两个任务共享的,但检测依然是独立在外的,没有用到跟踪的信息。作者认为,对于稳定连续的轨迹来说,检测是一个基础,反过来,跟踪线索也将有助于检测,尤其是在目标发生部分遮挡或者运动模糊的情况下;(2)在联合训练检测和跟踪任务时,普通的Re-ID损失和检测损失不太兼容,检测任务的目的是区分目标,使得类间距变大,类内距离缩小,然而Re-ID任务是关注同一类内部的不同之处
出于以上思考,作者提出了一个新的在线跟踪模型TraDeS(Track to Detect and Segment),通过将跟踪的信息反哺给检测以及设计了一个与检测损失较兼容的Re-ID损失,来提升多目标跟踪的效果。整个模型最主要的在于两个模块:CVA(cost volume based association)模块和MFW(motion-guided feature warper)模块。CVA模块构建了一个cost volumn(类似于匹配代价矩阵),存储着两帧的embedding之间的相似度匹配的信息。接着,从cost volumn中推理出一个偏移量,即目标中心在两帧之间的位移。采用这个位移以及embedding,模型进行一个两轮的数据关联。然后,MFW模块通过偏移量,将前一帧的信息融合到当前帧中,以完成检测或者分割。
在CVA模块中,cost volumn用于监督Re-ID embedding的训练,这样目标和背景信息均在考虑的范围内,也就是说Re-ID模块也会考虑类别之间的不同。不仅提高Re-ID embedding的学习,而且在一起训练时不会伤害到检测模块的性能。此外,这里的偏移量是通过两个外貌embedding的之间的相似度学习到的,所以即使当目标有很大程度的移动或者视频帧率很低的时候,偏移量也能匹配到目标。因此,这个偏移量也可以作为稳定的跟踪信息传入到MFW模块中,来提高检测的效果。比如说,在当前帧,某个目标被部分遮挡了,但它在之前肯定是有不被遮挡的时候,将之前帧跟踪的信息融合到当前帧,可以使模型很好地应对这种部分遮挡的情况。


Preliminaries

cost volumn方法在深度估计和光流法中的应用很成熟,一般用于对两帧之间的像素进行关联。作者由此受启发,通过cost volumn来学习外貌embedding和偏移量,实验证明cost volumn是有效的。
TraDeS采用的检测框架为CenterNet,一开始的输入为图像 I ∈ R H × W × 3 \boldsymbol{I} \in\mathbb{R}^{H \times W \times 3} IRH×W×3,由骨干网络提取出的特征为 f ∈ R H F × W F × 64 \boldsymbol{f} \in \mathbb{R}^{H_{F} \times W_{F} \times 64} fRHF×WF×64 H F = H 4 H_{F}=\frac{H}{4} HF=4H W F = W 4 W_{F}=\frac{W}{4} WF=4W。随后,将 f \boldsymbol{f} f输入进几个head,得到分类的中心点热度图 P ∈ R H F × W F × N c l s \boldsymbol{P} \in \mathbb{R}^{H_{F} \times W_{F} \times N_{c l s}} PRHF×WF×Ncls以及其他不同任务需要的特征图(比如用于预测2D或3D的目标大小特征图等等),其中 N c l s N_{c l s} Ncls为目标类别的数量。CenterNet检测器是通过目标的中心点( P \boldsymbol{P} P中的峰值)以及其他分支相应位置的预测来检测目标。和CenterTrack一样,TraDeS也是额外添加了一个预测偏移量的分支来完成跟踪 O B ∈ R H F × W F × 2 \boldsymbol{O}^{B} \in \mathbb{R}^{H_{F} \times W_{F} \times 2} OBRHF×WF×2


TraDeS Tracker

总的来说,作者的目标是想用跟踪的信息来反馈检测的子网络,提出了Cost Volume based Association(CVA)模块来更好的学习Re-ID任务的embedding以及一些目标的运动信息Motion-guided Feature Warper(MFW)模块来对融合之前帧的跟踪信息,以便于更好的进行检测。

Cost Volume based Association

此模块用来学习外貌embedding和偏移量,用来进行数据关联,学到的embedding不仅关注类内的不同,也关注类间的差距,与检测损失兼容性更好,CVA模块还会将跟踪的信息添加到MFW模块以加强检测的性能。
Cost Volume: 假设来自两帧图像的特征分别为 f t \boldsymbol{f}^{t} ft f t − τ \boldsymbol{f}^{t-\tau} ftτ,通过一个简单的Re-ID网络来学习其外貌embedding, e t = σ ( f t ) ∈ R H F × W F × 128 \boldsymbol{e}^{t}=\sigma\left(\boldsymbol{f}^{t}\right) \in \mathbb{R}^{H_{F} \times W_{F} \times 128} et=σ(ft)RHF×WF×128。通过两个embedding,构造一个cost volumn矩阵来存储两帧之间点与点之间的匹配相似度信息。为了更好的计算cost volumn矩阵,现将得到的embedding下采样两倍,得到 e ′ ∈ R H C × W C × 128 \boldsymbol{e}^{\prime} \in \mathbb{R}^{H_{C} \times W_{C} \times 128} eRHC×WC×128 H C H_C HC W C W_C WC很明显就是 H F H_F HF W F W_F WF的一半。通过以下公式进行计算: C i , j , k , l = e i , j ′ t e k , l t − τ ⊤ C_{i, j, k, l}=\boldsymbol{e}_{i, j}^{\prime t} \boldsymbol{e}_{k, l}^{t-\tau \top} Ci,j,k,l=ei,jtek,ltτ得到最终的cost volumn矩阵 C ∈ R H C × W C × H C × W C \boldsymbol{C} \in \mathbb{R}^{H_{C} \times W_{C} \times H_{C} \times {W}_{C}} CRHC×WC×HC×WC C i , j , k , l C_{i,j,k,l} Ci,j,k,l代表着 t t t时刻的 ( i , j ) (i,j) (i,j)点与 t − τ t-\tau tτ时刻的 ( k , l ) (k,l) (k,l)点之间的相似度。这里的一个点,也就是上面公式里的 e i , j ′ t \boldsymbol{e}_{i, j}^{\prime t} ei,jt,代表原embedding里 ( i , j ) (i,j) (i,j)位置的所有通道的值,是个一维向量。
Tracking Offset: 在上面 C \boldsymbol{C} C的基础上,计算所有 t t t时刻点到 t − τ t-\tau tτ时刻相应位置的偏移量 O ∈ R H C × W C × 2 \boldsymbol{O} \in \mathbb{R}^{H_{C} \times W_{C} \times 2} ORHC×WC×2
假设现在要计算目标 x x x的偏移量,其 t t t时刻的中心点的位置为 ( i , j ) (i,j) (i,j),那么便可以找到其在 C \boldsymbol{C} C中对应的一个两维的cost volumn图 C i , j ∈ R H C × W C \boldsymbol{C}_{i, j} \in \mathbb{R}^{H_{C} \times W_{C}} Ci,jRHC×WC C i , j \boldsymbol{C}_{i, j} Ci,j里是目标 x x x的中心点与 t − τ t-\tau tτ时刻所有点的匹配相似度。在拿到 C i , j \boldsymbol{C}_{i, j} Ci,j之后,(1)将 C i , j \boldsymbol{C}_{i, j} Ci,j进行两个方向的最大值池化,
池化核大小分别为 H C × 1 H_{C} \times 1 HC×1 1 × W C 1 \times W_{C} 1×WC,然后再接softmax函数,得到两个向量 C i , j W ∈ [ 0 , 1 ] 1 × W C \boldsymbol{C}_{i, j}^{W} \in[0,1]^{1 \times W_{C}} Ci,jW[0,1]1×WC C i , j H ∈ [ 0 , 1 ] H C × 1 \boldsymbol{C}_{i, j}^{H} \in[0,1]^{H_{C} \times 1} Ci,jH[0,1]HC×1这两个向量分别代表着目标 x x x的中心点在 t − τ t-\tau tτ时刻中的水平和垂直位置的可能性。(2)定义了水平和垂直方向的两个偏移量模板, M i , j ∈ R 1 × W C \boldsymbol{M}_{i, j} \in \mathbb{R}^{1 \times W_{C}} Mi,jR1×WC V i , j ∈ R H C × 1 \boldsymbol{V}_{i, j} \in \mathbb{R}^{H_{C} \times 1} Vi,jRHC×1,计算方法如下: { M i , j , l = ( l − j ) × s 1 ≤ l ≤ W C V i , j , k = ( k − i ) × s 1 ≤ k ≤ H C \left\{\begin{array}{ll} M_{i, j, l}=(l-j) \times s & 1 \leq l \leq W_{C} \\ V_{i, j, k}=(k-i) \times s & 1 \leq k \leq H_{C} \end{array}\right. {Mi,j,l=(lj)×sVi,j,k=(ki)×s1lWC1kHC其中 s s s e ′ e^{\prime} e的步长(推测应该就是下采样倍数,即当前特征图一个像素在原来的图像中代表多远)。 M i , j , l M_{i, j, l} Mi,j,l即为目标 x x x出现在 t − τ t-\tau tτ时刻的 ( ∗ , l ) (*, l) (,l)位置的水平位移。最终,偏移量的计算为: O i , j = [ C i , j H ⊤ V i , j , C i , j W M i , j ⊤ ] ⊤ \boldsymbol{O}_{i, j}=\left[\boldsymbol{C}_{i, j}^{H \top} \boldsymbol{V}_{i, j}, \boldsymbol{C}_{i, j}^{W} \boldsymbol{M}_{i, j}^{\top}\right]^{\top} Oi,j=[Ci,jHVi,j,Ci,jWMi,j]类似于从1到 W C W_C WC的对 C i , j H \boldsymbol{C}_{i, j}^{H} Ci,jH的积分。得到 O \boldsymbol{O} O后,再将其上采样2倍,得到 O C ∈ R H F × W F × 2 \boldsymbol{O}^{C} \in \mathbb{R}^{H_{F} \times W_{F} \times 2} OCRHF×WF×2。这就是最终的偏移量,也会输入到MFW模块用于之后帧的检测。
Training: 由于之前的普通Re-ID损失注重类内不同,与检测损失不是很兼容,所以作者提出用cost volumn来监督网络的学习。所以作者设定,当 t t t时刻的点 ( i , j ) (i,j) (i,j)出现在 t − τ t-\tau tτ时刻的 ( k , l ) (k,l) (k,l)位置时,令 Y i , j , k , l = 1 Y_{i,j,k,l}=1 Yi,j,k,l=1,否则 Y i , j , k , l = 0 Y_{i,j,k,l}=0 Yi,j,k,l=0。CVA模块的损失定义为: L C V A = − 1 ∑ i j k l Y i j k l ∑ i j k l { α 1 log ⁡ ( C i , j , l W ) + α 2 log ⁡ ( C i , j , k H )  if  Y i j k l = 1 0  otherwise  L_{C V A}=\frac{-1}{\sum_{i j k l} Y_{i j k l}} \sum_{i j k l}\left\{\begin{array}{cl} \alpha_{1} \log \left(C_{i, j, l}^{W}\right) +\alpha_{2} \log \left(C_{i, j, k}^{H}\right) & \text { if } Y_{i j k l}=1& \\ 0 & \text { otherwise } \end{array}\right. LCVA=ijklYijkl1ijkl{α1log(Ci,j,lW)+α2log(Ci,j,kH)0 if Yijkl=1 otherwise 其中, α 1 = ( 1 − C i , j , l W ) β \alpha_{1}=\left(1-C_{i, j, l}^{W}\right)^{\beta} α1=(1Ci,j,lW)β α 2 = ( 1 − C i , j , k H ) β \alpha_{2}=\left(1-C_{i, j, k}^{H}\right)^{\beta} α2=(1Ci,j,kH)β,不难看出这是两个方向上的focal loss形式的逻辑回归损失, β \beta β即为focal loss中的超参数。由于 C i , j , l W C_{i, j, l}^{W} Ci,j,lW C i , j , k H C_{i, j, k}^{H} Ci,j,kH是由softmax函数计算得到,所以其中并不只是包含了位置 ( i , j ) (i,j) (i,j)和位置 ( k , l ) (k,l) (k,l)之间的相似度信息,还包含了 ( i , j ) (i,j) (i,j)和前一帧中其他点的相似度信息,所以 C i , j , l W C_{i, j, l}^{W} Ci,j,lW C i , j , k H C_{i, j, k}^{H} Ci,j,kH向着1的方向进行优化时,可以使得目标不仅更加靠近前一帧中的自己,还能使得目标和其他目标以及背景之间的区别更大

Motion-guided Feature Warper

MFW模块旨在采用CVA模块得到的偏移量 O C O^{C} OC作为跟踪信息,用过可变卷积将前几帧的信息传播到当前帧,使得在当前帧进行的检测更加准确
Temporal Propagation: O C O^{C} OC送入一个3*3的卷积后,得到 O D ∈ R H F × W F × 2 K 2 \boldsymbol{O}^{D} \in \mathbb{R}^{H_{F} \times W_{F} \times 2 K^{2}} ODRHF×WF×2K2作为DCN要使用的偏移量, K K K为DCN卷积核的宽或高。为了获得更多的跟踪上的信息,将 f t − f t − τ \boldsymbol{f}^{t}-\boldsymbol{f}^{t-\tau} ftftτ也作为输入,与 O C O^{C} OC一起进行卷积。由于TraDeS的检测或者分割是基于目标中心点的,所以直接对 f t − τ \boldsymbol{f}^{t-\tau} ftτ进行卷积不是很适合。作者想要对 f t − τ \boldsymbol{f}^{t-\tau} ftτ进行一个类似中心点的注意力操作,先从 P t − τ \boldsymbol{P}^{t-\tau} Ptτ中提取到 P a g n t − τ ∈ R H F × W F × 1 \boldsymbol{P}_{a g n}^{t-\tau} \in \mathbb{R}^{H_{F} \times W_{F} \times 1} PagntτRHF×WF×1,压缩 P t − τ \boldsymbol{P}^{t-\tau} Ptτ中的通道维度,因为并不需要其中的类别信息。提取到 P a g n t − τ \boldsymbol{P}_{a g n}^{t-\tau} Pagntτ后,通过以下方法来得到改善后的 f ‾ q t − τ \overline{\boldsymbol{f}}_{q}^{t-\tau} fqtτ
f ‾ q t − τ = f q t − τ ∘ P a g n t − τ , q = 1 , 2 , … , 64 \overline{\boldsymbol{f}}_{q}^{t-\tau}=\boldsymbol{f}_{q}^{t-\tau} \circ \boldsymbol{P}_{a g n}^{t-\tau}, \quad q=1,2, \ldots, 64 fqtτ=fqtτPagntτ,q=1,2,,64其中的 ∘ \circ 为Hadamard积,即按位相乘。最终用于增强检测任务的特征便为: f ^ t − τ = D C N ( O D , f ‾ t − τ ) ∈ R H F × W F × 64 \hat{\boldsymbol{f}}^{t-\tau}=D C N\left(\boldsymbol{O}^{D}, \overline{\boldsymbol{f}}^{t-\tau}\right) \in \mathbb{R}^{H_{F} \times W_{F} \times 64} f^tτ=DCN(OD,ftτ)RHF×WF×64
Feature Enhancement: 有了之前帧的信息,在当前帧被遮挡的目标,便更容易被检测出来了。为了提高鲁棒性,作者融合了前 T T T帧的信息: f ~ q t = w t ∘ f q t + ∑ τ = 1 T w t − τ ∘ f ^ q t − τ , q = 1 , 2 , … , 64 \tilde{\boldsymbol{f}}_{q}^{t}=\boldsymbol{w}^{t} \circ \boldsymbol{f}_{q}^{t}+\sum_{\tau=1}^{T} \boldsymbol{w}^{t-\tau} \circ \hat{\boldsymbol{f}}_{q}^{t-\tau}, \quad q=1,2, \ldots, 64 f~qt=wtfqt+τ=1Twtτf^qtτ,q=1,2,,64其中, w t ∈ R H F × W F × 1 \boldsymbol{w}^{t} \in \mathbb{R}^{H_{F} \times W_{F} \times 1} wtRHF×WF×1 t t t时刻的权重, ∑ τ = 0 T w i , j t − τ = 1 \sum_{\tau=0}^{T} \boldsymbol{w}_{i, j}^{t-\tau}=1 τ=0Twi,jtτ=1,与Learning Spatial Fusion for Single-Shot Object Detection中类似, w \boldsymbol{w} w是自适应的,通过两层卷积和softmax函数预测得到。作者实验证明,这种自适应的权重比平均求和的效果好一点。融合之后的特征 f ~ q t \tilde{\boldsymbol{f}}_{q}^{t} f~qt输入到网络的head中,用来预测当前帧的检测框或者分割掩膜,有效地恢复消失的目标,降低FN,得到更高的MOTA和IDF1,使得轨迹更完整。

Tracklet Generation

图1
上图是TraDeS的整体结构(一眼看上去还是挺复杂的……但图画得好啊)。MFW模块输出融合后的特征 f ~ q t \tilde{\boldsymbol{f}}_{q}^{t} f~qt后,将其输入进网络的各个head,预测出当前帧的2Dbbox或者3Dbbox等等,再与之前的轨迹进行关联。
Head Networks: 网络的每个head均由几层轻量级的卷积层组成。对于目标检测,head采用与CenterNet一致的设计,对于实例分割,采用与CondInst相同的设计。
Data Association: 得到检测或者分割的结果后,作者设计了一个两轮的数据关联,将其与之前的轨迹相连。第一步,将新的结果与上一帧中以 ( i , j ) + O i , j C (i, j)+\boldsymbol{O}_{i, j}^{C} (i,j)+Oi,jC为圆心, r r r为半径的圆中未匹配的最相近的检测进行关联,作者设定的 r r r为检测bbox的宽与高的均值。第二步,如果在第一步中,新结果并没有得到任何的匹配,便计算其与所有未匹配到的以及历史中的轨迹的embedding之间的余弦相似度,如果最高的相似度高于阈值(文中设为0.3),则将其与最高得分的轨迹相连。两轮匹配后,若新的检测或分割依旧没有匹配到轨迹,则将其设为新开始的轨迹。
TraDeS Loss: 整个结构的总损失函数为: L = L C V A + L d e t + L m a s k L=L_{C V A}+L_{d e t}+L_{m a s k} L=LCVA+Ldet+Lmask L C V A L_{C V A} LCVA为CVA模块的损失,上文已经给出, L d e t L_{d e t} Ldet L m a s k L_{m a s k} Lmask推测应该就是CenterNet与CondInst中的损失相同,还没看过源码。之前有人在群里问作者,这里的检测和分割损失为何会加在一起,作者的回答是这里的检测和分割任务其实是并行的,两者之间并没有关系,都用到了前面跟踪的信息,只是为了实验一下文章的idea是否也适用于分割级别的多目标跟踪。如果单独做检测的话,分割分支和损失应该可以直接去除。


实验

图2
这是评估各个模块效果的实验结果。两个模块效果均挺好,尤其是加了CVA模块后,IDS下降了很多。
图3
CVA模块与数据关联的第二步均能有效的降低IDS。
图4
是否采用偏移量的对比实验,可以看出,添加了偏移量之后的MOTA和IDF1指标均有所上升。
图5
上表是TraDeS与近几年来的sota跟踪器之间的对比,在MOTA、IDF1指标上均比用来对比的其他检测器高,在FP、FN指标上也是,也有很低的IDS,最终生成的轨迹的完整度也超过其他的检测器。证明了采用跟踪的信息,是可以很大程度上提高检测的效果的,最明显的一点就是对当前帧被遮挡,而在之前帧未被遮挡的目标的检测更加容易更加准确。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值