使用前配置
按照官方文档配置环境:https://mmdetection.readthedocs.io/zh_CN/3.x/get_started.html
-
安装conda/Miniconda
-
创建并激活一个 conda 环境
conda create --name openmmlab python=3.8 -y conda activate openmmlab
-
安装PyTorch(GPU平台)
conda install pytorch torchvision -c pytorch
-
使用 MIM 安装 MMEngine 和 MMCV
pip install -U openmim mim install mmengine mim install "mmcv>=2.0.0"
-
安装 MMDetection
cd mmdetection pip install -v -e . # 注意不用遗漏“-e”后面的" ."" # "-v" 指详细说明,或更多的输出 # "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。
-
验证 MMDetection 是否安装正确
-
下载配置文件和模型权重文件
mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .
-
运行以下命令进行验证
python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpu
-
你会在当前文件夹中的
outputs/vis
文件夹中看到一个新的图像demo.jpg
,图像中包含有网络预测的检测框
-
实操
这里实现的是官方文档中的“将单阶段检测器作为RPN”一节,下附链接
https://mmdetection.readthedocs.io/zh_CN/3.x/user_guides/single_stage_as_rpn.html
官方文档中写的都很详细的了,代码也有附上,这里就不再当搬运工了
总的来说就是:
-
创建一个名为
configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py
的配置文件(已建立,不用自己建文件,在configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py
的基础上进行了修改) -
使用命令来训练定制模型(更多训练命令,请参考这里)
# 使用8个 GPU 进行训练 bash tools/dist_train.sh configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py --work-dir /work_dirs/faster-rcnn_r50_fpn_fcos-rpn_1x_coco
我没有8个GPU,我只使用1个,我使用的训练命令如下
python tools/train.py configs/faster_rcnn/faster_r50_fpn_fcos-rpn_1x_coco.py --work-dir work-dir/faster_r50_fpn_fcos-rpn_1x_coco/
# 注意“-”和“_”别打混了
# work-dir为工作目录,训练好后的模型权重文件会存储在通过“--work-dir”指定的地方(自己建一个work-dir文件夹)
然后就可以看到开始输出信息
接下来会输出模型信息、工作目录以及使用钩子的信息(有点长,不全部截图了)
就开始训练模型了
(会一直输出训练的信息,如果不想看,也可以在后台挂起,将这些信息输出到指定的目录文件中
【待更新】