YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理

参考:https://blog.csdn.net/weixin_39357271/article/details/124760640?spm=1001.2014.3001.5506

一、YOLOv5训练自己的目标检测模型

1、 Yolov5代码是开源的,GitHub下载glenn-jocher开源的yolov5的项目,自行进行环境的安装和依赖库的安装。

2、 数据集的标注

利用labelImg标注数据,用旧版本的压缩包进行标注会减少很多不必要的麻烦,解压压缩包,打开文件夹,\labelImg-master\data 打开文本文档predefined_classes设置标签数量。在终端运行,输入python labelImg.py,打开标注工具,Open Dir打开图片,Change Save Dir选择储存位置,选择YOLO格式开始进行标注,W(选择区域画框)、A(上一张)、 D(下一张),打开Auto Save mode,标注下一张按D时可以自动保存。将准备好的数据集划分为训练集和验证集来训练我们的yolov5模型。

在这里插入图片描述

3、 训练模型:修改两个配置文件。

  1. 修改数据配置文件:目录下voc.yaml复制一份重命名,改为sheep.yaml
    在这里插入图片描述

sheep.yaml修改四个地方:注释掉一行、路径、类别、类别名称

在这里插入图片描述

  1. 修改模型配置文件:目录下yolov5s.yaml复制一份重命名,我改为yolov5s_sheep.yaml。

在这里插入图片描述

yolov5s_sheep.yaml修改1个地方:类别,我改为nc=2。

在这里插入图片描述

  1. 开始训练:找到train.py文件:修改路径、修改训练轮次,修改完成,新建一个环境,并且在终端运行train.py
    在这里插入图片描述
  2. 训练结束,在run/train/exp/weights目录下会产生两个权重文件,一个是最后一轮的权重文件last.pt,一个是最好的权重文件best.pt,后面要利用best.pt来做推理测试。
    在这里插入图片描述
  3. 进行推理测试。找到detect.py文件,修改best.pt文件路径、图片或视频路径。
    在这里插入图片描述
    在这里插入图片描述
    推理结果会保存到 runs/detect/exp 的目录下。

二、训练跟踪网络

1、数据集准备:数据集全貌是train和test两个文件中分别为抠出来的指定类别的图片。

  1. 分别将原来数据集的训练和测试的txt格式文件全部转化为xml格式文件。
  2. 最后得到image_train、train_xml和image_test、test_xml,接下来在/deep_sort/deep/data中新建两个文件夹,分别命名train、test。接下来运行prepare.py文件,生成train、test中的按照类别抠出的图。至此deepsort的数据集准备好了。
    在这里插入图片描述

2、运行train.py

在根目录打开deep_sort_pytorch/ deep_sort/ deep/ train.py文件,修改数据集路径、197行修改训练轮数。运行train.py,训练结束后会在deep_sort_pytorch/ deep_sort/ deep/ checkpoint文件夹下生成一个跟踪权重ckpt.t7。

在这里插入图片描述

3、 利用训练的跟踪权重进行评估

打开根目录下track.py文件,修改yolo权重路径、修改跟踪权重路径、设置跟踪视频路径。检测结果保存在根目录inference/output下。
在这里插入图片描述

一些附加小tips:

1、 批量删除或者更改yolo格式的标签类别
参考:https://blog.csdn.net/qq_61290020/article/details/126304325?spm=1001.2014.3001.5506

2、 txt转xml
参考:https://blog.csdn.net/weixin_42899627/article/details/114697554?spm=1001.2014.3001.5506

3、 将标注好的yolo格式数据集划分为yolov5所适用的训练集和测试集
参考:https://blog.csdn.net/qq_42262610/article/details/122828747?spm=1001.2014.3001.5506

4、 在训练yolo时遇到一个报错无论如何解决不了,并且确定一定不是环境和数据集的问题,因为在这之前已经跑通过很多次
了,最后发现是网络访问的问题。

报错:
tag = subprocess.check_output(‘git tag’, shell=True).decode().split()[-1]
IndexError: list index out of range
在这里插入图片描述

5、凡是遇到标签序列超出而报错的情况,自查数据集。

  • 4
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值