主要内容gydF4y2Ba

unetLayersgydF4y2Ba

创建U-Net层语义分割gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

lgraphgydF4y2Ba= unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2Ba返回一个U-Net网络。gydF4y2BaunetLayersgydF4y2Ba网络中包含一个像素分类层预测分类标签输入图像中的每个像素。gydF4y2Ba

使用gydF4y2BaunetLayersgydF4y2Ba创建U-Net网络体系结构。你必须训练网络使用深度学习工具箱™函数gydF4y2BatrainNetworkgydF4y2Ba(深度学习工具箱)gydF4y2Ba。gydF4y2Ba

(gydF4y2BalgraphgydF4y2Ba,gydF4y2BaoutputSizegydF4y2Ba)= unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2Ba还返回输出尺寸的大小从U-Net网络。gydF4y2Ba

___gydF4y2Ba= unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba使用一个或多个名称-值对参数指定选项。在报价附上每个属性的名字。例如,gydF4y2BaunetLayers(图象尺寸、numClasses NumFirstEncoderFilters, 64)gydF4y2Ba另外设置输出通道的数量gydF4y2Ba64年gydF4y2Ba第一编码器阶段。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

创建一个U-Net网络encoder-decoder深度的3。gydF4y2Ba

图象尺寸= (480 640 3);numClasses = 5;encoderDepth = 3;numClasses lgraph = unetLayers(图象尺寸,gydF4y2Ba“EncoderDepth”gydF4y2BaencoderDepth)gydF4y2Ba
lgraph = LayerGraph属性:层:[46 x1 nnet.cnn.layer.Layer]连接:[48 x2表]InputNames: {“ImageInputLayer”} OutputNames: {“Segmentation-Layer”}gydF4y2Ba

显示网络。gydF4y2Ba

情节(lgraph)gydF4y2Ba

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。gydF4y2Ba

负荷训练图像和像素标签到工作区中。gydF4y2Ba

dataSetDir = fullfile (toolboxdir (gydF4y2Ba“愿景”gydF4y2Ba),gydF4y2Ba“visiondata”gydF4y2Ba,gydF4y2Ba“triangleImages”gydF4y2Ba);imageDir = fullfile (dataSetDir,gydF4y2Ba“trainingImages”gydF4y2Ba);labelDir = fullfile (dataSetDir,gydF4y2Ba“trainingLabels”gydF4y2Ba);gydF4y2Ba

创建一个gydF4y2BaimageDatastoregydF4y2Ba对象存储训练图像。gydF4y2Ba

imd = imageDatastore (imageDir);gydF4y2Ba

定义类名和它们相关的标签id。gydF4y2Ba

一会= [gydF4y2Ba“三角形”gydF4y2Ba,gydF4y2Ba“背景”gydF4y2Ba];labelIDs = (255 0);gydF4y2Ba

创建一个gydF4y2BapixelLabelDatastoregydF4y2Ba对象来存储地面真理训练图像像素标签。gydF4y2Ba

一会,pxds = pixelLabelDatastore (labelDir labelIDs);gydF4y2Ba

创建U-Net网络。gydF4y2Ba

图象尺寸= [32 32];numClasses = 2;numClasses lgraph = unetLayers(图象尺寸)gydF4y2Ba
lgraph = LayerGraph属性:层:[58×1 nnet.cnn.layer.Layer]连接:[61×2表]InputNames: {“ImageInputLayer”} OutputNames: {“Segmentation-Layer”}gydF4y2Ba

创建一个数据存储培训网络。gydF4y2Ba

ds =结合(imd, pxds);gydF4y2Ba

设置培训选项。gydF4y2Ba

选择= trainingOptions (gydF4y2Ba“个”gydF4y2Ba,gydF4y2Ba…gydF4y2Ba“InitialLearnRate”gydF4y2Ba1 e - 3,gydF4y2Ba…gydF4y2Ba“MaxEpochs”gydF4y2Ba,20岁,gydF4y2Ba…gydF4y2Ba“VerboseFrequency”gydF4y2Ba10);gydF4y2Ba

