在网上搜了很多都没有找到相关代码,自己东西拼凑,没想到最后成功了。
在yolox/data/voc.py中加入这几行代码,首先要保证算法能够正常跑通,训练完毕和eval后会在当前目录下自动生成PR曲线图,代码比较简短,可根据代码自行修改。
#放在voc.py在方法_do_python_eval中,for循环之前
classes_rec = []
classes_prec = []
classes_label = []
#放在上面方法for循环后面
classes_label.append(cls)
classes_prec.append(prec)
classes_rec.append(rec)
#放在if iou=0.5代码段最后面
pl.title('Precision-Recall Curve')
pl.xlabel("Recall")
pl.ylabel("Precision")
plt.grid(True)
pl.ylim([0.0, 1.05])
pl.xlim([0.0, 1.0])
color = ['r', 'g', 'b', 'c', 'm', 'y', 'k']
for i in range(len(classes_label)):
pl.plot(classes_rec[i], classes_prec[i], label=classes_label[i], color=color[i])
pl.legend(loc="lower left")
plt.savefig("PR.jpg")