目录
基础v1版:打通tensorflow版Unet_v1代码_WRStop的博客-优快云博客
代码来源&参考,改动都是在此基础上改动:U-net:运行你的第一个U-net进行图像分割_decouples的博客-优快云博客
数据path结构
代码调试
只更改了data.py,增加图像增强
构建数据生成器对象
# 数据生成器对象
self.datagen = ImageDataGenerator(
rotation_range=0.2, # 随机旋转度数
width_shift_range=0.05, # 随机水平平移
height_shift_range=0.05, # 随机竖直平移
shear_range=0.05, # 随机错切变换
zoom_range=0.05, # 随机放大
horizontal_flip=True, # 水平翻转
fill_mode='nearest') # 填充方式
Augmentation函数
合并train与label图片,save到merge路径下
(0.tif)
doAugmentate函数
增强一张图片,其中imgnum为一张图片增强后的结果图片有几张,保存到aug_merge中
(这里的图片是Augmentation函数后的merge图片,所以也是对merge图片进行增强,输出的结果图片也是merge的)
以下都以增强两次即imgnum=2为例
0_0_3144.tif 0_0_5058.tif
splitMerge函数
将aug_merge中增强过的merge图片分开为aug_train与aug_label
0_0_3144_train.tif 0_0_5058_train.tif
0_0_3144_label.tif 0_0_5058_label.tif
保存到.npy模型文件
与v1版的文件路径、文件名和加载方式有较大区别,
文件路径:aug_train和aug_label下分0-29文件夹分别存储增强后的图像
create_train_data中
imgs = glob.glob(self.data_path+"/*/*."+self.img_type) # 添加/*
imgs.sort(key=lambda x: int(x.split('/')[4][:-10])) #3,-4更改为4,-10
文件名:从单纯的0.tif变成0_0_3144_label.tif,所以在匹配上花了些时间
create_train_data中
for imgname in imgs:
midname = imgname[23:imgname.rindex("_")] #[imgname.rindex("/")+1:]更改为[23:32]
img = load_img(self.data_path + "/" + midname + "_train.tif",grayscale = True)
label = load_img(self.label_path + "/" + midname + "_label.tif",grayscale = True)
img = img_to_array(img)
label = img_to_array(label)
imgdatas[i] = img
imglabels[i] = label
if i % 100 == 0:
print('Done: {0}/{1} train'.format(i, len(imgs)))
i += 1
完整代码
data.py
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
import numpy as np
import os
import glob
import cv2
#from libtiff import TIFF
class myAugmentation(object):
"""
一个用于图像