培训网络。gydF4y2Ba

净= trainNetwork (ds、lgraph选项)gydF4y2Ba
培训在单CPU。初始化输入数据规范化。| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | | |时代迭代时间| Mini-batch | Mini-batch |基地学习| | | | (hh: mm: ss) | | |损失精度率| | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | 1 | 1 | 00:00:04 | 75.57% | 2.4341 | 0.0010 | | 10 | | 00:00:36 | 96.02% | 0.4517 | 0.0010 | | 20 | 20 | 00:01:13 | 97.62% | 0.2324 | 0.0010 | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |gydF4y2Ba
网= DAGNetwork属性:层:[58×1 nnet.cnn.layer.Layer]连接:[61×2表]InputNames: {“ImageInputLayer”} OutputNames: {“Segmentation-Layer”}gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

网络输入图像大小,指定为:gydF4y2Ba

  • 2-element向量形式(gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba]。gydF4y2Ba

  • 转换向量形式(gydF4y2Ba高度gydF4y2Ba,gydF4y2Ba宽度gydF4y2Ba,gydF4y2Ba深度gydF4y2Ba]。gydF4y2Ba深度gydF4y2Ba是图像通道的数量。集gydF4y2Ba深度gydF4y2Ba来gydF4y2Ba3gydF4y2Ba为RGB图像gydF4y2Ba1gydF4y2Ba对灰度图像或渠道的数量多光谱和高光谱图像。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

例子:gydF4y2Ba“EncoderDepth”, 3gydF4y2Ba

编码器深度,指定为一个正整数。U-Net由编码器子网和相应的解码器子网。这些网络的深度决定了输入图像的次数是downsampled或upsampled处理。编码器网络downsamples输入图像的2倍gydF4y2BaDgydF4y2Ba,在那里gydF4y2BaDgydF4y2Ba的值是gydF4y2BaEncoderDepthgydF4y2Ba。译码器网络upsamples编码器网络输出的2倍gydF4y2BaDgydF4y2Ba。gydF4y2Ba

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

请注意gydF4y2Ba

NumOutputChannelsgydF4y2Ba重命名为gydF4y2BaNumFirstEncoderFiltersgydF4y2Ba并将在将来的版本中不支持。金宝app使用gydF4y2BaNumFirstEncoderFiltersgydF4y2Ba代替。gydF4y2Ba

第一编码器输出通道数阶段,指定为一个正整数或向量的正整数。在每个后续编码器阶段,输出通道的数量翻倍。gydF4y2BaunetLayersgydF4y2Ba设置输出通道的数量在每个解码器阶段匹配在相应的编码阶段。gydF4y2Ba

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

第一编码器输出通道数阶段,指定为一个正整数或向量的正整数。在每个后续编码器阶段,输出通道的数量翻倍。的gydF4y2BaunetLayersgydF4y2Ba函数设置输出通道的数量在每个解码器阶段匹配相应的编码阶段。gydF4y2Ba

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

卷积层过滤大小,指定为一个积极的奇数或2-element积极的奇数行向量。典型值的范围(3、7)。gydF4y2Ba

FilterSizegydF4y2Ba 描述gydF4y2Ba
标量gydF4y2Ba 过滤器是广场。gydF4y2Ba
2-element行向量gydF4y2Ba

过滤器的大小(gydF4y2Ba高度gydF4y2Ba宽度gydF4y2Ba]。gydF4y2Ba

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

类型的填充,指定为gydF4y2Ba“相同”gydF4y2Ba或gydF4y2Ba“有效”gydF4y2Ba。填充指定的类型的填充样式gydF4y2Baconvolution2dLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba在编码器和解码器子网。输出特性图的空间大小取决于类型的填充。如果您指定类型的填充:gydF4y2Ba

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

  • “有效”gydF4y2Ba- - - - - -补零不是卷积应用到输入层。卷积层只返回值的卷积计算没有补零。输出特性映射小于输入特征映射。gydF4y2Ba

