mmdet tools 使用指南

2024-01-11 21:36
文章标签 tools 使用指南 mmdet

本文主要是介绍mmdet tools 使用指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 OpenMMLab 项目的一部分。
主分支代码目前支持 PyTorch 1.8 及其以上的版本。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用前提

(1)mmdet使用手册地址

https://mmdetection.readthedocs.io/zh-cn/latest/user_guides/index.html#id2

(2)第一次运行前请先运行 pip install seaborn 安装必要依赖

pip install seaborn

日志分析

使用方法

python tools/analysis_tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--eval-interval ${EVALUATION_INTERVAL}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}]

参数解释

  • –keys ${KEYS}:要分析和绘制的曲线的键值列表。键值是数据记录中的一个字段,可以是训练损失、验证准确率等指标。
  • –eval-interval E V A L U A T I O N I N T E R V A L :评估间隔,用于确定在曲线图上显示的数据点的数量。 {EVALUATION_INTERVAL}:评估间隔,用于确定在曲线图上显示的数据点的数量。 EVALUATIONINTERVAL:评估间隔,用于确定在曲线图上显示的数据点的数量。{EVALUATION_INTERVAL}是一个整数,表示每隔多少个数据点进行评估和绘制。
  • –title T I T L E :曲线图的标题。 {TITLE}:曲线图的标题。 TITLE:曲线图的标题。{TITLE}是一个字符串,用于设置曲线图的标题。
  • –legend L E G E N D :曲线图的图例标签。 {LEGEND}:曲线图的图例标签。 LEGEND:曲线图的图例标签。{LEGEND}是一个字符串,用于设置曲线图的图例标签。
  • –backend B A C K E N D :绘图库的后端。 {BACKEND}:绘图库的后端。 BACKEND:绘图库的后端。{BACKEND}是一个字符串,用于指定绘图库的后端,例如matplotlib或plotly。
  • –style S T Y L E :曲线图的样式。 {STYLE}:曲线图的样式。 STYLE:曲线图的样式。{STYLE}是一个字符串,用于设置曲线图的样式,例如线条颜色、线型等。
  • –out O U T F I L E :输出文件路径。 {OUT_FILE}:输出文件路径。 OUTFILE:输出文件路径。{OUT_FILE}是一个字符串,用于设置曲线图的输出文件路径。

样例

(1)绘制分类损失曲线图

python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls --out out_path

(2)绘制分类损失、回归损失曲线图,保存图片为对应的 pdf 文件

python tools/analysis_tools/analyze_logs.py plot_curve log.json --keys loss_cls loss_bbox --legend loss_cls loss_bbox --out losses.pdf

注:–keys 这里的参数可以替换成log.json中的数据参数。
(3)在相同图像中比较两次运行结果的 bbox mAP

python tools/analysis_tools/analyze_logs.py plot_curve log1.json log2.json --keys bbox_mAP --legend run1 run2

注:注意json文件中bbox_mAP的名字,有可能是0_bbox_mAP等…
(4)计算平均训练速度

python tools/analysis_tools/analyze_logs.py cal_train_time log.json
python tools/analysis_tools/analyze_logs.py cal_train_time log.json --include-outliers

注:这里–include-outliers的作用是指定在计算训练迭代的平均时间时是否包含异常值。

结果分析

使用 tools/analysis_tools/analyze_results.py 可计算每个图像 mAP,随后根据真实标注框与预测框的比较结果,展示或保存最高与最低 top-k 得分的预测图像。

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: model config 文件的路径。
  • prediction_path: 使用 tools/test.py 输出的 pickle 格式结果文件。
  • show_dir: 绘制真实标注框与预测框的图像存放目录。
  • –show:决定是否展示绘制 box 后的图片,默认值为 False。
  • –wait-time: show 时间的间隔,若为 0 表示持续显示。
  • –topk: 根据最高或最低 topk 概率排序保存的图片数量,若不指定,默认设置为 20。
  • –show-score-thr: 能够展示的概率阈值,默认为 0。
  • –cfg-options: 如果指定,可根据指定键值对覆盖更新配置文件的对应选项。

注:这里要使用的是test.py 输出的 pickle 格式结果文件。

test.py获取pickle 格式样例

python tools/test.py example_faster_rcnn_export.py latest.pth --eval bbox --out out.pkl
python tools/test.py example_faster_rcnn_export.py latest.pth --out out.pkl

注:可以选择评估方式 --eval ,对于 COCO 数据集,可选 bbox 、segm、proposal ;对于 VOC 数据集,可选 map、recall也可以选择 --out ,指定测试结果的 pkl 输出文件。
注:可以根据上面 --out 保存的结果 pkl 文件计算指标,而无需重新跑。

python tools/analysis_tools/eval_metric.py example_faster_rcnn_export.py out.pkl --eval bbox

tools/analysis_tools/analyze_results.py可以将模型的预测结果框画出来进行可视化,其中第二个参数是上面 --out 保存的结果 pkl 文件,第三个是参数是结果保存到的目录,可以通过 --show-score-thr 来指定可视化框的阈值。

样例

