Skip to content

Commit

Permalink
Update docs about PrDiMP and make small changes about PrDiMP (#720)
Browse files Browse the repository at this point in the history
* release prdimp docs and models

* fix a potential bug

* update docs

* update docs

* add mefafile.yml

* update README.md in homepage

* update model_zoo.md

* Update README.md

* Update README.md

* Update model_zoo.md

* Update model-index.yml

* add metafile.yml

* merge from dev-1.x

* Update README.md

Co-authored-by: Tao Gong <gt950513@mail.ustc.edu.cn>
  • Loading branch information
JingweiZhang12 and GT9505 committed Sep 13, 2022
1 parent c889761 commit 717c5cc
Show file tree
Hide file tree
Showing 9 changed files with 239 additions and 27 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The master branch works with **PyTorch1.6+**.

## What's New

Release [Mask2Former](configs/vis/mask2former) pretrained models.
Release [Mask2Former](configs/vis/mask2former) and [PrDiMP](configs/sot/prdimp) pretrained models.

v1.0.0rc0 was released in 31/08/2022.
Please refer to [changelog.md](docs/en/changelog.md) for details and release history.
Expand Down Expand Up @@ -137,8 +137,8 @@ Supported Datasets
Supported Methods

- [x] [SiameseRPN++](configs/sot/siamese_rpn) (CVPR 2019)
- [x] [PrDiMP](configs/sot/prdimp) (CVPR2020)
- [x] [STARK](configs/sot/stark) (ICCV 2021)
- [ ] [PrDiMP](https://arxiv.org/abs/2003.12565) (CVPR2020) (WIP)

Supported Datasets

Expand Down
117 changes: 117 additions & 0 deletions configs/sot/prdimp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# Probabilistic Regression for Visual Tracking

## Abstract

<!-- [ABSTRACT] -->

Visual tracking is fundamentally the problem of regressing the state of the target in each video frame. While significant progress has been achieved, trackers are still prone to failures and inaccuracies. It is therefore crucial to represent the uncertainty in the target estimation. Although current prominent paradigms rely on estimating a state-dependent confidence score, this value lacks a clear probabilistic interpretation, complicating its use.
In this work, we therefore propose a probabilistic regression formulation and apply it to tracking. Our network predicts the conditional probability density of the target state given an input image. Crucially, our formulation is capable of modeling label noise stemming from inaccurate annotations and ambiguities in the task. The regression network is trained by minimizing the Kullback-Leibler divergence. When applied for tracking, our formulation not only allows a probabilistic representation of the output, but also substantially improves the performance. Our tracker sets a new state-of-the-art on six datasets, achieving 59.8% AUC on LaSOT and 75.8% Success on TrackingNet. The code and models are available at [this https URL](https://github.com/visionml/pytracking).

<!-- [IMAGE] -->

<div align="center">
<img src="https://user-images.githubusercontent.com/34888372/188844862-9bec1963-54f4-4c1c-b013-52fec3811465.png"/>
</div>

## Citation

<!-- [ALGORITHM] -->

```latex
@inproceedings{Danelljan2020Probabilistic,
title={Probabilistic Regression for Visual Tracking},
author={Danelljan, Martin and Van Gool, Luc and Timofte, Radu},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
year={2020}
}
```

## Results and models

### LaSOT

We provide the last-epoch model with its configuration and training log.

| Method | Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | Success | Norm precision | Precision | Config | Download |
| :----: | :------: | :---: | :-----: | :------: | :------------: | :-----: | :------------: | :-------: | :------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| PrDiMP | R-50 | - | 50e | 13.9 | - | 59.7 | 67.7 | 60.5 | [config](prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot.py) | [model](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200.json) |

### TrackingNet

The last-epoch model on LaSOT is submitted to [the evaluation server on TrackingNet Challenge](https://eval.ai/web/challenges/challenge-page/1805/). We provide the model with its configuration and training log.

| Method | Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | Success | Norm precision | Precision | Config | Download |
| :----: | :------: | :---: | :-----: | :------: | :------------: | :-----: | :------------: | :-------: | :------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| PrDiMP | R-50 | - | 50e | 13.9 | - | 75.2 | 80.5 | 70.1 | [config](prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-trackingnet.py) | [model](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200.json) |

### GOT10k

The results of PrDiMP in GOT10k are reimplemented by ourselves. We only use the GOT10k train set to train the model, which is the common setting on GOT10k, while the setting on the PrDiMP paper is using the GOT10k, LaSOT, TrackingNet and coco to train the model. The result on our setting is lower about 1 than the original PrDiMP setting. The last-epoch model is submitted to [the evaluation server on GOT10k Challenge](http://got-10k.aitestunion.com/). We provide the model with its configuration and training log.

| Method | Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | AO | SR<sub>0.5</sub> | SR<sub>0.75</sub> | Config | Download |
| :----: | :------: | :---: | :-----: | :------: | :------------: | :--: | :--------------: | :---------------: | :--------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| PrDiMP | R-50 | - | 50e | 13.9 | - | 62.9 | 72.5 | 52.8 | [config](prdimp_r50_8xb10-50e_got10k.py) | [model](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k_20220907_173919-fa24df25.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k_20220907_173919.json) |

## Get started

### 1. Training

Due to the influence of parameters such as learning rate in default configuration file, we recommend using 8 GPUs for training in order to reproduce accuracy. The following is an example of training PrDiMP tested on LaSOT dataset. The model on GOT10k is similar like this.

```shell
# Training PrDiMP on LaSOT、TrackingNet and coco dataset.
# The number after config file represents the number of GPUs used. Here we use 8 GPUs
./tools/dist_train.sh \
configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot.py 8
```

If you want to know about more detailed usage of `train.py/dist_train.sh/slurm_train.sh`, please refer to this [document](../../../docs/en/user_guides/4_train_test.md).

### 2. Testing and evaluation

**2.1 Example on LaSOT dataset**

```shell
# Test PrDiMP on LaSOT testset
# The number after config file represents the number of GPUs used. Here we use 8 GPUs.
./tools/dist_test.sh \
configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot.py 8 \
--checkpoint ./checkpoints/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth
```

**2.1 Example on TrackingNet and GOT10k datasets**

If you want to get the results of the [TrackingNet](https://eval.ai/web/challenges/challenge-page/1805/) and [GOT10k](http://got-10k.aitestunion.com/), please use the following commands to generate result files that can be used for submission. You can modify the saved path in `test_evaluator` of the config.

```shell
# Test PrDIMP on TrackingNet testset.
# The result is stored in `./results/prdimp_trackingnet.zip` by default.
# We use the lasot checkpoint on LaSOT to test on the TrackingNet.
# The number after config file represents the number of GPUs used. Here we use 8 GPUs.
./tools/dist_test.sh \
configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-trackingnet.py 8 \
--checkpoint ./checkpoints/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth
```

```shell
# Test PrDiMP on GOT10k testset.
# The result is stored in `./results/prdimp_got10k.zip` by default.
# The number after config file represents the number of GPUs used. Here we use 8 GPUs.
./tools/dist_test.sh \
configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k.py 8 \
--checkpoint ./checkpoints/prdimp_r50_8xb10-50e_got10k_20220907_173919-fa24df25.pth
```

### 3.Inference

Use a single GPU to predict a video and save it as a video.

```shell
python demo/demo_sot.py \
configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot.py \
--checkpoint ./checkpoints/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth \
--input demo/demo.mp4 \
--output sot.mp4
```

If you want to know about more detailed usage of `demo_sot.py`, please refer to this [document](../../../docs/en/user_guides/3_inference.md).
62 changes: 62 additions & 0 deletions configs/sot/prdimp/metafile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Collections:
- Name: PrDiMP
Metadata:
Training Data: GOT10k, LaSOT, TrackingNet, MSCOCO
Training Techniques:
- Adam
Training Resources: 8x V100 GPUs
Architecture:
- ResNet
Paper:
URL: https://arxiv.org/abs/2003.12565
Title: Probabilistic Regression for Visual Tracking
README: configs/sot/prdimp/README.md

Models:
- Name: prdimp_r50_8xb10-50e_got10k
In Collection: PrDiMP
Config: configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k.py
Metadata:
Training Data: GOT10k
Training Memory (GB): 13.9
Epochs: 50
Results:
- Task: Single Object Tracking
Dataset: GOT10k
Metrics:
AO: 62.9
SR0.5: 72.5
SR0.75: 52.8
Weights: https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k_20220907_173919-fa24df25.pth

- Name: prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot
In Collection: PrDiMP
Config: configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot.py
Metadata:
Training Data: GOT10k, LaSOT, TrackingNet, MSCOCO
Training Memory (GB): 13.9
Epochs: 50
Results:
- Task: Single Object Tracking
Dataset: LaSOT
Metrics:
Success: 59.7
Norm Precision: 67.7
Precision: 60.5
Weights: https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth

- Name: prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-trackingnet
In Collection: PrDiMP
Config: configs/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-trackingnet.py
Metadata:
Training Data: GOT10k, LaSOT, TrackingNet, MSCOCO
Training Memory (GB): 13.9
Epochs: 50
Results:
- Task: Single Object Tracking
Dataset: TrackingNet
Metrics:
Success: 75.2
Norm Precision: 80.5
Precision: 70.1
Weights: https://download.openmmlab.com/mmtracking/sot/prdimp/prdimp_r50_8xb10-50e_got10k-lasot-trackingnet-coco_test-lasot_20220822_082200-b7dbeca4.pth
10 changes: 5 additions & 5 deletions configs/sot/stark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ The results of STARK in TrackingNet are reimplemented by ourselves. The last-epo

### GOT10k

The results of STARK in GOT10k are reimplemented by ourselves. The last-epoch model on GOT10k is submitted to [the evaluation server on GOT10k Challenge](http://got-10k.aitestunion.com/). We provide the model with its configuration and training log.
The results of STARK in GOT10k are reimplemented by ourselves. The last-epoch model is submitted to [the evaluation server on GOT10k Challenge](http://got-10k.aitestunion.com/). We provide the model with its configuration and training log.

| Method | Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | Success | Norm precision | Precision | Config | Download |
| :-------: | :------: | :---: | :-----: | :------: | :------------: | :-----: | :------------: | :-------: | :----------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| STARK-ST1 | R-50 | - | 500e | 8.45 | - | 68.1 | 77.4 | 62.4 | [config](stark-st1_resnet50_8xb16-500e_got10k-lasot-trackingnet-coco_test-got10k.py) | [model](https://download.openmmlab.com/mmtracking/sot/stark/stark_st1_r50_500e_got10k/stark_st1_r50_500e_got10k_20220223_125400-40ead158.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/stark/stark_st1_r50_500e_got10k/stark_st1_r50_500e_got10k_20220223_125400.log.json) |
| STARK-ST2 | R-50 | - | 50e | 2.31 | - | 68.3 | 77.6 | 62.7 | [config](stark-st2_resnet50_8xb16-50e_got10k-lasot-trackingnet-coco_test-got10k.py) | [model](https://download.openmmlab.com/mmtracking/sot/stark/stark_st2_r50_50e_got10k/stark_st2_r50_50e_got10k_20220226_124213-ee39bbff.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/stark/stark_st2_r50_50e_got10k/stark_st2_r50_50e_got10k_20220226_124213.log.json) |
| Method | Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | AO | SR<sub>0.5</sub> | SR<sub>0.75</sub> | Config | Download |
| :-------: | :------: | :---: | :-----: | :------: | :------------: | :--: | :--------------: | :---------------: | :----------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| STARK-ST1 | R-50 | - | 500e | 8.45 | - | 68.1 | 77.4 | 62.4 | [config](stark-st1_resnet50_8xb16-500e_got10k-lasot-trackingnet-coco_test-got10k.py) | [model](https://download.openmmlab.com/mmtracking/sot/stark/stark_st1_r50_500e_got10k/stark_st1_r50_500e_got10k_20220223_125400-40ead158.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/stark/stark_st1_r50_500e_got10k/stark_st1_r50_500e_got10k_20220223_125400.log.json) |
| STARK-ST2 | R-50 | - | 50e | 2.31 | - | 68.3 | 77.6 | 62.7 | [config](stark-st2_resnet50_8xb16-50e_got10k-lasot-trackingnet-coco_test-got10k.py) | [model](https://download.openmmlab.com/mmtracking/sot/stark/stark_st2_r50_50e_got10k/stark_st2_r50_50e_got10k_20220226_124213-ee39bbff.pth) \| [log](https://download.openmmlab.com/mmtracking/sot/stark/stark_st2_r50_50e_got10k/stark_st2_r50_50e_got10k_20220226_124213.log.json) |

## Get started

Expand Down
Loading

0 comments on commit 717c5cc

Please sign in to comment.