文章目录
- 一、项目简介
- 1.1、使用说明
- 1.2、支持的数据格式
- 1.3、详解配置参数
- 二、环境配置 + 文件配置
- 2.1、环境配置
- 2.2、源码下载:sort + yolo
- 2.3、相关配置需求下载:requirements.txt
- 2.4、配置权重文件
- 2.4.1、下载目标检测权重文件:yolov7.pt
- 2.4.1.1、运行报错:No module named ‘torchreid.metrics’
- 2.4.1.2、运行报错:No such file or directory: ‘yolov7.pt’
- 2.4.2、下载ReID权重文件:osnet_x0_25_msmt17.pt
- 2.4.2.1、运行报错2:No URL associated to the chosen DeepSort weights.
- 2.4.2.2、运行报错2:TimeoutError: [WinError 10060] 由于连接方在一段时间后,没有正确答复或连接的主机没有反应,连接尝试失败。
- 2.5、运行成功
- 三、详解源码中的文件夹与文件
多目标追踪
一、项目简介
yolo模型详解,请看博主这篇文章:三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7
yolo模型训练,请看博主这篇文章:yolov7目标检测:基于自定义数据集完成检测、训练、测试
目标追踪包含两个阶段:(1)基于自定义数据集,训练yolo目标检测模型;(2)基于检测模型,将实时检测结果传递到StrongSORT追踪算法中,该算法在OSNet基础上结合运动和外观信息,可以跟踪yolo模型检测到的任何物体。
1.1、使用说明
备注:基于COCO数据集训练得到的yolov7目标检测预训练模型,共包括80个目标类别。COCO数据集的介绍和使用
(1)若需要自定义检测目标,则需要更换数据集并重新训练检测模型。 详细请参考
(2)若需要追踪指定目标,则可以指定追踪的目标类别:python track.py --source 0 --yolo-weights yolov7.pt --classes 16 17 # tracks cats and dogs, only
1.2、支持的数据格式
目标追踪支持多种数据格式(详细见官网)
1.3、详解配置参数
配置参数请看track.py,如下图。
举例说明:权重参数(
'-yolo-weights'
)是字符串类型(type=str
),故在默认值default中输入字符串,并指定权重文件的默认地址(default='yolov7.pt'
)。help
是自定义描述文档。详细用法请参考argparse。
二、环境配置 + 文件配置
2.1、环境配置
详细请看博主这篇文章:【深度学习环境配置】详细教程(资源已上传)
2.2、源码下载:sort + yolo
项目环境要求(必须),最终以官网说明为准。
(1)Python >= 3.8
(2)torch >= 1.7
git下载:可以直接将 yolo 目标检测模型也一起下载。
code下载:需要分别对追踪项目、检测项目进行下载。因为追踪项目下载后得到的检测文件夹为空。
备注:项目路径中不可以有中文(否则会异常报错,找原因找到奔溃)
方法一:通过 git 下载
(1)安装软件:Git Bash Here
(2)鼠标右击并打开软件,然后输入:git clone --recurse-submodules https://github.com/mikel-brostrom/Yolov7_StrongSORT_OSNet.git
方法二:官方下载地址 【GitHub】Real-time multi-object tracking and segmentation using Yolov7 with StrongSORT with OSNet
(1)点击Code,Download ZIP,并进行解压。
(2)点击网址上的 yolov7(如上图),再次点击Code,Download ZIP,并进行解压。
(3)将下载好的yolov7解压后,将项目提取并存放到已下载的目标追踪的yolov7文件夹下。
2.3、相关配置需求下载:requirements.txt
(1)DOS命令行窗口:cd切换到Yolov7_StrongSORT_OSNet-main文件夹下
(2)DOS命令行窗口输入:pip install -r requirements.txt
2.4、配置权重文件
需要分别配置目标检测与目标追踪的权重文件(.pt),保存在与
track.py
同级目录下。
备注:依据个人需求,下载对应的权重文件(权重文件之间会有些不同)。
2.4.1、下载目标检测权重文件:yolov7.pt
2.4.1.1、运行报错:No module named ‘torchreid.metrics’
(1)输入命令运行程序(官网指令):python track.py --source 0 --yolo-weights yolov7.pt --img 640
- 系统报错:
ModuleNotFoundError: No module named 'torchreid.metrics'
。
2.4.2、下载ReID权重文件:osnet_x0_25_msmt17.pt
总共尝试了三种方法,最终解决问题。
2.4.2.1、运行报错2:No URL associated to the chosen DeepSort weights.
尝试方法一:在路径
strong_sort\deep\checkpoint
下,已经有多个ReID权重文件(.pth)。而通过指定该路径下的任意一个权重文件给到strong_sort_weights
参数,但因为文件格式问题却导致运行失败。原因分析:ReID权重文件有点神秘,需要科学上网才能下载。
运行结果如下:
2.4.2.2、运行报错2:TimeoutError: [WinError 10060] 由于连接方在一段时间后,没有正确答复或连接的主机没有反应,连接尝试失败。
尝试方法二:通过输入命令下载指定文件(官网指令):
python track.py --source 0 --strong-sort-weights osnet_x0_25_market1501.pt
最终系统提示报错:TimeoutError: [WinError 10060] 由于连接方在一段时间后,没有正确答复或连接的主机没有反应,连接尝试失败。
2.5、运行成功
三、详解源码中的文件夹与文件
(1)下载后自带的文件夹及文件
文件夹
MOT16_eval
:评估MOT16数据的脚本strong_sort
:追踪算法yolov7
:存放yolov7目标检测整个项目源码文件
.gitignore
:该文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。.gitignore的用法.gitmodules
:子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。.gitmodules详解(Git子模块配置)README.md
:项目官网介绍requirements.txt
:项目运行所需要下载的库track.py
:追踪脚本test.mp4
:追踪视频文件(更多文件格式详见官网说明)
(2)配置文件夹
torchreid
:模型所需要的基本配置文件(.py)weights
:存放目标检测与目标追踪的权重文件(.pt)
(3)检测后自动生成的文件夹
runs/track
:存放检测视频