(1)计算每个图像 mAP,随后根据真实标注框与预测框的比较结果,展示或保存最高与最低 top-k 得分的预测图像

python tools/analysis_tools/analyze_results.py example_faster_rcnn_export.py out.pkl out/ --show

(2)测试 Faster R-CNN 并指定 top-k 参数为 50,保存结果图片

python tools/analysis_tools/analyze_results.py example_faster_rcnn_export.py out.pkl out/ --topk 50

(3)滤低概率的预测结果,指定 show-score-thr 参数

python tools/analysis_tools/analyze_results.py example_faster_rcnn_export.py out.pkl out/ --show-score-thr 0.3

可视化数据集

使用方法

python tools/analysis_tools/browse_dataset.py ${CONFIG} [-h] [--skip-type ${SKIP_TYPE[SKIP_TYPE...]}] [--output-dir ${OUTPUT_DIR}] [--not-show] [--show-interval ${SHOW_INTERVAL}]

样例

python tools/misc/browse_dataset.py example_faster_rcnn_export.py --output-dir out/

误差分析

>首先使用以下命令得到 bbox 或 segmentation 的 json 格式文件。

python tools/test.py --format-only  --eval-options "jsonfile_prefix=out/out_resul"

样例

(1)得到每一类的 COCO bbox 误差结果,并保存分析结果图像至指定目录

python tools/analysis_tools/coco_error_analysis.py results.bbox.json out/ --ann=via_export_coco_int.json 

混淆矩阵

>混淆矩阵是对检测结果的概览。 tools/analysis_tools/confusion_matrix.py 可对预测结果进行分析,绘制成混淆矩阵表。 首先,运行 tools/test.py 保存 .pkl 预测结果,之后再运行。

使用方法

python tools/analysis_tools/confusion_matrix.py ${CONFIG}  ${DETECTION_RESULTS}  ${SAVE_DIR} --show

样例

python tools/analysis_tools/confusion_matrix.py example_faster_rcnn_export.py  faster_rcnn_fpn_coco.pkl --output-dir out/

打印全部 config

>tools/misc/print_config.py 可将所有配置继承关系展开,完全打印相应的配置文件。

使用方法

python tools/misc/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}]

样例

python tools/misc/print_config.py example_faster_rcnn.py

这篇关于mmdet tools 使用指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/595765

相关文章

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

【Tools】大模型中的自注意力机制

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 自注意力机制(Self-Attention)是一种在Transformer等大模型中经常使用的注意力机制。该机制通过对输入序列中的每个元素计算与其他元素之间的相似性,

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

【Tools】大模型中的注意力机制

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 在大模型中,注意力机制是一种重要的技术,它被广泛应用于自然语言处理领域,特别是在机器翻译和语言模型中。 注意力机制的基本思想是通过计算输入序列中各个位置的权重,以确

Maven使用指南的笔记

文档索引 Maven in 5 Minutes 篇幅很短,快速上手,不求甚解。 执行如下命令,创建项目的基础配置。 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1

【scala 安装错误】错误: 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner

错误: 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 原因: Scala安装路径中包含空格。 解决办法:scala 不要安装在E:\Program Files 这种有空格的目录下,简直坑

【spring】does not have member field ‘com.sun.tools.javac.tree.JCTree qualid

spring-in-action-6-samples 的JDK版本 最小是11,我使用 了22: jdk21 jdk22 都与lombok 不兼容,必须使用兼容版本, 否则报错: thingsboard 的大神解释了: java: java.lang.NoSuchFieldError: Class com

OWASP ZAP2.4.3使用指南(中文版)

OWASP ZAP是一款开源的web安全工具,它简单易用,与burp suite相似,主要功能包含了:代理、数据拦截修改、主动扫描、被动扫描、主动攻击、爬虫、fuzzing、渗透测试等。在国外安全圈和渗透测试领域应用非常广泛,在youtube上有许多关于ZAP的视频资料。与burp suite相比,前者是一款商业渗透测试工具,部分功能不能使用,国内的大部分使用者都使用的破解版,而ZAP是开源免费的

Circuitjs 在线电路模拟器使用指南

Circuitjs 是一款 web 在线电路模拟器, 可以在浏览器上方便地模拟各种模拟或数字的电路, 用户无需安装各种软件, 生成的电路也支持在线分享给其它用户. 网址是 https://cc.xiaogd.net/. 当前版本为 v2.9.0 cc 为 circuit 的简写, 也即是电路的意思. 版本说明 在模拟器右侧栏增加了版本的说明. 另外, 在 菜单--关于 的弹出窗

Linux IPC 资源管理:ipcs和 ipcrm使用指南

文章目录 0. 引言1. IPC 资源概述2. 查询 IPC 资源2.1 使用 `ipcs` 查询 IPC 资源2.2 查询特定 IPC 资源2.3 查询系统 IPC 参数 3. 修改 IPC 系统参数4. 清除 IPC 资源5. 实践应用5.1 查询用户的消息队列5.2 查找未被清理的消息队列 0. 引言 进程间通信(IPC)允许不同的进程共享数据或进行同步操作。Linux