# Segmentation-pytorch **Repository Path**: acting_chen/Segmentation-pytorch ## Basic Information - **Project Name**: Segmentation-pytorch - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 由于时间有限,代码注释没有完善好,我会长期更新,不断完善readme形成一个完整的代码引导,后期数据集也会共享,方便下载调试,谢谢大家的关注~ 实验环境 Ubuntu 16.04 GTX1080TI python==3.6
具体参数见requirement.txt
## 数据预处理 本实验可以实现cityscapes;camvid等公开数据集 本人主要是用作遥感卫星图像分割,卫星图像尺寸都较大,所以需要进行切图,切分成512*512尺寸大小的图片 以我使用的paris数据集为例:
#### 1.将彩色的label图片变成灰度图,且颜色从0开始计数 rgb图片转换灰度图公式: 浮点数 Gray = R*0.299+G*0.587+B*0.114 整型数 Gray = (R*299+G*587+B*114)/100 ``` datasets文件夹下change_colour.py ``` #### 2.将原始3000尺寸的大小切分为自己需要的512尺寸图片 切分图片可以根据自己需求设置cropsize = 512(切分大小);stride = 488(滑动窗口步长) ``` datasets文件夹下cut_paris.py ``` #### 3.生成切割小图的路径写入txt文件 ``` datasets文件夹下gengrate_txt.py ``` #### 4.修改数据集路径 ``` dataset_builder.py文件中的build_dataset_train等函数下的root_dir需要修改成本地的数据集文件夹,代码中是'/media/ding/Data/datasets' ``` 数据结构:
``` |--paris-origin | |--label*.png | |--image*.png |--paris | |--train | |--512-label | |--label*.png | |--image*.png | |--512-image | |--label*.png | |--image*.png | |--val | |--512-label | |--label*.png | |--image*.png | |--512-image | |--label*.png | |--image*.png | |--test | |--512-label | |--label*.png | |--image*.png | |--512-image | |--label*.png | |--image*.png ``` ## 模型搭建 所有的模型搭建都是在builders/model_builder.py文件下导入 ## 训练 ``` 终端下:sh train.sh train.sh脚本,修改相应参数 builders文件夹下dataset_builder.py文件的data_dir需要修改为数据集的文件夹目录 ``` ## 测试训练保存的所有模型好坏 test.py文件是用来测试所有训练生成模型权重的好坏,在所有保存的模型权重中测试得到一个指标最高的模型 ``` 终端中执行: sh test.sh 修改test.sh的参数 best $True指选择最优模型 python test.py --dataset paris \ --model UNet_res101 \ --best $True \ --save $False \ --checkpoint /media/ding/Study/graduate/Segmentation_Torch/checkpoint/paris/UNet_res101bs8gpu1_train/2020-04-16_13:43:19/model_1.pt ``` ## 两种预测方法 ### 1.预测小图,拼接成大图 ``` 终端中执行:sh predict.sh脚本--预测小图,修改--checkpoint等参数 接着result/concat_image.py拼接成大图 ``` ### 2.直接输入大图,滑动窗口进行预测 ``` 终端中执行:sh predict_sliding.sh脚本--滑动窗口预测大图 ```