主要内容gydF4y2Ba

unet3dLayersgydF4y2Ba

创建三维U-Net层,用于体积图像的语义分割gydF4y2Ba

自从R2019bgydF4y2Ba

描述gydF4y2Ba

lgraphgydF4y2Ba= unet3dLayers (gydF4y2BainputSizegydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2Ba返回3-D U-Net网络。gydF4y2Baunet3dLayersgydF4y2Ba在网络中包括像素分类层,以预测输入体积图像中每个像素的分类标签。gydF4y2Ba

使用gydF4y2Baunet3dLayersgydF4y2Ba为3d U-Net创建网络架构。使用深度学习工具箱™功能训练网络gydF4y2BatrainNetworkgydF4y2Ba(深度学习工具箱)gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BalgraphgydF4y2Ba,gydF4y2BaoutputSizegydF4y2Ba= unet3dLayers(gydF4y2BainputSizegydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2Ba还从3-D U-Net网络返回输出体积图像的大小。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2Ba___gydF4y2Ba= unet3dLayers(gydF4y2BainputSizegydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba除前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

创建一个编码器-解码器深度为2的3-D U-Net网络。指定第一个卷积层的输出通道数为16。gydF4y2Ba

imageSize = [128 128 128 3];numClasses = 5;encoderDepth = 2;lgraph = unet3dLayers(imageSize,numClasses,gydF4y2Ba“EncoderDepth”gydF4y2BaencoderDepth,gydF4y2Ba“NumFirstEncoderFilters”gydF4y2Ba, 16)gydF4y2Ba
lgraph = LayerGraph with properties: Layers: [40×1 nnet.cnn.layer.Layer] Connections: [41×2 table] InputNames: {'ImageInputLayer'} OutputNames: {' segment - layer '}gydF4y2Ba

显示网络。gydF4y2Ba

图(gydF4y2Ba“单位”gydF4y2Ba,gydF4y2Ba“归一化”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,[0 0 0.5 0.55]);情节(lgraph)gydF4y2Ba

使用深度学习网络分析仪对U-Net网络进行三维可视化。gydF4y2Ba

analyzeNetwork (lgraph);gydF4y2Ba

可视化显示了每个编码器阶段的输出通道数量。编码器阶段1和2中的第一个卷积层分别有16和32个输出通道。编码器阶段1和2中的第二个卷积层分别有32和64个输出通道。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

网络输入图像大小表示一个体积图像,指定为以下值之一:gydF4y2Ba

  • 形式为[的三元向量gydF4y2Ba高度gydF4y2Ba宽度gydF4y2Ba深度gydF4y2Ba]gydF4y2Ba

  • 形式为[的四元向量gydF4y2Ba高度gydF4y2Ba宽度gydF4y2Ba深度gydF4y2Ba通道gydF4y2Ba].gydF4y2Ba通道gydF4y2Ba表示图像通道的数量。gydF4y2Ba

请注意gydF4y2Ba

网络输入图像大小必须选择这样的最大池化层的输入维度必须是偶数。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

要分段的类数,指定为大于1的标量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。gydF4y2Ba

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来gydF4y2Ba名字gydF4y2Ba在报价。gydF4y2Ba

例子:gydF4y2Baunet3dLayers (inputSize、numClasses EncoderDepth, 4)gydF4y2Ba

编码器深度,指定为正整数。三维U-Net网络由编码器子网和相应的解码器子网组成。网络的深度决定了在处理过程中输入的体积图像下采样或上采样的次数。编码器网络对输入的体积图像进行2倍的采样gydF4y2BaDgydF4y2Ba,在那里gydF4y2BaDgydF4y2Ba的值gydF4y2BaEncoderDepthgydF4y2Ba.解码器网络对编码器网络输出进行2倍的采样gydF4y2BaDgydF4y2Ba.解码器子网络的深度与编码器子网络的深度相同。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

第一编码器阶段中第一卷积层的输出通道数,指定为正整数。第二卷积层和后续编码器阶段中的卷积层的输出通道数基于此值设置。gydF4y2Ba

鉴于gydF4y2BaStage ={1,2,…,gydF4y2BaEncoderDepthgydF4y2Ba}gydF4y2Ba,每个编码器阶段第一卷积层的输出通道数等于gydF4y2Ba

2gydF4y2Ba阶段gydF4y2Ba-1gydF4y2BaNumFirstEncoderFiltersgydF4y2Ba

每个编码器阶段的第二卷积层的输出通道数等于gydF4y2Ba

2gydF4y2Ba阶段gydF4y2BaNumFirstEncoderFiltersgydF4y2Ba

的gydF4y2Baunet3dLayersgydF4y2Ba函数设置解码器阶段中卷积层的输出通道数,以匹配相应编码器阶段中的数量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

3-D卷积滤波器的大小,指定为正标量整数或形式为[]的三元素正整数行向量。gydF4y2BafgydF4y2BahgydF4y2BafgydF4y2BawgydF4y2BafgydF4y2BadgydF4y2Ba].过滤器尺寸的典型值范围为[3,7]。gydF4y2Ba

如果你指定gydF4y2Ba“FilterSize”gydF4y2Ba作为值的正标量整数gydF4y2Ba一个gydF4y2Ba,则卷积核大小为[gydF4y2BaA A AgydF4y2Ba].gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

填充类型,指定为gydF4y2Ba“相同”gydF4y2Ba或gydF4y2Ba“有效”gydF4y2Ba.的填充类型指定填充样式gydF4y2Baconvolution3dLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba在编码器和解码器子网络中。输出特征映射的空间大小取决于填充的类型。指定以下选项之一:gydF4y2Ba

  • “相同”gydF4y2Ba-零填充应用于卷积层的输入,这样输出和输入特征映射是相同的大小。gydF4y2Ba

  • “有效”gydF4y2Ba-零填充不应用于卷积层的输入。卷积层只返回没有零填充的卷积值。输出特征映射比输入特征映射小。gydF4y2Ba

.gydF4y2Ba

请注意gydF4y2Ba

以确保gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Bamax-pooling层的输入值为偶数,选择网络输入图像大小以确认符合以下任何一个标准:gydF4y2Ba

  • 如果你指定gydF4y2Ba“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“相同”gydF4y2Ba,则gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba输入体积图像的值必须是2的倍数gydF4y2BaDgydF4y2Ba.gydF4y2Ba

  • 如果你指定gydF4y2Ba“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“有效”gydF4y2Ba,则gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba的输入体积图像必须选择这样gydF4y2Ba hgydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba hgydF4y2Ba tgydF4y2Ba −gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba DgydF4y2Ba 2gydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba hgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba wgydF4y2Ba 我gydF4y2Ba dgydF4y2Ba tgydF4y2Ba hgydF4y2Ba −gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba DgydF4y2Ba 2gydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba wgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba dgydF4y2Ba egydF4y2Ba pgydF4y2Ba tgydF4y2Ba hgydF4y2Ba −gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba DgydF4y2Ba 2gydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba dgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 2的倍数是多少gydF4y2BaDgydF4y2Ba.gydF4y2Ba

    在哪里gydF4y2BafgydF4y2BahgydF4y2Ba,gydF4y2BafgydF4y2BawgydF4y2Ba而且gydF4y2BafgydF4y2BadgydF4y2Ba分别为三维卷积核的高度、宽度和深度。gydF4y2BaDgydF4y2Ba是编码器深度。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

表示3-D U-Net网络架构的层,返回为gydF4y2BalayerGraphgydF4y2Ba(深度学习工具箱)gydF4y2Ba对象。gydF4y2Ba

网络输出图像大小,返回为一个四元素向量的形式[gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba,gydF4y2Ba渠道gydF4y2Ba].gydF4y2Ba渠道gydF4y2Ba输出通道的数量,等于在输入处指定的类的数量。的gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba从网络输出图像的好坏取决于填充卷积的类型。gydF4y2Ba

  • 如果你指定gydF4y2Ba“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“相同”gydF4y2Ba,则gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba网络输出图像的图像与网络输入图像的图像相同。gydF4y2Ba

  • 如果你指定gydF4y2Ba“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“有效”gydF4y2Ba,则gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba网络输出图像的大小小于网络输入图像的大小。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

三维U-Net架构gydF4y2Ba

  • 三维U-Net结构由一个编码器子网和一个解码器子网组成,它们由一个桥接部分连接。gydF4y2Ba

  • 三维U-Net结构中的编码器和解码器子网络由多个阶段组成。gydF4y2BaEncoderDepthgydF4y2Ba,它指定编码器和解码器子网络的深度,设置阶段数。gydF4y2Ba

  • 3-D U-Net网络中的每个编码器阶段由两组卷积层、批归一化层和ReLU层组成。ReLU层后面是一个2 × 2 × 2 max池化层。同样,每个解码器阶段由一个转置卷积层组成,用于上采样,然后是两组卷积层、批处理归一化层和ReLU层。gydF4y2Ba

  • 桥段由两组卷积层、批归一化层和ReLU层组成。gydF4y2Ba

  • 将所有卷积层的偏置项初始化为零。gydF4y2Ba

  • 编码器和解码器子网络中的卷积层权值使用gydF4y2Ba“他”gydF4y2Ba权重初始化方法。gydF4y2Ba

提示gydF4y2Ba

  • 使用gydF4y2Ba“相同”gydF4y2Ba在卷积层中填充以保持从输入到输出的相同数据大小,并允许使用广泛的输入图像大小集。gydF4y2Ba

  • 使用基于补丁的方法对大图像进行无缝分割。方法可以提取图像补丁gydF4y2BarandomPatchExtractionDatastoregydF4y2Ba在图像处理工具箱™功能。gydF4y2Ba

  • 使用gydF4y2Ba“有效”gydF4y2Ba在卷积层中填充,以防止在使用基于补丁的方法进行分割时产生边界伪影。gydF4y2Ba

参考文献gydF4y2Ba

[1] Çiçek, Ö。,A. Abdulkadir, S. S. Lienkamp, T. Brox, and O. Ronneberger. "3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation."医学图像计算与计算机辅助干预- MICCAI 2016。MICCAI 2016。计算机科学课堂讲稿gydF4y2Ba.卷9901,第424-432页。施普林格,可汗。gydF4y2Ba

版本历史gydF4y2Ba

R2019b引入gydF4y2Ba

另请参阅gydF4y2Ba

对象gydF4y2Ba

功能gydF4y2Ba