# single-gpu testing
python tools/test.py \
${CONFIG_FILE} \
${CHECKPOINT_FILE} \
[--out ${RESULT_FILE}] \
[--eval ${EVAL_METRICS}] \
[--show]
# multi-gpu testing
bash tools/dist_test.sh \
${CONFIG_FILE} \
${CHECKPOINT_FILE} \
${GPU_NUM} \
[--out ${RESULT_FILE}] \
[--eval ${EVAL_METRICS}]
tools/dist_test.sh也支持多节点测试,但依赖于 PyTorch 的启动实用程序。
可选参数:
RESULT_FILE: pickle 格式的输出结果的文件名。如果未指定,则结果将不会保存到文件中。
EVAL_METRICS: 评估结果的项目。允许的值取决于数据集,例如,proposal_fast,proposal,bbox,segm可用于 COCO,mAP,recallPASCAL VOC。Cityscapes 可以通过cityscapes以及所有 COCO 指标进行评估。
--show:如果指定,检测结果将绘制在图像上并显示在新窗口中。仅适用于单 GPU 测试,用于调试和可视化。请确保 GUI 在您的环境中可用。否则,您可能会遇到类似.cannot connect to X server
--show-dir:如果指定,检测结果将绘制在图像上并保存到指定目录。仅适用于单 GPU 测试,用于调试和可视化。您不需要在您的环境中提供 GUI 即可使用此选项。
--show-score-thr:如果指定,分数低于此阈值的检测将被删除。
--cfg-options: 如果指定,键值对可选 cfg 将合并到配置文件中
--eval-options: 如果指定,key-value 对可选 eval cfg 将为 dataset.evaluate() 函数的 kwargs,它仅用于评估
测试 Faster R-CNN 并可视化结果。按任意键查看下一张图像。配置和检查点文件可在此处获得。
python tools/test.py \
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
--show
测试 Faster R-CNN 并保存绘制的图像以供将来可视化。配置和检查点文件可在此处获得。
python tools/test.py \
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
--show-dir faster_rcnn_r50_fpn_1x_results
在 PASCAL VOC 上测试 Faster R-CNN(不保存测试结果)并评估 mAP。配置和检查点文件可在此处获得。
python tools/test.py \
configs/pascal_voc/faster_rcnn_r50_fpn_1x_voc.py \
checkpoints/faster_rcnn_r50_fpn_1x_voc0712_20200624-c9895d40.pth \
--eval mAP
用VOC数据集测试自己代码
python tools/test.py \
configs/ld2det/ga_LD2Det_detection_r50_fpn_2x.py \
work_dirs/ga_LD2Det_detection_r50_fpn_2x /epoch_12.pth\
--out work_dirs/Resule/LDResule
--eval mAP recall
--show-dir work_dirs/Resule/LDResule
以plk格式保存测试结果
python .\tools\test.py .\configs\res2net\faster_rcnn_r2_101_fpn_2x_coco.py .\work_dirs\faster_rcnn_r2_101_fpn_2x_coco\epoch_18.pth --out result.pickle
查看模型效果并生成文件
python .\tools\test.py .\configs\res2net\faster_rcnn_r2_101_fpn_2x_coco.py .\work_dirs\faster_rcnn_r2_101_fpn_2x_coco\epoch_18.pth --show-dir faster_rcnn_r2_101_fpn_2x_coco_results
tools/analysis_tools/analyze_logs.py在给定训练日志文件的情况下绘制损失/mAP 曲线。首先运行以安装依赖项。pip install seaborn
python tools/analysis_tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}]
绘制一些运行的分类损失。
python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls
绘制一些运行的分类和回归损失,并将图保存为 pdf。
python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls loss_bbox --out losses.pdf
比较同一图中两次运行的 bbox mAP。
python tools/analysis_tools/analyze_logs.py plot_curve log1.json log2.json --keys bbox_mAP --legend run1 run2
计算平均训练速度。
python tools/analysis_tools/analyze_logs.py cal_train_time log.json [--include-outliers]
输出应如下所示。
-----Analyze train time of work_dirs/some_exp/20190611_192040.log.json-----
slowest epoch 11, average time is 1.2024
fastest epoch 1, average time is 1.1909
time std over epochs is 0.0028
average iter time: 1.1959 s/iter
结果分析
tools/analysis_tools/analyze_results.py 计算单张图像的mAP,并根据预测结果保存或显示最高分和最低分的topk图像。
用法
python tools/analysis_tools/analyze_results.py \
${CONFIG} \
${PREDICTION_PATH} \
${SHOW_DIR} \
[--show] \
[--wait-time ${WAIT_TIME}] \
[--topk ${TOPK}] \
[--show-score-thr ${SHOW_SCORE_THR}] \
[--cfg-options ${CFG_OPTIONS}]
所有参数的说明:
config : 模型配置文件的路径。
prediction_path:以pickle格式输出结果文件来自 tools/test.py
show_dir: 保存绘制的 GT 和检测图像的目录
--show:决定是否显示绘制的图像,如果不指定,则设置为 False
--wait-time: 显示间隔(s),0为block
--topk:topk排序后得分最高和最低的保存图像数量。如果未指定,它将被设置为20。
--show-score-thr:显示分数阈值。如果未指定,它将被设置为0。
--cfg-options: 如果指定,键值对可选 cfg 将合并到配置文件中
例子:
假设您从tools/test.py 路径“./result.pkl”中获得了pickle格式的结果文件。
测试 Faster R-CNN 并可视化结果,将图像保存到目录 results/
python tools/analysis_tools/analyze_results.py \
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
result.pkl \
results \
--show
测试Faster R-CNN并指定topk为50,保存图片到目录 results/
python tools/analysis_tools/analyze_results.py \
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
result.pkl \
results \
--topk 50
如果要过滤低分预测结果,可以指定show-score-thr参数
python tools/analysis_tools/analyze_results.py \
configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
result.pkl \
results \
--show-score-thr 0.3
acc指标代码检测
python tools/analyze_logs.py plot_curve work_dirs/ga_LD2Det_detection_r50_fpn_2x/20211208.log.json --keys acc mAp recall --out out.pdf