主要内容

deeplabv3plusLayers

创建DeepLab v3 +卷积神经网络语义图像分割

自从R2019b

描述

例子

layerGraph= deeplabv3plusLayers (图象尺寸,numClasses,网络)返回一个DeepLab v3 +层与指定的基础网络,数量的类,和图像的大小。

layerGraph= deeplabv3plusLayers (___、“DownsamplingFactor”值)另外设置将采样因子(输出步)[1]要么816。将采样因素集数量的编码器部分DeepLab v3 + downsamples输入图像。

例子

全部折叠

创建一个基于ResNet-18 DeepLab v3 +网络。

图象尺寸= (480 640 3);numClasses = 5;网络=“resnet18”;lgraph = deeplabv3plusLayers(图象尺寸,numClasses、网络“DownsamplingFactor”16);

显示网络。

analyzeNetwork (lgraph)

加载三角形数据集使用一个图像数据存储图像。数据存储包含200个灰度级的图像随机三角形。每个图片都是32-by-32。

dataSetDir = fullfile (toolboxdir (“愿景”),“visiondata”,“triangleImages”);imageDir = fullfile (dataSetDir,“trainingImages”);imd = imageDatastore (imageDir);

数据集加载三角形像素标签使用像素标签数据存储。

labelDir = fullfile (dataSetDir,“trainingLabels”);一会= [“三角形”,“背景”];labelIDs = (255 0);一会,pxds = pixelLabelDatastore (labelDir labelIDs);

创建一个DeepLab v3 +网络。

图象尺寸= (256 - 256);numClasses =元素个数(类名);numClasses lgraph = deeplabv3plusLayers(图象尺寸,“resnet18”);

结合图像和像素标签数据训练和预处理变换适用于调整训练图像。

cd =结合(imd, pxds);tds =变换(cd, @(数据)preprocessTrainingData(数据、图象尺寸));

指定培训选项。降低mini-batch大小减少内存使用量。

选择= trainingOptions (“个”,“MiniBatchSize”8“MaxEpochs”3);

培训网络。

网= trainNetwork (tds、lgraph选择);
培训单一的GPU。初始化输入数据规范化。| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | | |时代迭代时间| Mini-batch | Mini-batch |基地学习| | | | (hh: mm: ss) | | |损失精度率| | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | 1 | 1 |就是34.79% | | 0.9817 | 0.0100 | | 2 | 50 | 00:00:23 | 99.02% | 0.0261 | 0.0100 | | 3 | 75 | 00:00:31 | 99.16% | 0.0211 | 0.0100 | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |

读一个测试图像。

我= imread (“triangleTest.jpg”);

调整测试图像倍等于输入图像的大小除以32,三角形在测试图像大致等于三角形的大小在训练。

我= imresize (,“规模”imageSize. / 32);

段的图像。

C = semanticseg(我,净);

显示结果。

B = labeloverlay (C);图imshow (B)

金宝app支持功能

函数data = preprocessTrainingData(数据、图象尺寸)%调整相关的训练图像和图像像素标签。{1}= imresize数据(数据{1},图象尺寸);{2}= imresize数据(数据{2},图象尺寸);%将灰度输入图像转换为RGB ResNet-18,使用哪个%需要RGB图像输入。{1}= repmat数据(数据{1},1,1,3);结束

输入参数

全部折叠

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

  • 2-element矢量格式(高度,宽度]。

  • 转换矢量格式(高度,宽度,3]。第三个因素3对应于RGB。

类网络进行分类,指定为一个比1大的整数。

基础网络,指定为resnet18(深度学习工具箱),resnet50(深度学习工具箱),mobilenetv2(深度学习工具箱),xception(深度学习工具箱),或inceptionresnetv2(深度学习工具箱)。您必须安装相应的网络扩展。

输出参数

全部折叠

DeepLab v3 +网络,作为卷积神经网络返回语义图像分割。网络使用encoder-decoder架构、扩张的隆起和跳过连接段图像。你必须使用trainNetwork(深度学习工具箱)函数(需要深度学习工具箱™)来训练网络之前,您可以使用网络的语义分割。

算法

  • 当你使用xception(深度学习工具箱)mobilenetv2(深度学习工具箱)基础网络创建一个DeepLab v3 +网络,深度可分离旋转用于深黑色的空间金字塔池(ASPP)和解码器子网。对于所有其他基础网络,使用卷积层。

  • 这个实现DeepLab v3 +不包括全球平均ASPP池层。

引用

[1],L。,Y. Zhu, G. Papandreou, F. Schroff, and H. Adam. "Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation."计算机视觉——2018年大会,833 - 851。德国Munic:大会,2018年。

扩展功能

版本历史

介绍了R2019b

另请参阅

对象

功能