Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记

JDE阅读笔记

    • (一)Title
    • (二)Summary
    • (三)Research Problem
    • (四)Problem Statement
    • (五)Method
      • 5.1 将Detection和Embedding Problem Settting进行联合学习
    • 5.2 整体框架
      • 5.3 Detection 部分
      • 5.4 Appearance Embeddings学习
      • 5.5 自动进行Loss的balance
      • 5.6 在线association
    • (六)Experiement
      • 6.1 数据集以及评价指标
      • 6.2 实现的细节
      • 6.3 实验1 对3种损失 L C E , L u p p e r , L t r i p l e t \mathcal{L}_{C E},\mathcal{L}_{u p p e r},\mathcal{L}_{triplet} LCELupperLtriplet比较
      • 实验2 考虑不同的损失加权策略
      • 实验3 和SDE方法的比较
      • 实验4 和state-of-art 的MOT系统进行比较
      • 分析讨论
    • (七)Conclusion
    • (八)Notes
      • 8.1 Modern multiple object tracking(MOT)系统 paradigm
      • 8.2 Multiple Object Tracking的recent进展
      • 8.3 Person search task

(一)Title

Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第1张图片

前言:从之前的文献中,大致了解到这篇文献是在YOLOv3的基础上进行的跟踪任务,我们希望能够基于YOLOv3做一部分的跟踪工作,因此,打算对当前的论文记录一个阅读笔记。

论文地址:https://arxiv.org/pdf/1909.12605v1.pdf

代码地址:https://github.com/Zhongdao/Towards-Realtime-MOT

数据集地址:https://github.com/Zhongdao/Towards-Realtime-MOT/blob/master/DATASET_ZOO.md
前言:这篇文章关于整体MOT任务的描述很清楚,同时在实验设计上很详尽,感觉这个实验的设计真的是一门艺术啊,如何利用详尽并且合理的实验来说明问题。

(二)Summary

背景介绍,目前主要存在的问题

目前Modern Multiple Object tracking(MOT)系统往往由detection model和用于数据关联(data association)的appearance embedding model组成,并且一些实时的MOT研究实际上仅仅是实时的association methods。

我们的主要工作

我们提出了一个MOT系统,在a shared model上同时进行object detection以及appearance embedding,使得网络能够同时输出detections以及对应的embeddings。
我们系统的特殊之处:
整体是一个多任务学习(Multi-task learning problem)问题:anchor classification(锚框分类问题),bounding box regression(边界框回归问题),embedding learning(appearance 特征学习),并且individual losses are automatically weighted。

性能表现

first near real-time MOT系统,运行速度根据输入分辨率的不同在18.8 到 24.1 FPS之间,
tracking accuracy 和state-of-art的two-step MOT系统相当,

本文的主要贡献

  • 以single-shot框架的方式实现了同时进行detection以及embedding learning。达到了和SDE方法State-of-art的性能表现。在速度和效果上都要好。
  • 从多个方面考虑问题:训练数据,网络框架,学习目标以及优化策略。

(三)Research Problem

为了解决SDE(Separate Detection and Embedding)问题带来的计算复杂度问题,将detector和embedding model集成到一个single网络当中,这两个任务能够共享同一组低级特征,从而避免重复计算,一种联合detector和embedding学习的做法是采用Faster-RCNN框架:在first stage,RPN和Faster R-CNN的框架相同,可以输出detected bounding boxes。在second stage,将classification supervision使用metric learning supervision进行替换,从而转换成一个embedding learning model,但是这种仍然是two-stage的设计,10 FPS,远远没有达到实时运行的需要,而且,随着目标数量的增加,第二个stage的运行时间也会相应的增加。

JDE中尝试使用单个网络来同时输出检测结果和检测到的box的appearance embeddings,相比之下,SDE以及two-stage方法分别重新采样pixel和feature maps,bounding boxes以及feature maps同时输入到一个separate Re-ID模型中用于appearance 特征的提取。并且在速度和效果上我们的JDE方法是要优于SDE方法以及two-stage方法的。
我们JDE方法和SDE方法以及two-stage方法之间的差别:

Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第2张图片
从上图中可以看出,我们的SDE方法在单个网络上同时输出detection results以及对用的embedding feature。

