从 Ultralytics YOLOv8 中提取输出
了解如何从 Ultralytics YOLOv8 Results 对象中提取边界框、掩码、关键点和类别概率,并在自己的 Python 代码中使用这些数据。
Nuvola Ladi3 分钟阅读
Ultralytics YOLOv8是一种广泛使用的计算机视觉模型,可用于目标检测、分割和跟踪等任务。无论你是经验丰富的开发者,还是刚接触人工智能(AI)的初学者,了解如何有效提取 YOLOv8 的输出,都能显著提升项目效果。这篇博客将介绍提取和使用 YOLOv8 模型结果的实用步骤。
设置 Ultralytics YOLOv8#
在开始提取结果之前,务必先让你的 Ultralytics YOLOv8 模型正常运行。如果你刚开始使用,可以观看我们之前的视频,了解如何为各种计算机视觉任务设置和使用 YOLO 模型的基础知识。要开始提取结果,请确保模型配置正确:
- 模型初始化:正确初始化 Ultralytics YOLOv8 模型,并选择适合特定需求的模型配置,无论是用于目标检测,还是姿态估计等更复杂的任务。
- 运行推理:将数据输入模型以执行推理。这个过程会生成一个Results 对象列表,每张图像或每一帧对应一个对象,你可以通过这些对象访问所有检测数据。
了解结果对象#
Ultralytics YOLOv8 中的每个 Results 对象都包含项目所需的全部检测数据,包括:
- 边界框:使用
result.boxes访问检测到的对象坐标。 - 掩码和关键点:分别使用
result.masks和result.keypoints访问分割掩码和姿势估计关键点。 - 类别概率:
result.probs包含分类模型的类别概率,而result.boxes.conf提供每个检测框的置信度分数,可用于筛选检测结果。
提取数据以供自定义使用#
要在应用中使用这些输出,请按以下步骤操作:
- 转换数据以便处理:如果你在 GPU 上运行模型,可以使用
.cpu()将输出转换为 CPU 格式,以便进一步处理。 - 访问边界框坐标:直接从结果对象中获取并处理边界框坐标。这包括访问归一化坐标或宽度和高度等特定属性。
- 处理分类结果:提取排名靠前的分类结果,以便有效利用类别 ID 和置信度分数。
代码中的实际应用#
从理论转向实践,Nicolai Nielsen 演示了如何在 Visual Studio Code 中使用自定义 Python 脚本实现这些概念。该脚本包括:
- 设置检测类:在类结构中初始化并配置你的 Ultralytics YOLOv8 模型,为实时数据输入做好准备。
- 提取结果:运行检测,并直接从结果对象中提取边界框、掩码和分类结果。
- 利用输出:将结果转换为 JSON 或 CSV 等可用格式,或者直接使用结果在图像或视频流上绘制边界框。
可视化及更多内容#
提取原始数据固然重要,但将这些检测结果可视化,可以让你立即了解模型的性能:
- 绘制矩形:使用边界框数据,在图像或视频输出中围绕检测到的对象绘制矩形。
- 直接绘图:使用内置的
result.plot()方法可视化检测结果,无需编写额外代码。
借助 Ultralytics YOLOv8 扩展你的 AI 工具箱#
熟练掌握 Ultralytics YOLOv8 输出提取,不仅能增强项目能力,还能加深你对对象检测系统的理解。
按照这些步骤,你可以根据具体需求定制 Ultralytics YOLOv8 的检测结果,无论是开发先进的 AI 驱动应用,还是开展可靠的数据分析。
敬请期待更多关于 Ultralytics YOLOv8 和其他 AI 技术的教程。加入我们的社区,及时了解最新进展;也可以查看我们的文档,获取更多信息!
作者
评论
提出问题、分享你的结果,或帮助其他人。










