YOLOv12 训练结果如何评估?实测best.pt

视频讲解:

YOLOv12 训练结果如何评估?实测best.pt

训练完成后的模型可以在run/train/exp/weights路径下找到,best.pt

另外也可以查看训练的各种维度的曲线图,bounding box,分类,还有平均精度等等,只要接近收敛到比较小,以及train和val差别不是很离谱,都算正常

混淆矩阵,用来判断是否将某些分类混淆了,比如同一列有超过一行以上的值

Precision曲线,置信度越高,精确率越高,TP/TP+FP,表示预测的精确率

Recall曲线,召回率,TP/TP+FN,实际为P样本中T的比例(为什么是TP+FN,因为不是判断对了就是判断错了,也可以是TN/TN+FP)

精度越高,召回率也高是最希望看到的

使用best.pt,脚本如下,随便从网上下载测试两张手势图片测试,仅用于学习测试,侵删~

from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO(model=r'/home/dar/dev/yolo/dataset/gesture/num_gesture/runs/train/exp9/weights/best.pt')  
    model.predict(source=r'/home/dar/dev/yolo/dataset/gesture/num_gesture/test_images/35.jpg',
                  save=True,
                  show=False,
                  project='/home/dar/dev/yolo/dataset/gesture/num_gesture/runs/detect',
                  name='predict',
                  )

有两个手的,虽然识别正确,但置信度就差了很多,并且左侧有识别错误的bbox和类别,因为样本中都是单个手

### YOLOv8模型推理性能与准确性的评估方法 #### 1. **主要性能评估指标** YOLOv8 的性能可以通过多个核心指标进行全面评估,这些指标涵盖了模型的准确性、效率以及稳定性。 - **mAP (Mean Average Precision)** 平均精度均值是目标检测中最常用的核心评价标准之一。它通过计算不同类别下的平均精度再取其均值得到最终结果。对于 YOLOv8 来说,`mAP@0.5` 是指 IoU 阈值为 0.5 下的目标检测平均精度[^1]。如果需要更严格的评估,则可以考虑 `mAP@0.5:0.95`,即在不同的 IoU 阈值范围内的加权平均值。 - **Precision (精确度)** 和 **Recall (召回率)** 这两个指标反映了模型预测的质量和覆盖能力。Precision 表示正确预测为正样本的比例,而 Recall 则衡量实际正样本中有多少被成功检出。两者之间通常存在一定的平衡关系,提高其中一个可能会影响另一个的表现[^3]。 - **FPS (Frames Per Second)** FPS 反映的是模型每秒钟能够处理图像的数量,这是衡量实时性和运行效率的重要参数。较高的 FPS 意味着更快的速度,适合应用于视频流或者高速场景中。 - **IoU (Intersection over Union)** 用于量化边界框之间的匹配程度,具体来说就是预测框与真实标注框重叠部分面积占总面积的比例。一般认为当 IoU ≥ 0.5 时表示较好的定位效果。 #### 2. **基于 PR 曲线的具体分析** PR 曲线展示了 Precision 和 Recall 在不同置信度阈值条件下的变化趋势。通过对该曲线的研究可以帮助我们了解模型在哪种情况下具有更好的表现: - 如果 PR 曲线接近左上角位置,则说明此时既保持了高的 Precision 同时也维持住了良好的 Recall 值,意味着整体性能优异。 - 当某些特定类别的曲线呈现快速下降特征时(如文中提到的车牌识别),则暗示可能存在较多误判现象发生,需进一步优化调整网络结构或数据增强策略来改善这一状况[^2]。 #### 3. **代码实现示例** 以下是利用 Ultralytics 库加载预训练好的 YOLOv8 模型并对测试集图片执行推断操作的同时记录各项关键统计信息的一个简单例子: ```python from ultralytics import YOLO # 加载已有的 yolo v8 模型权重文件 model = YOLO('yolov8n.pt') # 对单张图片进行预测 results = model.predict(source='test_image.jpg', conf=0.25, iou=0.45) for r in results: boxes = r.boxes.xyxy.cpu().numpy() # 获取所有预测边界的坐标[x1,y1,x2,y2] scores = r.boxes.conf.cpu().numpy() # 得分数组 class_ids = r.boxes.cls.cpu().numpy() # 类别索引 print(f"Total detected objects:{len(boxes)}") # 输出一些基础指标供后续验证使用 metrics = model.val() print(metrics.mAP50()) # 显示 AP @ IOU=.5 结果 print(metrics.fps) # 展现当前设备环境下实测帧速率 ``` 以上脚本不仅完成了基本的对象探测任务还额外收集到了关于 mAP 和 fps 数据以便于开发者们更好地理解所部署系统的实际效能水平。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值