该内容为基于PaddleSeg 2.3版本的图像分割实践流程。先解压PaddleSeg套件并改名,解压数据集;再按9:1比例分割生成训练和验证列表文件,获59986和6666样本;选用Swin Transformer模型,执行训练和预测命令,最后打包result下的伪彩色预测结果。

准备工作
安装PaddleSeg以及更新依赖
In [ ]这里使用的PaddleSeg的2.3版本
# 解压PaddleSeg套件!unzip -oq /home/aistudio/data/data114849/PaddleSeg-release-2.3.zip登录后复制In [ ]
# 为方便后期操作将文件夹改名!mv PaddleSeg-release-2.3 PaddleSeg登录后复制In [ ]
# 安装依赖,AIStudio实验环境已有相关依赖#!pip install -r PaddleSeg/requirements.txt登录后复制
解压数据集
In [2]!unzip -oq /home/aistudio/data/data77571/train_and_label.zip -d data/!unzip -oq /home/aistudio/data/data77571/img_test.zip -d data/登录后复制
生成训练列表文件
In [4]这里直接按比例分割,没有用shuffle
import osimg_train_dir = os.listdir('./data/img_train')train_val_ratio = 0.9 #划分训练集和验证集的比例train_img_num = int(len(img_train_dir)*train_val_ratio)val_img_num = len(img_train_dir) - train_img_numtrain_list_origin = img_train_dir[:train_img_num]val_list_origin = img_train_dir[train_img_num:]print(len(train_list_origin),len(val_list_origin)) #输出训练集和验证集数量#生成trainlistwith open('train_list.txt','w') as f: for i in range(len(train_list_origin)): train_img_name = 'img_train/' + train_list_origin[i] train_lab_name = 'lab_train/' + train_list_origin[i].split('.')[0] + '.webp' f.write(train_img_name + ' ' + train_lab_name + '\n')#生成vallistwith open('val_list.txt','w') as f: for i in range(len(val_list_origin)): val_img_name = 'img_train/' + val_list_origin[i] val_lab_name = 'lab_train/' + val_list_origin[i].split('.')[0] + '.webp' f.write(val_img_name + ' ' + val_lab_name + '\n')登录后复制59986 6666登录后复制
模型选择和实践
Swin Transformer简介
Swin Transformer是ViT的一大进步,建议参考李沐大神读论文的方法啃原论文
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

模型训练
In [ ]!python PaddleSeg/train.py \ --config swin.yml \ --do_eval \ --use_vdl \ --save_interval 4000 \ --save_dir output登录后复制
模型预测
In [ ]!python PaddleSeg/predict.py \ --config swin0.yml \ --model_path output/best_model/model.pdparams \ --image_path data/img_testA \ --save_dir ./result登录后复制
前往output\home\aistudio\result\pseudo_color_prediction打包预测结果