作者在本文中精心设计了:training data,network architecture,learning objectives,optimization strategies,以及validation metrics。

  • 搜索了6个公开的行人检测和人物搜索数据集,形成一个large-scale multi-label dataset。
  • 在统一的数据集中,所有的行人边界框都进行了标注,只有一部分的行人identities 进行了标注
  • 作者这里选择FPN作为base architecture
  • 讨论了哪一种的损失函数能够使网络学习到最好的embeddings
  • 将训练过程建模成一个多任务学习问题:anchor classification, box regression, embedding learning, 为了平衡每一个任务的重要性,作者这里采用task-dependent uncertainty 来动态地加权异质性损失,这个操作真的是秀儿
  • 采用AP来评估检测器的performance,采用在certain False Alarm Rate(FAR)率下的retrieval metric(检索度量)True Accept Rate(TAR)来评估embedding的质量。整体的MOT准确率是通过CLEAR度量,尤其是MOTA度量进行评估。

(四)Problem Statement

如何利用单个框架同时实现目标检测任务以及appearance embedding任务,是作者需要解决的问题,首先这是一个多任务的学习问题,需要确定appearance embedding任务的损失函数,同时需要确定多任务学习各个任务之间损失的一个权重,是当前网络需要解决的两个方法。作者基于面临的问题进行了对比实验的设计,同时和SDE以及State-of-art之间进行了详尽的比较,凸显了JDE在能够达到相当精度的前提下,整个MOT系统具有能够接近实时运行的能力。

(五)Method

5.1 将Detection和Embedding Problem Settting进行联合学习

JDE的目的是在一次forward中输出目标的Location以及appearance embeddings。
一个训练集 { I , B , y } i = 1 N \{\mathbf{I}, \mathbf{B}, \mathbf{y}\}_{i=1}^{N} {I,B,y}i=1N,其中 I ∈ R c × h × w \mathbf{I} \in \mathbb{R}^{c \times h \times w} IRc×h×w表示为一个图像帧, B ∈ R k × 4 \mathbf{B} \in \mathbb{R}^{k \times 4} BRk×4表示图像帧中第 k k k个目标的box annotations 标签。最后的 y ∈ Z k \mathbf{y} \in \mathbb{Z}^{k} yZk表示部分注释的身份标签(identity label),如果为-1,则表示没有身份标签。因此,对于JDE的输出为预测的目标的location信息 B ^ ∈ R k ^ × 4 \hat{\mathbf{B}} \in \mathbb{R}^{\hat{k} \times 4} B^Rk^×4以及目标的appearance embedding 信息 F ^ ∈ R k ^ × D \hat{\mathbf{F}} \in \mathbb{R}^{\hat{k} \times D} F^Rk^×D,其中 D D D表示embedding的维度。

在JDE中需要满足下面的目标:

  • B ^ \hat \mathbf B B^要和真实的标签 B \mathbf B B足够接近
  • 给出一个距离度量函数 d ( ⋅ ) d(\cdot) d(),任意给出3个目标 ( k t , k t + Δ t , k t + Δ t ′ ) \left(k_{t}, k_{t+\Delta t}, k_{t+\Delta t}^{\prime}\right) (kt,kt+Δt,kt+Δt),其中3个目标对应的身份id分别为: y k t , y k t + Δ t , y k t + Δ t ′ \mathbf{y}_{k_t},\mathbf{y}_{k_{t+\Delta t}},\mathbf{y}_{k_{t+\Delta t}^{\prime}} ykt,ykt+Δt,ykt+Δt,并且有 y k t + Δ t ′ ≠ y k t \mathbf{y}_{k_{t+\Delta t}^{\prime}} \neq \mathbf{y}_{k_{t}} ykt+Δt=ykt y k t + Δ t = y k t \mathbf{y}_{k_{t+\Delta t}}=\mathbf{y}_{k_{t}} ykt+Δt=ykt成立。我们希望度量函数能够满足 d ( f k t , f k t + Δ t ) < d ( f k t , f k t + Δ t ′ ) d\left(f_{k_{t}}, f_{k_{t+\Delta t}}\right)d(fkt,fkt+Δt)<d(fkt,fkt+Δt)成立,其中 f k t f_{k_{t}} fkt是从 t t t时刻的Embedding向量 F ^ t \hat{\mathbf{F}}_{t} F^t搞出来的, f k t + Δ t , f k t + Δ t ′ f_{k_{t+\Delta t}}, f_{k_{t+\Delta t}^{\prime}} fkt+Δt,fkt+Δt都是从 t + Δ t t+\Delta t t+Δt时刻的Embedding 向量 F ^ t + Δ t \hat{\mathbf{F}}_{t+\Delta t} F^t+Δt中搞出来的。

