---
abstract: 'Multi-object tracking systems often consist of a combination of a detector, a short term linker, a re-identification feature extractor and a solver that takes the output from these separate components and makes a final prediction. Differently, this work aims to unify all these in a single tracking system. Towards this, we propose Siamese Track-RCNN, a two stage detect-and-track framework which consists of three functional branches: (1) the detection branch localizes object instances; (2) the Siamese-based track branch estimates the object motion and (3) the object re-identification branch re-activates the previously terminated tracks when they re-emerge. We test our tracking system on two popular datasets of the MOTChallenge. Siamese Track-RCNN achieves significantly higher results than the state-of-the-art, while also being much more efficient, thanks to its unified design.'
author:
- Bing Shuai
- 'Andrew G. Berneshawi'
- Davide Modolo
- Joseph Tighe
bibliography:
- 'eccv2020\_bib.bib'
title:
- 'Multiple Object Tracking with Siamese Track-RCNN'
- Appendix
---

Introduction
============

Multi-object tracking (MOT) deals with the problem of localizing and tracking object instances over entire video sequences. Recently, the most successful approaches in the literature are based on the “tracking-by-detection” paradigm, which consists of two major components: object detection and association. First, a model localizes all instances of a pre-defined object class in every video frame, and then, it links these together to form object tracks of arbitrary length.

While object class detection has improved considerably in the last few years [@girshick2015fast; @ren2015faster; @dai2016r; @he2017mask; @lin2017feature; @dai2017deformable], association remains a challenging task. Many approaches modelled this as a graph-based optimization problem, where each node is a detection and each edge a possible link [@zhang2008global; @berclaz2011multiple; @zamir2012gmcp; @kim2015multiple; @tang2017multiple; @henschel2017improvements; @ristani2018features; @keuper2018motion; @sheng2018heterogeneous; @xu2019spatial; @xu2019train]. These approaches depend on a complex combination of multiple cues, like appearance, re-id, motion estimation and object interactions to solve this association. These have helped MOT models gradually improve their performance [@milan2016mot16], but at the cost of inefficiency and high computation, as each of the employed cues is often its own deep network trained on its own specific dataset.

Bergmann et al. [@bergmann2019tracking] identified this shortcoming and as a step towards accurate and fast MOT proposed Tracktor, an efficient tracking framework that only relies on a detection module. While Tracktor achieves state-of-the-art performance on the MOTChallenge [@milan2016mot16], it suffers from two limitations: (i) it does not capture the appearance of the target object during tracking, which causes the model to become uncertain when the object is occluded or there are multiple of the same type of object in close proximity; (ii) it only performs short-term tracking, as it cannot re-identify the target object after it temporally disappears. Bergmann et al. tackled the second limitation by enhancing Tracktor with a re-id network (i.e., Tracktor++), which led to better performance, but at the cost of efficiency, partially defeating the benefits of Tracktor.

In this paper we propose a novel MOT approach: [*Siamese Track-RCNN*]{}. Differently from the previous works, we address all the aforementioned problems in a single, unified network architecture. Our approach is both efficient and accurate. Our proposed system performs both detection and association in a single forward pass of its network, which consists of a backbone shared among three branches: detection, tracking and re-identification. This design has several advantages: low computational cost, low memory footprint and higher accuracy, as all these branches can benefit from each other. At a high level, the detection branch localizes people entering the field of view, the track branch follows them into the proceeding frames and the re-id branch is responsible for associations across longer periods of time.

We conduct experiments on the problem of tracking people, which is particularly interesting both for real-world applications, as well as for downstream tasks, like action detection in videos [@zhang2019structured; @li2018recurrent; @gao2018ctap; @choi2012unified]. Our Siamese Track-RCNN achieves state-of-the-art (SOTA) performance on both MOT16 (59.8 MOTA) and MOT17 (59.6 MOTA) of the MOTChallenge. Finally, we present an extensive ablation study of Siamese Track-RCNN on a large-scale synthetic dataset: Joint Track Auto (JTA) [@fabbri2018learning]. We show that our model can accurately localize person instances in crowded scenes and consistently track them over long periods of time.

Related work
============

Multi-object tracking (MOT)
---------------------------

Most works on MOT adopt the “tracking-by-detection" framework paradigm  [@zhang2008global; @berclaz2011multiple; @zamir2012gmcp; @kim2015multiple; @tang2017multiple; @henschel2017improvements; @ristani2018features; @keuper2018motion; @sheng2018heterogeneous; @xu2019spatial; @xu2019train; @sadeghian2017tracking; @leal2016learning; @wang2019exploit; @andriyenko2011multi; @berclaz2006robust; @choi2010multiple; @evangelidis2008parametric; @fang2018recurrent], in which detected object instances are associated across time based on their visual coherence and spatial-temporal consistency. Some of these works focused on learning new functions to evaluate short-term associations more robustly [@ristani2018features; @sheng2018heterogeneous; @tang2017multiple; @xu2019spatial; @zhang2008global; @tang2017multiple; @sadeghian2017tracking; @leal2016learning; @choi2015near; @fang2018recurrent; @zhang2008global]. Others, instead, focused on learning how to output more temporally consistent long-term tracks by optimizing locally connected graphs [@zhang2008global; @berclaz2011multiple; @zamir2012gmcp; @kim2015multiple; @tang2017multiple; @henschel2017improvements; @ristani2018features; @keuper2018motion; @sheng2018heterogeneous; @xu2019spatial; @xu2019train; @wang2019exploit; @andriyenko2011multi; @berclaz2006robust; @evangelidis2008parametric; @tang2017multiple]. These are often inefficient, as they employ computationally expensive cues, like object detection [@girshick2015fast; @ren2015faster; @dai2016r; @he2017mask], optical flow [@dosovitskiy2015flownet; @sun2018pwc; @tang2017multiple; @choi2015near], re-identification [@hermans2017defense; @tang2017multiple; @zhou2019deep; @tang2017multiple; @ristani2018features].

