YOLOv5 detect 推理测试(没有检测框)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YOLOv5 detect 推理测试(没有检测框)相关的知识,希望对你有一定的参考价值。

参考技术A Nvidia RTX 3060
Ubuntu 16.04
CUDA 11.1
cuDNN 8.2.0
torch 1.10.1+cu111
torchvision 0.11.2+cu111
YOLOv5搭建及训练自己的数据集,请参考另一篇文章: https://www.jianshu.com/p/b3fa74f6c27b
训练完毕会得到 best.pt 和 last.pt 的权重文件,权重文件在 /run/train/exp/weights 下

以YOLOv5 v6.0版本为例,先使用原始权重文件及项目提供的原始图片进行detect推理一下,可以修改detect.py文件

可以先使用命令查看一下正确指令

然后,使用命令

运行结果将被保存在 /run/detect文件夹下

detect结果如下:

detect结果除了有标注的图片外,还有一个文件夹记录检测框的信息:

可以根据上述自行修改,对自己的项目进行detect。
我在detect的时候,一直没有检测框,找了一天bug,原来是命令写错了,两行心酸泪==

一定按照 python detect.py -h 写,不然对图片不做任何修改

Yolov5保姆级别源码讲解之-推理部分detect.py文件

推理部分之detect.py文件讲解

1.下载Yolov5的源码

  • 克隆一下yolov5的代码
git clone https://github.com/huangfengge/yolov5
  • 配置好项目所需的依赖包

2. 主函数讲解

opt 为执行可以传递的参数

if __name__ == '__main__':
    opt = parse_opt()
    main(opt)
  • 具体的参数如图所示,比较重要的参数 weights权重文件、–source 数据集合 – data 数据集的配置
  • weights 权重文件

– source 为需要推理的原图

  • data参数 数据配置

  • imgsz 参数是训练配置图片的大小

  • device 设备信息,使用的Gpu还是cpu

  • 这些参数都可以通过命令进行传递

cd /home/hfg/Soft/Idea_Project/deep/yolov5
python detect.py --weights yolov5s.pt --source data/images/bus.jpg 
  • 将推理结果放入runs/detect/exp3进行了保存

3.文件标头的注释

  • 明显的示例告诉了我们的使用方法

4. main函数的

  • 第一个方法检测了当前的依赖包是否安装
  • 进行了下一步的run函数
def main(opt):
    check_requirements(exclude=('tensorboard', 'thop'))  # 检测是否安装包
    run(**vars(opt))
  • requirements安装
    - 里面定义了各个依赖包使用的版本

5. run函数

  • run 函数一共分为7个部分

5.1 第一块参数部分

  • 如图所示我们可以看到传递的参数部分

5.2第二块,传入数据预处理

  • 传入的可以是字符串图片名称,并对图片进行格式校验,可以支持的图片类型(如下图),如果是url地址或者文件地址进行下载操作。
  • 可以支持的数据类型
  • 下载文件的代码

5.3 第三块创建文件夹

  • 是否将推理过程写入一个txt文件
  • 因save-txt是默认为false,增加上表示true,这样就生成了一个labels 文件
python detect.py --weights yolov5s.pt --source data/images/bus.jpg --save-txt

  • 类型和坐标信息

5.4 第四块 加载模型的权重

  • 选择当前训练设备的信息,gpu和cpu信息
  • 模型框架 yolov5和pytorch

5.5 第五块 Dataloader 加载模块

  • 一般加载的都是image
  • 可以配置图片的大小,如果是多个图片使用数组

5.6 第六块 推理部分 Run inference

  • 热身先给cpu和gpu一张图片进行热身处理
  • 变量每个图片进行推理
  • 确定检测的坐标
  • 热身处理
  • 具体的画框
  • 输出预测的结果进行保存

5.7 输出结果 Print results

以上是关于YOLOv5 detect 推理测试(没有检测框)的主要内容,如果未能解决你的问题,请参考以下文章

yolov5训练coco128数据集和测试与检测

Yolov5保姆级别源码讲解之-推理部分detect.py文件

如何从 YOLOv5 预测中获取类和边界框坐标?

自定义yolov5-v7的推理方法

yolov5检测视频流的原理detect.py解读

目标检测英雄联盟能用YOLOv5实时目标检测了 支持onnx推理