本文项目学习并整理b站up炮哥带你学,欢迎各位共同讨论并学习。

后来在GitHub发现了相似代码的作者mikel-brostrom,github上面缺失yolov5部分的代码,需要自行补充,不过也可以用我放在最后的完整代码。还是很推荐大家去GitHub上学习这个项目

整理的代码与数据集放在最后。

目录

1、用YOLOv5训练自己的检测模型

2、训练跟踪网络

2.1训练跟踪网络的数据集准备

2.2利用数据集训练跟踪权重

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

3.1对MOT-16代码进行评估

3.1.1下载下载TrackEval代码

3.1.2生成跟踪文本

3.1.3得到MOT16训练集跟踪结果


YOLOv5+DeepSort目标跟踪项目大致流程如下:

即分为检测和跟踪两部分,也就是说我们要训练出自己的检测权重和跟踪权重。

本文博客以训练跟踪行人为例(训练其他目标更换相应数据集即可)

1、用YOLOv5训练自己的检测模型

本文YOLOv5代码采用的YOLOv5_5.0版本,目前(2022.5.13)好像已经更新到了6.1版本。 如何训练YOLOv5的行人检测权重这里不做详细介绍,可以参考博主这篇博客炮哥带你学的博客,后面会提供一个行人权重,方便各位实现跟踪部分的训练。(补充一下:检测模型的好坏对后续的跟踪权重的影响还是很大,强烈推荐各位自己从头训练一个检测模型。这里检测模型作用,以行人跟踪为例,利用YOLOv5将视频序列的行人从背景中提取出来,提取的效果越好,当然对后面跟踪训练帮助越大。)

2、训练跟踪网络

代码解压打开如下图:

文件夹介绍:

deep_sort_pytorch:跟踪训练部分的代码

inference:后续跟踪检测时保存结果的文件夹

MOT16_eval:评估MOT16数据的脚本

video:保存的测试视频

weights:保存的YOLOv5 5.0版本的权重

yolov5:yolov5相关的部分代码

2.1训练跟踪网络的数据集准备

以Market-1501为例,该数据集包含了751个类别行人(即train和test文件夹下方各有751文件夹,下格式图仅写了'0002'为例子),按照下面方式存放数据集:(代码里会给出划分好的数据,想训练其他数据集按照下面格式存放图片就行)

--Market-1501

--test

--0002(0002是文件夹名称,下面存放视频连续帧的图片)

--train

--0002(0002是文件夹名称,下面存放视频连续帧的图片)

数据集在代码中的位置如图:

2.2利用数据集训练跟踪权重

在开始训练我们自己数据集的权重之前,我们打开pycharm左下角的命令终端,输入如下的命令pip install -r requirements.txt,就可以对相应环境安装了。

pip install -r requirements.txt

所需的环境安装好了之后,在根目录打开deep_sort_pytorch/ deep_sort/ deep/ train.py文件

1、只需要修改该train.py下第14行代码,存放数据集路径,要放绝对路径。(其他参数默认就行)如下图

2、第197行,修改数字‘300’,改成自己训练的轮数。

3、然后直接运行train.py就可以训练了。训练结束后会在deep_sort_pytorch/ deep_sort/ deep/ checkpoint文件夹下生成一个跟踪权重ckpt.t7。(代码中附带了一个预训练跟踪权重)

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

打开根目录下track.py.

修改权重路径和测试视频的路径,即可对视频流中的行人进行检测跟踪,并将检测结果保存。

如图,分别修改268行,设置YOLO权重路径;269行,设置跟踪权重的路径;271行,设置输入视频的路径。检测结果保存在根目录inference/output下。

3.1对MOT-16代码进行评估

代码自带了一个mot-16评估的脚本,感兴趣的小伙伴可以自行测试,这里不做过多赘婿。

需要安装GIT软件,安装好了需要配置一下,方法见博客实现pycharm运行.sh文件,配置好了之后在pycharm命令终端输入

./MOT16_eval/eval.sh  

脚本命令应该是要下载MOT-16数据集,这个过程可能会很久,有兴趣的去原作者mikel-brostrom/GitHub研究。

这里给出一个参考其他博主的方法王定邦,大家可以参考一下。

需要准备两个部分:

1.下载TrackEval-master代码(后面我给出整理好的代码)

              2.利用自己训练权重的跑出跟踪文件TXT文本(后面将展示如何保存)

3.1.1下载下载TrackEval代码

代码整体结构如下图:(这个代码是独立的,运行的时候TrackEval-master为根目录即可)

代码的data目录如下结构如下:

1、在data/gt/mot_challenge/下文件内容都是官方给出的数据,对视频中行人进行标定,可以理解为标准答案,不需要改动。

2、在data/trackers/mot_challenge/MOT16-train/data/下存放你跑MOT-16训练集视频得到的跟踪TXT文本。(下面会说明如何生成TXT文本)

3.1.2生成跟踪文本

在跑跟踪的track.py时,设置保存TXT文本即可,见下图画红框,最后添加:default=True

parser.add_argument('--save-txt', action='store_true', help='save MOT compliant results to *.txt',default=True)

比如我track.py跑的MOT16-13的视频,就会在目录的inference/output下生成一个MOT16-13.txt的文本,依次跑完7个训练视频(视频我会放在最后),可得到7个txt文件(需要自己跑代码生成),将得到的txt文件放在data/trackers/mot_challenge/MOT16-train/data/下即可(3.1.1节提到的),准备工作就完成了。

3.1.3得到MOT16训练集跟踪结果

打开scripys/run_mot_challenge.py,直接运行即可。

同时,得到的结果也可在data/trackers/mot_challenge/MOT16-train/data/下查看(即我们刚刚存在自己跑出来跟踪txt文本目录下)

