(1)查看cuda版本:
nvcc -V
gcc --version
(2) 安装 PyTorch and torchvision
conda install pytorch cudatoolkit=10.1 torchvision -c pytorch
(3)通过mim安装mmdetection
pip install openmim
mim install mmdet
(4)训练
nohop python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py --gpus 1 --work_dir work_dirs > test.log 2>&1 &
(5)测试python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs/faster_rcnn_r50_fpn_1x_coco.pth
(6)后台执行命令:&后台执行,nohup服务器链接断了还能运行程序
nohup python test.py > test.log 2>&1 &
查看后台正在运行的程序:jobs
重新登陆之后查看后台运行程序(以python为例): ps aux|grep python
将后台运行的进程调用到前台: fg %1
暂停正在运行的进程: bg %1
(7)训练前需要修改的地方
faster_rcnn:
基于resnet50的backbone
一、运行前要修改的地方:
(1)定义数据种类, 修改mmdet/datasets/coco.py
(2)test时会用到,mmdet/core/evaluation/class_names.py修改coco_classes数据集类别
(3)修改配置文件,修改图片尺寸以及种类数、学习率、图片路径
roi_head里的num_classes
当gpu数量为8时,lr=0.02;当gpu数量为4时,lr=0.01;我只要一个gpu,所以设置lr=0.0025
如果不是完全按照coco格式,需要修改加载图片路径 data里的train、val、test都需要修改
二:训练模型
python tools/train.py configs/yolox/yolox_l_8x8_300e_coco.py --resume-from *.pth
--resume-from: 恢复继续训练
nohup python tools/train.py configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py --resume-from work_dirs/mask_rcnn_r50_fpn_1x_coco/latest.pth &
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py &
训练过程中每个epoch包含了多个batch,每个batch训练两张图片
三:检测模型
(1)mmdetection自带的log分析工具:
python tools/analyze_logs.py plot_curve log.json --keys loss_cls loss_reg --out losses.pdf
python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/yolof_r50_c5_8x8_1x_coco/20211007_192929.log.json --keys loss_cls
python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/mask_rcnn_r50_fpn_1x_coco/20211008_164249.log.json --keys loss_cls loss_reg
(2)对训练结果做定量分析
python tools/test.py configs/your_confige.py work_dirs/your_model_.pth --out ./result/fastrcnn/result_100.pkl --eval bbox --show-dir 目录 --show-score-thr 数值 -options
--out: 检测结果以pkl格式进行存储,
--eval: 评价指标,COCO数据集包括proposl_fast、proposal、bbox和segm
--show-dir 将图片检测结果放到该目录下
--show-score-thr 低于此数值的结果将不显示
--options
(3)展示测试结果中评分前几的物体
python tools/analysis_tools/analyze_results.py \
${CONFIG} \
${PREDICTION_PATH} \
${SHOW_DIR} \
[--show] \
python tools/analysis_tools/analyze_results.py work_dirs/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco.py
(3)可视化数据集
python tools/misc/browse_dataset.py ${ CONFIG }
四:检测单张图片时用到以下方法:
model = init_detector(config_file,checkpoint_file)
result=inference_detector(model,img)
model.show_result(img, result, model.CLASSES, out_file='testOut.jpg')