unetLayersGydF4y2Ba

创建语义分割掌中层GydF4y2Ba

描述GydF4y2Ba

例GydF4y2Ba

lgraphGydF4y2Ba= unetLayers(GydF4y2Ba图片尺寸GydF4y2Ba,GydF4y2BanumClassesGydF4y2Ba)GydF4y2Ba返回一个U-Net网络。GydF4y2BaunetLayersGydF4y2Ba包括所述网络中的像素分类层来预测类别标签用于在输入图像的每个像素。GydF4y2Ba

用GydF4y2BaunetLayersGydF4y2Ba创建U-Net网络体系结构。您必须使用Deep Learning Toolbox™函数来训练网络GydF4y2BatrainNetworkGydF4y2Ba。GydF4y2Ba

[GydF4y2BalgraphGydF4y2Ba,GydF4y2BaoutputSizeGydF4y2Ba)= unetLayers (GydF4y2Ba图片尺寸GydF4y2Ba,GydF4y2BanumClassesGydF4y2Ba)GydF4y2Ba还返回U-Net网络的输出大小。GydF4y2Ba

___GydF4y2Ba= unetLayers(GydF4y2Ba图片尺寸GydF4y2Ba,GydF4y2BanumClassesGydF4y2Ba,GydF4y2Ba名称,值GydF4y2Ba)GydF4y2Ba使用一个或多个名称值对的参数指定的选项。在引号中每个属性的名称。例如,GydF4y2BaunetLayers(图象尺寸、numClasses NumFirstEncoderFilters, 64)GydF4y2Ba另外设置输出通道的数量为GydF4y2Ba64GydF4y2Ba对于第一编码器阶段。GydF4y2Ba

例子GydF4y2Ba

全部收缩GydF4y2Ba

创建一个U-Net网络,编码器-解码器深度为3。GydF4y2Ba

IMAGESIZE = [480 640 3];numClasses = 5;encoderDepth = 3;lgraph = unetLayers(IMAGESIZE,numClasses,GydF4y2Ba“EncoderDepth”GydF4y2Ba,encoderDepth)GydF4y2Ba
lgraph = LayerGraph with properties: Layers: [46x1 nnet.cn .layer. layer] Connections: [48x2 table] InputNames: {'ImageInputLayer'}输出名:{'Segmentation-Layer'}GydF4y2Ba

显示网络。GydF4y2Ba

图(lgraph)GydF4y2Ba

将训练图像和像素标签加载到工作空间中。GydF4y2Ba

dataSetDir = fullfile (toolboxdir (GydF4y2Ba'视力'GydF4y2Ba)GydF4y2Ba“visiondata”GydF4y2Ba,GydF4y2Ba“triangleImages”GydF4y2Ba);imageDir = fullfile (dataSetDir,GydF4y2Ba'trainingImages'GydF4y2Ba);labelDir =完整文件(dataSetDir,GydF4y2Ba“trainingLabels”GydF4y2Ba);GydF4y2Ba

创建一个GydF4y2BaimageDatastoreGydF4y2Ba目的存储训练图像。GydF4y2Ba

IMDS = imageDatastore(IMAGEDIR);GydF4y2Ba

定义类名及其关联的标签id。GydF4y2Ba

一会= [GydF4y2Ba“三角形”GydF4y2Ba,GydF4y2Ba“背景”GydF4y2Ba]。labelIDs = [255 0];GydF4y2Ba

创建一个GydF4y2BapixelLabelDatastoreGydF4y2Ba目的存储训练图像的地面真实像素标签。GydF4y2Ba

pxds = pixelLabelDatastore(labelDir,类名,labelIDs);GydF4y2Ba

创建U-Net网络。GydF4y2Ba

imageSize = [3232];numClasses = 2;lgraph = unetLayers(imageSize, numClasses)GydF4y2Ba
lgraph = LayerGraph with properties: Layers:[58×1 nnet.cn .layer. layer]连接:[61×2 table] InputNames: {'ImageInputLayer'}输出名:{'Segmentation-Layer'}GydF4y2Ba

