CVPR2020 MOT TubeTK论文解读

链接

论文地址:https://arxiv.org/pdf/2006.05683.pdf
代码:https://github.com/BoPang1996/TubeTK

摘要

Multi-object tracking is a fundamental vision problem that has been studied for a long time. As deep learning brings excellent performances to object detection algorithms, Tracking by Detection (TBD) has become the mainstream tracking framework. Despite the success of TBD, this two-step method is too complicated to train in an end-to-end manner and induces many challenges as well, such as insufficient exploration of video spatial temporal information, vulnerability when facing object occlusion, and excessive reliance on detection results. To address these challenges, we propose a concise end-to-end model TubeTK which only needs one step training by introducing the “bounding-tube” to indicate temporal-spatial locations of objects in a short video clip. TubeTK provides a novel direction of multi-object tracking, and we demonstrate its potential to solve the above challenges without bells and whistles. We analyze the performance of TubeTK on several MOT benchmarks and provide empirical evidence to show that TubeTK has the ability to overcome occlusions to some extent without any ancillary technologies like ReID. Compared with other methods that adopt private detection results, our one-stage end-to-end model achieves state-of-the-art performances even if it adopts no readymade detection results. We hope that the proposed TubeTK model can serve as a simple but strong alternative for videobased MOT task.

TBD(Tracking by detection)的两阶段范式虽然成为主流的框架,但由于两阶段的方式过于复杂,且无法端到端的训练,同时两阶段算法会引入视频时空信息的缺失,面对物体遮挡时过度依赖检测结果(两阶段算法进行目标匹配的关键之一就是必须得先有目标才能匹配,因此如果检测器算法性能不好,在人物被遮挡时无法检测出来,目标就会丢失,无法跟踪)。本文提出一种端到端的模型TubeTK,只需一步训练即可,方法为引入Btube(bounding-bute; 边界管)的概念来表示视频片段中待跟踪目标的时空位置。文中提到TubeTK方法具有有效克服目标遮挡的能力,且无需使用额外的Re-ID技术

一、文章贡献(创新点)

  1. 算法输入为短视频序列,利用3D-ResNet50和3D卷积模块,构建视频中的时空信息。
  2. 采用FCOS结构,将其扩展到3D卷积中,预测Btube结构。该网络由Backbone、FPN、多尺度头构成。多尺度头负责不同尺度的目标,3D网络直接预测Btube。
  3. 实现了不同于CenterTrackTracktorChainedTracker的另一种端到端跟踪模型。

二、具体实现

1. Btube定义

def_Btube

Btube是文中提出的一个网络输出方法。一个Btube可看作 [ t s , t m , t e ] [t_s,t_m,t_e] [ts,tm,te]三个视频帧中的其中一个目标的边界框 [ B s , B m , B e ] [B_s,B_m,B_e] [Bs,Bm,Be]的集合,其中边界框 B ∗ B_* B又包含 [ ( x s 1 , y s 1 ) ; ( x s 2 , y s 2 ) ] [(x_s^1,y_s^1);(x_s^2,y_s^2)] [(xs1,ys1);(xs2,ys2)]的空间位置。之后可通过类似于线性插值的方法生成Btube。因此对于一个Btube,包含十五个自由度,Btube参数如下

{ [ t s , x s 1 , y s 1 , x s 2 , y s 2 ] ; [ t m , x m 1 , y m 1 , x m 2 , y m 2 ] ; [ t e , x e 1 , y e 1 ; x e 2 , y e 2 ] } \left\{ [t_s,x_s^1,y_s^1,x_s^2,y_s^2]; [t_m,x_m^1,y_m^1,x_m^2,y_m^2]; [t_e,x_e^1,y_e^1;x_e^2,y_e^2] \right\} { [ts,xs1,ys1,xs2,ys2];[tm,xm1,ym1,xm2,ym2];[te,xe1,ye1;xe2,ye2]}

思 考 : \color{red}{思考:}
对比Bbox和Btube:通常目标检测算法预测目标的框回归一般为目标的 [ x , y , w , h ] [x,y,w,h] [x,y,w,h]的各种变形,共计4个参数,但Btube预测了当前目标Bm的参数,同时还输出第 t m t_m tm帧之前的第 t s t_s ts帧目标框 B s B_s Bs,输出第 t m t_m tm帧之后的第 t e t_e te帧目标框 B e B_e Be,共计15个参数

在这里插入图片描述

Bounding-box黄色框表示,在没有时间信息的情况下,很难只通过空间框检测出被严重遮挡的目标(框在图像中的位置代表了空间信息;框在整个视频序列中的位置代表了时间信息,一般的只对单帧图像预测目标框的方法未引入时间信息)。Bounding-tube则根据时空特征生成边界管,该边界管同时对目标的空间位置和移动轨迹编码,进而引出TubeTK方法,在面对遮挡时更加鲁棒。

