【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测

如何利用yolov5进行预测

  • yolov5项目的简单描述
    • 模型对比图
    • 需要的包
    • 作者的教程
    • 环境
    • inference
  • 不用命令行,使用pycharm运行
    • main函数部分
    • 运行程序来看一下 **detect.py**
      • 跑代码时遇到的一些问题,可以参考我的其他博客
    • 一些参数说明
      • --weights'default='yolov5s.pt', **指定权重网络模型**yolov5s/5m ,可以自行更改
      • 另一种下载文件的方法
      • '--source', default='data/images' 给网络指定输入
        • 这里也可以只指定一张图片
        • 这里也可以检测视频
      • --img-size', type=int, default=640, help='inference size (pixels)')
      • '--conf-thres', type=float, default=0.25, help='object confidence threshold')
      • '--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
      • '--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
      • '--view-img', action='store_true', help='display results')
        • 设置属性
      • '--save-txt', action='store_true', help='save results to *.txt')
      • '--save-conf', action='store_true', help='save confidences in --save-txt labels')
      • '--nosave', action='store_true', help='do not save images/videos')
      • '--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 0 2 3')
      • '--agnostic-nms', action='store_true', help='class-agnostic NMS')
      • '--augment', action='store_true', help='augmented inference')
      • '--update', action='store_true', help='update all models')
      • '--project', default='runs/detect', help='save results to project/name')
      • '--name', default='exp', help='save results to project/name')
      • '--exist-ok', action='store_true', help='existing project/name ok, do not increment')
  • 点一个断点,再点击debug

yolov5项目的简单描述

模型对比图

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第1张图片
n->s->m->l->x
模型依次变复杂,可以按衣服尺码来理解
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第2张图片

需要的包

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第3张图片

作者的教程

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第4张图片

环境

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第5张图片

inference

利用已经训练好的网络模型,进行预测
下载不同的模型,同时运行结果可以保存在文件夹下
除了使用右键点击运行,也可以使用命令行运行
source 是参数,后面的值可以赋值给该参数,如果要运行,需要给该网络指定一个输入,图片,视频,文件夹,模糊方式(匹配所有.就.jpg结尾的文件),链接(youtube视频),rtsp传输协议(实现摄像头实时检测)

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第6张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第7张图片

不用命令行,使用pycharm运行

main函数部分

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第8张图片

给命令行创建参数
weights 权重,默认字符串型,有默认值5s
source 默认字符串型,有默认值

运行程序来看一下 detect.py

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第9张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第10张图片
运行时会自动下载yolov5s.pt,成功运行如图
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第11张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第12张图片

跑代码时遇到的一些问题,可以参考我的其他博客

cuda版本不匹配

代码权重与文件版本没对应上

Upsample

SPPF

cv2

一些参数说明

–weights’default=‘yolov5s.pt’, 指定权重网络模型yolov5s/5m ,可以自行更改

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第13张图片

这里可以先下载好

https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5m.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5l.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5x.pt

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第14张图片

另一种下载文件的方法

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第15张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第16张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第17张图片

‘–source’, default=‘data/images’ 给网络指定输入

这里我们可以尝试自己新输入一些图片,保存至此路径下

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第18张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第19张图片

这里也可以只指定一张图片

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第20张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第21张图片
在这里插入图片描述

这里也可以检测视频

首先新建一个目录
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第22张图片
粘贴视频到此目录下
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第23张图片
更换下路径
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第24张图片
检测是提取一帧一帧开始检测
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第25张图片
检测完成打开文件夹
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第26张图片

效果如图

–img-size’, type=int, default=640, help=‘inference size (pixels)’)

640,图形大小指的是在训练过程中把尺寸进行缩放,然后再放大
输入输出图片尺寸保持不变
最好与训练网络匹配

‘–conf-thres’, type=float, default=0.25, help=‘object confidence threshold’)

只有置信度大于0.25时,我们才相信这是一个目标

‘–iou-thres’, type=float, default=0.45, help=‘IOU threshold for NMS’)

iou置信度
nms:non maximum suppression
圈出的不同区域,多个区域指定同一个目标,选择出最优的一个框,使用iou方式


iou方式:intersection over union
交集与并集相除
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第27张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第28张图片
iou大于阈值,在多个框中选一个框
在这里插入图片描述
代表完全重合才合并
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第29张图片
在这里插入图片描述
有交集就合并

‘–device’, default=‘’, help=‘cuda device, i.e. 0 or 0,1,2,3 or cpu’)

设备cuda/cpu

‘–view-img’, action=‘store_true’, help=‘display results’)

只要指定了这个参数,就变成ture
通过命令行的方式运行,先切换路径
在这里插入图片描述
这个是设置参数
在这里插入图片描述

设置属性

平时一般不用命令行输入参数,去设置属性
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第30张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第31张图片

‘–save-txt’, action=‘store_true’, help=‘save results to *.txt’)

保存为txt,
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第32张图片
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第33张图片

‘–save-conf’, action=‘store_true’, help=‘save confidences in --save-txt labels’)

保存置信度

‘–nosave’, action=‘store_true’, help=‘do not save images/videos’)

不要保存图片和视频

‘–classes’, nargs=‘+’, type=int, help=‘filter by class: --class 0, or --class 0 2 3’)

可以给class进行多次赋值,这里如果只想看人,可以给class设置为0

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第34张图片

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第35张图片

‘–agnostic-nms’, action=‘store_true’, help=‘class-agnostic NMS’)

增强的nms

‘–augment’, action=‘store_true’, help=‘augmented inference’)

也是增强的检测

‘–update’, action=‘store_true’, help=‘update all models’)

把网络模型中不必要的部分去掉,只保留预测需要用到的东西

‘–project’, default=‘runs/detect’, help=‘save results to project/name’)

把我们的结果保存到什么位置

‘–name’, default=‘exp’, help=‘save results to project/name’)

保存的名字

‘–exist-ok’, action=‘store_true’, help=‘existing project/name ok, do not increment’)

在原来的文件夹中新设一个文件夹

点一个断点,再点击debug

参数最终都会放到opt中

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第36张图片
再往下运行一下
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第37张图片
可以看到各个变量的值
【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(2)-如何利用yolov5进行预测_第38张图片
有的人代码不写default,直接写required,会出现报错,必须加参数,这种情况可以删除required加default

你可能感兴趣的:(YOLO,目标检测,人工智能,pytorch,学习,笔记,python)