一、图像演示
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:输入图像大小。