主要内容

segnetLayers

为语义分割创建SEGNET层

描述

例子

LGRAPH.= segnetlayers(图片大小numclasses.模型返回SEGNET图层,LGRAPH.,这是用倒雷定的层和重量预先统筹模型

Segnet是一种用于语义图像分割的卷积神经网络。网络使用一个PixelclassificationLayer.预测输入图像中的每个像素的分类标签。

segnetLayers为SEGNET创建网络架构。您必须使用深度学习工具箱™功能培训网络Trainnetwork.(深度学习工具箱)

LGRAPH.= segnetlayers(图片大小numclasses.Encoderdep.返回使用指定编码器深度配置的未初始化的SegNet层。

LGRAPH.= segnetlayers(图片大小numclasses.Encoderdep.名称,价值返回一个由一个或多个指定的附加选项返回SEGNET图层名称,价值对论点。

例子

全部收缩

负载训练图像和像素标签。

datasetdir = fullfile(toolboxdir('想象'),'VisionData''triangleimages');imagedir = fullfile(datasetdir,'培训码');labeldir = fullfile(datasetdir,'训练标签');

创建持有培训图像的图像数据存储。

IMDS = IMAGEDATASTORE(IMAGEDIR);

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

ClassNames = [“三角形”“背景”];labelids = [255 0];

创建一个像素标签数据存储,保存训练图像的真实像素标签。

pxds = pixellabeldataStore(Labeldir,ClassNames,LabelIds);

创建SEGNET层。

图像= [32 32];numclasses = 2;LGRAPRER = SEGNETLAYERS(图像化,NUMCLASS,2)
lgraph = LayerGraph with properties: Layers: [31x1 nnet.cnn.layer.Layer] Connections: [34x2 table] InputNames: {'inputImage'} OutputNames: {'pixelLabels'}

创建一个像素标签图像数据存储,用于培训语义分段网络。

pximds = pixellabelimagedataStore(IMDS,PXD);

设置培训选项。

选项=培训选项('sgdm''italllearnrate',1e-3,......'maxepochs'20,'verbosefrequency',10);

训练网络。

网= trainNetwork (pximds lgraph,选项)
单CPU培训。初始化输入数据归一化。| ========================================================================================|时代|迭代|经过时间的时间迷你批量|迷你批量|基础学习| | | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:02 | 42.11% | 0.7662 | 0.0010 | | 10 | 10 | 00:00:25 | 50.77% | 0.7390 | 0.0010 | | 20 | 20 | 00:00:47 | 66.19% | 0.6918 | 0.0010 | |========================================================================================|
net =具有属性的Dagnetwork:图层:[31x1 nnet.cnn.layer.layer]连接:[34x2表] InputNames:{'InputImage'} OutputNames:{'Pixellabels'}

显示网络。

图(LGROPL)

图包含轴。轴包含Type Graphplot的对象。

创建SegNet层与编码器/解码器深度4。

图像= [480 640 3];numclasses = 5;EncoderDepth = 4;Lgraph = SegnetLayers(图像化,NumClasses,EncoderDepth)
LAPHRAGH =具有属性的分层图:图层:[59x1 nnet.cnn.layer.layer]连接:[66x2表]输入名称:{'InputImage'} OutputNames:{'Pixellabels'}

显示网络。

图绘图(LGROP)

图包含轴。轴包含Type Graphplot的对象。

输入参数

全部收缩

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

  • 格式的2元素矢量[高度宽度]。

  • 格式的3个元素矢量[高度宽度深度]。深度是图像通道的数量。放深度3.RGB图像,1对于灰度图像,或多光谱和超光谱图像的通道数。

语义分段中的类数,指定为大于1的整数。

预磨损的网络模型,指定为'vgg16''vgg19'。这些型号具有编码器深度为5.当您使用A时'vgg16'模型,必须指定RGB输入。您可以使用灰度图像将灰度图像转换为RGBIM2GRAY.函数。

编码器深度,指定为正整数。

SEGNET由编码器和相应的解码器子网组成。这些网络的深度决定的次数的输入图像进行下采样或因为它是上采样处理的数量。编码器网络将输入图像缩小为2倍D., 在哪里D.是值的价值Encoderdep.。解码器网络将编码器网络上的输出量增加2倍D.

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'numonvolutionlayers',1

每个编码器和解码器部分中的卷积层数指定为正整数的正整数或向量。

numonvolutionlayers. 描述
标量子 所有编码器和解码器部分使用相同数量的层。
向量 K.Th元素numonvolutionlayers.是卷积层数的数量K.TH编码器部分和相应的解码器部分。典型值在[1,3]范围内。

SEGNET编码器网络中每个部分的输出通道数,指定为正整数的正整数或向量。segnetLayers设置在解码器中,以匹配相应的编码器部分输出的信道的数目。

numoutputchannels. 描述
标量子 相同数量的输出通道用于所有编码器和解码器部分。
向量 K.Th元素numoutputchannels.是输出通道的数量K.TH编码器部分和相应的解码器部分。

卷积层滤波器大小,指定为正奇形整数或正奇形整数的2元素行向量。典型值在[3,7]范围内。

过滤 描述
标量子 过滤器是正方形。
2-element行向量

过滤器具有尺寸[高度宽度]。

输出参数

全部收缩

代表SEGNET网络架构的图层,返回AS分层图(深度学习工具箱)对象。

尖端

  • SEGNET编码器和解码器子网内的部分由卷积,批量归一化和Relu层组成。

  • 所有卷积层配置成使得偏置项固定为零。

  • 编码器和解码器子网中的卷积层权重使用“MSRA'重量初始化方法。为了'vgg16''vgg19'模型,只使用MSRA初始化解码器子网。[1]

  • 由网络生产的网络segnetLayers金宝app一旦他们接受培训,支持GPU代码生成深入学习Trainnetwork.(深度学习工具箱)。看到深入学习代码生成(深度学习工具箱)有关详细信息和示例。

参考文献

[1]他,K.,X. Zhang,S. Ren和J. Sun.“深入研究整流器:超越了在想象集分类上的人力水平表现。”IEEE计算机愿景国际会议的诉讼程序。2015,1026-1034。

[2] Badrinarayanan,V.,A.Kendall和R. Cipolla。“SEGNET:图像分割的深度卷积编码器 - 解码器架构。”arxiv。预印亚克西夫:1511.0051,2015。

扩展能力

也可以看看

对象

职能

在R2017B中介绍