在连续帧中相同identity之间和不同identity之间相比的距离应该更小,这里的距离度量可以使用欧几里得距离或者是余弦距离。从技术上价讲,只要上述的两个条件均满足的话,即使使用简单的关联策略(association strategy),例如匈牙利算法,也会产生良好的跟踪结果。

5.2 整体框架

Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第3张图片

  • 使用FPN结构预测multiple scales,从而在行人检测尺度变化较大的情况下得到改善
  • video frame经过backbone进行forward,得到3个尺度的特征图,分别为 1 32 , 1 16 , 1 8 \frac{1}{32},\frac{1}{16},\frac{1}{8} 321,161,81下采样,接着将最小尺寸(具有最强语义特征)的特征图进行上采样,并通过skip-connection和来自第二个尺度的特征图进行融合,
  • 在FPN后端堆叠Prediction Head,其中Prediction Head的输出大小为 ( 6 A + D ) × H × W (6 A+D) \times H \times W (6A+D)×H×W,其中 A A A为是分配给该比例的anchor templates的数量, D D D是embedding的维度

    这里可以将预测的dense prediction map分成3个部分:
    box 类别结果 2 A × H × W 2A \times H \times W 2A×H×W,这里为什么预测的类别结果是2?
    box 回归的尺寸大小 4 A × H × W 4A \times H \times W 4A×H×W
    box 对应的dense embedding map大小 D × H × W D \times H \times W D×H×W

5.3 Detection 部分

detection branch和标准的RPN非常接近,在本文中,作者针对当前的目标重新设计预设anchor,包括anchor的数量,scales,以及aspect ratios,从而达到适应本文中应用的目的。

关于预测anchor的设置情况为:所有anchors长宽比设置为1:3,anchor 模板的数量设置为12,因此,对于每一个尺度来说,都有 A = 4 A=4 A=4个anchor,anchor的scales从 11 ≈ 8 × 2 1 / 2 11 \approx 8 \times 2^{1 / 2} 118×21/2 512 ≈ 8 × 2 12 / 2 512 \approx 8 \times 2^{12 / 2} 5128×212/2

同时对于设置为foreground和background的阈值同样也是一个超参数,这里作者设置前景的阈值为 I O U > 0.5 \mathrm{IOU}>0.5 IOU>0.5,和一般的目标检测任务相同,对于背景的阈值设置,作者这里设置 I O U < 0.4 \mathrm{IOU}<0.4 IOU<0.4作为负样本,而不是在generic scenarios中采用的0.3。

通过设置这两个阈值,能够有效地抑制false alarms(通常发生在严重遮挡的情况下)

detection部分的目标有两个,首先是foreground/background类别损失 L α \mathcal{L}_{\alpha} Lα,这里使用的是交叉熵损失,以及bounding box的回归损失 L β \mathcal{L}_{\beta} Lβ,这里使用的是smooth-L1 损失。

5.4 Appearance Embeddings学习

目标跟踪中的关键问题就是这个appearance embedding学习问题,也就是学习某种映射函数,使得具有相同identity的bounding box之间距离较近,而具有不同identities的bounding box之间距离较远。
这里作者使用的损失函数为:triplet loss

