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模型。

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第1张图片

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

  1. 修改数据配置文件:目录下voc.yaml复制一份重命名,改为sheep.yaml
    YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第2张图片

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

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第3张图片

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

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第4张图片

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

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第5张图片

  1. 开始训练:找到train.py文件:修改路径、修改训练轮次,修改完成,新建一个环境,并且在终端运行train.py
    YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第6张图片
  2. 训练结束,在run/train/exp/weights目录下会产生两个权重文件,一个是最后一轮的权重文件last.pt,一个是最好的权重文件best.pt,后面要利用best.pt来做推理测试。
    YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第7张图片
  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的数据集准备好了。
    YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第8张图片

2、运行train.py

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

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第9张图片

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

打开根目录下track.py文件,修改yolo权重路径、修改跟踪权重路径、设置跟踪视频路径。检测结果保存在根目录inference/output下。
YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第10张图片

一些附加小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
YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型线 根据经验详细整理_第11张图片

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

你可能感兴趣的:(目标跟踪,pytorch,深度学习)