mmsegmentation教程
下载预训练权重
github–>mmsegmentation–>model zoo–>XXX model(如:PSPNet)–>找到预选连权重与config的前缀一致:pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 (model)
了解配置文件
查看配置文件,可以运行 python tools/misc/print_config.py /PATH/TO/CONFIG 来查看完整的配置文件。
python tools/misc/print_config.py configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
准备数据集
- 按照同济子豪兄的西瓜语义分割数据集进行制作
- 建立mmseg/datasets/My_Dataset.py
构建模型
- 执行以下两步生成完整的配置文件,在文件夹work_dirs中
cd mmsegmentation_ours
python tools/train.py configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
- 复制在configs/deeplabv3plus并命名为:my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
- 修改完整的配置文件的num_classes,所有的num_classes=背景+类别数
- 修改完整的配置文件的dataloader的路径
- 找到路径mmseg/datasets,复制pascal_context.py模仿建立my_pascal_context.py,在init.py中导入,并随后在配置文件中修改数据集格式。
- 将type='SyncBN’修改成type=‘BN’
- 添加更多的评估指标’mDice’,'mFscore’等等
- 修改完成后请pip install -v -e .或者python setup.py install
模型训练
- 浏览数据集
python tools/analysis_tools/browse_dataset.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
- 模型训练
方法一:注意tools/train.py ‘xxx’和’–xxx’的区别,有’–‘可以添加也可以不添加,无’–'是必须添加。
python tools/train.py configs/my_deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py
方法二: train.py–>Configuration–>Parameters: E:/Python_Project/mmsegmentation_ours/configs/my_deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py --work-dir mmseg_log -->apply–>run train.py
模型测试
- 对验证集或者测试集上图片进行测试
python tools/test.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/iter_500.pth --work-dir work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/test --show --show-dir work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/test_img
- 单张图像分割显示:参考同济子豪兄
- 批量图像分割显示:参考同济子豪兄
模型分析实用工具
- 计算参数量(params)和计算量( FLOPs)
python tools/analysis_tools/get_flops.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py --shape 512 512
注意:将tools/analysis_tools/get_flops.py进行以下修改:
outputs = get_model_complexity_info(model,# input_shape,#注释掉inputs=data['inputs'],show_table=False,show_arch=False)
- 计算FPS,特别注意,在同一个benchmark上面对比性能指标,才有意义,200张以上才有效。
python tools/analysis_tools/benchmark.py configs/deeplabv3plus/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py work_dirs/my_deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480/iter_5000.pth
- 获得Grad-CAM热力图
python tools/analysis_tools/visualization_cam.py
MMDeploy-在线模型转换工具
在线模型转换工具:https://platform.openmmlab.com/deploee
在线模型测速工具:https://platform.openmmlab.com/deploee/task-profile-list