U-Net网络结构
U-Net是一种全卷积网络,当卷积操作采用"padding = same"的形式,卷积不会使图片尺寸变小;maxpooling操作以2为步长,得到的结果是原图的 1 4 \frac14 41(宽和高均为原图的 1 2 \frac12 21);后面有对应的上采样层恢复图像的尺寸。所以,最终可以得到和原图大小一样的分割结果。原文地址
U-Net的Keras实现
具体代码详见Github
Readme
可以在configuration.txt中修改适合自己数据的参数,如路径(数据路径,模型保存路径)、图像参数(h,w,channels,classes)、网络参数(N_epoch,batchsize)等。
部分代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:CaoZhihui
...
# --Build a net work-- #
def get_net():
inputs = Input(shape=(N_channels, img_h, img_w))
# Block 1
conv1 = Conv2D(32, (3, 3), activation='relu', padding='same', kernel_initializer='he_normal')(inputs)
conv1 = Conv2D(32, (3, 3), activation='relu', padding='same', kernel_initializer='he_normal')(conv1)
pool1