使用YOLOv5自定义模型检测图像后,如何获取置信度值
获取YOLOv5检测结果的置信度值
当你用model = torch.hub.load('ultralytics/yolov5', 'custom', 'C:\Object Detection\yolov5_object_detection\last.pt')加载自定义模型后,执行图像检测得到的results是YOLOv5的Results对象,你可以通过以下几种方式提取置信度值:
方法一:直接访问张量格式的预测结果
模型推理后,results.pred存储了所有检测框的张量数据,每一行对应一个检测框,包含x1, y1, x2, y2, confidence, class_id这6个值,其中第5个元素就是置信度:
# 执行图像检测 results = model('your_image.jpg') # 获取第一张图的预测结果(批量检测时可遍历results.pred) pred = results.pred[0] # 提取所有置信度值并转为Python列表 confidence_values = pred[:, 4].tolist() # 逐个打印检测框的置信度与对应类别 for detection in pred: conf = detection[4].item() # 转为单个数值 class_idx = int(detection[5].item()) class_name = model.names[class_idx] print(f"检测目标: {class_name}, 置信度: {conf:.4f}")
方法二:转换成Pandas DataFrame(更易读)
YOLOv5提供了pandas()方法,可将检测结果转为表格形式,直接通过列名提取置信度:
# 执行检测 results = model('your_image.jpg') # 转为DataFrame,xyxy[0]对应第一张图的结果 detection_df = results.pandas().xyxy[0] # 提取置信度列 confidence_values = detection_df['confidence'].tolist() # 查看包含置信度的完整检测结果 print(detection_df[['xmin', 'ymin', 'xmax', 'ymax', 'confidence', 'name']])
补充说明
- 若批量检测多张图片,需遍历
results对象,例如for result in results:处理单张图结果 model.names可通过类别ID获取对应类别名称,方便和置信度关联查看
内容的提问来源于stack exchange,提问作者Nandatto
相关产品推荐
相关产品推荐

