当前位置: 首页 > news >正文

YOLO训练多评价指标曲线画图

对YOLO训练过程生成的results.csv文件中的PrecisionRecallmAP50mAP50-95进行整合利用

使用方法:数据文件是 results.csv,实现方式就是代码names字段中,用每个算法名字的文件夹,如下所示,将每个算法生成的results.csv,分别放入以下对应的文件夹中

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, mark_insetplt.rcParams.update({'font.size': 18})
pwd = os.getcwd()names = ['YOLOv5s','YOLOv8s','YOLOv10s','YOLOv11s','YOLOv12s',]# 创建主图
fig, ax = plt.subplots(figsize=(10, 10))for i in names:data = pd.read_csv(f'./{i}/results.csv')data['      metrics/recall(B)'] = data['      metrics/recall(B)'].astype(np.float32).replace(np.inf, np.nan)data['      metrics/recall(B)'] = data['      metrics/recall(B)'].fillna(data['      metrics/recall(B)'].interpolate())plt.plot(data['      metrics/recall(B)'], label=i)plt.tick_params(axis='both', labelsize=20)
plt.xlabel('Epoch')
plt.legend(fontsize=20)
plt.title('Recall')
plt.tight_layout()# # 添加局部放大图
# axins = inset_axes(ax, width="30%", height="30%", loc='center')  # 创建局部放大图# # 绘制局部放大图
# for i in names:
#     data = pd.read_csv(f'./{i}/results.csv')
#     data['      metrics/recall(B)'] = data['      metrics/recall(B)'].astype(np.float32).replace(np.inf, np.nan)
#     data['      metrics/recall(B)'] = data['      metrics/recall(B)'].fillna(data['      metrics/recall(B)'].interpolate())
#     axins.plot(data['      metrics/recall(B)'], label=i)# # 设定放大区域
# x1, x2, y1, y2 = 220, 290, 0.83, 0.76  # 放大区域为(300, 340, 0.58, 0.67)
# axins.set_xlim(x1, x2)
# axins.set_ylim(y2, y1)# # 添加连接线
# mark_inset(ax, axins, loc1=2, loc2=4, fc="none", ec='0.5')# 保存和显示图表
plt.savefig('./recall.png')
print(f'metrice_curve.png save in {pwd}/metrice_curve.png')
plt.show()

运行代码效果如下,

PrecisionRecallmAP50mAP50-95, 生成其余类型,只要将代码中的Recall,替换为其它评价指标字段即可。

相关文章:

  • 【2025“华中杯”大学生数学建模挑战赛】选题分析 A题 详细解题思路
  • k8s报错kubelet.go:2461] “Error getting node“ err=“node \“k8s-master\“ not found“
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(20):拾遗 - imgproc 基础操作(下)
  • Python实例题:Python自动化开发-考勤处理
  • iptables防火墙
  • 深入浅出 Redis:核心数据结构解析与应用场景Redis 数据结构
  • 简述Apache RocketMQ
  • R语言简介与下载安装
  • 面试题之高频面试题
  • 扩展欧几里得算法【Exgcd】的内容与题目应用
  • MySQL-数据查询(CASE练习)-01
  • Vue 组件化开发
  • netty知识点
  • 51、Spring Boot 详细讲义(八) Spring Boot 与 NoSQL
  • C++栈与堆内存详解:Visual Studio实战指南
  • MyBatisPlus-QueryWrapper的exists方法拼接SQL中的EXISTS子句
  • Nginx | Apache 配置 WebSocket 多层代理基本知识(附疑难杂症)
  • 基于LightRAG进行本地RAG部署(包括单卡多卡本地模型部署、调用阿里云或DeepSeekAPI的部署方法、RAG使用方法)
  • 分布式存储数据恢复—hbase和hive数据库文件被删除如何恢复数据?
  • Layout 路由
  • 视频丨为救心梗同学缺席职教高考的小伙姜昭鹏完成补考
  • 浙江理工大学传播系原系主任刘曦逝世,年仅44岁
  • 关税互降后的外贸企业:之前暂停的订单加紧发货,后续订单考验沟通谈判能力
  • 在稳市场稳预期下,投资者教育给了散户更多底气
  • 美国务卿鲁比奥将前往土耳其参加俄乌会谈
  • 白天气温超30℃的北京,晚间下起了冰雹