///得到训练模型在测试集上的检测结果,结果保存在results.pkl文件中
python tools/test.py configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py work_dirs/1/epoch_147.pth --out results.pkl///得到行归一化后的混淆矩阵,
python tools/analysis_tools/confusion_matrix.py configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py ./results.pkl ./  --show//precise recall ACC等可基于混淆矩阵算出来///绘制PR曲线图
在根目录下创建PR.py文件,复制下列代码
=======================================================import os
import mmcv
import numpy as np
import matplotlib.pyplot as pltfrom pycocotools.coco import COCO
from pycocotools.cocoeval import COCOevalfrom mmcv import Config
from mmdet.datasets import build_datasetdef plot_pr_curve(config_file, result_file, metric="bbox"):"""plot precison-recall curve based on testing results of pkl file.Args:config_file (list[list | tuple]): config file path.result_file (str): pkl file of testing results path.metric (str): Metrics to be evaluated. Options are'bbox', 'segm'."""cfg = Config.fromfile(config_file)# turn on test mode of datasetif isinstance(cfg.data.test, dict):cfg.data.test.test_mode = Trueelif isinstance(cfg.data.test, list):for ds_cfg in cfg.data.test:ds_cfg.test_mode = True# build datasetdataset = build_dataset(cfg.data.test)# load result file in pkl formatpkl_results = mmcv.load(result_file)# convert pkl file (list[list | tuple | ndarray]) to jsonjson_results, _ = dataset.format_results(pkl_results)# initialize COCO instancecoco = COCO(annotation_file=cfg.data.test.ann_file)coco_gt = cocococo_dt = coco_gt.loadRes(json_results[metric])# initialize COCOeval instancecoco_eval = COCOeval(coco_gt, coco_dt, metric)coco_eval.evaluate()coco_eval.accumulate()coco_eval.summarize()# extract eval dataprecisions = coco_eval.eval["precision"]'''precisions[T, R, K, A, M]T: iou thresholds [0.5 : 0.05 : 0.95], idx from 0 to 9R: recall thresholds [0 : 0.01 : 1], idx from 0 to 100K: category, idx from 0 to ...A: area range, (all, small, medium, large), idx from 0 to 3 M: max dets, (1, 10, 100), idx from 0 to 2'''pr_array1 = precisions[0, :, 0, 0, 2]pr_array2 = precisions[1, :, 0, 0, 2]pr_array3 = precisions[2, :, 0, 0, 2]pr_array4 = precisions[3, :, 0, 0, 2]pr_array5 = precisions[4, :, 0, 0, 2]pr_array6 = precisions[5, :, 0, 0, 2]pr_array7 = precisions[6, :, 0, 0, 2]pr_array8 = precisions[7, :, 0, 0, 2]pr_array9 = precisions[8, :, 0, 0, 2]pr_array10 = precisions[9, :, 0, 0, 2]x = np.arange(0.0, 1.01, 0.01)# plot PR curveplt.plot(x, pr_array1, label="iou=0.5")# plt.plot(x, pr_array2, label="iou=0.55")# plt.plot(x, pr_array3, label="iou=0.6")# plt.plot(x, pr_array4, label="iou=0.65")# plt.plot(x, pr_array5, label="iou=0.7")# plt.plot(x, pr_array6, label="iou=0.75")# plt.plot(x, pr_array7, label="iou=0.8")# plt.plot(x, pr_array8, label="iou=0.85")# plt.plot(x, pr_array9, label="iou=0.9")# plt.plot(x, pr_array10, label="iou=0.95")plt.xlabel("recall")plt.ylabel("precison")plt.xlim(0, 1.0)plt.ylim(0, 1.01)plt.grid(True)plt.legend(loc="lower left")plt.show()if __name__ == "__main__":plot_pr_curve(config_file="./configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py", result_file="results.pkl", metric="bbox")

mmdetection 输出各类别Ap值

//mmdetection/mmdet/datasets/coco.py"第353行
def evaluate(self,results,metric='bbox',logger=None,jsonfile_prefix=None,classwise=True,proposal_nums=(100, 300, 1000),iou_thrs=[0.5],metric_items=None):
//测试和训练都会输出类别AP
python tools/analysis_tools/eval_metric.py configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco.py result.pkl --eval bbox
//如下所示
+----------+-------+----------+-------+----------+-------+
| category | AP    | category | AP    | category | AP    |
+----------+-------+----------+-------+----------+-------+
| weed1    | 0.958 | weed2    | 1.000 | weed3    | 0.957 |
+----------+-------+----------+-------+----------+-------+
///绘制loss收敛曲线
///–work_dirs设置自己模型得到的log.json文件,
///–out后面是保存的位置以及文件名字,可以保存为jpg/png等格式,
/// –key后面可以跟更多参数,但这些参数要在json文件里面有的python tools/analysis_tools/analyze_logs.py plot_curve ./work_dirs/cascade_rcnn_r50_fpn_1x_coco/20210510_140522.log.json --keys loss --out ./plot_result/1.png
  • fps参数

  • fps代表的是每秒检测的帧数,也就是推理速度,数值越高代表处理的速度越快,在工程应用中是需要考虑的
    首先将训练好的pth文件放入checkpoints文件夹中,之后会使用到benchmark.py这个文件(使用更高版本时候可能会报错,建议从V2.11拷贝过去),该文件用于记录fps

