当前位置: 首页 > 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,替换为其它评价指标字段即可。

http://www.dtcms.com/a/138281.html

相关文章:

  • 【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 路由
  • Trea初体验:使用Trea从零到一创建一个项目,用来演示glog库的使用,一行代码没改完成了整个项目的搭建运行
  • 2843. 统计对称整数的数目
  • 【Pandas】pandas DataFrame xs
  • 全自动驾驶(FSD,Full Self-Driving)自动驾驶热点技术的成熟之处就是能判断道路修复修路,能自动利用类似“人眼”的摄像头进行驾驶!值得学习!
  • MYSQL “Too Many Connections“ 错误解决
  • 自动驾驶地图数据传输协议ADASIS v2
  • LCOV 使用文档
  • 制表符是什么?与.txt文件的关系?
  • 【JavaWeb】详细讲解 HTTP 协议
  • opencv函数展示2