U-Net卷积神经网络简要解析(附基于TensorFlow自己实现的代码参考)

由于项目需要,用U-NET跑一个程序来对医学影像进行分割(segmentation),因此跑去看了下这篇论文(paper),下面会介绍一下U-Net的框架及要点,如果哪里有写的不对的,或者好的建议,欢迎提出并纠正。

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

  1. 概要

U-Net通俗来讲也是全卷积神经网络的一种变形,主要其结构经论文作者画出来形似字母U(见图 1),因而得名U-Net。整个神经网络主要有两部分组成:搜索路径(contracting path)和扩展路径(expanding path)。搜索路径主要是用来捕捉图片中的上下文信息(context information),而与之相对称的扩展路径则是为了对图片中所需要分割出来的部分进行精准定位(localization)。U-Net诞生的一个主要前提是,很多时候深度学习的结构需要大量的sample和计算资源,但是U-Net基于FCN(Fully Convultional Neural Network:全卷积神经网络)进行改进,并且利用数据增强(data augmentation)可以对一些比较少样本的数据进行训练,特别是医学方面相关的数据(医学数据比一般我们所看到的图片及其他文本数据的获取成本更大,不论是时间还是资源的消耗),所以U-Net的出现对于深度学习用于较少样本的医学影像是很有帮助的。

  2. 网络结构及原理解析

就如前面所说的U-Net是基于FCN进行改进的,比较tricky的地方就是U-Net不是简单地像FCN那样子对图片进行encode和decode,U-Net为了能精准的定位,收缩路径上提取出来的局部像素特征会在升采样(upsampling)过程中与新的特征图(feature map)进行结合(其实比较直白的说法就是结合局部信息和全局信息,通过信息整合提高像素点类别的预测的准确性),以最大程度的保留前面降采样(downsampling)过程一些重要的特征信息。而为了能使网络结构能更高效的运行,结构中是没有全连接层(fully connected layers),这样子可以很大程度上减少需要训练的参数,并得益于特殊的U形结构可以很好的保留图片中的所有信息。

收缩路径上是每两个 3 * 3 的卷积层(unpadded convolutional layers)后会跟一个2 * 2的最大池化层(Maxpooling layer: 步长为2),并且每个卷积层后面采用relu激活函数来对原始图片进行降采样操作,除此之外,每一次降采样都会增加一杯通道数(double the number of feature channel)。

在扩展路径的向上采样(deconvolution)中,每一步会有一个 2 * 2 的卷积层(激活函数也是relu)和一个两个 3 * 3 的卷积层,于此同时,每一步的升采样都会加入来自相对应收缩路径的特征图(经裁剪以保持相同的形状shape)

在网络的最后一层是一个 1 * 1 的卷积层,通过这一操作可以将64通道的特征向量转换为所需要的分类结果的数量(例如2),最终,U-Net的整个网络一共有23层卷积层。U-Net有一个很重要的有点是其基本可以对任意形状大小的图片进行卷积操作,特别是任意大的图片。

文末附上自己写的基于TensorFlow的UNet模型,另外本文只是进行了比较简要的概括,如今也衍生出了很多UNetd的变种,所以有需要的话大家可以搜索查看下,例如2019年比较不错的nnUnet,提出了一个自动化和generalized的Unet框架,该论文就用简单的UNet框架完胜了许多新的UNet变种模型,推荐大家阅读。

转载于:https://www.cnblogs.com/jielongAI/p/9395381.html

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!Fashion-MNIST是一个流行的图像分类数据集,用于训练和测试机器学习模型。卷积神经网络(Convolutional Neural Network,CNN)是一种常用的深度学习模型,特别适用于图像相关的任务。 要使用卷积神经网络对Fashion-MNIST数据集进行分类,通常需要以下步骤: 1. 准备数据集:首先,您需要下载Fashion-MNIST数据集并加载到您的程序中。这个数据集包含了10个类别的服装图像,每个类别有6000张训练图像和1000张测试图像。 2. 数据预处理:在训练模型之前,您需要对数据进行预处理。这通常包括将像素值归一化到0到1之间,将标签转换为独热编码(one-hot encoding),以及将数据划分为训练集和验证集。 3. 构建卷积神经网络模型:使用卷积层、池化层和全连接层来构建您的卷积神经网络模型。您可以选择不同的架构和超参数来优化模型性能。 4. 模型训练:使用训练集对模型进行训练。通过反向传播和梯度下降算法,不断调整模型参数以最小化损失函数。 5. 模型评估:使用测试集评估模型的性能。计算准确率、精确率、召回率等指标,了解模型在未见过的数据上的表现。 6. 模型优化:根据评估结果,对模型进行调整和优化。可以尝试不同的网络架构、正则化技术、优化算法等来提升模型性能。 这只是一个简要的概述,实际上在实现Fashion-MNIST卷积神经网络时,还需要考虑数据增强、调参等细节。如果您需要更具体的代码实现或深入的解释,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值