玩转MMDetection-MMDetection v2 目标检测模型训练和测试(四)

一、训练模型

1.1 单GPU训练

python tools/train.py {CONFIG} [--work-dir] [optional arguments] [optional arguments]

1.2 多GPU训练

bash tools/dist_train.sh {CONFIG} {GPUS} [optional arguments]

1.3 参数:

config:训练模型配置文件的路径
--work-dir:设置存放训练生成文件(log文件和权重文件)的路径
--no-validate:设置训练时不验证模型
--gpus:要使用的gpu数量,仅适用于非分布式训练
--gpu-dis:要使用的gpus的id,仅适用于非分布式训练、
--seed:设置随机种子,便于复现结果
--deterministic:是否为CUDNN后端设置确定性选项

一般在训练时,①config训练模型配置文件的路径和②--work-dir设置存放训练生成文件(log文件和权重文件)的路径这两个参数是必需的,③--no-validate设置训练时不验证模型,如果需要调用时,只需直接在训练命令中添加--no-validate即可,一般情况下不调用,④--gpus要使用的gpu数量⑤--gpu-dis要使用的gpus的id这两个参数,仅适用于非分布式训练,如果多卡训练时,需要调用,选择采用的gpu数量和对应gpu的ID。

1.4 训练实例

1.4.1 单GPU训练

python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_our_imp_swin_fpn_1x_dota10.py --work-dir work_dirs/DOTA2_1K

采用Swin Transformer训练DOTA数据集,并且将训练生成的log文件和权重文件保存在根目录下的work_dir/DOTA2_1K路径下。

1.4.2 多GPU训练

bash tools/dist_train.sh configs/obb/oriented_rcnn/faster_rcnn_orpn_our_imp_swin_fpn_1x_dota10.py 4

采用Swin Transformer训练DOTA数据集,采用4卡训练,没有定义GPU的ID,默认为0,1,2,3

二、测试模型

2.1 单GPU测试

python tools/test.py  {CONFIG_FILE}  {CHECKPOINT_FILE} [--out ${RESULT_FILE}]  [--eval ${EVAL_METRICS}]   [optional arguments] # EVAL_METRICS可以为proposal_fast、proposal、bbox、segm、mAP、recall

2.2 多GPU测试

tools/dist_test.sh <CONFIG_FILE> <CHECKPOINT_FILE> <GPU_NUM>  [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]  [optional arguments]  # EVAL_METRICS可以为proposal_fast、proposal、bbox、segm、mAP、recall 

2.3 参数

CONFIG_FILE:测试模型配置文件的路径
CHECKPOINT_FILE:权重文件的路径
--out:pickle格式的输出结果文件
--fuse-conv-bn:是否融合conv和bn,这将大大提高推理速度
--format-only:格式化输出结果而不执行评估。当您希望将结果格式化为特定格式并提交给测试服务器时,这很有用。当调用时,一般也为了生成其他格式的文件。
--eval:要根据结果评估的项目。允许的值取决于数据集,例如,proposal_fast、proposal、bbox、segm可用于COCO,mAP、recall可用于PASCAL VOC。城市景观可以通过城市景观以及所有COCO指标进行评估。
--show:带有预测框的可视化结果
--show-dir:保存带有预测框的绘制图像的路径
--show-score-thr:设置显示预测框的阈值
--gpu-collect:是否使用gpu收集结果
--tmpdir:tmp目录用于从多个工作进程收集结果,当未指定gpu collect时可用

2.4 测试实例

2.4.1 单GPU测试

python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_our_imp_swin_fpn_1x_dota10.py weights/DOTA/xxx.pth --eval mAP

采用Swin Transformer测试DOTA数据集,采用xxx.pth权重,并且验证mAP精度。

2.4.2 多GPU测试

bash tools/dist_train.sh configs/obb/oriented_rcnn/faster_rcnn_orpn_our_imp_swin_fpn_1x_dota10.py 4

采用Swin Transformer测试DOTA数据集,采用xxx.pth权重,并且验证mAP精度。,采用4卡训练,没有定义GPU的ID,默认为0,1,2,3。

图1 DOTA数据集的测试结果

图1为DOTA数据集的测试结果,可以清楚看出,目标检测标注框均为有角度旋转的旋转框,并且有着较高的检测精度。

图2 HRSC2016数据集的测试结果

图2为HRSC2016数据集的测试结果,可以清楚看出,目标检测标注框均为有角度旋转的旋转框,并且有着较高的检测精度。

猜你喜欢

转载自blog.csdn.net/weixin_42715977/article/details/131707853