参考1:https://blog.csdn.net/qq_33350808/article/details/83178002

2:https://blog.csdn.net/weixin_43717579/article/details/89380229

3:https://blog.csdn.net/babyzbb636/article/details/100535563

训练指令:./darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 | tee train_yolov3.log

ps:For training with mAP (mean average precisions) calculation for each 4 Epochs (set valid=valid.txt or train.txt in obj.data file) and run: darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 -map

测试:
    第一步:./darknet detector valid data/obj.data yolo-obj.cfg backup/yolo-obj_last.weights
    第二部:python .\reval_voc_py3.py --voc_dir E:\darknet-master\build\darknet\x64\data\VOCdevkit 
             --year 2007 --image_set test --classes E:\darknet-master\build\darknet\x64\data\obj.names testForTower
             1:测试集的ImageSets\Main里面只需要test.txt  这里的test和(命令中--image_set test中的test)
                                                                    和(comp4_det_test_tower.txt中的test)需要一致
             2: 每次都需要删除缓存文件annots.pkl

绘制PR曲线并输出AP值:

#coding=utf-8
import _pickle as cPickle
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=[u'NSimSun']
plt.rcParams['axes.unicode_minus']=False
fr = open('tower_pr.pkl','rb')#这里open中第一个参数需要修改成自己生产的pkl文件
inf = cPickle.load(fr)
fr.close()# fbad = open('tower_pr.pkl','rb')#这里open中第一个参数需要修改成自己生产的pkl文件
# inf_bad = cPickle.load(fbad)
# fbad.close()x=inf['rec']
y=inf['prec']
plt.figure()
plt.xlabel('召回率',size=15)
plt.ylabel('精确率',size=15)
plt.xticks(fontproperties = 'Times New Roman', size = 14)
plt.yticks(fontproperties = 'Times New Roman', size = 14)plt.plot(x,y)plt.savefig("PR曲线.svg",bbox_inches='tight') #plt保存需要在show之前
plt.show()print('AP:',inf['ap'])

测试单张图片:darknet.exe detector test data/obj.data yolo-obj.cfg yolo-obj_100.weights(最后的权重改为自己的权重)。
然后终端会提醒你输入图片路径,然后你输入测试图片的绝对路径即可看到效果

批量测试:https://blog.csdn.net/yuyifan1991/article/details/94614130

按照上述链接配置好后,命令:./darknet detector test data/obj.data yolo-obj.cfg backup/yolo-obj_1800.weights test.txt

画损失值曲线:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=[u'SimHei']
plt.rcParams['axes.unicode_minus']=False#根据自己的log_loss.txt中的行数修改lines, 修改训练时的迭代起始次数(start_ite)和结束次数(end_ite)。
lines = 1800
start_ite = 0 #log_loss.txt里面的最小迭代次数
end_ite = 1800 #log_loss.txt里面的最大迭代次数
step = 2 #跳行数,决定画图的稠密程度
igore = 190 #当开始的loss较大时,你需要忽略前igore次迭代,注意这里是迭代次数bdata_path =  'train_log_loss.txt' #log_loss的路径。
result_path = './quanju_loss0607' names = ['loss', 'avg', 'rate', 'seconds', 'images']
result = pd.read_csv(data_path, skiprows=[x for x in range(lines) if (x<lines*1.0/((end_ite - start_ite)*1.0)*igore                                                                                        or x%step!=0)], error_bad_lines=False, names=names)
for name in names:result[name] = result[name].str.split(' ').str.get(1)for name in names:result[name] = pd.to_numeric(result[name],errors='ignore')fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
#----------设置横坐标的值。
x_num = len(result['avg'].values)
tmp = (end_ite-start_ite - igore)/(x_num*1.0)
x = []for i in range(x_num):x.append(i*tmp + start_ite + igore)plt.plot(x, result['avg'].values)
plt.xticks(fontproperties = 'Times New Roman', size = 12)
plt.yticks(fontproperties = 'Times New Roman', size = 12)plt.xlabel('迭代次数',size=15)
plt.ylabel('损失值',size=15)
plt.savefig("损失曲线1.svg",bbox_inches='tight')
plt.show()

