采用ultralytics网站提供的YOLO5模型进行模型预测时,其模型输出的数据格式为[1,84,8400],该格式与YOLOv5官方原生输出的 [1, 25200, 85]不太一样,其每个维度的含义如下:

维度1 :输出的结果图片数量,类似BCHW格式中的B;
维度2 :每个预测框的特征向量长度,可以理解为每个预测结果的内部结构,包括4个边界框坐标值(边界框中心坐标、宽度及高度,未归一化)和基于COCO数据集的80个类别概率;
维度3:预测框的总数量,即所有特征图上锚框(Anchor)的总和,可以理解为预测结果的总数量。
基于上述输出数据格式分析,为在原图中标识模型预测结果,需要执行以下步骤:
1)计算每个预测结果的最高概率类别,针对8400个预测结果,计算每个计算结果中80个类别概率中的最大类型概率,如果该概率大于指定的阈值,则保留该预测结果,同时基于预测结果的边界框坐标值、模型输入尺寸、模型原始尺寸等信息计算预测框在原图中的位置及尺寸;
2)针对步骤1中筛选的预测结果集合进行非极大值抑制处理,去除目标检测中的冗余重复框。当多个预测框重叠检测同一物体时,它保留置信度最高的框,抑制掉与其重叠度过高(IoU大于阈值)的其他框,确保每个目标只输出一个最准确的检测结果。
3)在原图中调用OpenCvSharp绘制每个预测结果的预测框及最高概率类别文本。
参考文献:
1\]https://docs.ultralytics.com/zh/modes/predict \[2\]https://www.cnblogs.com/CrescentWind/p/18676617