MOT论文阶段性总结(二)

多模态 MOT 专栏收录该内容
3 篇文章 1 订阅

Detect to Track and Track to Detect

贡献:

  1. 设计了一个架构同时进行检测和跟踪
  2. 提出了一种correlation feature用来表达物体的多帧出现进而提升tracking性能
  3. 用tracking的结果在video的层面上使detection的结果提升

方法:

2D detection and tracking 互相refine
在这里插入图片描述

Detect to track

  1. 对于每一帧来说:
    利用 R-FCN 进行detection, 重点要搞懂什么是 position-sensitive RoI pooling layer, 方法可见: R-FCN 详解. 如果没兴趣也可以不看,知道是个前端检测器能检测出class, 回归出bounding box的尺寸就行.
    RoI pooling layer的输入是卷积层输出的feature x c l s t x_{cls}^t xclst x r e g t x_{reg}^t xregt, 实际这看着像一个网络,但是是sibling的结构, 只是画的简单罢了.

  2. 对于帧间来说:
    类似于FlowNet (corr版本) 的操作, 将两帧经由卷积提取的 feature { x r e g t , x r e q t + τ } \left\{\mathbf{x}_{r e g}^{t}, \mathbf{x}_{r e q}^{t+\tau}\right\} {xregt,xreqt+τ} 送入 RoI pooling layer 输出bbox的变换 Δ t + τ = ( Δ x t + τ , Δ y t + τ , Δ w t + τ , Δ h t + τ ) \Delta^{t+\tau}=\left(\Delta_{x}^{t+\tau}, \Delta_{y}^{t+\tau}, \Delta_{w}^{t+\tau}, \Delta_{h}^{t+\tau}\right) Δt+τ=(Δxt+τ,Δyt+τ,Δwt+τ,Δht+τ).

