You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python脚本中获取YOLOv8的预测类别名称数据

提取YOLOv8预测的类别名称

解决步骤

  1. 关闭默认控制台输出:在model.predict中添加verbose=False参数,避免打印帧尺寸、耗时等多余信息。
  2. 解析Results对象:results是Results对象的列表(每帧对应一个对象),直接通过对象属性提取类别数据,无需转字符串处理。

完整代码示例

from ultralytics import YOLO
from collections import Counter

model = YOLO("yolov8n.pt")
# 处理摄像头输入,关闭默认打印输出
results = model.predict(source="0", verbose=False)

# 遍历每帧检测结果
for frame_idx, result in enumerate(results):
    # 获取所有检测框的类别索引并转为整数列表
    class_indices = result.boxes.cls.int().tolist()
    # 将索引映射为具体类别名称
    class_names = [result.names[idx] for idx in class_indices]
    
    # 输出当前帧的所有检测类别(含重复)
    print(f"第{frame_idx+1}帧检测类别: {class_names}")
    
    # 输出去重后的类别及对应数量
    class_counts = Counter(class_names)
    print("类别统计:")
    for cls, count in class_counts.items():
        print(f"  {cls}: {count}")

关键属性说明

  • result.boxes.cls:存储当前帧所有检测框的类别索引(张量格式),需转为整数列表后使用。
  • result.names:模型内置的类别名称字典,键为类别索引,值为对应名称(如0: 'person')。

内容的提问来源于stack exchange,提问作者gurselturkeri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:35:16