赞
踩
https://blog.csdn.net/qq_44929031/article/details/113355506
画图代码参考上面,但是导出pkl文件我来写一下,查了半天没有查到,原来很简单,不需要重新训练,只需要按照下面一步一步即可导出,然后画图即可!
Fasterrcnn
pkl文件在output文件夹下可以找到!
YOLO端
首先在YOLOV5端搜到metrics.py
添加 头文件:
import pickle
在函数plot_pr_curve中添加代码:
- #!!保存为pkl文件
- with open("你自己起个文件名.pkl",'wb') as f:
- pickle.dump({'rec':px,'prec':py,'ap':ap},f)
这样就导出了pkl格式的文件放在同一目录下,自己找一找在哪,找不到就搜索!
修改val.py中的训练权重为自己模型的权重存放位置,如下图红框所示:
运行python3 val.py无报错,得到pkl文件
按着链接代码修改位置画图即可
import _pickle as cPickle import matplotlib.pyplot as plt fr1= open('C:/Users/officer/Desktop/pkl/yolov4_fire_pr.pkl', 'rb') # 这里open中第一个参数需要修改成自己生产的pkl文件 inf1 = cPickle.load(fr1) fr1.close() x1= inf1['rec'] y1= inf1['prec'] fr2= open('C:/Users/officer/Desktop/pkl/v3sppfire_pr.pkl', 'rb') # 这里open中第一个参数需要修改成自己生产的pkl文件 inf2 = cPickle.load(fr2) fr2.close() x2= inf2['rec'] y2= inf2['prec'] fr3= open('C:/Users/officer/Desktop/pkl/v3fire_pr.pkl', 'rb') # 这里open中第一个参数需要修改成自己生产的pkl文件 inf3 = cPickle.load(fr3) fr3.close() x3= inf3['rec'] y3= inf3['prec'] fr4= open('C:/Users/officer/Desktop/pkl/v2fire_pr.pkl', 'rb') # 这里open中第一个参数需要修改成自己生产的pkl文件 inf4 = cPickle.load(fr4) fr4.close() x4= inf4['rec'] y4= inf4['prec'] fr5= open('C:/Users/officer/Desktop/pkl/oursfire_pr.pkl', 'rb') # 这里open中第一个参数需要修改成自己生产的pkl文件 inf5 = cPickle.load(fr5) fr5.close() x5= inf5['rec'] y5= inf5['prec'] plt.figure() plt.xlabel('recall') plt.ylabel('precision') plt.title('PR cruve') plt.plot(x5, y5, color="red") plt.plot(x1, y1, color="purple") plt.plot(x2, y2, color="blue") plt.plot(x3, y3, color="green") plt.plot(x4, y4, color="orange") plt.show()
效果如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。