TrackEval-master代码链接:

https://pan.baidu.com/s/1HrZZO74qUXXVg5aeZ9MKdQ?pwd=5555

提取码:5555

MOT16训练集视频链接:https://pan.baidu.com/s/1e64qRvysIbstIY3FMK3Zow?pwd=5555&_at_=1658213501964

提取码:5555

(PS:这个视频是我用MOT16训练集照片自己合成的,帧率根据官网给的)

下面的代码包括:

YOLOv5 5.0权重(weight文件中):best3(检测行人权重)、yolov5s(官方自带权重)

跟踪权重:ckpt.t7(deep_sort_pytorch/ deep_sort/ deep/ checkpoint文件夹下)

Market-1501数据集(划分好的):在deep_sort_pytorch/ deep_sort/ deep下

链接:https://pan.baidu.com/s/1eanZEuFTaA39ZTo5J7JuIA?pwd=5555&_at_=1652499323482
 提取码:5555

YOLOv5+DeepSort多目标跟踪教程相关推荐

  1. 深度好文 | YOLOv5+DeepSORT多目标跟踪深入解读与测试(含源码)

    导 读 本文主要介绍如何使用Yolo-V5 + DeepSORT实现多目标检测与跟踪.(公众号:OpenCV与AI深度学习) 背景介绍 目标跟踪是一种利用检测到对象的空间和时间特征在整个视频帧中跟踪检 ...

  2. YOLOv5+DeepSORT多目标跟踪与计数精讲(含行人计数和车辆计数)

    使用YOLOv5和DeepSORT对视频中的行人.车辆做多目标跟踪,并进行行人计数和车辆计数 课程链接:https://edu.csdn.net/course/detail/32669 采用先进的YO ...

  3. YOLOv5+DeepSORT多目标跟踪深入解读与测试(含源码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导 读 本文主要介绍如何使用Yolo-V5 + DeepSORT实 ...

  4. 【小白CV教程】YOLOv5+Deepsort实现车辆行人的检测、追踪和计数

    [小白CV教程]YOLOv5+Deepsort实现车辆行人的检测.追踪和计数 本文禁止转载! 项目简介: YOLOv5检测器: DeepSort追踪器: 运行demo: 训练自己的模型: 调用接口: ...

  5. win10,vs2015深度学习目标检测YOLOV5+deepsort C++多目标跟踪代码实现,源码注释,拿来即用。

    打死不用CSDN,整改的太恶心了,发什么都审核不过,各种图片和链接不让发.人如果没有立场那还是人吗?不用CSDN并且博客园就很好! DeepSort纯C++ Yolov5[s,l,m系列],详细讲解- ...

  6. YOLOV5+Deepsort行人跟踪初探

    文章目录 1. YOLOV5+Deepsort 实现多目标跟踪 2. sort 目标跟踪 3. Deepsort 目标跟踪 3. Deepsort 代码讲解 1. YOLOV5+Deepsort 实现 ...

  7. reid笔记 yolov5 deepsort

    方案1: YoloV5 + deepsort + Fast-ReID 完整行人重识别系统(三)_zengwb的博客-CSDN博客 改进点:将deepsor的表征提取模型替换成了fastreid训练的r ...

  8. DeepSORT多目标跟踪算法

    DeepSORT 多目标跟踪算法 整体思路 SORT 算法的思路是将目标检测算法得到的检测框与预测的跟踪框的 iou(交并比)输入到匈牙利算法中进行线性分配来关联帧间 Id.而 DeepSORT 算法 ...

  9. YoloV5 + deepsort + Fast-ReID 完整行人重识别系统(三)

    Fast-Reid系列文章目录 文章目录 Fast-Reid系列文章目录 前言 一.yolov5 + deepsort 2.行人计数 二.Reid提取特征 总结 前言 上一篇fast-reid训练使用 ...

最新文章

  1. 共读计划 | 你有多久没读完一本书了?
  2. 2019年1月29日
  3. Iptables Layer7禁止QQ、MSN、p2p软件(解决iptable 无法启动)
  4. Command命令设计模式
  5. 网页特效java代码,美化网页常用特效代码
  6. 数据结构中“图”的相关概念理解
  7. java死锁怎么用jvm调试,线程死锁演示,线程锁演示,模拟JVM的线程次序调度
  8. PYB Nano 开发板的完整设计文档
  9. 关于动态语言 静态语言 静态类型语言 动态类型语言的区别
  10. cef linux 多线程模式,CEF3开发者系列之进程和线程
  11. appserv+win8
  12. cytoscape使用方法_关于这种“网络模块”和“模块饼图”的可视化方法
  13. 通过mac地址查找ip
  14. oracle之Number类型小数转字符串丢精度
  15. 计算机网络辅助英语写作,基于计算机网络的英语写作教学
  16. 【docker】macOS系统下安装并配置阿里云镜像加速
  17. 梯度反向传播(CS231n课程笔记翻译)
  18. 再也不怕面试官问我平时都从什么途径学习了
  19. S32K144 CANbootloaer实现
  20. MapGIS用户文件投影转换

热门文章

  1. 要想孩子写作文没烦恼?建议家长这样做
  2. 这个省这样规定:三类人员可直接给予青年基金项目~
  3. python的学习日常笔记 - 字符串
  4. PostgreSQL基础语法
  5. 计算机专业 日语n2,「高考日语知识」高考考日语可以选计算机专业吗
  6. 第11課 受付の人は親切でした
  7. 面试总结20问(一)--提前批
  8. 百科园考试计算机题库,计算机c语言上机题库百科园第4章!南信大!.doc
  9. 利用JQuery在网页上打印PDF
  10. qt信号量理解及使用