赞
踩
U-net包括两部分:第一部分,特征提取(convolution layers),与VGG、Inception、Res-Net等类似。第二部分上采样部分(upsamping layers)。convolutions layers中每个pooling layer前一刻的activation值会concatenate到对应的upsamping层的activation值中。由于网络结构像U型,所以叫U-Net网络。
特征提取部分(convolution layers),每经过一个池化层就一个尺度,包括原图尺度一共有5个尺度。
上采样部分(upsamping layers),每上采样一次,就和特征提取部分对应的通道数相同尺度融合,但是融合之前要将其crop。这里的融合也是拼接。
医学图像是一般相当大,但是分割时候不可能将原图太小输入网络,所以必须切成一张一张的小patch,在切成小patch的时候,U-net由于网络结构原因适合有overlap的切图,可以看图,红框是要分割区域,但是在切图时要包含周围区域,overlap另一个重要原因是周围overlap部分可以为分割区域边缘部分提供文理等信息。可以看黄框的边缘,分割结果并没有受到切成小patch而造成分割情况不好。
U-net反向传播过程,大家都知道卷积层和池化层都能反向传播,U-net上采样部分可以用上采样或反卷积,那反卷积和上采样可以怎么反向传播的呢?由预备知识可知,反卷积(转置卷积)可以转化为卷积操作,因此也是可以反向传播的。
图像分割是一项计算机视觉任务,它通过为图像的每个像素分配标签,将图像分割成多个区域。它提供了比对象检测(在检测到的对象周围绘制边界框)或图像分类(为对象分配标签)更多的图像信息。
分割非常有用,可用于实际应用,如医学成像,衣服分割,洪水地图,自动驾驶汽车等。
有两种类型的图像分割:
语义分割:使用标签对每个像素进行分类。
实例分割:对每个像素进行分类,区分每个对象实例。
U-Net是一种语义分割技术,最初被提出用于医学成像分割。它是早期的深度学习分割模型之一,U-Net架构也用于许多GAN变体,如Pix2Pix生成器。
制作Keras模型有三种选择。
顺序 API:最简单且对初学者友好,按顺序堆叠层。
功能API:更灵活,允许非线性拓扑,共享层和多个输入或多输出。
模型子类化:最灵活,最适合需要自定义训练循环的复杂模型。
U-Net有一个相当简单的架构;但是,要在编码器和解码器之间创建跳过连接,我们需要连接一些层。因此,Keras Functional API 最适合于此目的。
首先,我们创建一个函数,指定输入、编码器层、瓶颈层、解码器层,最后是具有激活功能的输出层。请注意,输入图像形状为 。输出有三个通道,对应于模型将为每个像素分类的三个类:背景、前景对象和对象轮廓。
2015年,OlafRonneberger等人[5]提出了U-net网络结构,U-net是基于FCN的一种语义分割网络,适用于做医学图像的分割。在本文中,作者修改并扩展了FCN网络结构,使它在使用少量的数据进行训练的情况下获得精确的分割结果。其主要思想是在收缩网络的后面补充一个与前面类似的网络,其中池化运算符由上采样运算符替换。因此,这些层增加了输出的分辨率。为了定位,从收缩路径的高分辨率特征与上采样输出相结合。然后,连续卷积层可以学习基于该信息组装更精确的输出。U-net网络结构如图所示:
在上图中,每个蓝色块表示一个多通道特征图,特征图的通道数标记在顶部,X-Y尺寸设置在块的左下边缘,不同颜色的箭头代表不同的操作。图的左半部分是收缩路径,右半部分是扩展路径。其中需要注意的是,每经过一次上采样都会将通道数减半,再与收缩路径对应的特征图进行拼接。并且在拼接之前会进行 crop,(例如在上图中,6464大与5656,为了使这两个特征图能够顺利拼接,取6464中间部分5656的大小,然后拼接),因为两者的尺寸并不相同(主要是因为 valid conv 造成的)。最后一层使用1 X 1大小的卷积核,将通道数降低至特定的数量(如像素点的类别数量)。
本文提出的U-net网络结构,它同时具备捕捉上下文信息的收缩路径和允许精确定位的对称扩展路径,这使得网络将上下文信息向更高层分辨率传播;Overlap-tile 策略,这种方法用于补全输入图像的上下信息,可以解决由于内存不足造成的图像输入的问题;同时使用弹性形变对数据进行增强,既可以解决训练数据不足的问题,也可以提高算法的鲁棒性;使用了加权损失。预先计算权重图,一方面补偿了训练数据每类像素的不同频率,另一方面使网络更注重学习相互接触的细胞间边缘。
U-net的上采样依然有大量的通道,这使得网络将上下文信息向更高分辨率传播,作为结果,扩展路径与收缩路径对称,形成一个U型的形状,如上图所示,网络没有全连接层,只是每个卷积层的有效部分。
[1]https://keras.io/examples/vision/oxford_pets_image_segmentation/
[2] https://pyimagesearch.com/2022/02/21/u-net-image-segmentation-in-keras
[3]https://blog.csdn.net/fjsd155/article/details/89107367
[4] http://www.arxiv.org/pdf/1505.04597.pdf
[5] https://zhuanlan.zhihu.com/p/68309743
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。