一.开始
本文使用的是mmdetection=V2.11的cascade-rcnn、faster-rcnn模型,使用的数据集是coco数据集,记录训练结果可视化的过程。并且记录训练过程中参数含义
二.可视化代码
- 以下操作都是在mmdetection根目录下进入到open-mmlab环境中进行的
1. 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
- 输出结果:
2. P-R曲线
- 进行P-R曲线可视化前,需要先使用test.py生成pkl文件
–out后面可以加路径,不然直接生成再项目根路径下
python tools/test.py configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py work_dirs/cascade_rcnn_r50_fpn_1x_coco/latest.pth --out results.pkl
- 在根目录下创建一个PR.py文件,输入以下代码
# =========================================================
# @purpose: plot PR curve by COCO API and mmdet API
# @date: 2020/12
# @version: v1.0
# @author: Xu Huasheng
# @github: https://github.com/xuhuasheng/mmdetection_plot_pr_curve
# =========================================================
import os
import mmcv
import numpy as np
import matplotlib.pyplot as plt
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
from mmcv import Config
from mmdet.datasets import build_dataset
MODEL = "cascade_rcnn"
MODEL_NAME = "cascade_rcnn_r50_fpn_1x_coco"
CONFIG_FILE = f"configs/{MODEL}/{MODEL_NAME}.py"
RESULT_FILE = f"results.pkl"
def plot_pr_curve(config_file, result_file, metric="bbox"):
"""plot precison-recall curve based on testing results of pkl file.
Args