(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')