使用Ultralytics YOLO无法输出置信度分数的问题求助
YOLOv8推理结果probs为None但绘图显示置信度的原因及解决方法
原因
- YOLOv8的
probs属性仅针对分类任务,用来存储分类结果的概率值。你训练的是身份证目标检测模型,属于目标检测任务,推理结果里的置信度和检测框绑定,存储在result[0].boxes.conf中,和probs无关。 - 绘图时
plot()方法读取的是检测框对应的置信度(即boxes.conf中的值),所以能正常显示,不受probs为None的影响。
解决方法
- 若要获取目标检测的置信度,直接访问
result[0].boxes.conf即可,这是一个张量,可转换为numpy数组方便后续使用:
model = YOLO("best.pt") result = model(cv2.imread('CA49_01.jpg')) # 获取所有检测框的置信度并转成numpy数组 confidences = result[0].boxes.conf.numpy() print(confidences)
- 如果你误将目标检测模型当作分类模型使用,需要重新训练分类类型的YOLOv8模型(比如用
YOLOv8n-cls这类预训练分类模型初始化),此时推理结果的probs属性才会有对应分类概率值。
内容的提问来源于stack exchange,提问作者anonymousaccount32784
相关产品推荐
相关产品推荐

