一、每个训练批次都保存一次模型(便于选择最佳模型)
在configs/_base_/default_runtime.py中,将default_hooks中的checkpoint设置如下:
checkpoint=dict(type='CheckpointHook', interval=1),
若源码设置了max_keep_ckpts参数(最多保存模型的数量),则将其删除。
二、在image_demo.py中检测测试集图像时,修改预测的旋转框颜色
在mmrotate/visualization/local_visulaizer.py中的RotLocalVisualizer类(继承自MMDet中DetLocalVisualizer类)的中修改颜色。
三、训练结束后,对模型进行测试评估
3.1 绘制loss、mAP曲线(命令行中,loss和mAP互相替换即可)
python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/rotated_rtmdet_tiny-3x-dota/20240216_215435/vis_data/20240216_215435.json --keys mAP --title mAP --out mAP.jpg
3.2 模型测试
python tools/test.py --config configs/rotated_rtmdet/rotated_rtmdet_tiny-3x-dota.py --checkpoint work_dirs/rotated_rtmdet_tiny-3x-dota/epoch_21_best.pth --out work_dirs/rotated_rtmdet_tiny-3x-dota/output.pkl
3.3 测试图像推理(修改过的image_demo.py)
python demo/image_demo.py --img_dir datasets/split_dataset/test/ --config configs/rotated_atss/rotated-atss-le90_r50_fpn_1x_dota.py --checkpoint work_dirs/rotated-atss-le90_r50_fpn_1x_dota/epoch_30_best.pth --out-file demo/detection_output/rotated_atss/imgs/ --out-txt demo/detection_output/rotated_atss/txts/
3.4 计算模型的Param和GFLOPS
python tools/analysis_tools/get_flops.py configs/psc/rotated-retinanet-rbox-le90_r50_fpn_psc-dual_amp-1x_dota.py
3.5 计算单图推理速度FPS
python tools/analysis_tools/benchmark.py configs/oriented_reppoints/oriented-reppoints-qbox_r50_fpn_1x_dota.py --checkpoint work_dirs/oriented-reppoints-qbox_r50_fpn_1x_dota/epoch_33_best.pth