-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update QDTrack zoo * Finish updating QDTrack zoo * Fix issues * Fix mypy * Fix README
- Loading branch information
1 parent
ab4fa89
commit 93f5c41
Showing
14 changed files
with
112 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
"""QDTrack configs tests.""" | ||
import unittest | ||
|
||
from .util import compare_configs | ||
|
||
|
||
class TestQDTrackConfig(unittest.TestCase): | ||
"""Tests the content of the provided configs for QDTrack.""" | ||
|
||
config_prefix = "qdtrack" | ||
gt_config_path = "tests/vis4d-test-data/config_test/qdtrack" | ||
varying_keys = ["save_prefix", "output_dir", "version", "timestamp"] | ||
|
||
def test_frcnn_r50_fpn_augs_1x_bdd100k(self) -> None: | ||
"""Test the config for QDTrack Faster-RCNN. | ||
This instantiates the config and compares it to a ground truth. | ||
""" | ||
compare_configs( | ||
f"{self.config_prefix}.qdtrack_frcnn_r50_fpn_augs_1x_bdd100k", | ||
f"{self.gt_config_path}/" | ||
+ "qdtrack_frcnn_r50_fpn_augs_1x_bdd100k.yaml", | ||
self.varying_keys, | ||
) | ||
|
||
def test_yolox_x_50e_bdd100k(self) -> None: | ||
"""Test the config for QDTrack YOLOX. | ||
This instantiates the config and compares it to a ground truth. | ||
""" | ||
compare_configs( | ||
f"{self.config_prefix}.qdtrack_yolox_x_50e_bdd100k", | ||
f"{self.gt_config_path}/qdtrack_yolox_x_50e_bdd100k.yaml", | ||
self.varying_keys, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# [TPAMI 2023] QDTrack: Quasi-Dense Similarity Learning for Appearance-Only Multiple Object Tracking | ||
This is the official implementation of our paper **"QDTrack: Quasi-Dense Similarity Learning for Appearance-Only Multiple Object Tracking"**. | ||
|
||
[Tobias Fischer*](https://tobiasfshr.github.io/), [Thomas E Huang*](https://www.thomasehuang.com/), [Jiangmiao Pang*](https://scholar.google.com/citations?user=ssSfKpAAAAAJ), [Linlu Qiu](https://linlu-qiu.github.io/), [Haofeng Chen](https://www.haofeng.io/), Qi Li, [Trevor Darrell](https://people.eecs.berkeley.edu/~trevor/), [Fisher Yu](https://www.yf.io/) | ||
|
||
[[Paper](https://arxiv.org/abs/2210.06984)] | ||
|
||
<img src="./src/banner.png" width="830"> | ||
|
||
## Abstract | ||
Similarity learning has been recognized as a crucial step for object tracking. However, existing multiple object tracking methods only use sparse ground truth matching as the training objective, while ignoring the majority of the informative regions in images. In this paper, we present Quasi-Dense Similarity Learning, which densely samples hundreds of object regions on a pair of images for contrastive learning. We combine this similarity learning with multiple existing object detectors to build Quasi-Dense Tracking (QDTrack), which does not require displacement regression or motion priors. We find that the resulting distinctive feature space admits a simple nearest neighbor search at inference time for object association. In addition, we show that our similarity learning scheme is not limited to video data, but can learn effective instance similarity even from static input, enabling a competitive tracking performance without training on videos or using tracking supervision. We conduct extensive experiments on a wide variety of popular MOT benchmarks. We find that, despite its simplicity, QDTrack rivals the performance of state-of-the-art tracking methods on all benchmarks and sets a new state-of-the-art on the large-scale BDD100K MOT benchmark, while introducing negligible computational overhead to the detector. | ||
|
||
## Model Zoo | ||
|
||
| Detector | Base Network | Strong Augs. | mMOTA-val | mIDF1-val | ID Sw.-val | Config | Weights | Visuals | | ||
| :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | ||
| Faster R-CNN | R-50-FPN | ✓ | 37.7 | 52.7 | 7257| [config](./qdtrack/qdtrack_frcnn_r50_fpn_augs_1x_bdd100k.py) | [model](https://dl.cv.ethz.ch/vis4d/qdtrack/qdtrack_frcnn_r50_fpn_augs_1x_bdd100k_456b1e.pt) | [visuals](https://dl.cv.ethz.ch/vis4d/qdtrack/qdtrack_frcnn_r50_fpn_augs_1x_bdd100k_vis.zip) | | ||
| YOLOX-x | CSPNet | ✓ | 42.3 | 55.1 | 9164 | [config](./qdtrack/qdtrack_yolox_x_50e_bdd100k.py) | [model](https://dl.cv.ethz.ch/vis4d/qdtrack/qdtrack_yolox_x_25e_bdd100k_c14af2.pt) | [visuals](https://dl.cv.ethz.ch/vis4d/qdtrack/qdtrack_yolox_x_25e_bdd100k_vis.zip) | | ||
|
||
## Getting Started | ||
|
||
### Train | ||
```bash | ||
# R50 | ||
python -m vis4d.pl fit --config vis4d/zoo/qdtrack/qdtrack_frcnn_r50_fpn_augs_1x_bdd100k.py --gpus 8 | ||
|
||
# YOLOX | ||
python -m vis4d.pl fit --config vis4d/zoo/qdtrack/qdtrack_yolox_x_50e_bdd100k.py --gpus 8 | ||
``` | ||
|
||
### Inference | ||
```bash | ||
# R50 | ||
python -m vis4d.pl test --config vis4d/zoo/qdtrack/qdtrack_frcnn_r50_fpn_augs_1x_bdd100k.py --ckpt ${checkpoint_path} --gpus ${num_gpus} | ||
|
||
# YOLOX | ||
python -m vis4d.pl test --config vis4d/zoo/qdtrack/qdtrack_yolox_x_50e_bdd100k.py --ckpt ${checkpoint_path} --gpus ${num_gpus} | ||
``` | ||
|
||
## Citation | ||
``` | ||
@article{fischer2023qdtrack, | ||
title={Qdtrack: Quasi-dense similarity learning for appearance-only multiple object tracking}, | ||
author={Fischer, Tobias and Huang, Thomas E and Pang, Jiangmiao and Qiu, Linlu and Chen, Haofeng and Darrell, Trevor and Yu, Fisher}, | ||
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, | ||
year={2023}, | ||
publisher={IEEE} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
"""QDTrack.""" | ||
from . import ( | ||
qdtrack_frcnn_r50_fpn_augs_1x_bdd100k, | ||
qdtrack_yolox_x_50e_bdd100k, | ||
) | ||
|
||
# Lists of available models in BDD100K Model Zoo. | ||
AVAILABLE_MODELS = { | ||
"qdtrack_frcnn_r50_fpn_augs_1x_bdd100k": ( | ||
qdtrack_frcnn_r50_fpn_augs_1x_bdd100k | ||
), | ||
"qdtrack_yolox_x_50e_bdd100k": qdtrack_yolox_x_50e_bdd100k, | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.