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

YOLO V5导出边界框坐标时如何获取对应score of prediction

可行性结论

这个需求完全可以实现,不需要修改模型结构、也不需要重新训练。YOLOv5推理时本来就会输出每个检测框的预测置信度(也就是你要的prediction score),你之前导出的txt里没有这个值,只是默认导出配置没开置信度保存,或者自定义导出逻辑的时候没把这个字段写进去而已。

具体操作方法

方法1:零代码修改,直接加启动参数(最省事)

如果你是用YOLOv5官方自带的detect.py脚本跑推理导出结果,根本不用改源码,启动推理命令的时候加上--save-conf参数就行。开启后导出的txt文件,每一行都会在类别、坐标信息的末尾自动追加对应的预测分数。
示例命令:

python detect.py --weights 你训练好的模型权重路径.pt --source 待检测的图片/视频文件夹路径 --save-txt --save-conf

导出的txt单条记录格式为:类别ID 归一化x中心坐标 归一化y中心坐标 归一化框宽度 归一化框高度 预测分数,其中预测分数范围在0到1之间,数值越高代表模型对这个检测结果的判定越确定,和你在检测可视化图上看到的框上标的置信度数值完全一致。

方法2:自定义导出逻辑时手动追加置信度字段

如果你是自己写的推理、导出代码,只需要在遍历检测结果的时候,把每个框对应的置信度值一起写入txt就可以。YOLOv5单张图的推理返回结果里,每个检测框的存储格式是[x1, y1, x2, y2, 置信度, 类别ID],遍历的时候直接取出置信度字段,和你之前要存的坐标、类别ID拼到一起写入文件就行。
参考代码片段:

# pred为模型返回的单张图片检测结果
for *xyxy, conf, cls in pred:
    # 这部分是你原有的坐标转换逻辑,比如转归一化xywh格式
    xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / img_size_ratio).view(-1).tolist()
    # 把conf拼到要写入的行数据里
    line_content = (int(cls), *xywh, float(conf))
    # 写入对应txt文件
    with open(target_txt_path, 'a') as f:
        f.write(('%g ' * len(line_content)).rstrip() % line_content + '\n')
注意点
  • 要是加了--save-conf参数导出的txt还是没有分数,先检查你本地拉的YOLOv5仓库版本,太老的版本没内置这个参数,直接用方法2手动加字段就行,代码改动很小,不会影响原有检测效果。
  • 如果你在后处理阶段加了置信度阈值过滤(比如只保留置信度大于0.25的检测框),导出的分数就是过滤后的最终结果分数,不需要额外做数值转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:45:37