Tracking(目标跟踪):Mot(多目标跟踪系列)-FairMot,快速入门代码、小白都看懂

Tracking系列_fairmot(多目标跟踪算法)_源码_第一步(demo和训练):

源码:
https://github.com/ifzhang/FairMOT
论文(A类期刊:IJCV2021,含金量杠杠滴):
https://arxiv.org/abs/2004.01888


代码解读(使用说明书):

一、环境搭建

1、需要conda:

什么?没conda,请👈安装,这一步完成,已经完成30%了,接下来就是傻瓜式操作了。
很快、简单啊,我求你安装一个吧,栓Q。
 

2、conda安装python和其它环境包:

先把源码下载下来,之后开始搭建环境
源码的作者建议: python=3.8 and pytorch >= 1.7.0


conda create -n FairMOT python=3.8 #-n 代表环境名字
conda activate FairMOT #激活这个叫FairMOT的环境
conda install pytorch==1.7.0 torchvision==0.8.0 cudatoolkit=10.2 -c pytorch #这里安装torch等工具包
cd ${FAIRMOT_ROOT} #进入你git下的源码
pip install cython
pip install -r requirements.txt #安装其它依赖库

 
 

二、运行起来,5分钟快速出效果(用lol的话来说,选择完英雄,接下来就是英雄的QWER技能学习)

1、整体的代码查看

请直接操作src文件里的代码
一 

2、src里的代码查看

在这里插入图片描述
简单说说:
opts.py——操作输入的参数的(就是你英雄配置什么装备,不能乱搞,不然就是盖伦出蓝水晶。)
demo.py——简单运行个网络看看效果
track.py——追踪功能的代码(这个就是英雄的QWER说明)
train.py——训练网络的入口

 

3、实现

👉快速出演示效果

主要3个地方(demo.py+opts.py+模型)

  • 第1、下载一个训练过的模型,

https://drive.google.com/file/d/1iqRQjsG9BawIl8SlFomMg5iwkb6nqSpi/view?usp=sharing

  • 第2、设置opts.py

--load_model 设置上一步下载好的模型权重位置

在opts.py的19行
在这里插入图片描述–gpus写-1是用cpu,写0代表第一个gpu

在这里插入图片描述–input-video要测试视频的位置
–output-root测试完视频的输出位置

在这里插入图片描述接下来在命令行中写入这些参数,并执行demo.py这个文件

例子:
python demo.py mot --load_model …/models/fairmot_dla34.pth --conf_thres 0.4 --input-video ./video 001.mp4 --output-root ./result
例子解读:
代表我用…/models/fairmot_dla34.pth这个位置的模型,
阈值0.4(这个不懂的先不管),
测试./video 001.mp4这个视频,
并把视频效果输出到./result这个文件夹。
效果演示:
请添加图片描述
👉我要训练
主要3个地方(train.py+opts.py+数据集)

  • 第1、装备数据集(标签格式和train、val图片位置怎么放)
    编写数据集的路径文件(这里我用crowdhuman举例,创建编写crowdhuman.json)
    json都在src/lib/cfg下面(作者都配了很多,复制改一下就可以了)
    在这里插入图片描述
    查看json格式,设置画红框的地方
    这时有人就会问,这.train和.val怎么来的?请往下看
    在这里插入图片描述
    .train和.val文件就是训练和验证集图片的位置信息,这样搞:
    查看该文件
    在这里插入图片描述
    这程序就是将crowdhuman数据集格式转换成.train和.val的fairmot训练格式

crowdhuman下载地址:https://www.crowdhuman.org/在这里插入图片描述记得下载后文件目录格式如下

crowdhuman
|——————images
| └——————train
| └——————val
└——————labels_with_ids
| └——————train(empty)
| └——————val(empty)
└------annotation_train.odgt
└------annotation_val.odgt

设置好红框里crowdhuman路径参数,然后执行gen_labels_crowd_det.py代码,就会生成train.val
在这里插入图片描述

  • 第2、训练开始(选择网络,设置opt.py)
    设置opt.py
    –data_cfg填写上面的.json文件位置
    比如上面就填写src/lib/cfg/crowdhuman.json
    在这里插入图片描述
    –arch默认是dla_34这个网络,比较大,我训练用的是yolo5s,填yolo
    在这里插入图片描述接下来在命令行中写入这些参数,并执行train.py这个文件

例子:
python train.py mot --exp_id all_yolov5s --data_cfg src/lib/cfg/crowdhuman.json
–batch_size 8 --arch yolo
例子解读:
代表我用yolov5s这个检测网络训练这个mot模型,数据集用的是crowdhuman。
训练演示:
在这里插入图片描述
还有很多学习率、模型保存位置等参数、超参数,后面有机会再说。。。

最后:

有兴趣的同学朋友相互讨论技术

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值