三个优秀的PyTorch实现语义分割框架
使用的VOC数据集链接开放在文章中,预训练模型已上传Github,环境我使用Colab pro
,大家下载模型做预测即可。
代码链接: https://github.com/lixiang007666/segmentation-learning-experiment-pytorch
使用方法:
-
下载VOC数据集,将
JPEGImages
SegmentationClass
两个文件夹放入到data文件夹下。 -
终端切换到目标目录,运行
python train.py -h
查看训练
(torch) qust116-jq@qustx-X299-WU8:~/语义分割$ python train.py -h
usage: train.py [-h] [-m {Unet,FCN,Deeplab}] [-g GPU]choose the modeloptional arguments:
-h, --help show this help message and exit
-m {Unet,FCN,Deeplab}, --model {Unet,FCN,Deeplab}
输入模型名字
-g GPU, --gpu GPU 输入所需GPU
选择模型和GPU编号进行训练,例如运行python train.py -m Unet -g 0
- 预测需要手动修改
predict.py
中的模型
如果对FCN非常了解的,可以直接跳过d2l
(动手学深度学习)的讲解到最后一部分。
2 数据集
VOC数据集一般是用来做目标检测,在2012版本中,加入了语义分割任务。
基础数据集中包括:含有1464张图片的训练集,1449的验证集和1456的测试集。一共有21类物体。
PASCAL VOC分割任务中,共有20个类别的对象,其他内容作为背景类,其中红色代表飞机类,黑色是背景,飞机边界部分用米黄色(看着像白色)线条描绘,表示分割模糊区。
其中,分割标签都是png格式的图像,该图像其实是单通道的颜色索引图像,该图像除了有一个单通道和图像大小一样的索引图像外,还存储了256个颜色值列表(调色板),每一个索引值对应调色板里一个RGB颜色值,因此,一个单通道的索引图+调色板就能表示彩色图。
原图:
在这里插入图片描述
<