SOLOV2训练教学

  • Post author:
  • Post category:其他



Github:


https://github.com/WXinlong/SOLO


我的操作系统是Ubuntu18.04,本文将会分成以下部分:

  • 创建数据集
  • 修改config
  • 模型训练
  • 可视化Mask结果
  • 模型评估
  • 推理预测
  • 推理优化

首先安装一些基本库,可参考官方安装说明

$ git clone https://github.com/WXinlong/SOLO.git
$ cd SOLO
$ pip install -r requirements/build.txt
$ pip install “git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
$ pip install -v -e .



1.创建数据集

  • 准备训练的数据集,使用

    labelme

    标注数据集并转换为

    coco

    格式,标注操作可参考:

    语义分割与实例分割 Labelme标注教学
  • 建立训练集和验证集,如下所示

    在这里插入图片描述


  • mmdet/datasets

    里创建自定义数据。建立

    my_dataset.py

    ,写入训练的类别。如果标签只有一个,要另外加入

    null

    类别。
from .coco import CocoDataset
from .registry import DATASETS
@DATASETS.register_module
class MyDataset(CocoDataset):
    CLASSES = ['null', 'raccoon']


  • mmdet/datasets/__init__.py

    加入刚刚定义好的数据集

    在这里插入图片描述



2.修改config

选择要训练的模型架构,所有模型位于

configs

文件夹中。我使用 SOLOv2 最轻量的模型,接着打开

configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py

修改以下内容:

  • num_classes 设定为类别数+1

    在这里插入图片描述
  • 更改

    dataset_type



    data_root

    路径

    在这里插入图片描述
  • 更改

    data = dict()



    train、val、test



    ann_file、img_prefix

    路径

    在这里插入图片描述
  • 可修改

    optimizer、learning rate、total_epochs

    等超参数,其中

    work_dir

    为存放训练模型的路径。

    在这里插入图片描述



3.模型训练

接下来就开始模型训练啦。。。

python tools/train.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py

若是使用多 GPU (假如是8个GPU)可使用以下指令:

./tools/dist_train.sh configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py  8

训练好以后会将训练好的模型放在work_dir 设定的文件夹路径下。

在这里插入图片描述



4.可视化Mask结果

  • 修改

    tools/test_ins_vis.py

    中的

    class_names

    为自定义类别

    在这里插入图片描述
python tools/test_ins_vis.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py weights/solov2_light_release_r18_fpn_8gpu_3x/latest.pth --show --save_dir  work_dirs/vis_solo
  • 可视化Mask结果会存放在

    work_dirs/vis_solo

    文件夹中

    在这里插入图片描述



5.模型评估

  • 评估模型AP


    --eval

    参数可以选择要显示哪一个AP

    在这里插入图片描述
python tools/test_ins.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py weights/solov2_light_release_r18_fpn_8gpu_3x/latest.pth --show --out results_solo.pkl --eval segm

在这里插入图片描述

若想显示各个类别的AP,可以将

mmdet/core/evaluation/coco_utils.py



classwise

改为

True

后,再执行一次命令

在这里插入图片描述

python tools/test_ins.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py weights/solov2_light_release_r18_fpn_8gpu_3x/latest.pth --show --out results_solo.pkl --eval segm

在这里插入图片描述



6.推理预测

训练好后就可以预测啦,将

demo/inference_demo.py



config_file



checkpoint_file

更改为刚训练好的模型路径:

在这里插入图片描述

  • 执行预测
python demo/inference_demo.py

运行

demo

会出现以下警告,但不影响输出结果

在这里插入图片描述

  • 预测结果

    在这里插入图片描述



7.推理优化

若想对推理进行优化,可以使用

ncnn

以及

TensorRT




NCNN

完整的

代码地址



参考目录


https://medium.com/ching-i/solov2-%E8%A8%93%E7%B7%B4%E6%95%99%E5%AD%B8-90591960b5c7



版权声明:本文为weixin_43229348原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。