项目介绍:SiamMOT
什么是SiamMOT?
SiamMOT是一种基于区域的Siamese多目标追踪网络,它能够同时检测和关联多个对象实例。通过这种方式,SiamMOT提高了在线多目标追踪(MOT)的效率和准确性。该项目的名称“SiamMOT”来源于其结合了Siamese网络结构,用于在视频帧间进行对象的运动和关联建模。
主要特点
1. 运动模型
SiamMOT通过嵌入一个运动模型来估计对象在两帧之间的移动,从而实现对检测到的对象进行关联处理。这个项目探讨了运动建模如何影响追踪能力,并展示了两种不同的Siamese跟踪器:一种是隐式建模运动,另一种是显式建模运动。
2. 优异表现
通过在三个不同的MOT数据集上进行大量实验:MOT17、TAO-person和Caltech Roadside Pedestrians,SiamMOT证明了运动建模的重要性,并且显著超越了现有的最佳表现模型。此外,它在HiEve数据集上的表现也超过了ACM MM’20 HiEve大赛的获胜者。
3. 高效运行
SiamMOT在单个现代GPU上,以每秒17帧的速度运行720P视频,这显示了其高效的计算性能。
安装指南
用户可参照项目目录中的INSTALL.md
文件进行安装。
尝试SiamMOT演示
项目提供了两种追踪模型用于演示——一个用于追踪人(可见部分),另一个用于同时追踪人和车辆(如公共汽车、汽车、卡车、摩托车等)。人类追踪模型是在COCO-17和CrowdHuman数据集上训练的,而后者是在COCO-17和VOC12数据集上训练的。
用户可以通过以下命令运行演示:
python3 demos/demo.py --demo-video PATH_TO_DEMO_VIDEO --track-class person --dump-video True
可以选择person
或person_vehicle
作为track-class
以使用相应的追踪模型。模型将自动下载到demos/models
目录,追踪输出的可视化结果则保存在demos/demo_vis
目录中。
数据集评估与训练
完成安装后,用户需按照DATA.md
文件中的指示来设置数据集。为了验证,用户可以使用model_zoos.md
文件中介绍的预训练模型进行测试。
使用以下命令在8GPU机器上训练模型:
python3 -m torch.distributed.launch --nproc_per_node=8 tools/train_net.py --config-file configs/dla/DLA_34_FPN.yaml --train-dir PATH_TO_TRAIN_DIR --model-suffix MODEL_SUFFIX
在单GPU机器上测试模型的命令如下:
python3 tools/test_net.py --config-file configs/dla/DLA_34_FPN.yaml --output-dir PATH_TO_OUTPUT_DIR --model-file PATH_TO_MODEL_FILE --test-dataset DATASET_KEY --set val
版本更新
当前版本专为“空中物体追踪挑战”(Airborne Object Tracking Challenge)工作坊制作,并仅支持EMM运动模型。近期更新包括配置文件重构、MOT17模型的发布以及基于公开检测提供推理支持等。
许可信息
SiamMOT项目遵循Apache-2.0许可证。