1、论文下载地址
TransT: Transformer Tracking.[paper]
2、代码下载地址
https://github.com/chenxin-dlut/TransT
3、建立虚拟环境并激活
conda create -n TransT python=3.7
conda activate TransT
4、安装pytorch和torchvision
pip install torch===1.4.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html
5、安装依赖库
pip install matplotlib pandas tqdm
pip install opencv-python tb-nightly visdom scikit-image tikzplotlib gdown
pip install cython scipy
sudo apt-get install libturbojpeg
pip install pycocotools jpeg4py
pip install wget yacs
pip install shapely==1.6.4.post2
7、配置预训练模型
工程路径下新建pytracking/networks路径,下载预训练模型放入此路径。模型下载地址:
百度网盘 请输入提取码,密码:iiau
8、添加环境变量
export PYTHONPATH=<path_of_TransT>:$PYTHONPATH
9、生成配置文件
在工程路径下运行如下代码:
# 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()"
运行之后,会生成pytracking/evaluation/local.py和ltr/admin/local.py两个配置文件。
10、打开pysot_toolkit/test.py,添加预训练模型路径和OTB数据集路径,
11、通过pysot工具运行代码
python -u pysot_toolkit/test.py --dataset OTB --name 'transt'
遇到错误1:
FileNotFoundError: [Errno 2] No such file or directory: '/data3/publicData/Datasets/OTB/OTB2015/OTB.json'
错误原因:pysot是通过json来读取图像序列的,这个json文件给出来每一张图片的路径,而OTB数据集没有提供。
解决方法:
1)下载json文件
链接:https://pan.baidu.com/s/1lwoOQL5t7p8ll61TyHFOqA
提取码:b3w8
2)将下载的json放到pysot_toolkit路径下
3)打开TransT-main/pysot_toolkit/toolkit/datasets/otb.py更改如下:
将87行
with open(os.path.join(dataset_root, name+'.json'), 'r') as f:
更改为:
with open(os.path.join('pysot_toolkit/testing_dataset', name+'100.json'), 'r') as f:
遇到错误2:
AssertionError: /data3/publicData/Datasets/OTB/OTB2015/Human4-2/img/0001.jpg
错误原因:
OTB数据集和json给出的Human4序列路径格式不对应
解决方法:
方法一:更改OTB数据集路径(不推荐)
方法二:将OTB100.json文件中的Human4-2改为Human4.
打开OTB100.json,Ctrl+R替换,除了最开始的第一个以外,其余全部替换
同理,将Jogging-1和Jogging-2,替换成Jogging
将Skating2-1和Skating2-2,替换成Skating2
注意所有操作都不要替换第一个,否则Jogging-1和Skating2-1的结果将会被覆盖!!!
12、再次运行成功