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

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文件夹下

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第1张图片

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第2张图片

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

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第3张图片

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第4张图片

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第5张图片

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

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第6张图片


3、训练

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

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第7张图片

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第8张图片

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第9张图片

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

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

打开这个data.json文件

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第10张图片

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第11张图片

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

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

 

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

CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练_第12张图片

你可能感兴趣的:(人工智能)