Skip to content

Latest commit

 

History

History

segmentation

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Megengine Semantic Segmentation Models

介绍

本目录包含了采用MegEngine实现的经典DeepLabV3+网络结构,同时提供了在Pascal VOC2012和Cityscapes数据集上的完整训练和测试代码。

网络在Pascal VOC2012验证集上的性能和结果如下:

模型 mIoU
deeplabv3plus-res101-voc-512size 79.5

网络在Cityscapes验证集上的性能和结果如下:

模型 mIoU
deeplabv3plus-res101-cityscapes-768size 78.5

安装和环境配置

本目录下代码基于MegEngine v1.2,在开始运行本目录下的代码之前,请确保按照README进行了正确的环境配置。

如何使用

以DeepLabV3+为例,模型训练好之后,可以通过如下命令测试单张图片:

python3 tools/inference.py -f configs/deeplabv3plus_res101_voc_512size.py \
                           -w /path/to/model_weights.pkl \
                           -i ../../assets/cat.jpg

tools/inference.py的命令行选项如下:

  • -f, 测试的网络结构描述文件。
  • -w, 需要测试的模型权重。
  • -i, 需要测试的样例图片。

使用默认图片和默认模型测试的结果见下图:

demo image

如何训练

以DeepLabV3+在Pascal VOC2012数据集上训练为例。

  1. 在开始训练前,请下载Pascal VOC2012数据集,并解压到合适的目录下。为保证一样的训练环境,还需要下载SegmentationClassAug。具体可以参照这个流程

准备好的 VOC 数据目录结构如下:

/path/to/
    |->VOC2012
    |    |Annotations
    |    |ImageSets
    |    |JPEGImages
    |    |SegmentationClass
    |    |SegmentationClass_aug

其中,ImageSets/Segmentation中包含了trainaug.txt

注意:SegmentationClass_aug和SegmentationClass中的数据格式不同。

  1. 准备预训练的backbone网络权重:可使用 megengine.hub 下载megengine官方提供的在ImageNet上训练的模型, 并存放在 /path/to/pretrain.pkl

  2. 开始训练:

python3 tools/train.py -f configs/deeplabv3plus_res101_voc_512size.py -n 8 \
                       -d /path/to/VOC2012

tools/train.py的命令行选项如下:

  • -f, 所需要训练的网络结构描述文件。
  • -n, 用于训练的devices(gpu)数量。
  • -w, 预训练的backbone网络权重。
  • -d, 数据集的上级目录,默认/data/datasets
  • -r, 是否从已训好的模型继续训练,默认None

默认情况下模型会存在 log-of-模型名目录下。

如何测试

以DeepLabV3+在Pascal VOC2012数据集上测试为例。

在得到训练完保存的模型之后,可以通过tools下的test.py文件测试模型在验证集上的性能。

python3 tools/test.py -f configs/deeplabv3plus_res101_voc_512size.py -n 8 \
                      -w /path/to/model_weights.pkl \
                      -d /path/to/VOC2012

tools/test.py的命令行选项如下:

  • -f, 所需要测试的网络结构描述文件。
  • -n, 用于测试的devices(gpu)数量。
  • -w, 需要测试的模型权重。
  • -d,数据集的上级目录,默认/data/datasets

参考文献