import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
if __name__ == '__main__':
result_dict = {
'YOLOv7': r'D:\YOLOv7\yolov7-main\runs\train\exp3\results.txt',
'YOLOv7Acmix': r'D:\YOLOv7\yolov7-main\runs\train\exp5\results.txt',
}
# 绘制map50
for modelname in result_dict:
res_path = result_dict[modelname]
ext = res_path.split('.')[-1]
if ext == 'csv':
data = pd.read_csv(res_path, usecols=[6]).values.ravel()
else:
with open(res_path, 'r') as f:
datalist = f.readlines()
data = []
for d in datalist:
data.append(float(d.strip().split()[10]))
data = np.array(data)
x = range(len(data))
plt.plot(x, data, label=modelname, linewidth='2')
# 添加x轴和y轴标签
plt.xlabel('Epochs')
plt.ylabel('mAP@0.5')
plt.legend()
plt.grid()
# 保存并显示图像
plt.savefig("mAP50of60.png")
plt.show()
# 绘制map50-95
for modelname in result_dict:
res_path = result_dict[modelname]
ext = res_path.split('.')[-1]
if ext == 'csv':
data = pd.read_csv(res_path, usecols=[7]).values.ravel()
else:
with open(res_path, 'r') as f:
datalist = f.readlines()
data = []
for d in datalist:
data.append(float(d.strip().split()[11]))
data = np.array(data)
x = range(len(data))
plt.plot(x, data, label=modelname, linewidth='2')
# 添加x轴和y轴标签
plt.xlabel('Epochs')
plt.ylabel('mAP@0.5:0.95')
plt.legend()
plt.grid()
# 保存并显示图像
plt.savefig("mAP50-95of60.png")
plt.show()
# 绘制Precision精度
for modelname in result_dict:
res_path = result_dict[modelname]
ext = res_path.split('.')[-1]
if ext == 'csv':
data = pd.read_csv(res_path, usecols=[6]).values.ravel()
else:
with open(res_path, 'r') as f:
datalist = f.readlines()
data = []
for d in datalist:
data.append(float(d.strip().split()[8]))
data = np.array(data)
x = range(len(data))
plt.plot(x, data, label=modelname, linewidth='2')
# 添加x轴和y轴标签
plt.xlabel('Epochs')
plt.ylabel('Precision')
plt.legend()
plt.grid()
# 保存并显示图像
plt.savefig("PrecisionOf60.png")
plt.show()
yolov7训练完后results.txt数据对比分析
最新推荐文章于 2023-12-04 11:28:44 发布