# TransT
**Repository Path**: frankxia2018_admin/TransT
## Basic Information
- **Project Name**: TransT
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-01-19
- **Last Updated**: 2022-01-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TransT - Transformer Tracking [CVPR2021]
Official implementation of the TransT (CVPR2021) , including training code and trained models.
## News
- :trophy: **TransT-M wins VOT2021 Real-Time Challenge with EAOMultistart 0.550! The code will be released soon**
## Tracker
#### TransT ####
[**[Paper]**](https://arxiv.org/abs/2103.15436)
[**[Models(google)]**](https://drive.google.com/drive/folders/1GVQV1GoW-ttDJRRqaVAtLUtubtgLhWCE?usp=sharing)
[**[Models(baidu:iiau)]**](https://pan.baidu.com/s/1geI1cIv_AdLUd7qYKWIqzw)
[**[Raw Results]**](https://drive.google.com/file/d/1FSUh6NSzu8H2HzectIwCbDEKZo8ZKUro/view?usp=sharing)
This work
presents a attention-based feature fusion network,
which effectively combines the template and search region
features using attention. Specifically, the proposed
method includes an ego-context augment module based on
self-attention and a cross-feature augment module based on
cross-attention. We present a Transformer tracking
(named TransT) method based on the Siamese-like feature extraction
backbone, the designed attention-based fusion mechanism,
and the classification and regression head.
TransT is a very simple and efficient tracker,
without online update module, using the same model and hyparameter for all
test sets.


## Results
For VOT2020, we add a mask branch to generate mask, without any hyparameter-tuning. The code of the mask branch will be released soon.
Model |
LaSOT AUC (%) |
TrackingNet AUC (%) |
GOT-10k AO (%) |
VOT2020 EAO (%) |
TNL2K AUC (%) |
OTB100 AUC (%) |
NFS AUC (%) |
UAV123 AUC (%) |
Speed
|
Params
|
TransT-N2 |
64.2 |
80.9 |
69.9 |
- |
- |
68.1 |
65.7 |
67.0 |
70fps |
16.7M |
TransT-N4 |
64.9 |
81.4 |
72.3 |
49.5 |
51.0 |
69.4 |
65.7 |
69.1 |
50fps |
23.0M |
## Installation
This document contains detailed instructions for installing the necessary dependencied for **TransT**. The instructions
have been tested on Ubuntu 18.04 system.
#### Install dependencies
* Create and activate a conda environment
```bash
conda create -n transt python=3.7
conda activate transt
```
* Install PyTorch
```bash
conda install -c pytorch pytorch=1.5 torchvision=0.6.1 cudatoolkit=10.2
```
* Install other packages
```bash
conda install matplotlib pandas tqdm
pip install opencv-python tb-nightly visdom scikit-image tikzplotlib gdown
conda install cython scipy
sudo apt-get install libturbojpeg
pip install pycocotools jpeg4py
pip install wget yacs
pip install shapely==1.6.4.post2
```
* Setup the environment
Create the default environment setting files.
```bash
# Change directory to
cd TransT
# Environment settings for pytracking. Saved at pytracking/evaluation/local.py
python -c "from pytracking.evaluation.environment import create_default_local_file; create_default_local_file()"
# Environment settings for ltr. Saved at ltr/admin/local.py
python -c "from ltr.admin.environment import create_default_local_file; create_default_local_file()"
```
You can modify these files to set the paths to datasets, results paths etc.
* Add the project path to environment variables
Open ~/.bashrc, and add the following line to the end. Note to change to your real path.
```
export PYTHONPATH=:$PYTHONPATH
```
* Download the pre-trained networks
Download the network for [TransT](https://drive.google.com/drive/folders/1GVQV1GoW-ttDJRRqaVAtLUtubtgLhWCE?usp=sharing)
and put it in the directory set by "network_path" in "pytracking/evaluation/local.py". By default, it is set to
pytracking/networks.
## Quick Start
#### Traning
* Modify [local.py](ltr/admin/local.py) to set the paths to datasets, results paths etc.
* Runing the following commands to train the TransT. You can customize some parameters by modifying [transt.py](ltr/train_settings/transt/transt.py)
```bash
conda activate transt
cd TransT/ltr
python run_training.py transt transt
```
#### Evaluation
* We integrated [PySOT](https://github.com/STVIR/pysot) for evaluation. You can download json files in [PySOT](https://github.com/STVIR/pysot) or [here](https://drive.google.com/file/d/1PItNIOkui0iGCRglgsZPZF1-hkmj7vyv/view?usp=sharing).
You need to specify the path of the model and dataset in the [test.py](pysot_toolkit/test.py).
```python
net_path = '/path_to_model' #Absolute path of the model
dataset_root= '/path_to_datasets' #Absolute path of the datasets
```
Then run the following commands.
```bash
conda activate TransT
cd TransT
python -u pysot_toolkit/test.py --dataset --name 'transt' #test tracker #test tracker
python pysot_toolkit/eval.py --tracker_path results/ --dataset --num 1 --tracker_prefix 'transt' #eval tracker
```
The testing results will in the current directory(results/dataset/transt/)
* You can also use [pytracking](pytracking) to test and evaluate tracker.
The results might be slightly different with [PySOT](https://github.com/STVIR/pysot) due to the slight difference in implementation (pytracking saves results as integers, pysot toolkit saves the results as decimals).
#### Getting Help
If you meet problem, please try searching our Github issues, if you can't find solutions, feel free to open a new issue.
* `ImportError: cannot import name region`
Solution: You can just delete `from pysot_toolkit.toolkit.utils.region import vot_overlap, vot_float2str` in [test.py](pysot_toolkit/test.py) if you don't test VOT2019/18/16.
You can also build `region` by `python setup.py build_ext --inplace` in [pysot_toolkit](pysot_toolkit).
## Citation
```
@inproceedings{TransT,
title={Transformer Tracking},
author={Chen, Xin and Yan, Bin and Zhu, Jiawen and Wang, Dong and Yang, Xiaoyun and Lu, Huchuan},
booktitle={CVPR},
year={2021}
}
```
## Acknowledgement
This is a modified version of the python framework [PyTracking](https://github.com/visionml/pytracking) based on **Pytorch**,
also borrowing from [PySOT](https://github.com/STVIR/pysot) and [detr](https://github.com/facebookresearch/detr).
We would like to thank their authors for providing great frameworks and toolkits.
## Contact
* Xin Chen (email:chenxin3131@mail.dlut.edu.cn)
Feel free to contact me if you have additional questions.