CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练

本文详细介绍在Win10环境下,使用cuda10.1、cudnn7.5及pytorch1.4.0搭建FairMOT目标跟踪算法的环境配置流程。包括下载HRNetV2-W18预训练模型、VSCode配置、运行demo及调整参数以展示跟踪效果。此外,还介绍了如何使用CUHKSYSU数据集进行模型训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、本机环境

win10 64位,cuda 10.1,cudnn 7.5,pytorch 1.4.0 


2、运行demo

下载github上的代码:https://github.com/ifzhang/FairMOT 以及 预训练模型,这里我下载了HRNetV2-W18网络的预训练代码,因为DLA网络用到了DCN v2,这个需要提前编译,但是我这里编译失败了,作者说编译失败可以用HRNetV2-W18这个网络。模型下载完毕按照提示放在项目根目录下的models文件夹下

用vscode打开,ctrl+alt+p设置好python环境,然后按照作者提示,配置运行参数:

点击菜单栏 运行->打开配置

这时候会打开launch.json文件,在最下面添加args选项,也就是运行时参数。 

 设置完毕,将是否显示图片的参数show_image设置为true

按ctrl+f5运行,这时就可以看到在根目录平行目录下出现了一个results的文件夹,下面有个frame文件夹,里面保存了每一帧的跟踪结果:

然后显示出来的是每一帧跟踪结果,多运行一段时间,可以看到这个算法跟踪效果还是很不错的。目标被遮挡之后重新找回ID的能力还是很强的。这得益于单独的reid特征提取分支。


3、训练

   作者训练时准备了很多个数据集混合起来组成了一个大的训练集,这其实是用了JDE跟踪算法的做法,两者用了同一个混合数据集,而且这篇论文的代码也是在JDE代码的基础上改的,里面明显的可以见到跟踪类的名称是JDETracker。

   这里我为了测试代码,只下载了其中一个数据集:CUHKSYSU,大小为0.99G。将数据集解压,可以看到数据集格式:

图片和标签文件名相同,只有后缀不同。

接下来要设置一下代码中的数据集字典,因为我只下载了一个数据集,所以数据集字典中的其他数据集找不到会报错。修改如下:

打开这个data.json文件

修改根目录,和train里面的数据集,这里只保留cuhksysu这个数据集,其他的删掉,修改之后是这样的:

接下来修改GPU的编号,train.py文件中的下面的代码指定了GPU的编号

这里默认的gpu编号为0,1也就是有两个GPU,但是我只有一张GPU,所以这里设为0就好,也可以在参数设置的时候指定。

 

然后需要注意的是批大小,因为这个模型比较大,用到的图片分辨率为1088x608,所以很占显存,我的GTX1060只能设为2,否则会显存不足。接下来开始训练即可:

### FairMOT算法实现与使用 FairMOT 是一种基于深度学习的目标跟踪方法,它结合了检测和重识别(Re-ID)的任务来实现实时多目标跟踪。该算法的核心在于通过共享卷积特征提取网络的方式减少计算开销,并利用时空关联信息提高跟踪精度。 #### 算法概述 FairMOT 的主要特点是将检测框回归、分类以及 Re-ID 特征嵌入到同一个模型中[^1]。这种方法不仅提高了效率,还增强了不同任务之间的协同作用。具体来说: - **检测模块**:采用改进版的 CenterNet 架构作为基础检测器,能够高效预测物体中心点及其尺寸。 - **Re-ID 模块**:引入额外分支用于生成可区分的身份特征向量,这些特征被用来匹配同一对象在不同时刻的状态。 - **联合训练机制**:整个框架可以通过端到端方式优化,从而更好地平衡检测质量和身份一致性。 #### 实现细节 以下是关于如何获取并运行 FairMOT 的一些指导信息: 1. **安装依赖项** 需要先准备好 Python 开发环境及相关库文件,比如 PyTorch 和 TorchVision。可以参照官方仓库中的 `requirements.txt` 文件完成必要软件包的安装过程[^2]。 ```bash pip install -r requirements.txt ``` 2. **下载预训练权重** 访问 GitHub 上托管该项目页面链接地址,找到对应版本号下的 release 资源列表部分,从中选取适合自己的模型参数文件进行本地保存操作[^3]。 3. **配置测试脚本** 修改 demo.py 或其他入口程序里的路径变量设置,使其指向实际存储位置;另外还需指定输入视频流或者图片序列作为处理素材来源之一[^4]。 ```python from lib.tracking import eval_seq opt = opts().init() dataloader = datasets.LoadVideo(opt.input_video, (opt.img_size, opt.img_size)) result_filename = 'results.txt' online_tracker = JDETracker(opt, frame_rate=30) _, _ = eval_seq(opt, dataloader, 'mot', result_filename, save_dir=None, show_image=True, frame_rate=30) ``` 4. **执行推理流程** 启动应用程序后等待一段时间直至全部帧数都被分析完毕为止,在此期间可能会显示实时渲染画面以便观察效果表现情况[^5]。 #### 性能评估指标 对于 MOT 应用场景而言,常用的评价标准包括但不限于 MOTA(Multiple Object Tracking Accuracy)、IDF1 Score 以及其他衍生统计数值等。它们共同反映了系统综合能力水平高低程度差异之处所在[^6]。 ---
评论 134
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值