U-net网络详解

论文地址:https://arxiv.org/abs/1505.04597

学习视频:U-Net网络结构讲解(语义分割)_哔哩哔哩_bilibili

整体结构

如下图,U-net结构为Encoder-Decoder,左边为Encoder部分,作用是下采样,右边为Decoder部分,作用为上采样

在图中每一个长条代表一个特征层,每一个箭头对应于一种操作

U-net网络详解_第1张图片

Encoder部分也即下采样部分

第一步

如下图,来看左边部分第一层,蓝色箭头代表卷积层,卷积核大小为3*3,padding = 0,步长为1,经过两层卷积层大小每经过一层减小2,高和宽变成了568*568通道大小变成了64

U-net网络详解_第2张图片

之后经过红色箭头,表示最大池化层,大小缩小为一半为284*284

第二步

此时再进行2次卷积,将channel翻倍,如下图得到280*280*128的特征图

U-net网络详解_第3张图片

然后再经过一个最大池化层得到128*128

第三步

对上面280*280的特征图继续进行卷积,得到136*136*256,如下图

U-net网络详解_第4张图片

再经过最大池化层得到68*68的特征图

第四步

对68*68*256的特征图继续进行卷积操作得到64*64*512的特征图,如下

U-net网络详解_第5张图片

再经过最大池化层得到32*32的特征图

第五步

对32*32*512的特征层进行卷积得到28*28*1024的特征层

U-net网络详解_第6张图片

Decoder部分也即上采样部分

至此下采样结束接下来是上采样,这里上采样使用的是转置卷积

第一步

图中绿色箭头代表上采样,每一次上采样会将高和宽扩大两倍,通道数减半,变成56*56*512,同时灰色箭头表示将左边对应部分的特征图进行中心裁剪出一块与右边一样大小,与右边进行拼接,得到56*56*1024的特征图,然后经过3*3大小的卷积,将特征图通道数减半,同时会继续缩小高和宽为52*52,最终经过这一步的decoder得到52*52*512大小的特征图

U-net网络详解_第7张图片

接下来进行转置卷积将特征图大小调整为104*104*256

第二步

此时与刚刚上采样的第一步类似,对左边部分进行中心裁剪拼接得到104*104*512,如图,再进行两层卷积操作得到100*100*256的特征图

U-net网络详解_第8张图片

接下来进行转置卷积将特征图大小调整为200*200*128

第三步

此时与刚刚上采样的第二步类似,对左边部分进行中心裁剪拼接得到200*200*256,如图,再进行两层卷积操作得到196*196*128的特征图

U-net网络详解_第9张图片

接下来继续上采样,使用转置卷积得到392*392*64大小的特征图

第四步

此时与刚刚上采样的第三步类似,对对应左边部分进行中心裁剪拼接得到392*392*128,如图,再进行两层卷积操作得到388*388*64的特征图,如图

U-net网络详解_第10张图片

最后进行一个1*1的卷积操作,原论文只有两个类别一个背景一个是要分割的物体,卷积核个数因此为2,最终得到的输出是388*388*2的分割图

实际U-net网络

可以看到在原文中,输入和输出大小不一样

U-net网络详解_第11张图片

如图对于这个细胞分割,实际上要黄色部分的分割图要用到蓝色框区域的信息,但是在图像边缘往往是没有这些信息,这时图像边缘信息缺失了,这时需要镜像对应部分补全缺失信息,才能进行分割。而且对于大分辨率的图像分割时,往往分割时要有overlap部分,如下图。

U-net网络详解_第12张图片

然而,事实上,当今主流U-net网络在卷积的时候会有padding,来保证输入特征图大小与输出特征图大小一样,这样就不需要考虑边缘缺失问题了。

你可能感兴趣的:(语义分割,深度学习,计算机视觉,卷积神经网络)