triplet loss在 之前MOT工作的也被使用了。
这里作者triplet loss的表示形式为:
L triplet  = max ⁡ ( 0 , f ⊤ f − − f ⊤ f + ) \mathcal{L}_{\text {triplet }}=\max \left(0, f^{\top} f^{-}-f^{\top} f^{+}\right) Ltriplet =max(0,ffff+)
其中 f ⊤ f^{\top} f是mini-batch中被选来作为anchor的一个instance。(没明白说的是啥啊), f + f^{+} f+是对于 f ⊤ f^{\top} f来说的一个正样本, f − f^{-} f是对于 f ⊤ f^{\top} f来说的一个负样本,但是这种naive形式的triplet loss有几个challenges:

  • 在训练集中huge sampling space,这里我的理解是,对于 f ⊤ f^{\top} f来说,需要在训练样本中找到所有的正样本,和负样本,这里对应的triplet loss的项数就非常多

为了解决上面提到的huge sampling space,作者这里是基于mini-batch的,对于mini-batch中的所有negative samples以及hardest positive samples(这里我猜测应该是1个),计算
L triplet  = ∑ i max ⁡ ( 0 , f ⊤ f i − − f ⊤ f + ) \mathcal{L}_{\text {triplet }}=\sum_{i} \max \left(0, f^{\top} f_{i}^{-}-f^{\top} f^{+}\right) Ltriplet =imax(0,ffiff+)
其中 f + f^+ f+是在这个mini-batch中hardest正样本

  • triplet loss的问题是can be unstable并且convergence会很慢,

为了解决这个问题,在前人的工作中,使用smooth upper bound of the triplet loss来进行优化
L u p p e r = log ⁡ ( 1 + ∑ i exp ⁡ ( f ⊤ f i − − f ⊤ f + ) ) \mathcal{L}_{u p p e r}=\log \left(1+\sum_{i} \exp \left(f^{\top} f_{i}^{-}-f^{\top} f^{+}\right)\right) Lupper=log(1+iexp(ffiff+))
同时也可以写成
L u p p e r = − log ⁡ exp ⁡ ( f ⊤ f + ) exp ⁡ ( f ⊤ f + ) + ∑ i exp ⁡ ( f ⊤ f i − ) \mathcal{L}_{u p p e r}=-\log \frac{\exp \left(f^{\top} f^{+}\right)}{\exp \left(f^{\top} f^{+}\right)+\sum_{i} \exp \left(f^{\top} f_{i}^{-}\right)} Lupper=logexp(ff+)+iexp(ffi)exp(ff+)
这个形式非常类似于交叉熵损失的形式: L C E = − log ⁡ exp ⁡ ( f ⊤ g + ) exp ⁡ ( f ⊤ g + ) + ∑ i exp ⁡ ( f ⊤ g i − ) \mathcal{L}_{C E}=-\log \frac{\exp \left(f^{\top} g^{+}\right)}{\exp \left(f^{\top} g^{+}\right)+\sum_{i} \exp \left(f^{\top} g_{i}^{-}\right)} LCE=logexp(fg+)+iexp(fgi)exp(fg+),这里我觉得说是交叉熵的形式,实际上是因为 exp ⁡ ( f ⊤ g + ) exp ⁡ ( f ⊤ g + ) + ∑ i exp ⁡ ( f ⊤ g i − ) \frac{\exp \left(f^{\top} g^{+}\right)}{\exp \left(f^{\top} g^{+}\right)+\sum_{i} \exp \left(f^{\top} g_{i}^{-}\right)} exp(fg+)+iexp(fgi)exp(fg+)可以看成是一个预测概率。其中 g + g^+ g+是the class-wise weight of the positive class(to which the anchor instance belongs),而 g i − g_{i}^{-} gi是负类的一个weights
然而上面的 L u p p e r \mathcal{L}_{u p p e r} Lupper L C E \mathcal{L}_{C E} LCE中存在这两个差异:
首先是交叉熵损失采用的是learnable class-wise weights作为class instances的一个代理,而不是直接使用instances的embeddings。
接着,在交叉熵中,所有的negative classes都参与了损失的计算,然而在 L u p p e r \mathcal{L}_{u p p e r} Lupper中,仅仅是将anchor instance远离了那些mini-batch采样中的负样本