Tracktor [@bergmann2019tracking] is the most related to this work, as it also aims at achieving both accurate and fast tracking inference. Towards this, Bergmann et al. proposed to estimate the location of a person in the new frame by regressing his/her position from the previous frame. While Tracktor achieves great results on the MOTChallenge, it does not learn the appearance of people, which is necessary for tracking them through occlusion (e.g., intersections) and for long-term tracking. Instead, we propose a new MOT approach that is more accurate, equally fast and it can deal well with these shortcomings.

Siamese-based trackers for single-object tracking (SOT)
-------------------------------------------------------

Siamese-based trackers [@held2016learning; @bertinetto2016fully; @li2018high; @li2019siamrpn++; @tao2016siamese; @valmadre2017end; @guo2017learning; @he2018twofold; @zhang2019structured; @zhu2018distractor; @fan2019siamese; @zhang2019deeper] have recently achieved great results in SOT. As the name suggests, Siamese approaches operate on pairs of frame. Their goal is to track (by matching) the target object in the first frame in a search region from the second frame. This matching function is usually learned offline on large-scale datasets of image pairs. Among these methods, GOTURN [@held2016learning] inputs the features of both the target object and its corresponding search region to a regression network, which directly estimates the new location of the object. SiamFC [@bertinetto2016fully] solves this matching via correlation operation, where the region with the highest correlation score gives rise to the new object location. SiameseRPN [@li2018high], and later SiamRPN++ [@li2019siamrpn++], adopt an RPN network [@ren2015faster] to explicitly produce the candidate target regions. SiamMask [@wang2019fast] further extends these to track object masks. In this paper we are the first, to the best of our knowledge, to propose to use Siamese-based trackers in an end-to-end trainable framework for MOT. Our tracker is inspired by GOTURN, but it is very generic and, in practice, it can integrate any SOT Siamese tracker.

Towards a unified network for MOT tracking
------------------------------------------

Voigtlaender et al. [@voigtlaender2019mots] and Yang et al. [@yang2019video] recently proposed to unify detection and re-id for online instance mask tracking. Both of these works built upon Mask-RCNN [@he2017mask] and enriched it with a re-identification (re-id) branch. At inference, they associate tracks over time using the instance-specific embedding features outputted by this re-id branch. In this paper we show that tracking by re-id alone is not robust to short-term changes, especially in the presence of partial occlusions. Instead, we propose to enrich the popular Faster-RCNN [@ren2015faster] object detector (we track bounding boxes, not masks) with both a re-id branch and a tracking branch. We show that these are highly complementary and their combination leads to SOTA MOT performance.

