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

Ultralytics YOLOv8目标检测中probs属性返回None的问题咨询

问题

使用Ultralytics YOLOv8进行图像目标检测时,尝试从results对象中获取分类输出的probs属性,返回值为None。代码如下:

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # pretrained YOLOv8n model

# Run batched inference on a list of images
results = model('00000.png')  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bbox outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs

print(probs)

运行后print(probs)输出None,其余输出内容:

image 1/1 00000.png: 640x640 1 person, 1 zebra, 7.8ms
Speed: 2.6ms preprocess, 7.8ms inference, 1.3ms postprocess per image at shape (1, 3, 640, 640)

请问:

  1. 为何probs属性会返回None?
  2. 如何获取每个检测对象的分类概率?
  3. Ultralytics YOLOv8的此设计是否存在特定原因?

解答

1. 为什么probs返回None?

probs是YOLOv8分类任务模型的专属输出属性,而你加载的yolov8n.pt是目标检测任务模型。两类模型的输出逻辑完全不同:

  • 分类模型输出整幅图像属于各个类别的概率分布,对应probs属性;
  • 检测模型的核心输出是检测框及其对应类别的置信度,这些信息存储在result.boxes中,不会生成probs属性,因此访问时返回None。

2. 获取每个检测对象的分类概率(置信度)

在目标检测任务中,每个检测对象的类别置信度和类别信息都包含在result.boxes对象中,可以通过以下方式获取:

  • boxes.conf:每个检测框的置信度值(模型对该检测结果的信任程度,范围0-1);
  • boxes.cls:每个检测框对应的类别索引;
  • model.names:模型的类别名称映射表,可通过索引获取类别名称。

示例代码:

from ultralytics import YOLO

model = YOLO('yolov8n.pt')
results = model('00000.png')

for result in results:
    # 遍历所有检测框
    for box in result.boxes:
        # 获取置信度,保留两位小数
        conf = round(float(box.conf), 2)
        # 获取类别索引,转为整数
        cls_idx = int(box.cls)
        # 获取类别名称
        cls_name = model.names[cls_idx]
        print(f"检测对象:{cls_name},置信度:{conf}")

3. 该设计的原因

YOLOv8采用模块化设计,针对不同任务(检测、分类、分割、姿态估计)的输出结构做了差异化处理:

  • 不同任务的核心输出需求不同:检测任务关注"哪里有什么",输出检测框+对应类别置信度;分类任务关注"整体是什么",输出全类别概率分布。
  • 分开存储不同任务的输出属性,能避免结果结构混乱,让开发者可以快速定位到对应任务的输出数据,提升代码可读性和开发效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:07:27