MixFormer
CVPR 2022论文《MixFormer: 基于迭代混合注意力的端到端跟踪》的官方实现
[模型和原始结果] (Google Drive) [模型和原始结果] (百度网盘: hmuv)
新闻
[2024年1月1日]
- 扩展版本已被T-PAMI 2024接受(https://ieeexplore.ieee.org/document/10380715),如果您能在您的跟踪工作中**引用**我们的新跟踪器(即MixViT, MixViT (ConvMAE)),我们将不胜感激。
[2023年2月10日]
- :fire::fire::fire: MixViT和MixViT-ConvMAE的代码和模型现已可用! 感谢宋天慧帮助我们整理代码。
[2023年2月8日]
- 扩展版本已在https://arxiv.org/abs/2302.02814 上可用。特别是,扩展版MixViT-L(ConvMAE)在LaSOT上达到73.3%的AUC得分。此外,我们为跟踪设计了一种新的TrackMAE预训练方法。代码和模型将很快更新。
[2022年10月26日]
- MixFormerL(基于MixViT-L)在VOT2022-STb公开数据集上排名第1/41。
- 由赖思淼实现的MixForRGBD和MixForD赢得了VOT2022-RGBD和VOT2022-D冠军,这些都是基于我们的MixFormer构建的。
- VOT2022-STs冠军MS-AOT采用MixFormer作为跟踪器的一部分。VOT2022-STb冠军APMT_MR采用MixFormer中提出的SPM来选择动态模板。
[2022年3月29日]
- 我们的论文被选为口头报告。
[2022年3月21日]
- MixFormer被CVPR2022接受。
- 我们发布了代码、模型和原始结果。
亮点
:sparkles: 新的transformer跟踪框架
MixFormer由基于目标-搜索混合注意力(MAM)的主干网络和一个简单的角点头组成, 形成了一个紧凑的跟踪流程,无需显式集成模块。
:sparkles: 端到端,无后处理
Mixformer是一个无需后处理的端到端跟踪框架。
:sparkles: 强大性能
跟踪器 | VOT2020 (EAO) | LaSOT (NP) | GOT-10K (AO) | TrackingNet (NP) |
---|---|---|---|---|
MixViT-L (ConvMAE) | 0.567 | 82.8 | - | 90.3 |
MixViT-L | 0.584 | 82.2 | 75.7 | 90.2 |
MixCvT | 0.555 | 79.9 | 70.7 | 88.9 |
ToMP101* (CVPR2022) | - | 79.2 | - | 86.4 |
SBT-large* (CVPR2022) | 0.529 | - | 70.4 | - |
SwinTrack* (Arxiv2021) | - | 78.6 | 69.4 | 88.2 |
Sim-L/14* (Arxiv2022) | - | 79.7 | 69.8 | 87.4 |
STARK (ICCV2021) | 0.505 | 77.0 | 68.8 | 86.9 |
KeepTrack (ICCV2021) | - | 77.2 | - | - |
TransT (CVPR2021) | 0.495 | 73.8 | 67.1 | 86.7 |
TrDiMP (CVPR2021) | - | - | 67.1 | 83.3 |
Siam R-CNN (CVPR2020) | - | 72.2 | 64.9 | 85.4 |
TREG (Arxiv2021) | - | 74.1 | 66.8 | 83.8 |
安装环境
使用Anaconda
conda create -n mixformer python=3.6
conda activate mixformer
bash install_pytorch17.sh
数据准备
将跟踪数据集放在./data目录下。它应该看起来像这样:
${MixFormer_ROOT}
-- data
-- lasot
|-- airplane
|-- basketball
|-- bear
...
-- got10k
|-- test
|-- train
|-- val
-- coco
|-- annotations
|-- train2017
-- trackingnet
|-- TRAIN_0
|-- TRAIN_1
...
|-- TRAIN_11
|-- TEST
设置项目路径
运行以下命令为此项目设置路径
python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir .
运行此命令后,您还可以通过编辑以下两个文件来修改路径
lib/train/admin/local.py # 关于训练的路径
lib/test/evaluation/local.py # 关于测试的路径
训练MixFormer
使用DDP进行多GPU训练。其他训练设置的更多细节可以在tracking/train_mixformer_[cvt/vit/convmae].sh
中找到,分别对应不同的骨干网络。
# 使用CVT骨干网络的MixFormer
bash tracking/train_mixformer_cvt.sh
# 使用ViT骨干网络的MixFormer
bash tracking/train_mixformer_vit.sh
# 使用ConvMAE骨干网络的MixFormer
bash tracking/train_mixformer_convmae.sh
在基准测试上测试和评估MixFormer
- LaSOT/GOT10k-test/TrackingNet/OTB100/UAV123。测试设置的更多细节可以在
tracking/test_mixformer_[cvt/vit/convmae].sh
中找到
bash tracking/test_mixformer_cvt.sh
bash tracking/test_mixformer_vit.sh
bash tracking/test_mixformer_convmae.sh
- VOT2020
在VOT2020上评估"MixFormer+AR"之前,请按照external/AR/README.md安装一些额外的包。此外,还需要VOT工具包来评估我们的跟踪器。要下载和安装VOT工具包,您可以参考这个教程。为了方便起见,您可以通过设置trackers.ini
来使用我们在external/vot20/
下的VOT工具包示例工作空间。
cd external/vot20/<workspace_dir>
vot evaluate --workspace . MixFormerPython
# 生成分析结果
vot analysis --workspace . --nocache
在您自己的视频上运行MixFormer
bash tracking/run_video_demo.sh
计算FLOPs/参数并测试速度
bash tracking/profile_mixformer.sh
可视化注意力图
bash tracking/vis_mixformer_attn.sh
模型库和原始结果
训练好的模型和原始跟踪结果可以在[模型和原始结果](Google Drive)或 [模型和原始结果](百度网盘:hmuv)中找到。
联系方式
致谢
- 感谢PyTracking库和STARK库,它们帮助我们快速实现了我们的想法。
- 我们使用了官方仓库CvT中CvT的实现。
✏️ 引用
如果您认为这个项目有帮助,请随意留下一个星标⭐️并引用我们的论文:
@inproceedings{cui2022mixformer,
标题={Mixformer:使用迭代混合注意力的端到端跟踪},
作者={崔宇涛 and 姜程 and 王利民 and 吴刚山},
会议名称={IEEE/CVF计算机视觉与模式识别会议论文集},
页码={13608--13618},
年份={2022}
}
@ARTICLE{cui2023mixformer,
期刊={IEEE模式分析与机器智能汇刊},
标题={MixFormer:使用迭代混合注意力的端到端跟踪},
作者={崔宇涛 and 姜程 and 吴刚山 and 王利民},
年份={2024}
}