作者推断这三种损失的性能应该是 L C E > L u p p e r > L t r i p l e t \mathcal{L}_{C E}>\mathcal{L}_{u p p e r}>\mathcal{L}_{triplet} LCE>Lupper>Ltriplet,并且通过实验结果验证了这一点,因此,作者在这里使用交叉熵损失作为embedding learning的一个目标。
更具体的描述是:如果anchor box被标记为foreground,从dense embedding map中提取corresponding embedding vector,接着将提取出来的embeddings fed到一个shared fully-connected layer用来输出class-wise logits,通过这种方式,来自多个尺度的embeddings(对应着不同的prediction head)共享着相同的space,并且跨尺度之间的association同样也是可行的,并且在计算损失时,将带有box annotations但是没有identity annotations的前景,不进行embedding loss的计算

5.5 自动进行Loss的balance

JDE中每一个prediction head的学习目标都可以看成是一个多任务学习问题,联合的目标(最终的目标函数)可以写成每一个component以及每一个scale的加权线性和
L total  = ∑ i M ∑ j = α , β , γ w j i L j i \mathcal{L}_{\text {total }}=\sum_{i}^{M} \sum_{j=\alpha, \beta, \gamma} w_{j}^{i} \mathcal{L}_{j}^{i} Ltotal =iMj=α,β,γwjiLji
其中, M M M表示的是prediction head的数量, w j i w_j^i wji是损失的权重,其中 i = 1 , . . . , M i=1,...,M i=1,...,M, j = α , β , γ j=\alpha,\beta,\gamma j=α,β,γ
作者这里采取的确定损失权重的一个方式为:

  • 首先令 w α i = w β i w_{\alpha}^{i}=w_{\beta}^{i} wαi=wβi,常常在目标检测中使用(2015),说实话,这点有点老了可能
  • w α 1 = … = w α M , w β 1 = … = w β M , w γ 1 = … = w γ M w_{\alpha}^{1}=\ldots=w_{\alpha}^{M}, w_{\beta}^{1}=\ldots=w_{\beta}^{M}, w_{\gamma}^{1}=\ldots=w_{\gamma}^{M} wα1==wαM,wβ1==wβM,wγ1==wγM
  • 最后对剩下的两个参数,也就是 w α w_{\alpha} wα w γ w_{\gamma} wγ,进行一个search

这里作者searching loss weights的方法是通过采用automatic learning scheme(2018提出的),这是通过使用task-independent uncertainty的概念得到的。并且带有自动loss balancing的learning objective可以写成:
L total  = ∑ i M ∑ j = α , β , γ 1 2 ( 1 e s j i L j i + s j i ) \mathcal{L}_{\text {total }}=\sum_{i}^{M} \sum_{j=\alpha, \beta, \gamma} \frac{1}{2}\left(\frac{1}{e^{s_{j}^{i}}} \mathcal{L}_{j}^{i}+s_{j}^{i}\right) Ltotal =iMj=α,β,γ21(esji1Lji+sji)
其中,这里的 s j i s_{j}^{i} sji就是每一个loss的task-dependent uncertainty,并且被建模成可学习的参数。

5.6 在线association

association并不是本文的重点,作者这里介绍了一个简单快速的在线关联策略,可以配合着JDE使用。
作者是如何将不同时刻的JDE输出结合起来呢?

对于给定视频,JDE模型处理每一帧,可以得到边界框以及对应的appearance embedding
接着,计算embeddings of observation以及embeddings of a pool of previous existing tracklets(这里应该指的是当前时刻的输出和之前时刻的输出轨迹之间)一个affinity matrix(亲和矩阵),接着使用匈牙利算法将观测值分配给响应的轨迹,使用Kalman filter进行平滑轨迹,我觉得这里应该是基于先前帧对下一帧的位置进行预测,预测的位置和匈牙利算法分配的轨迹相差太远时,当前的assignment就被rejected。

轨迹的更新:
f t = η f t − 1 + ( 1 − η ) f ~ f_{t}=\eta f_{t-1}+(1-\eta) \tilde{f} ft=ηft1+(1η)f~
其中 f ~ \tilde{f} f~表示的是embedding of the assigned observation,也就是t时刻JDE输出的embedding vector中的某一项, f t f_t ft表示t时间戳轨迹tracklet的一个embedding 表示, η \eta η是一个平滑动量项,这里 η = 0.9 \eta=0.9 η=0.9
假如有一个轨迹,当前没有任何一个observation box embedding与之对应,那么将该轨迹标记为丢失,如果丢失的时间超过了给定的阈值,则将标记为丢弃的轨迹从当前tracklet pool中丢弃,否则将会在重新分配步骤中找到。