yoloV3测试map和画PR曲线相关推荐

  1. python脚本——图片重命名、图片合成视频、faster-rcnn画P-R曲线

    调试faster rcnn算法实用的python脚本 目录 调试faster rcnn算法实用的python脚本 一.前言 二.常用python脚本 三.后记 一.前言 最近在做关于目标检测算法的研究 ...

  2. python怎么画出圆润的曲线_Python如何画P-R曲线

    Python如何画P-R曲线 Python生成P-R图需要安装第三方库matplotlib.numpy及sklearn. 推荐学习<Python教程>. P-R曲线的生成方法: 根据学习器 ...

  3. python画pr曲线代码_Yolov3测试图及绘制PR曲线,yoloV3,map,和,画

    训练指令:./darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 | tee train_yolov3.lo ...

  4. 关于Mask R-CNN 画PR曲线

    最近太多人问我如何绘制PR曲线了,我又很少及时看到你们的消息,在这里跟大家道个歉,我直接把代码贴出来,你们看着改参数就好. ################ 导入相关包 ############### ...

  5. python 画pr曲线

    roc曲线: python 画roc曲线_jacke121的专栏-CSDN博客 import _pickle as cPickle import matplotlib.pyplot as pltxxx ...

  6. python画pr曲线_python 画函数曲线示例

    python 画函数曲线示例 如下所示: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2 * np.pi ...

  7. python画pr曲线代码_利用Python中的numpy包实现PR曲线和ROC曲线的计算

    闲来无事,边理解PR曲线和ROC曲线,边写了一下计算两个指标的代码.在 python 环境下,sklearn里有现成的函数计算ROC曲线坐标点,这里为了深入理解这两个指标,写代码的时候只用到numpy ...

  8. python画PR曲线(precision-recall曲线)

    使用python画precision-recall曲线的代码是: sklearn.metrics.precision_recall_curve(y_true, probas_pred, pos_lab ...

  9. Faster R-CNN画PR曲线

    参考:https://github.com/rbgirshick/py-faster-rcnn/issues/670 原地址https://blog.csdn.net/hongxingabc/arti ...

最新文章

  1. RunWith(SpringJUnit4ClassRunner.class)报错
  2. 学习LD_PRELOAD之摘抄
  3. 面 试 细 节 一 点 通
  4. pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
  5. linux messages 时间错乱_BATJ 常考的 21 条 Linux 命令,速度收藏!
  6. 报告分享】2020年汽车行业直播研究报告.pdf(附下载链接)
  7. 程序员该面向运维,还是面向开发?
  8. 熟练掌握如何设置空闲超时时间.
  9. IE浏览器经典故障分析与实战解决方案
  10. OpenGL基础42:实例化
  11. 【统计分析】1 P值和Z得分
  12. mysql 分库分表 ~ ShardingSphere生态圈
  13. 没有钱的苦恼与无奈:七个城市的1000元生活(转载)
  14. 【2021亲测有效】彻底解决Google地球、Google Earth、谷歌地球启动无法连接到登录服务器、启动黑屏、无法查看历史影像图的方法
  15. 保持hlist_node内存的紧凑性连续性以提高遍历性能
  16. 【项目管理/PMP/PMBOK第六版/新考纲】纯干货!敏捷型/Stacey矩阵/vuca/敏捷宣言/冲刺/产品负责人/敏捷团队/敏捷教练/待办事项列表/迭代任务列表/可交付产品增量
  17. 如何度过有用的每一天
  18. 输入法全角和半角怎么切换(光标变粗)
  19. 王卫不再担任顺丰速运法人 变更为陈雪颖
  20. Android UI绘制流程分析(三)measure

热门文章

  1. python如何升级到指定版本_python如何升级?
  2. 下跌后死了都要买的三种股票
  3. 阿里云域名解析避坑指南
  4. js使用form表单方式模拟post请求
  5. postgresql获取系统当前时间
  6. LLVM代码空间优化(一) 编译器自带的优化选项
  7. 哔哩哔哩Allen前端vue后台管理系统笔记
  8. Kicad栅格设置,原理图布线无法抓点问题
  9. MySQL的基本语法(四)
  10. 运行python文件、电脑突然黑屏_电脑突然黑屏怎么回事