yolov5 onnx模型推理c#
https://blog.csdn.net/weixin_40671962/article/details/128277041
gpu推理
https://zhuanlan.zhihu.com/p/492040015
python gpu推理
https://blog.csdn.net/m0_50786932/article/details/147199619
YOLOv5中的cls_conf指类别置信度,即目标属于某一类别的概率。在模型输出中,每个预测框会同时输出目标置信度(obj_conf)和类别置信度(cls_conf)。
具体作用
- 目标置信度(obj_conf):表示预测框包含目标的概率。
- 类别置信度(cls_conf):表示预测框属于某一具体类别的概率。例如,若模型预测目标为“汽车”,则对应类别的cls_conf值为该目标属于“汽车”的概率。
筛选机制
在后处理中,通常需要同时考虑两者:
- 仅当
obj_conf > conf_thres(目标检测阈值)时,认为可能存在目标; - 再结合
cls_conf(最大类别概率)与obj_conf的乘积是否大于阈值进行筛选。 mul_conf = obj_conf*cls_conf,mul(multiply乘法),,MulConfidence阈值
public override float Confidence { get; set; } = 0.20f;
public override float MulConfidence { get; set; } = 0.25f;
public override float Overlap { get; set; } = 0.45f; //重叠
默认参数
- 置信度阈值(
conf_thres)默认值为0.25,可通过调整该值控制检测严格程度。 -
- public override int Dimensions { get; } = 85;
- 每个单元格输出
x,y,w,h,objectness这5项再加80个类别(预训练权重pt或者onnx,COCO(Common Objects in Context)数据集)的置信度总共85项内容, - YOLOv5是一种基于深度学习的目标检测算法,它能够在图像中识别和定位多种物体。YOLOv5在COCO(Common Objects in Context)数据集上进行了预训练,该数据集包含了80个类别的物体
- 自己训练的如果只有3个类别,则5+3 = 8,public override int Dimensions { get; } = 8
-
![image]()
-
(二)C# 类库实现差异
通过反编译 Yolov8Net 源码发现,其核心处理逻辑假设:1、原始输出模式(nms=False):
解析 85 维向量时,前 4 维为 xywh 归一化坐标,第 5 维为目标置信度,后 80 维为类别概率
手动执行 NMS 时使用目标置信度 × 类别概率作为最终得分
2、集成 NMS 模式(nms=True):直接读取 6 维向量作为最终结果,但误将第 5 维(目标置信度)当作综合得分,未考虑类别概率
这种设计差异导致:当模型内置 NMS 时(nms=True),类库误用了错误的置信度计算方式
当模型未内置 NMS 时(nms=False),类库按 YOLOv5/YOLOv8 原生逻辑正确计算综合得分
————————————————
版权声明:本文为CSDN博主「AI、少年郎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/www376422613/article/details/149096554


浙公网安备 33010602011771号