Siamese Track-RCNN {#sec:architecture}
==================

![*Siamese Track-RCNN unifies detection, tracking and re-id in a single network architecture. Importantly, these features share the same backbone, which results in low computation and efficient runtime.* []{data-label="figure:siamese_track_rcnn"}](Figs/schema.pdf){width="100.00000%"}

Our tracking system follows an inference pipeline similar to other tracking-by-detection systems, but it does so from cues generated by a single network. We first give a high-level description of our online tracking inference with an eye toward identifying the cues that need to be generated by our approach and then describe the structure of our unified tracking network in detail.

Our Siamese Track-RCNN tracking method operates [*online*]{}. As such, it tracks people forward in time by only propagating information from the past. It functions by looking at pairs of frames: {$t$, $t+\delta$}, where people in frame $t$ are searched for in frame $t+\delta$. If they are found, their track is [**continued**]{} with their new bounding box found in frame $t+\delta$. If a person is no longer visible, as they either walked outside of the frame or are being occluded by other people or objects, then their track is [**terminated**]{}. Next, we [**localize**]{} people that are visible at time $t+\delta$, but that were not present at time $t$. When a new person is found, they are either assigned to a newly [**initiated**]{} track or to a track that was terminated earlier ([**reinstated**]{}).

Differently from the other methods in the literature  [@zhang2008global; @berclaz2011multiple; @zamir2012gmcp; @kim2015multiple; @tang2017multiple; @henschel2017improvements; @ristani2018features; @keuper2018motion; @sheng2018heterogeneous; @xu2019spatial; @xu2019train], we propose the first framework that can perform all these tasks in a single, unified network architecture. Our Siamese Track-RCNN consists of three branches: track, detect and re-identify (fig. \[figure:siamese\_track\_rcnn\]). (i) The track branch is responsible for tracking existing tracks from frame $t$ to frame $t+\delta$. At a high level, it searches for that same person instance at frame $t+\delta$ in a window around the location where they were previously observed at frame $t$. As long as the person is visible in the search region, the track branch should produce a high score $\hat{v}$ as well as the regressed location $\hat{m}$ to continue the track (fig. \[figure:siamese\_track\_rcnn\], [magenta]{}). When the person is not present in this search region the track branch should produce a low score $\hat{v}$ to terminate the track ([green]{}). (ii) The detection branch is responsible for localizing all people that appear at time $t+\delta$, independently of their status at time $t$ ([yellow]{}). (iii) The re-id branch is responsible for generating discriminative embedding features that can help decide whether a newly localized person belongs to a previously terminated track and should be reinstated or requires a new track to be initiated ([red]{}).

With this high level structure in mind, we design our network by starting with the Faster-RCNN architecture [@ren2015faster; @he2017mask] and enriching it with two additional branches: track and re-id. In the following sections we present the details of how we structure and train each branch.

Detection branch
----------------

Our detection branch is a common Faster-RCNN architecture [@ren2015faster; @he2017mask] that consists of a Region Proposal Network (RPN), followed by classification and regression of the generated proposals. The classification loss is a multi-class cross entropy loss and the regression loss is a smooth $\ell_1$-loss [@girshick2015fast]. Differently from the original [@ren2015faster; @he2017mask], our Siamese Track-RCNN takes pairs Faster-RCNN of frames as input instead of a single image. To accommodate for this difference, we average the detection loss $\ell_{detect}$ from both frames while training our detection branch.

Track branch {#track_branch}
------------

The task of tracking a particular person instance over time is particularly challenging for three reasons: (i) the appearance of the person can change rapidly over time due to pose changes, occlusion and motion blur; (ii) the location of a person can change quickly due to fast object and camera motion; (iii) tracks of different people can intersect when the individuals cross each other. To overcome the first two limitations, we propose a Siamese-based solution that is robust to appearance changes and fast motion. For the third, instead, we rely on the re-id branch to help distinguish the two people that are intersecting. Similar to Siamese-based single object tracker in the literature (SOT) [@held2016learning; @li2018high; @zhu2018distractor; @li2019siamrpn++; @wang2019fast], given two frames $t$ and $t+\delta$, we model this problem as matching (searching) a target template from $t$ within a larger contextual region in $t+\delta$. More specifically, given an ongoing track $\mathcal{T}$ of a person bounding box defined as $target^t=[x^t, y^t, w^t, h^t]$ at time $t$, our branch attempts to localize the person in $t+\delta$ by searching around its previous location at time $t$. We obtain our search region by enlarging the original detection $target^t$ by a factor $r$: $search^{t+\delta}=[x^t, y^t, w^t*r, h^t*r]$. Then, we extract the target template feature map $\mathbf{f}_{target^t}$ and that of its corresponding search region: $\mathbf{f}_{search^{t+\delta}}$. Finally, we predict the status of the person at time $t+\delta$ as follow: $$(\hat{v}, \hat{m}) = \mathbb{\phi}(\mathbf{f}_{target^t}, \mathbf{f}_{search^{t+\delta}})
    \label{equation: siamese_track}$$

where $\hat{m}$ is the estimated object motion parameterized as $[\frac{x^{t+\delta} - x^t }{w^t}, \ \frac{y^{t+\delta}-y^t}{h^t}$ $\text{log}\frac{w^{t+\delta}}{w^t}], \ \text{log}\frac{h^{t+\delta}}{h^t}]$, $\hat{v}$ indicates whether the person is visible or not at time $t+\delta$, which is essential to ensure that a track does not continue if its person is no longer in view; and $\phi$ is a fully connected network inspired by GOTURN [@held2016learning]. In order for this to work, we flatten $\mathbf{f}_{target^t}$ and $\mathbf{f}_{search^{t+\delta}}$ and concatenate them before inputting them into $\phi$. We chose this specific network for $\phi$ because it is accurate and extremely efficient, but note any Siamese-based SOT [@held2016learning; @li2018high; @zhu2018distractor; @li2019siamrpn++; @wang2019fast] can be employed to parameterize $\phi$. This is especially appealing, as our model can directly benefit from future advances in SOT.\
[**Training.**]{} We train our network $\phi$ using a combination of two losses: one over the estimated motion $\hat{m}$ and one over the visibility value $\hat{v}$: $$\ell_{track} = 
        \begin{cases} 
             \ell_{cls}(\hat{v}, v^{gt}) +  \mathbbm{1}[v^{gt}] \ell_{motion}(\hat{m}, m^{gt}) & \text{if } target^t\in \mathcal{P}^+ \\ \\
             \ell_{cls}(\hat{v}, 0) & \text{if } target^t\in \mathcal{N}^-\\
        \end{cases}$$ where $\mathbbm{1}$ is the indicator function ($m^{gt}$ is not defined if the target is not visibile at time $t+\delta$), $\ell_{cls}$ denotes the binary cross entropy loss, $\ell_{motion}$ denotes the commonly used smooth $\ell_1$ loss for regression, $ \mathcal{P}^+$ is the set of positive samples and $ \mathcal{N}^-$ the set of negative ones. Note how in this formulation the ground truth visibly value $v^{gt}$ operates slightly differently depending on the type of sample considered: if $target^t$ is a positive bounding box containing a person, then it indicates whether that person is ($v^{gt}=1$) or is not ($v^{gt} = 0$) visible in frame $t+\delta$; on the other hand, if $target^t$ is a negative bounding box (e.g., a false positive from the detection branch), it is always 0 and the loss encourages the network to immediately stop tracking. In this latter case we also avoid computing any motion estimation, as $m^{gt}$ is not defined for negatives.

In addition to training on ground truth people and random negatives, we also train on proposals generated by the RPN network. This helps the track branch becoming more robust to noise in the target location at time $t$. For this, we consider as positive any proposal that has an intersection-over-union (IoU) of at least 0.5 with a ground truth bounding box. Given a pair of frames, we compute this loss between every proposal in frame $t$ and its corresponding region in frame $t+\delta$ and then average over all of them. Finally, as an additional data augmentation we also compute the inverse tracking from $t+\delta$ to $t$, as this comes almost for free, given that the majority of the computation is spent obtaining the frames’ feature vectors from the CNN backbone (fig. \[figure:siamese\_track\_rcnn\]).

Re-id branch
------------

The track branch presented in the previous section only performs short-term tracking, as it can only continue tracks while they are visible. When heavy occlusion happens, we reinstate tracks when they become visible again by employing a re-identification branch that produces an instance-discriminatory embedding for every person instance.\
[**Training.**]{} We model our re-id branch as a fully-connected network and train it with a triplet loss [@hermans2017defense]: $$\ell_{reid} = \max(0, \max_{q \in \mathcal{P}^p} d(p, q) - \min_{n \in \mathcal{N}^p} d(p, n) + \alpha)$$ where $p$ is a reference positive proposal from any of the current pair of frames $\{t, t+\delta\}$, $\mathcal{P}^p$ is the set of positive proposals from the same video of $p$, of the same person (just not in $t$ or $t+\delta$) and $\mathcal{N}^p$ is the set of proposals containing any person except $p$. Finally, $\alpha$ is the distance margin, by which the distance between $p$ and its most similar negative has to be larger than that of $p$ and its least similar positive.

End-to-end training
-------------------

In our Siamese Track-RCNN, these three components share the same CNN backbone and are trained together in an end-to-end fashion. This design has several advantages: low computational cost, low memory footprint and potentially higher accuracy, as all these components can benefit from each other. All these are essential for online tracking in real-world applications. We train our model by simply summing the losses of these components: $\ell = \ell_{detect} +\ell_{track} + \ell_{reid}$.

Implementation details {#sec:impl_details}
======================

#### Network.

As our CNN backbone we use a ResNet-101 [@he2016deep] with feature pyramid network [@lin2017feature] and deformable convolutions [@dai2017deformable] (ResNet-101-DCN). The detection branch has the same structure of the popular Faster-RCNN [@ren2015faster], while the track and re-id branches consist of two fully connnected layers of 1024 and 512 features, respectively. The re-id branch outputs an embedding of 128 features. We follow [@held2016learning] and set the search extension ratio $r = 2$, practically doubling the target size, and we set the distance margin $\alpha$ empirically to 0.2. Finally, we use a ROI Align layer [@he2017mask] and pool feature maps of $7\times7$ from frame regions. In the Track branch, we extract these features from both the target bounding box at time $t$ and the enlarged search area at time $t+\delta$, even thought the latter is twice as large. In other experiments we observed that enlarging the feature maps of the search area does not bring any improvement in performance.

#### Training.

We pre-train the backbone and the detection branch for object class detection on the popular MS COCO dataset [@lin2014microsoft] and then finetune the network with all the branches on tracking videos. Pre-training on MS COCO is mostly necessary when the number of training videos available is limited, like in the the case of the MOTChallenge dataset that we present and experiment on in sec. \[sec:mot\]. During finetuning we freeze all the batch norm layers [@ioffe2015batch]. We use stochastic gradient descent to optimize our Siamese Track-RCNN, which is trained for a total of 15k iterations. We start training with a learning rate of 0.02 and decrease it by factor 10 after 10K and 12.5K iterations, respectively. We use a fixed weight decay of $10^{-4}$ and a batch size of 40 frame pairs. Finally, we augment our training data of pairs by sampling them randomly within a 1 second temporal window, which is equivalent to setting $\delta = 30$ frames for 30fps videos (range: $[t, t+30]$).

#### Inference.

At inference we instead set $\delta = 1$ frame, as we aim to keep computation low and run Siamese Track-RCNN as a sliding window. We feed the rich outputs of the three branches into an online solver that finalizes the ID of the localized people. Specifically, given a set of person localizations, our solver first merges those shared by both the detection and track branches (i.e., those that have intersection-over-union (IoU) $> 0.3$) and then terminates tracks that have a visibility score lower than 0.3 ($\hat{v} < 0.3$). Furthermore, it reinstates a previously terminated track when its embedding features are very similar to those of a newly localized person. In practice, the solver postpones this decision to after the new localized person has been tracked for a few frames. Then, it computes the average $\ell_2$ embedding distance between the 5 most similar bounding boxes from the new and old tracks. If this value is less than 0.5, the track gets reinstated. Otherwise, a new track is initiated. To enable this feature comparison, our solver maintains and updates a small buffer that caches the embeddings of the terminated and ongoing tracks. We set the size of this buffer to 30 seconds, which offers a good trade-off between low memory consumption and enough temporal information.

Results on MOTChallenge {#sec:mot}
=======================

#### Dataset.

MOTChallenge [@milan2016mot16] is the most widely-adopted multi-person tracking benchmark. It consists of 7 training and 7 test videos that capture scenes from different camera angles. MOT is challenging, as it contains several occluded or truncated individuals and a large number of people to track. We experiment with two tracking benchmarks in the MOTChallenge: MOT16 and MOT17. The official tracking task consists of correctly linking (tracking) a set of provided per-frame person detections over the whole video. Both sets contain exactly the same videos, but they differ in the provided detections: MOT16 provides DPM [@dpm] detections, while the MOT17 also provides them from Faster R-CNN [@ren2015faster] and SDP [@yang2016exploit].

#### Evaluation and metrics.

We obtain our MOTChallenge results on the test videos (whose annotations are purposely kept private) by submitting our model’s predictions to the MOT evaluation server[^1]. We follow the benchmark’s guidelines and report several metrics, mainly: MOTA (Multiple Object Tracking Accuracy), IDF1 (ID F1 score), MT (Mostly tracked targets), ML (Mostly lost targets), FP (False Positives), FN (False Negatives) and IDsw (ID switches). Among these MOTA is considered the main metric for comparison, while the others are helpful to understand the kind of mistakes a tracker makes. We refer the reader to [@milan2016mot16] for more detailed definitions of these metrics.

#### Experimental settings.

We train our Siamese Track-RCNN on the provided training videos, but exclude the detections with visibility score lower than 5% (this score is provided by MOTChallenge). For a fair comparison with the literature, we present our results using the public detections released by MOTChallenge.

[r]{}[0.4]{} ![image](Figs/SiameseTrackRCNN_runtime.png){width="40.00000%"}

#### Results.

We present our results on MOT17 and MOT16 in tables \[table:mot17\_results\] and \[table:mot16\_results\] respectively. Our Siamese Track-RCNN achieves state-of-the-art (SOTA) MOTA in both datasets. Importantly, the improvement over the previous best method (DeepMOT-Tracktor, which shares a similar backbone as our Siamese Track-RCNN) is considerable: +5.9 on MOT17 and +5.0 on MOT16.

#### End-to-end runtime evaluation.

Siamese R-CNN does not increase computation significantly compared to its base Faster-RCNN object detector, as it only adds two new branches, which share the same low level computation. In Fig. \[fig:runtime\] we show how our model’s runtime with respect to the number of ongoing tracks. We test it with a ResNet-101-DCN with FPN backbone, on a single Tesla V100 GPU, on the videos of MOT17 resized to $1080 \times 1920$ pixels. Our runtime’s increase is rather sublinear: our model runs at 6 fps when the number of people to track per-frame is at around 20, at 5 fps around 40 and 4 fps around 60. In terms of end-to-end throughput, this is considerably more efficient than most of the methods in table \[table:mot17\_results\], including the previous SOTA Tracktor++.

Ablation analysis
=================

In this section, we carry out an ablation study on Siamese Track-RCNN and its components.

JTA dataset
-----------

In sec. \[sec:mot\] we presented our results on MOTChallenge. While good for comparing the performance of a model against the literature, the dataset is not very appropriate for an ablation study: it does not contain any validation videos and has only 7 training samples, which are too few to further split into train and val. Sadly, there does not exist any publicly available, large scale, real-world multi-person tracking dataset on which we can evaluate.

![*JTA dataset: examples of frames and annotations.*[]{data-label="figure:jta"}](Figs/JTA_small.pdf){width="100.00000%"}

Given the lack of real-world data, we carry out our ablation study on a synthetic dataset: Joint Track Auto (JTA) [@fabbri2018learning]. JTA is a dataset annotated for human pose estimation and tracking and its videos are auto generated using the Grand Theft Auto (GTA) game engine. The dataset contains 512 videos of 500k frames and with almost 10M accurately annotated (since they are machine generated) human poses. Its videos are challenging (fig. \[figure:jta\]), as they contain a lot of people, often crossing/occluding each other, and appearing at considerably different scales. These videos are split into train (256), validation (128) and test (128) and in our ablation study we train on “train” and evaluate on “validation”.

Since the dataset is not annotated with person bounding boxes, we adapt the human pose estimation annotations as follows. First, we take the 22 body joints of each person and fit a tight bounding box around them. Then, we enlarge the bounding box by 5% in each direction to capture the whole extent of a person (as the joints do not lie on the boundaries). This procedure is very similar to the one employed to generate bounding boxes for PoseTrack 2018 [@andriluka2018posetrack]. Finally, we disregard the bounding boxes that are too small ($<25 \times 50$ pixels), that are too far away from the camera ($>25$ meters) and that contain less than 50% of the body joints. As we downsample all the high-resolution 1080p videos to have a short side of $900$, these small and hard bounding boxes become almost untrackable.

Evaluation metric: TrackAP
--------------------------

In sec. \[sec:mot\] we evaluated on the metrics defined by MOTChallenge. Among those that we reported, MOTA is considered the most important and is often the only metric highlighted. MOTA is indeed a good metric for tracking, but it over-emphasizes the accuracy of the detections of a track, rather than the temporal consistency of the track itself. For example, for MOTA, localizing all people correctly (fig. \[figure:mota\_ap\][b]{}) is more important (i.e., it yields better results) than assigning the correct tracking ID to every localized person (fig. \[figure:mota\_ap\][c]{}). We argue that this is due to two factors: (i) MOTA weights equally identity switches and false negatives and (ii) false negatives are far more frequent than switches (e.g., in table \[table:mot17\_results\] our model makes 68376 FN, but only 556 IDsw).

Having temporally consistent tracks is however relevant to many real-world applications, like surveillance and sport, where tracking the person of interest over the whole video sequence is far more important than localizing him precisely. In order to better understand the temporal coherence of our model’s predictions, we propose to use a second evaluation metric that heavily penalizes id switches. This metric is called [*TrackAP*]{} (Track Average Precision). It was recently introduced for video instance segmentation [@yang2019video] and it is computed similarly to the object AP for object class detection [@everingham2015pascal; @lin2014microsoft], but with IoU defined over tracks rather than object instances. Specifically, the IoU between a predicted track and its corresponding ground truth equals the average IoU between their bounding boxes: $\text{IoU}_{track}(\hat{\mathcal{T}},\mathcal{T}^{gt}) = \sum_{t=1}^T \text{IoU}_{det}(\hat{bb}_t,bb_t^{gt})$, where $\hat{bb}_t$ is the detection at time $t$ for the predicted track $\hat{\mathcal{T}}$ and $bb_t^{gt}$ is its corresponding ground truth bounding box. If no bounding box is predicted for $bb_t^{gt}$, $\text{IoU}_{det}$ for time $t$ is set to 0. As for object class detection [@lin2014microsoft], we threshold $\text{IoU}_{track}$ at 50 and 75 and report AP$_{50}$ and AP$_{75}$.

![*While MOTA can be deceivingly high when the detection performance is very good, TrackAP better represents the overall temporal consistency of the tracks.* []{data-label="figure:mota_ap"}](Figs/mota_ap.pdf){width="100.00000%"}

Results on JTA {#section:ablation_tracktor}
--------------

We experiment on JTA using three different methods. For an apples to apples comparison, we train them with the same underlying detection module: Faster-RCNN with a “ResNet50-DCN with FPN” backbone. At inference, people are tracked using: IoU overlap in Deepsort [@Wojke2017simple], bounding box regression in Tracktor [@bergmann2019tracking] and the Siamese Track branch of sec. \[track\_branch\] in the case of our Siamese Track-RCNN. The results are presented in table \[table:results\_jta\] and reveal some interesting details: (i) as previously mentioned, good detection performance leads to high MOTA, to the point where a very simple IoU tracker can achieve a high MOTA of 85.5 when equipped with a strong detector. (ii) The same IoU tracker achieves an extremely low AP$_{50}$, as it cannot reliably output temporally consistent tracks. This shows the importance of evaluating MOT performance with both MOTA and TrackAP, as this enables deeper understanding of the actual accuracy of the model. (iii) Bergmann et al. [@bergmann2019tracking] made the case that [*“a detector is all you need”*]{} for multi-object tracking. It is clear from these results that this is unfortunately not the case. Tracking by simply regressing a bounding box over time is not sufficient to achieve good AP. Finally, (iv) using our Siamese Track-RCNN leads to slightly higher MOTA (+2.1), but considerably better AP$_{50}$ both when using only our Track branch (+11) and both our Track and Re-id branches (+20). This is a large improvement and it further shows the importance of modelling tracking as a combination of detection, tracking and re-identification.

  Method                             Tracking           MOTA$\uparrow$   IDsw $\downarrow$   AP$_{50}$ $\uparrow$   AP$_{75}$ $\uparrow$
  ---------------------------------- ----------------- ---------------- ------------------- ---------------------- ----------------------
  Deepsort [@Wojke2017simple]        IoU                     85.5              16194                 8.07                   2.71
  Tracktor [@bergmann2019tracking]   Regression              87.6              12791                 18.3                   7.69
  Siamese Track-RCNN                 Siamese                 89.7              10700                 29.3                   13.4
  Siamese Track-RCNN                 Siamese + Re-ID       **90.2**          **6380**              **39.7**               **18.5**

  : *Results of three methods that share the same object detector, on JTA.*[]{data-label="table:results_jta"}

Analysis of the components of Siamese Track-RCNN {#section:ablation_st_rcnn}
------------------------------------------------

Here we evaluate the different branches of our Siamese Track-RCNN and quantify how much each of them contributes to the model’s final performance. We present our results in table \[table:ablation\_jta\]. All the entries in the table share the same backbone and the same Faster-RCNN-style detection branch. When we enhance this base model with our Track branch, the model achieves a TrackAP$_{50}$ of 27.8. If we further enhance the training with our Re-id branch, but avoid using it for tracking during inference (i.e., the model still relies solely on the Track branch for that), the performance improves to 29.3%. This is interesting, as it highlights the importance of training these components jointly: adding the Re-id branch has a positive effect on the Track branch, which becomes more accurate. Moreover, when we remove the Track branch and perform tracking using the Re-id branch instead, AP$_{50}$ decreases to 26.4, which is still reasonable high. Finally, when we combine all these components in our Siamese Track-RCNN, AP$_{50}$ improves considerably to 39.7%. This clearly shows that these components are highly complementary and are all extremely important towards accurate tracking.

![*Some visual results with the different components of Siamese Track-RCNN. On the left we show the importance of our re-id branch in re-instating tracks that were terminated because of occlusion. On the right we show how our track branch is able to continue the track despite the sudden change in appearance.*[]{data-label="figure:reid"}](Figs/visual_ablation_examples.pdf){width="100.00000%"}

  -------- -------------- -------------- ---------- ----------
   Track    Re-id branch   Re-id branch             
   branch    (training)    (inference)              
                 -              -           27.8       12.1
                                -           29.3       13.4
     -                                      26.4       11.2
                                          **39.7**   **18.5**
  -------- -------------- -------------- ---------- ----------

  : **Ablation experiments of Siamese Track-RCNN on JTA datasets.** []{data-label="table:ablation_jta"}

Analysis of our parameter choices
---------------------------------

We now analyze some of our choices in the design of Siamese Track-RCNN.\
[**Track network $\mathbb{\phi}$.**]{} Here we investigate the importance of using a Siamese structure in our Track branch. We compare our design against a non-Siamese network $\mathbb{\phi}$ that estimates visibility and motion of eq. \[equation: siamese\_track\] only looking at the search region’s features at time $t+\delta$: $(\hat{v}, \hat{m})= \mathbb{\phi}(\mathbf{f}_{search^{t+\delta}})$. Our model achieves considerably higher performance (29.3 vs 24.8 AP$_{50}$), validating our choice using a Siamese network as our Track branch.\
[**Pairs sampling $\delta$.**]{} In order to make the model more robust to different types of motions, in sec. \[sec:impl\_details\] we proposed to augment our training set of pairs by sampling more than just two consecutive frames. Precisely, we proposed to sample frame $t$ and a second one in the range \[$t+1, t+\delta$\]. Here we investigate how changing the value of $\delta$, which defines the temporal sampling range, affects the overall model performance. Results are shown in table \[table:delta\]. Sampling frames that are too close to each ($\delta=8$) or too far away from each other ($\delta$=45) achieve the lowest performance. This is reasonable, as the former mostly includes pairs that are very similar, with can negatively affect the generalization ability of the Re-id branch; while the latter adds pairs that are too different, which makes the training of the Track branch more difficult. Instead, when we set $\delta$ to 30, which results in a temporal window of 1s on these 30fps videos, we achieve the best performance. As mentioned in sec. \[sec:impl\_details\], we use this value in all our results.\
[**Training the model to reinstate tracks.**]{} In sec. \[sec:impl\_details\] we presented our online solver that reinstates tracks by computing re-id embedding differences and thresholding. Here we investigate how much the performance improves when we actually train a model to make this decision. We train a shallow 256-channels two-layer network for binary classification (i.e., same track or not). The input to this network is a combination of these simple features: embedding difference, mean bounding box centers, width and height, velocity, and track confidence. We experiment with two models, one that runs online and one offline. The online model operates similarly to our Siamese Track-RCNN and it computes its features by only observing a few frames of the new track. The offline model instead operates more like a postprocessor and it can observe the whole video sequence. Results are presented in table \[table:ablation\_solver\]. The online model provides a substantial improvement in AP over just using re-id embedding and thresholding (+8.9 AP$_{50}$). This is particularly important, as this model is very lightweight and it can be easily employed in our Siamese Track-RCNN to further boost its performance. Moreover, the offline model further improves AP$_{50}$ by 1.6, showing that looking at the future can occasionally help.

  -----------------------------------------------------------------------
  Pairs sampling $\delta$               AP$_{50}$              AP$_{75}$
  ------------------------- --------------------------------- -----------
  8 frames (0.27s)                        31.3                   13.8

  16 frames (0.53s)                       34.7                   15.0

  30 frames (1.0s)                  **39.7 & **18.5\          
                             45 frames (1.5s) & 30.9 & 10.9\  
                                          ****                
  -----------------------------------------------------------------------

  : *Trained models to reinstate tracks.*[]{data-label="table:ablation_solver"}

  Method                        AP$_{50}$   AP$_{75}$
  ---------------------------- ----------- -----------
  Siamese Track-RCNN              39.7        18.5
  + trained solver (online)       48.6        25.3
  + trained solver (offline)      50.2        26.6

  : *Trained models to reinstate tracks.*[]{data-label="table:ablation_solver"}

Conclusion
==========

We have presented our Siamese Track-RCNN, a unified MOT framework that is built on three branches: detect, track and re-id. These branches are trained jointly in an end-to-end fashion. The online inference of Siamese Track-RCNN is efficient and accurate. We achieved the best published results on MOTChallenge (2016 and 2017 track). We conducted a thorough ablation study where we showed the importance of our components and our hyper-parameter choices. Finally, in this work we explored applying this framework to the task of person tracking, but our framework is general and extensible. In the future we will explore applying Siamese Track-RCNN to the task of general MOT across more object categories, mask tracking and pose tracking.

Visual examples
===============

In Fig. \[figure:sumpplement\_tracktor\_vs\_track\], we show the tracking results of Tracktor [@bergmann2019tracking] and Siamese Track-RCNN (w/o re-id branch).

In Fig. \[figure:sumpplement\_embedding\_vs\_track\], we show the tracking results of online Siamese Track-RCNN with track branch or with re-id branch only.

In Fig. \[figure:sumpplement\_embedding\], we show the tracking results of online Siamese Track-RCNN with and without incorporating the outputs of re-id branch during inference.

In Fig. \[figure:sumpplement\_learned\_solver\], we show the tracking results of two versions of online Siamese Track-RCNN. One only incorporates the outputs of re-id branch (embedding) to **reinstate** tracks, and the other one incorporates both embedding and other cues (e.g. bounding box velocity, sizes, etc.) to **reinstate** tracks.

![In the highlighted examples, Tracktor [@bergmann2019tracking] jumps to different tracks when two people are crossing each other, whereas Siamese Track-RCNN is capable of following the right person.[]{data-label="figure:sumpplement_tracktor_vs_track"}](Figs/supplementary_tracktor.pdf){width="100.00000%"}

![In the highlighted examples, tracking with outputs of re-id branch (i.e. embedding) alone leads to split tracklets when partial occlusion happens, whereas the Siamese track branch is able to track through those cases. []{data-label="figure:sumpplement_embedding_vs_track"}](Figs/supplementary_track_vs_embedding.pdf){width="100.00000%"}

![The highlighted examples demonstrate the significance of re-id branch for Siamese Track-RCNN to track through full occlusion. []{data-label="figure:sumpplement_embedding"}](Figs/supplementary_embedding.pdf){width="100.00000%"}

![The highlighted examples illustrate the importance of using richer cues (i.e. embedding, velocity, etc.) to reinstate the tracks especially when their appearance has largely changed (e.g. due to long-time occlusions).[]{data-label="figure:sumpplement_learned_solver"}](Figs/supplementary_leanred_solver.pdf){width="100.00000%"}

Detailed results on MOTChallenge
================================

In Table \[table:supplement\_results\_mot16\] and \[table:supplement\_results\_mot17\], we present the sequence-level result summary of MOTChallenge of 2016 and 2017 respectively.

  Sequence   Detection     MOTA ($\uparrow$)   IDF1 ($\uparrow$)   MT ($\uparrow$)   ML ($\downarrow$)  FP ($\downarrow$)   FN ($\downarrow$)   IDsw ($\downarrow$)
  ---------- ------------ ------------------- ------------------- ----------------- ------------------- ------------------- ------------------- ---------------------
  MOT16-01   DPM [@dpm]          45.1                47.5               21.7%              39.1%        12                  3485                11
  MOT16-03   DPM                 72.3                70.1               47.3%              10.8%        3031                25762               122
  MOT16-06   DPM                 52.8                52.8               20.4%              40.3%        358                 4983                106
  MOT16-07   DPM                 51.7                49.7               18.5%              18.5%        206                 7588                90
  MOT16-08   DPM                 34.7                36.4               12.7%              36.5%        246                 10612               64
  MOT16-12   DPM                 49.0                55.9               20.9%              45.3%        194                 4018                21
  MOT16-14   DPM                 32.8                38.5               6.70%              46.3%        342                 11928               142
             59.8                60.8                22.0%              34.5%              4389         68376               556                 

  : Detailed result summary on MOT16 test videos.[]{data-label="table:supplement_results_mot16"}

  Sequence   Detection                 MOTA ($\uparrow$)   IDF1 ($\uparrow$)   MT ($\uparrow$)   ML ($\downarrow$)  FP ($\downarrow$)   FN ($\downarrow$)   IDsw ($\downarrow$)
  ---------- ------------------------ ------------------- ------------------- ----------------- ------------------- ------------------- ------------------- ---------------------
  MOT17-01   DPM [@dpm]                      44.8                47.2               20.8%              41.7%        12                  3540                11
  MOT17-03   DPM                             72.3                70.0               47.3%              10.8%        3009                25859               120
  MOT17-06   DPM                             52.3                52.1               19.4%              40.5%        320                 5193                106
  MOT17-07   DPM                             49.9                48.5               16.7%              30.0%        209                 8161                93
  MOT17-08   DPM                             27.7                30.7               10.5%              47.4%        226                 14979               64
  MOT17-12   DPM                             47.2                54.5               19.8%              47.3%        178                 4380                21
  MOT17-14   DPM                             32.8                38.5               6.70%              46.3%        342                 11928               142
  MOT17-01   FRCNN [@ren2015faster]          46.1                48.2               20.8%              41.7%        34                  3434                10
  MOT17-03   FRCNN                           72.0                68.0               46.6%              12.8%        3169                26072               108
  MOT17-06   FRCNN                           56.8                54.5               25.7%              28.4%        442                 4482                171
  MOT17-07   FRCNN                           47.8                48.6               18.3%              28.3%        306                 8422                90
  MOT17-08   FRCNN                           27.0                31.6               11.8%              50.0%        239                 15120               53
  MOT17-12   FRCNN                           43.2                55.6               16.5%              50.5%        268                 4637                17
  MOT17-14   FRCNN                           35.2                39.1               8.50%              43.3%        544                 11178               253
  MOT17-01   SDP [@yang2016exploit]          48.4                48.9               20.8%              37.5%        51                  3262                15
  MOT17-03   SDP                             78.4                72.3               61.5%              8.10%        4022                18442               141
  MOT17-06   SDP                             57.0                55.1               29.7%              28.8%        534                 4358                177
  MOT17-07   SDP                             52.8                49.6               23.3%              26.7%        341                 7541                99
  MOT17-08   SDP                             28.2                33.3               14.5%              44.7%        338                 14756               83
  MOT17-12   SDP                             46.6                54.6               19.8%              48.4%        284                 4325                19
  MOT17-14   SDP                             38.4                41.4               7.30%              40.2%        664                 10450               275
             59.6                            60.1                23.9%              33.9%              15532        210519              2068                

  : Detailed result summary on MOT17 test videos.[]{data-label="table:supplement_results_mot17"}

[^1]: <https://motchallenge.net/>