2. 网络结构

通过采用滑动窗口方案,该模型可以在线跟踪。网络由Backbone、FPN、和多尺度的任务头网络组成,总体上就是FCOS的变形,以3D-ResNet作为骨干特征提取网络,后接特征金字塔,对于分类、回归、中心度等多个任务设置任务头。一个3D版本的backbone、一个3D版本的FPN和3D卷积,输入为一段短视频序列,输出为具有多个尺度的基本时空特征组 { G i } \left\{G^i \right\} { Gi}。这里给出FCOS论文中的网络结构图,如图所示。
fcos

3dfcos

可以看出TubeTK网络结构基本和FCOS结构一致。只是改成了3D卷积,为了处理视频序列,得到时空信息。

3. 预测头

每个预测头网络都会生成三个输出图:置信图、回归图和中心度图,与FCOS仍然一致,这三个图的大小相同。模型置信度图反映了是否是行人的分数;回归图需要回归相对的时间和空间位置;中心度图保证边框不过分偏移

4. 训练

4.1 生成GroundTruth

make_GT

  1. 给定视频 V V V相应的真实轨迹,以滑动窗口的方式将它们切成短片段
  2. 将GT轨迹分割成Btube,同时通过IOU阈值保证Btube和原GT足够的贴合,以作为训练时的GT使用。
  3. Btube转换成和网络输出相同的形式,用于训练,如图所示。
    regress

将Btube位置回归14个值:当前帧 B m B_m Bm的四个 [ l m , t m , r m , b m ] [l_m,t_m,r_m,b_m] [lm,tm,rm,bm] B s B_s Bs的四个 [ l s , t s , r s , b s ] [l_s,t_s,r_s,b_s] [ls,ts,rs,bs] B e B_e Be的四个 [ l e , t e , r e , b e ] [l_e,t_e,r_e,b_e] [le,te,re,be],以及 B m B_m Bm离过去帧 B s B_s Bs和未来帧 B e B_e Be管长两个 [ d s , d e ] [d_s,d_e] [ds,de]

4.2 train and test

train_test

  1. 同GT的滑动窗口法一致,对视频序列切片,送入网络。
  2. 经过主干网络提取特征
  3. 经过特征金字塔提取不同尺度的特征
  4. 生成多个预测头
  5. Train: 训练的时候,对Btube 回归(reg)采用GIOU loss(计算体积),对分类(cls)采用Focal loss,对中心度(cent)采用Binary Cross Entropy
  6. Test: 预测的时候,对于输出的前后的两个Btube,采用3DNMS改进为2D的方法,设置两个阈值 γ 1 \gamma^1 γ1 γ 2 \gamma^2 γ2,当 I O U ( B m ( 1 ) , B m ( 2 ) ) > γ 1 & I O U ( B s ′ ( 1 ) , B s ′ ( 2 ) ) > γ 2 & I O U ( B e ′ ( 1 ) , B e ′ ( 2 ) ) > γ 2 IOU(B_m^{(1)},B_m^{(2)})>\gamma^1\&IOU(B_{s^{'}}^{(1)},B_{s^{'}}^{(2)})>\gamma^2\&IOU(B_{e^{'}}^{(1)},B_{e^{'}}^{(2)})>\gamma^2 IOU(Bm(1),Bm(2))>γ1&IOU(Bs(1),Bs(2))>γ2&IOU(Be(1),Be(2))>γ2,其中 s ′ = m a x ( s ( 1 ) , s ( 2 ) ) s^{'}=max(s^{(1)},s^{(2)}) s=max(s(1),s(2)) e ′ = m i n ( e ( 1 ) , e ( 2 ) ) e^{'}=min(e^{(1)},e^{(2)}) e=min(e(1),e(2)) B s ′ B_{s^{'}} Bs通过线性插值生成。主要就是保证两个Btube在关联时的体积重叠率足够高,可认为在空间和时间上属于同一目标

5. 损失函数

损失函数和FCOS没差多少,不过多介绍。

6. 算法整体框架

输入: 对视频序列切分,生成多段短视频,作为整体送入网络。
网络: 网络对短视频段采用3D卷积的方法,基于改进的FCOS,输出预测头。
输出: 预测头共三种,输出类别分数、中心度分数、回归的预测值。
后处理: 对回归的Btube预测值基于IOU做前后帧关联。

三、总结

算法思路很新奇,从3D卷积的角度,考虑到了视频序列与图像帧本质的差别,在训练时融入了时间信息,保证了的时空信息的合理获取。

猜你喜欢

转载自blog.csdn.net/weixin_43913124/article/details/120873370
MOT
今日推荐