请注意gydF4y2Ba

以确保gydF4y2Ba高度gydF4y2Ba和gydF4y2Ba宽度gydF4y2Ba甚至max-pooling的输入层,选择网络输入图像大小来确认任何这些条件之一:gydF4y2Ba

  • 如果您指定gydF4y2Ba“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“相同”gydF4y2Ba,那么gydF4y2Ba高度gydF4y2Ba和gydF4y2Ba宽度gydF4y2Ba的输入图像必须是2的倍数gydF4y2BaDgydF4y2Ba。gydF4y2Ba

  • 如果您指定gydF4y2Ba“ConvolutionPadding”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 2的倍数gydF4y2BaDgydF4y2Ba。gydF4y2Ba

    在哪里gydF4y2BafgydF4y2BahgydF4y2Ba和gydF4y2BafgydF4y2BawgydF4y2Ba高度和宽度的二维卷积核,分别。gydF4y2BaDgydF4y2Ba深度编码器。gydF4y2Ba

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

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

层代表U-Net网络架构,作为一个返回gydF4y2BalayerGraphgydF4y2Ba(深度学习工具箱)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“ConvolutionPadding”gydF4y2Ba作为gydF4y2Ba“有效”gydF4y2Ba,那么gydF4y2Ba高度gydF4y2Ba和gydF4y2Ba宽度gydF4y2Ba网络的输出图像小于网络的输入图像。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

U-Net架构gydF4y2Ba

  • U-Net架构包含一个编码器子网和解码器子网由一座桥连接部分。gydF4y2Ba

  • 编码器和解码器子网在U-Net架构包括多个阶段。gydF4y2BaEncoderDepthgydF4y2Ba,它指定的深度编码器和解码器子网,集数量的阶段。gydF4y2Ba

  • U-Net编码器子网内的阶段包括两套卷积和ReLU层,其次是一个2×2 max池层。转置的解码器子网由卷积upsampling层,紧随其后的是两套卷积和ReLU层。gydF4y2Ba

  • 桥部分由两套卷积和ReLU层。gydF4y2Ba

  • 偏差的所有卷积层被初始化为零。gydF4y2Ba

  • 卷积在编码器和解码器子网层权重使用初始化gydF4y2Ba“他”gydF4y2Ba重初始化方法gydF4y2Ba[2]gydF4y2Ba。gydF4y2Ba

提示gydF4y2Ba

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

  • 使用patch-based方法无缝大图像的分割。你可以通过使用提取图像补丁gydF4y2BarandomPatchExtractionDatastoregydF4y2Ba函数在图像处理工具箱™。gydF4y2Ba

  • 使用gydF4y2Ba“有效”gydF4y2Ba填充,防止边境工件时使用patch-based方法分割。gydF4y2Ba

  • 您可以使用创建的网络使用gydF4y2BaunetLayersgydF4y2Ba功能训练后GPU代码生成gydF4y2BatrainNetworkgydF4y2Ba(深度学习工具箱)gydF4y2Ba。细节和示例,请参阅gydF4y2Ba深度学习代码生成gydF4y2Ba(深度学习工具箱)gydF4y2Ba。gydF4y2Ba

兼容性的考虑gydF4y2Ba

全部展开gydF4y2Ba

不推荐在R2019b开始gydF4y2Ba

引用gydF4y2Ba

[1]Ronneberger, O。,P. Fischer, and T. Brox. "U-Net: Convolutional Networks for Biomedical Image Segmentation."医学影像计算和计算机辅助介入(MICCAI)gydF4y2Ba。9351卷,2015年,页234 - 241。gydF4y2Ba

他[2],K。,X. Zhang, S. Ren, and J. Sun. "Delving Deep Into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification."《IEEE计算机视觉国际会议gydF4y2Ba。2015年,1026 - 1034。gydF4y2Ba

扩展功能gydF4y2Ba

另请参阅gydF4y2Ba

对象gydF4y2Ba

功能gydF4y2Ba

介绍了R2018bgydF4y2Ba