YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

这篇具有很好参考价值的文章主要介绍了YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

YOLOv8现在可以接受输入很多,如下表所示。包括图像、URL、PIL图像、OpenCV、NumPy数组、Torch张量、CSV文件、视频、目录、通配符、YouTube视频和视频流。表格✅指示了每个输入源是否可以在流模式下使用,并给出了每个输入源使用流模式的示例参数
YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

预测参数

Key Value Description
source 'ultralytics/assets' source directory for images or videos
conf 0.25 object confidence threshold for detection
iou 0.7 intersection over union (IoU) threshold for NMS
half False use half precision (FP16)
device None device to run on, i.e. cuda device=0/1/2/3 or device=cpu
show False show results if possible
save False save images with results
save_txt False save results as .txt file
save_conf False save results with confidence scores
save_crop False save cropped images with results
hide_labels False hide labels
hide_conf False hide confidence scores
max_det 300 maximum number of detections per image
vid_stride False video frame-rate stride
line_width None The line width of the bounding boxes. If None, it is scaled to the image size.
visualize False visualize model features
augment False apply image augmentation to prediction sources
agnostic_nms False class-agnostic NMS
retina_masks False use high-resolution segmentation masks
classes None filter results by class, i.e. class=0, or class=[0,2,3]
boxes True Show boxes in segmentation predictions

下面是每个参数的解释:

  • source:输入源的目录,可以是图像或视频文件。
  • conf:目标检测的对象置信度阈值。只有置信度高于此阈值的对象才会被检测出来。默认值为0.25
  • iou:非极大值抑制(NMS)的交并比(IoU)阈值。用于在重叠较大的候选框中选择最佳的检测结果。默认值为0.7
  • half:是否使用半精度(FP16)进行推理。半精度可以减少计算量,但可能会牺牲一些精度。默认值为False
  • device:模型运行的设备,可以是cuda设备(cuda device=0/1/2/3)或CPU(device=cpu)。
  • show:是否显示检测结果。如果设置为True,则会在屏幕上显示检测到的对象。默认值为False
  • save:是否保存带有检测结果的图像。如果设置为True,则会将检测结果保存为图像文件。默认值为False
  • save_txt:是否将检测结果保存为文本文件(.txt)。默认值为False
  • save_conf:是否将检测结果与置信度分数一起保存。默认值为False
  • save_crop:是否保存裁剪后的带有检测结果的图像。默认值为False
  • hide_labels:是否隐藏标签。如果设置为True,则在显示检测结果时不显示对象标签。默认值为False
  • hide_conf:是否隐藏置信度分数。如果设置为True,则在显示检测结果时不显示置信度分数。默认值为False
  • max_det:每张图像的最大检测数。如果检测到的对象数超过此值,将保留置信度高低来保留。默认值为300
  • vid_stride:视频帧率步长。默认值为False,表示使用默认的帧率。
  • line_width:边界框的线宽。如果设置为None,则根据图像大小进行自动缩放。默认值为None
  • visualize:是否可视化模型特征。默认值为False
  • augment:是否对预测源应用图像增强。默认值为False
  • agnostic_nms:是否使用类别无关的NMS。默认值为False
  • retina_masks:是否使用高分辨率的分割掩膜。默认值为False
  • classes:按类别过滤结果。可以指定单个类别(例如class=0)或多个类别(例如class=[0,2,3])。默认值为None,表示不进行类别过滤。
  • boxes:在分割预测中显示边界框。默认值为True

使用Results对象

Results对象包含以下组件:

Results.boxes:用于操作边界框的属性和方法的对象

Results.masks:用于索引掩膜或获取分段坐标的对象

Results.probs:包含类别概率或逻辑值的张量(tensor)

Results.orig_img:加载在内存中的原始图像

Results.path:包含输入图像的路径

result对象默认是torch.Tensor对象,也可以转为其他对象

results = results.cuda()
results = results.cpu()
results = results.to('cpu')
results = results.numpy()
Boxes

Boxes对象可用于索引、操作边界框,并将其转换为不同的格式。Box格式转换结果是缓存的,这意味着每个对象只计算一次,并且这些值将在将来的调用中重复使用。

results = model(img)
boxes = results[0].boxes
box = boxes[0]  # returns one box
box.xyxy

Boxes 的属性有

boxes.xyxy  #  xyxy 形式的目标框, (N, 4)
boxes.xywh  # xywh 形式的目标框, (N, 4)
boxes.xyxyn  # xyxy 形式的目标框且归一化, (N, 4)
boxes.xywhn  #  xywh 形式的目标框且归一化, (N, 4)
boxes.conf  # 置信度的分数, (N, 1)
boxes.cls  # 类别, (N, 1)
boxes.data  # 原始目标框参数坐标 (x, y, w, h)、置信度以及类别, (N, 6) or boxes.boxes
Masks

Masks可以被索引、操作修改、将Masks转换为分割结果。也可以缓存段转换操作。

results = model(inputs)
masks = results[0].masks  # Masks object
masks.xy  # x, y segments (pixels), List[segment] * N
masks.xyn  # x, y segments (normalized), List[segment] * N
masks.data  # raw masks tensor, (N, H, W) or masks.masks 
Probs 置信度