(六)Experiement

6.1 数据集以及评价指标

数据集
因为可能存在着在小数据集上性能较好,到大数据集上表现变差的情况,因此,这里作者构建了一个大规模的训练集,将6个公开的行人检测,MOT以及person search的数据集整合到一起,

这些数据包含两种类型:
只包含边界框注释的(ETH 数据集,CityPerson数据集)
同时包括边界框以及identity标注的(CalTech数据集,MOT-16数据集,CUHK-SYSU数据集以及PRW数据集)

使用MOT-16作为test集,同时去除掉ETH中和MOT-16重叠的视频,表1展示了联合训练集的一个统计情况。
Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第4张图片
评价指标
需要评估三个方面的性能:the detection accuracy,embedding 的discriminative,整个MOT系统的跟踪性能。
检测性能采用的是: A P 50 AP_{50} AP50
embedding表现,首先提取所有ground truth的embedding,采用 1 : N 1:N 1:N的检索,以0.1的错误接受率报告真阳性率(TPR@FAR=0.1)
MOT系统的评估,使用CLEAR度量

6.2 实现的细节

  • 采用DarkNet-53作为JDE的backbone
  • 使用SGD训练30个epoch
  • 学习率初始化为 1 0 − 2 10^{-2} 102,在第15个epoch和第23个epoch分别衰减0.1
  • 采用随机旋转,随机scale,以及color jittering进行数据增强来减小过拟合
  • resize到固定尺寸上,分辨率为 1088 × 608 1088 \times 608 1088×608

6.3 实验1 对3种损失 L C E , L u p p e r , L t r i p l e t \mathcal{L}_{C E},\mathcal{L}_{u p p e r},\mathcal{L}_{triplet} LCELupperLtriplet比较

作者比较了使用这三种损失训练得到appearance embeddings的一个discriminative能力,

对于 L u p p e r , L t r i p l e t \mathcal{L}_{u p p e r},\mathcal{L}_{triplet} LupperLtriplet B 2 \frac{B}{2} 2B对时间连续帧被采样以形成大小为B的小批量.但是对于 L C E \mathcal{L}_{C E} LCE来说是没有必要的,

Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第5张图片
从上图中,我们可以看出, L C E \mathcal{L}_{C E} LCE的表现要优于其他两个,性能差距较大的一个可能原因是交叉熵损失要求一个实例与其正类之间的相似性高于该实例与所有负类之间的相似性。这个目标比triplet loss更严格,三重损失族仅在采样的mini-batch中施加约束。

实验2 考虑不同的损失加权策略

本文中使用了3种损失加权策略:

  • loss normalization method,也就是损失通过他们自身的moving average magnitude的倒数来进行加权,
  • MGDA-UB算法
  • weight-by-uncertainty策略

这里同时又两个baseline,第一个为训练所有任务使用相同的loss weights,称为’Uniform’,第二个是前文提到的 w α w_{\alpha} wα w γ w_{\gamma} wγ,进行一个search。结果同样在表2 中展示
从表中得到的两个结论:

  • Uniform baseline产生较差的检测结果,这是因为Embedding Loss要远大于其他的两个损失,从而主导着训练过程,这里我们肯定希望能够让这3个损失采用相同的速率进行学习,因此在第二种方法上,检测和Embedding都取得了较好的结果。
  • 从表中可以看出,“Loss.Norm”策略比“Uniform”好,但是不如“APP.Opt”策略。MGDA-UB算法是理论上最合理的方法,但是在我们的例子中失败了,因为他为Embedding分配了太大的权重,性能类似于"Uniform"baseline。使用Uncertainty方法取得了超过"App.Opt"baseline的性能。