有了前两步, 就可以构造一个 track (object tube), 定义一个 detection 为 D i t , c = { x i t , y i t , w i t , h i t , p i , c t } D_{i}^{t, c}=\left\{x_{i}^{t}, y_{i}^{t}, w_{i}^{t}, h_{i}^{t}, p_{i, c}^{t}\right\} Dit,c={xit,yit,wit,hit,pi,ct}, i 是 index, 参数分别对应中心点坐标, bbox 长宽和 classification 的概率. 类似定义一个 track 为 T i t , t + τ = { x i t , y i t , w i t , h i t ; x i t + Δ x t + τ , y i t + Δ y t + τ , w i t + Δ w t + τ , h i t + Δ h t + τ } T_{i}^{t, t+\tau}=\left\{x_{i}^{t}, y_{i}^{t}, w_{i}^{t}, h_{i}^{t} ; x_{i}^{t}+\Delta_{x}^{t+\tau}, y_{i}^{t}+\right. \left.\Delta_{y}^{t+\tau}, w_{i}^{t}+\Delta_{w}^{t+\tau}, h_{i}^{t}+\Delta_{h}^{t+\tau}\right\} Tit,t+τ={xit,yit,wit,hit;xit+Δxt+τ,yit+Δyt+τ,wit+Δwt+τ,hit+Δht+τ}, 代表 t 时间的一个物体和它 bbox 的变换, 然后定义一个link得分:
s c ( D i , c t , D j , c t + τ , T t , t + τ ) = p i , c t + p j , c t + τ + ψ ( D i t , D j , T t , t + τ ) s_{c}\left(D_{i, c}^{t}, D_{j, c}^{t+\tau}, T^{t, t+\tau}\right)=p_{i, c}^{t}+p_{j, c}^{t+\tau}+\psi\left(D_{i}^{t}, D_{j}, T^{t, t+\tau}\right) sc(Di,ct,Dj,ct+τ,Tt,t+τ)=pi,ct+pj,ct+τ+ψ(Dit,Dj,Tt,t+τ)
其中, ψ ( D i , c t , D j , c t + τ , T t , t + τ ) = { 1 ,  if  D i t , D j t + τ ∈ T t , t + τ 0 ,  otherwise  \psi\left(D_{i, c}^{t}, D_{j, c}^{t+\tau}, T^{t, t+\tau}\right)=\left\{\begin{array}{ll}1, & \text { if } D_{i}^{t}, D_{j}^{t+\tau} \in T^{t, t+\tau} \\ 0, & \text { otherwise }\end{array}\right. ψ(Di,ct,Dj,ct+τ,Tt,t+τ)={1,0, if Dit,Djt+τTt,t+τ otherwise , 判定为1的标准是计算 T t , t + τ T^{t, t+\tau} Tt,t+τ D i t D_{i}^{t} Dit D j t + τ D_{j}^{t+\tau} Djt+τ的 IoU, 大于一个threshold (我的理解就是track到一起了).

Track to detect

最优化得分:
D ˉ c ∗ = argmax ⁡ D ˉ 1 T ∑ t = 1 T − τ s c ( D t , D t + τ , T t , t + τ ) \bar{D}_{c}^{*}=\underset{\bar{D}}{\operatorname{argmax}} \frac{1}{\mathcal{T}} \sum_{t=1}^{\mathcal{T}-\tau} s_{c}\left(D^{t}, D^{t+\tau}, T^{t, t+\tau}\right) Dˉc=DˉargmaxT1t=1Tτsc(Dt,Dt+τ,Tt,t+τ)
通过 Viterbi algorithm 可以得到 refine 后的 detection.

Tracking Objects as Points (CenterTrack)

贡献:

  1. point-based tracking
  2. 同样结合了detection和tracking (类似Tracktor)
  3. 效果sota

方法:

基于camera的 2D/3D tracking ( nuScenes 的 benchmark上见到了他的camera+LiDAR的版本, 文章没有介绍)
在这里插入图片描述
思想和 Tracktor的很类似, 直接利用检测器进行tracking的任务,文章里用的 CenterNet, 是作者的早期工作. 文章有个很重要的假设: 如果物体离开frame或者被遮挡后重新出现会分配个新的ID!! (原文: when an object leaves the frame or is occluded and reappears, it is assigned a new identity)(不知道后面的策略是否合理??)

CenterTrack思路上保持为Tracktor的风格, 方法上参考了optical flow, 和Detect to Track and Track to Detect的想法相似, 但是采用的是类似一种稀疏光流预测, 具体而言, 会预测一个offset, 通过真值的 displacement 来监督:
L o f f = 1 N ∑ i = 1 N ∣ D ^ p i ( t ) − ( p i ( t − 1 ) − p i ( t ) ) ∣ L_{o f f}=\frac{1}{N} \sum_{i=1}^{N}\left|\hat{D}_{\mathbf{p}_{i}^{(t)}}-\left(\mathbf{p}_{i}^{(t-1)}-\mathbf{p}_{i}^{(t)}\right)\right| Loff=N1i=1ND^pi(t)(pi(t1)pi(t))
匹配策略是将这一帧中的这个物体匹配之前帧中最近的offset过以后的物体上(For each detection at position p ^ \hat{p} p^, we greedily associate it with the closest unmatched prior detection at position p ^ − D ^ p ^ \hat{p}-\hat{D}_{\hat{p}} p^D^p^, in descending order of confidence w ^ \hat{w} w^.), 如果offset之后周围(由一个参数决定)没有物体,就认为这个物体是新的track.

该方法做了很多数据集上的实验,表现都很好, 3D tracking的实现是基于CenterNet的3D版本之上做的.

Track to Reconstruct and Reconstruct to Track (MOTSFusion)

贡献:

  1. 实现了一种 long-term tracking, 利用reconstruction来refine tracking任务
  2. 通过reconstruction获得物体的3D 运动信息,进而利用运动信息恢复检测丢失的情况
  3. 效果sota

方法:

多模态 2D/3D tracking 和 reconstruction 互相 refine

在这里插入图片描述
该方法由KITTI在CVPR2019上公布的新benchmark multi-object tracking and segmentation 得来
Input: ①深度图 (可由各种传感器获得: DispNet3 LiDAR RADAR SfM monocular)(论文里用的是LiDAR和image的估计),②相机pose( SLAM GPS IMU),③光流估计(DispNet3) ,④检测器(RRC+TrackR-CNN)

Track to Reconstruct

2D segmentation & Tracking: 从video中检测bbox并分割内部物体得到mask, 通过光流估计可以获得2D motion的连续性(通过warp之后的IoU判断),从而generate一系列的short tracklets,再利用Hungarian algorithm进行tracklets和下一帧中的mask的assign过程
没有assign的mask将会成为一个新的track
3D Reconstruction Tracking: 分为两步: ① 4D重建场景(此时应该包括一系列没有merge的tracklets) ②通过估计一个3-DoF的transformation (kitti场景比较简单所以自由度被简化) 来align两个被检测到的点云. 如果能小于一个阈值就认为能是一个物体 [ 对于一个刚性物体而言,一定会有一系列的pose变换使得这些来自不同视角的点云拼成一个连续的物体(consistent 3D reconstruction) ]

Reconstruct to Track

4D Dynamic Scene Reconstruction: ① 两个tracklet之间motion的连贯性决定tracklets是否是同一个物体并且是否应该被merge在一个track里 (the 3D motion consistency of two track- lets is given by the average Mahalanobis distance of these 3D position estimates weighted by their respective uncertainties from the covariances Σ)② 检测漏检恢复

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值