文章目录

  • 一、项目简介
    • 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:存放检测视频