python ./tools/analysis_tools/benchmark.py ./configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py ./checkpoints/epoch_100.pth

mmdection评价结果相关推荐

  1. iphone如何信任软件_你还在用大众点评吗?评价软件失去信任还如何活下去

    合并五年之后,大众点评终于在公司名称中消失了.9月11日,美团点评在港交所发布公告称,公司名称拟简化为美团,美团点评也最终成为了历史.有知情人士表示,今年7月美团总部前台大厅的公司名称中就已经没有了点 ...

  2. 深度学习、AI构图、智能裁图、显著性检测、美感质量评价

    深度学习.AI构图.智能裁图.显著性检测.美感质量评价 基于美感数据集和改进的Alexnet-SPP的AI构图智能裁图 基于美感数据集和改进的Alexnet-SPP的显著性检测 部分代码下载地址:下载 ...

  3. AR设备单目视觉惯导SLAM算法综述与评价

    点云PCL免费知识星球,点云论文速读. 标题:Survey and evaluation of monocular visual-inertial SLAM algorithms for augmen ...

  4. 图像特征点检测与匹配评价准则——量化

    欢迎转载,转载请注明出处,谢谢! 目前图像匹配中,局部特征匹配占据了绝大部分,常用的局部特征匹配方法有Harris.SIFT.SURF.ORB等等,不同的特征点检测和匹配方法尤其独特的优势和不足:  ...

  5. 机器学习中的模型评价、模型选择及算法选择

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 正确使用模型评估.模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要.本文将对这三个任务的相关技术 ...

  6. 如何利用离散Hopfield神经网络进行高校科研能力评价(2)

    如何利用离散Hopfield神经网络进行高校科研能力评价,应用部分

  7. 如何利用离散Hopfield神经网络进行高校科研能力评价(1)

    如何利用离散Hopfield神经网络进行高校科研能力评价(1)代码部分

  8. 深圳杯---人才吸引力评价模型研究

    人才吸引力评价模型研究 在世界各国和全国各地都加大争夺人才的背景下,一个城市要保持其竞争活力和创新力,必须与时俱进地但不盲目地调整相关人才吸引政策.2018年深圳市将加大营商环境改革力度作为一项重要工 ...

  9. 百度燎原计划2018强势回归 开放深度学习工程师评价标准

    人工智能时代风口在燃烧,百度希望让每个人都能用上AI.4月20日,百度"燎原计划2018"暨百度AI开发者实战营第二季强势回归,首站北京即放送三大满足各类开发者需求的"超 ...

最新文章

  1. 小小flash动画_flash宣传动画视频能给公司品牌传播带来什么
  2. 【Linux】一步一步学Linux——ifcfg命令(157)
  3. 六、pink老师学习笔记——CSS三角形之美 margin负值之美文字围绕浮动元素行内块元素布局的巧妙运用
  4. java数组写入excel_java - 如何使用Java将数组数据写入Excel - 堆栈内存溢出
  5. InteCAD启动后提示:访问加密锁错误 如何解决?(附AutoCAD InteCAD安装教程)
  6. 用python演绎神奇的生命游戏,在游戏中学习numpy和matplotlib动画
  7. js实现分页并请求ajax,js实现ajax分页完整实例
  8. java barchart_JAVA-14 用Javafx绘制barchart的另一个实例 2020-11-09
  9. DNA甲基化芯片探针的P值如何计算
  10. mysql特性绕过安全狗_【经验总结】SQL注入Bypass安全狗360主机卫士
  11. 【服务器搭建个人网站】附:接入的服务商 以及 安全评估报告该如何填写?
  12. php做后端的优势,【后端开发】php和java的优势
  13. cmd 新增dns_win10在cmd中修改dns方法教程
  14. Laravel 存在SQL注入漏洞
  15. Web安全 -- 信息收集(上)
  16. 自选项目--手机锁屏软件--NABC分析
  17. 搜索引擎蜘蛛算法与蜘蛛程序构架
  18. 智慧农业大棚高效节水自动化灌溉系统
  19. 系统管理员设置了系统策略禁止进行此安装怎么办
  20. 如何发布自己的静态网页

热门文章

  1. Linux连接外网(方式一)
  2. latex 表格添加注释
  3. 【问链财经-区块链基础知识系列】 第三十七课 区块链智能合约重新认识:不再智能
  4. 电脑端“一键“获得一个手机端截屏
  5. 微信开发使用wechat.class.php调用API,测试发现返回no access,公众号出现暂时无法提供服务
  6. Django项目中的技术点
  7. 一女人一晚上没回家和一男人一晚上没回家的区别
  8. 鲁大师发布2021年度智能电动车品牌排行榜
  9. 计算机基础---电脑的原理
  10. linux mysql 怎么启动客服端_脚本之家教你linux如何启动mysql服务教程图解 linux启动mysql服务命令是什么...