对Uncertainty方法进行了losses曲线以及学习到weights的可视化,虽然使用均匀分布初始化loss weights,但是使用Uncertainty方法能够迅速降低Embedding 部分的损失权重,同时拉高其他两个任务的权重。从而达到更好的性能。
Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第6张图片
这个uncertainty的策略能够使得网络从多任务的学习中获益。

实验3 和SDE方法的比较

作者这里实现了几个state-of-art的SDE,并且采用了相同的训练数据。
Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第7张图片
作者这里做的实验可真多呀!,从中可以看出:

  • JDE运行非常快,同时产生有竞争力的跟踪精度,达到精度和速度之间的最佳平衡

    具有DarkNet-53 (JDE-DN53)的JDE以22 FPS运行,并且产生的跟踪精度几乎与使用ResNet-101的Cascade RCNN(级联-R101) + PCB Embedding的组合一样好,帧率大概为6FPS。

  • JDE的跟踪精度非常接近JDE+IDE、JDE+Triplet、JDE+PCB的组合(见图4中的十字标记)。这表明联合学习的嵌入几乎和单独学习的嵌入一样有区别。
  • 在拥挤场景下,SDE模型速度显著下降,JDE几乎没有发生什么变化,这是因为embedding model的运行时间随着检测目标的增加而增加。JDE运行时间增加的原因是association step的运行时间和目标的数量是成正相关的

实验4 和state-of-art 的MOT系统进行比较

这些方法的主要区别在于他们的Embedding 模型以及association 策略。
Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第8张图片

分析讨论

JDE算法比现有方法具有更低的IDF1分数以及更多的IDs,作者分析原因为:主要原因在于当多个行人彼此重叠较大时,检测不准确。这种不准确的bounding box引入了许多IDs,因此,在行人重叠显著时做出更准确bounding box预测仍待解决。
Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记_第9张图片

(七)Conclusion

在本文中介绍了JDE,一个MOT系统,它允许在一个共享模型中同时学习object detection以及appearance embeddings。作者的设计大大减少了MOT系统的运行时间,使其能够以(接近)实时的速度运行。同时,我们系统的跟踪精度与最先进的MOT方法相当。同时进行了分析和讨论,指出当前存在的问题。

(八)Notes

8.1 Modern multiple object tracking(MOT)系统 paradigm

通常遵循着tracking-by-detection的模式:

  • detection model(detector) 用于target localization目标的定位
  • appearance embedding model(re-ID) 用于data association,进行数据关联

但是在目前的跟踪工作中,往往将两个任务分开来进行,可能会导致存在着效率问题,也就是说目前的工作中没有人去研究如何将两个任务整合到一起,也就是one-shot的方式来共享计算量,提升效率。
目前在实时MOT上的研究主要关注association step,因此得到的往往是实时的association methods,而不是实施的MOT系统
作者这里将这些方法称作:Separate Detection and Embedding methods(SDE),但是SDE的方法给实时的多目标跟踪系统带来的严峻的挑战。

8.2 Multiple Object Tracking的recent进展

可以大致分成以下几个方面:

  • 将association problem建模成图的某种形式的优化问题
  • 通过端到端的神经网络将association process
  • 寻找新的tracking paradigm,而不是这种tracking-by-detection

前两种在过去十年中一直是MOT的主流解决方案,其中tracking-by-detection的方法需要detection results以及appearance embeddings作为输入,仅仅需要解决的问题就是data association。但是这种方式下MOT系统没有办法做到实时工作。
第三种试图尝试新的MOT模式:

通过预测空间偏移将single object trackers结合到detector中,非常简单,但是在跟踪精度上却不让人满意,需要进行速度和性能的trade-off

此外还有使用human pose estimation和detection进行Associative Embedding的工作,使用一个低维的dense vector map(称作associative embedding)用来对human joints或者是box corners进行分组。但是在MOT问题中,需要在不同帧之间进行association的,因此,需要associative embedding更加具有判别性。

8.3 Person search task

person search task的目的在于从a large set of database frames中定位和识别需要查询的人员,解决这个问题也是通过联合person detector和embedding model,然而MOT和person search systems的区别是MOT是需要实时运行的。

你可能感兴趣的:(目标检测,MOT,目标检测,appearance嵌入,association,轨迹,JDE)