包含了所有类别的置信度

results = model(inputs)
results[0].probs  # cls prob, (num_class, )

更多文档可以参考 https://docs.ultralytics.com/reference/yolo/engine/results/

绘制结果

yolov8提供了plot函数绘制结果,可以绘制边框,分割结果,分类结果类别等等。不在需要像yolov5那样直接写后处理nms等,很方便。

res = model(img)
res_plotted = res[0].plot()
cv2.imshow("result", res_plotted)
Argument Description
conf (bool) 是否绘制检测置信度得分。
line_width (int, optional) 边界框的线宽。如果为None,则根据图像大小进行缩放。
font_size (float, optional) 文本的字体大小。如果为None,则根据图像大小进行缩放。
font (str) 用于文本的字体。
pil (bool) 是否使用PIL库进行图像绘制。
example (str) 要显示的示例字符串。用于指示输出的期望格式。
img (numpy.ndarray) 绘制到另一个图像上。如果为None,则绘制到原始图像上。
labels (bool) 是否绘制边界框的标签。
boxes (bool) 是否绘制边界框。
masks (bool) 是否绘制掩膜。
probs (bool) 是否绘制分类概率。
视频流数据源

以下是使用OpenCV和YOLOv8在视频帧上运行推理的代码。

import cv2
from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLOv8 inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLOv8 Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)文章来源地址https://www.toymoban.com/news/detail-509159.html

到了这里,关于YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【目标检测】YOLOV8实战入门(五)模型预测

    predict 模式用于在新图像或视频上使用经过训练的 YOLOv8 模型进行预测,在此模式下,模型从 checkpoint 文件加载,用户可以提供图像或视频来执行推理。模型预测输入图像或视频中对象的类别和位置。 YOLOv8 预测模式可以为各种任务生成预测,在使用流模式时返回结果对象列表

    2024年02月06日
    浏览(48)
  • pyton\yolov8安装和基础使用,训练和预测

        首先到官网下载yolov8,官方的地址,下载好压缩包后,解压到pycharm打开,我个人使用的是pycharm,接下来也是在pycharm里操作的。(专业版pycharm)    yolov8的官方文档有说明,必须要有的环境python-3.7.0 pyTorch=1.7,这两个环境很好配置, python现在基本都是大于3.7版本的,p

    2024年02月05日
    浏览(32)
  • 用python调用YOLOV8预测视频并解析结果----错误解决

    1 同济子豪兄关键点检测教程视频 2 同济子豪兄的GitHub代码参考 3 提出问题的小伙伴的博客 本节调用了YOLOV8的预训练模型来对视频进行预测,采用的是python的API,并将关键点检测的结果可视化。在未更改代码之前,跑出来的效果如图所示。如果检测到的点数少于16,会被自

    2024年01月19日
    浏览(26)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(38)
  • 改进YOLOv8 | 即插即用篇 | YOLOv8 引入 RepVGG 重参数化模块 |《RepVGG:让VGG风格的卷积神经网络再次伟大》

    我们提出了一种简单但功能强大的卷积神经网络结构,该模型在推理时类似于VGG,只有3×3的卷积和ReLU堆叠而成,而训练时间模型具有多分支拓扑结构。训练时间和推理时间结构的这种解耦是通过结构重新参数化技术实现的,因此该模型被命名为RepVGG。在ImageNet上,RepVGG达到了

    2023年04月27日
    浏览(42)
  • windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

    最近由于工程需要,研究学习了一下windows下如何配置pytorch和yolov8,并自己搜集数据进行训练和预测,预测使用usb摄像头进行实时预测。在此记录一下全过程 1. vscode安装 windows平台开发python,我采用vscode作为基础开发平台,点击 https://code.visualstudio.com/进入vscode官网,下载对应

    2024年02月16日
    浏览(39)
  • YOLOv8超参数调优教程! 使用Ray Tune进行高效的超参数调优!

    原创文章为博主个人所有,未经授权不得转载、摘编、倒卖、洗稿或利用其它方式使用上述作品。违反上述声明者,本站将追求其相关法律责任。 这篇博文带大家玩点新的东西,也是一直以来困扰大家最大的问题— 超参数调优 ! 之前的 YOLOv5 我使用遗传算法做过很多次调优

    2024年02月09日
    浏览(40)
  • yolov8训练进阶:自定义训练脚本,从配置文件载入训练超参数

    yolov8官方教程提供了2种训练方式,一种是通过命令行启动训练,一种是通过写代码启动。 命令行的方式启动方便,通过传入参数可以方便的调整训练参数,但这种方式不方便记录训练参数和调试训练代码。 自行写训练代码的方式更灵活,也比较方便调试,但官方的示例各种

    2024年02月12日
    浏览(19)
  • YOLOv8架构详解

    在视觉深度学习中,通常将模型分为 2~3 个组成部分: backbone、neck(可选) 和 head。 Backbone (主干网络)负责从输入图像中 提取特征 ,将图像转化为具有丰富语义信息的特征表示。 Neck (颈部,连接部)是一个中间层,用于对来自 backbone 的 特征进行融合 ,以提升模型的性

    2024年04月28日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包