栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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。
训练演示:

还有很多学习率、模型保存位置等参数、超参数,后面有机会再说。。。

最后:

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号