玩转MMDetection-MMDetection v2 目标检测模型有用工具的使用(六)

一、图像演示

1.1 以下是一个演示脚本来测试单个图像。

python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${GPU_ID}]   [--score-thr ${SCORE_THR}]

IMAGE_FILE:需要测试图像的路径。
CONFIG_FILE:相应的配置文件的路径。
CHECKPOINT_FILE:测试所用的权重文件路径。
--device:所用的GPU的ID号。
例如:

python demo/image_demo.py demo/demo.jpg configs/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth --device cpu

运行demo路径下的image_demo.py代码,图像路径为demo/demo.jpg,所采用的配置文件路径为configs/faster_rcnn_r50_fpn_1x_coco.py,测试所用的权重文件路径checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth,设备采用cpu --device cpu。

1.2 网络摄像头演示,以下是网络摄像头演示。

python demo/webcam_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${GPU_ID}] [--camera-id ${CAMERA-ID}] [--score-thr ${SCORE_THR}]

因为直接采用网络摄像头进行实时演示,因此无需测试图像路径。
CONFIG_FILE:相应的配置文件的路径。
CHECKPOINT_FILE:测试所用的权重文件路径。
--device:所用的GPU的ID号。
例如:

python demo/webcam_demo.py configs/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth

运行demo路径下的webcam_demo.py代码,所采用的配置文件路径为configs/faster_rcnn_r50_fpn_1x_coco.py,测试所用的权重文件路径checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth。

二、分析日志

2.1 可以在给定训练日志文件的情况下绘制loss/mAP曲线

首先运行pip-install-seaborn来安装依赖项。

pip install seaborn
python tools/analyze_logs.py plot_curve [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}]  [--out ${OUT_FILE}]

之后调用tools文件夹下的analyze_logs.py程序,进行曲线绘制,具体参数参考2.2.

2.2 参数详情

plot_curve:用于绘制曲线的分析器。
json_logs:json格式的训练日志路径。
--keys:要绘制的量,可以为loss_cls、loss_bbox、bbox_mAP。
--title:图形标题。
--legend:每个绘制的图例。
--backend:绘图后端。
--style:绘图风格。
cal_train_time:用于计算每次训练迭代的平均时间的解析器。
--include-outliers:计算平均时间时包括每一代的第一个值。

2.3 实例展示

2.3.1 绘制一些运行的分类损失,并保存为png格式,可以保存的格式有.png、.jpg、.pdf等。

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

运行analyze_logs.py文件,调用分析器plot_curve,json格式的训练日志路径为log.json,要绘制的量为--keys loss_cls分类损失,绘制的图例为--legend loss_cls分类损失图例,输出损失图保存为--out loss_cls.png。

分类损失曲线图

2.3.2 绘制一些运行的分类和回归损失,并将图保存为pdf。

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

运行analyze_logs.py文件,调用分析器plot_curve,json格式的训练日志路径为log.json,要绘制的量为--keys loss_cls loss_bbox分类损失和回归损失,输出损失图保存为--out lossse.pdf。

分类损失和回归损失结果图

 2.3.3 比较同一图中两次运行的bbox mAP。

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

运行analyze_logs.py文件,调用分析器plot_curve,json格式的训练日志路径为两个需要比较的 log1.json和log2.json,要绘制的量为--keys bbox_mAP,绘制的图例为run1和run2,分别代表两个曲线的bbox_mAP。

2.3.4 计算平均训练速度。

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

三、获取FLOPS和Params(计算量和参数量)

get_flops.py脚本来计算给定模型的FLOP和参数。

python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}]

参数详细解释:
CONFIG_FILE:训练的config文件路径。
--shape:输入图像大小。
 

图为某网络在1280*800的图像输入下对应的计算量和参数量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zuoyou-HPU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值