创建用于训练网络的数据存储。GydF4y2Ba

ds = pixelLabelImageDatastore (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上的培训。初始化输入数据归一化。| ======================================================================================== ||大纪元|迭代|已用时间|小批量|小批量|基础教育| | | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:04 | 79.88% | 1.8376 | 0.0010 | | 10 | 10 | 00:00:40 | 97.18% | 0.3447 | 0.0010 | | 20 | 20 | 00:01:20 | 97.95% | 0.1829 | 0.0010 | |========================================================================================|
净= DAGNetwork与属性:层:[58×1 nnet.cnn.layer.Layer]连接:[61×2表] InputNames:{ 'ImageInputLayer'} OutputNames:{ '分割层'}GydF4y2Ba

输入参数GydF4y2Ba

全部收缩GydF4y2Ba

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

  • 在形式2元件矢量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由编码器子网和相应的解码器子网组成。这些网络的深度决定了处理过程中对输入图像进行下采样或上采样的次数。编码器网络将输入图像的采样率降低了2倍GydF4y2BadGydF4y2Ba,在那里GydF4y2BadGydF4y2Ba是的价值GydF4y2BaEncoderDepthGydF4y2Ba。解码器网络通过上采样为2倍的输出编码器网络GydF4y2BadGydF4y2Ba。GydF4y2Ba

数据类型:GydF4y2Ba单GydF4y2Ba|GydF4y2Ba双GydF4y2Ba|GydF4y2Baint8GydF4y2Ba|GydF4y2Baint16GydF4y2Ba|GydF4y2Baint32GydF4y2Ba|GydF4y2Baint64GydF4y2Ba|GydF4y2Bauint8GydF4y2Ba|GydF4y2Bauint16GydF4y2Ba|GydF4y2Bauint32GydF4y2Ba|GydF4y2Bauint64GydF4y2Ba

注意GydF4y2Ba

NumOutputChannelsGydF4y2Ba重命名为GydF4y2BaNumFirstEncoderFiltersGydF4y2Ba并且在将来的版本中将不受支持。万博1manbetx用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元素行向量。典型值在[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- 0填充没有应用到卷积层的输入。卷积层只返回没有填充0的情况下计算的卷积值。输出特征图小于输入特征图。GydF4y2Ba

注意GydF4y2Ba

为了确保GydF4y2Ba高度GydF4y2Ba和GydF4y2Ba宽度GydF4y2Ba的输入到MAX-汇集层是偶数,选择网络输入图像尺寸,以确认对这些标准中的任何一个:GydF4y2Ba

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

  • 如果您指定GydF4y2Ba“ConvolutionPadding”GydF4y2Ba如GydF4y2Ba“有效”GydF4y2Ba,那么GydF4y2Ba高度GydF4y2Ba和GydF4y2Ba宽度GydF4y2Ba的输入图像必须这样选择GydF4y2Ba HGydF4y2Ba ËGydF4y2Ba 一世GydF4y2Ba GGydF4y2Ba HGydF4y2Ba ŤGydF4y2Ba •GydF4y2Ba •GydF4y2Ba 一世GydF4y2Ba =GydF4y2Ba 1GydF4y2Ba dGydF4y2Ba 2GydF4y2Ba 一世GydF4y2Ba (GydF4y2Ba FGydF4y2Ba HGydF4y2Ba •GydF4y2Ba 1GydF4y2Ba )GydF4y2Ba 和GydF4y2Ba w ^GydF4y2Ba 一世GydF4y2Ba dGydF4y2Ba ŤGydF4y2Ba HGydF4y2Ba •GydF4y2Ba •GydF4y2Ba 一世GydF4y2Ba =GydF4y2Ba 1GydF4y2Ba dGydF4y2Ba 2GydF4y2Ba 一世GydF4y2Ba (GydF4y2Ba FGydF4y2Ba w ^GydF4y2Ba •GydF4y2Ba 1GydF4y2Ba )GydF4y2Ba 是2的倍数GydF4y2BadGydF4y2Ba。GydF4y2Ba

    在哪里GydF4y2BaFGydF4y2BaHGydF4y2Ba和GydF4y2BaFGydF4y2Baw ^GydF4y2Ba分别为二维卷积核的高度和宽度。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“ConvolutionPadding”GydF4y2Ba如GydF4y2Ba“相同”GydF4y2Ba,那么GydF4y2Ba高度GydF4y2Ba和GydF4y2Ba宽度GydF4y2Ba所述网络的输出图像与所述网络的输入图像相同。GydF4y2Ba

  • 如果您指定GydF4y2Ba“ConvolutionPadding”GydF4y2Ba如GydF4y2Ba“有效”GydF4y2Ba,那么GydF4y2Ba高度GydF4y2Ba和GydF4y2Ba宽度GydF4y2Ba网络的输出图像小于网络的输入图像。GydF4y2Ba

数据类型:GydF4y2Ba双GydF4y2Ba

更多关于GydF4y2Ba

全部收缩GydF4y2Ba

U型网络架构GydF4y2Ba

  • 该U-Net体系结构包括由桥接部分连接的编码器子网和解码器子网。GydF4y2Ba

  • 在U-Net体系结构中,编码器和解码器子网由多个阶段组成。GydF4y2BaEncoderDepthGydF4y2Ba,指定编码器和解码器子网的深度,设置阶段的数量。GydF4y2Ba

  • U-Net编码器子网中的阶段包括两组卷积和ReLU层,然后是一个2×22的最大池化层。解码器子网由一个移位的卷积层进行上采样,然后是两组卷积层和ReLU层。GydF4y2Ba

  • 桥段由两组卷积层和ReLU层组成。GydF4y2Ba

  • 所有卷积层的偏项被初始化为零。GydF4y2Ba

  • 对编码器和解码器子网中的卷积层权值进行初始化GydF4y2Ba'他'GydF4y2Ba重量初始化方法GydF4y2Ba[2]GydF4y2Ba。GydF4y2Ba

提示GydF4y2Ba

  • 用GydF4y2Ba“相同”GydF4y2Ba填充在卷积层,以保持从输入到输出相同的数据大小和能够使用一组广泛的输入图像大小中的。GydF4y2Ba

  • 使用基于补丁的方法无缝分割大图像。方法提取图像修补程式GydF4y2BarandomPatchExtractionDatastoreGydF4y2Ba函数在图像处理工具箱™。GydF4y2Ba

  • 用GydF4y2Ba“有效”GydF4y2Ba填充,以防止边界失真,而您使用基于补丁的办法进行分割。GydF4y2Ba

  • 您可以使用使用创建的网络GydF4y2BaunetLayersGydF4y2Ba函数为GPU代码生成后训练用GydF4y2BatrainNetworkGydF4y2Ba。有关详细信息和示例,请参见GydF4y2Ba深度学习代码生成GydF4y2Ba(深度学习工具箱)。GydF4y2Ba

兼容性注意事项GydF4y2Ba

全部展开GydF4y2Ba

不建议从R2019b开始GydF4y2Ba

参考文献GydF4y2Ba

[1] Ronneberger, O., P. Fischer,和T. Brox。"U-Net:卷积网络用于生物医学图像分割。"GydF4y2Ba医学影像计算和计算机辅助介入(MICCAI)GydF4y2Ba。2015年第9351卷,234-241页。GydF4y2Ba

何,K.,张x .,任S.,孙J.。深入研究整流器:超越ImageNet分类上的人类水平的性能。GydF4y2BaIEEE计算机视觉国际会议论文集GydF4y2Ba。2015年,1026 - 1034。GydF4y2Ba

扩展功能GydF4y2Ba

介绍了在R2018bGydF4y2Ba