deeplabv3plusLayers

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

描述

layerGraph= deeplabv3plusLayers(图片尺寸numClasses网络返回与指定的基本网络,类号和图像尺寸的DeepLab V3 +层。

layerGraph= deeplabv3plusLayers(___, 'DownsamplingFactor',值)另外设定下采样因数(输出步幅)[1]要么8要么16。下采样因子设置DeepLav V3 +的编码器部分下采样输入图像的量。

例子

全部收缩

创建基于RESNET-18 DeepLab V3 +网络。

IMAGESIZE = [480 640 3];numClasses = 5;网络='resnet18';lgraph = deeplabv3plusLayers(IMAGESIZE,numClasses,网络,...'DownsamplingFactor',16);

显示网络。

analyzeNetwork(lgraph)

加载三角形数据集使用图像数据存储区的图像。该数据存储包含随机三角形的200个灰度图像。每个图像是32×32。

dataSetDir =完整文件(toolboxdir('视力''visiondata''triangleImages');IMAGEDIR =完整文件(dataSetDir,'trainingImages');IMDS = imageDatastore(IMAGEDIR);

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

labelDir =完整文件(dataSetDir,'trainingLabels');类名= [“三角形”“背景”]。labelIDs = [255 0];pxds = pixelLabelDatastore(labelDir,类名,labelIDs);

创建DeepLab V3 +网络。

IMAGESIZE = [256 256];numClasses = numel(类名);lgraph = deeplabv3plusLayers(IMAGESIZE,numClasses,'resnet18');

结合图像和像素标签数据进行训练。在训练期间所述图像输出大小与网络的输入大小设置为自动调整图像。

pximds = pixelLabelImageDatastore(IMDS,pxds,'OutputSize',图片尺寸,...'ColorPreprocessing''gray2rgb');

指定培训选项。放下小批量大小,以减少内存使用情况。

OPTS = trainingOptions('SGDM'...'MiniBatchSize'8,...'MaxEpochs',3);

训练网络。

净= trainNetwork(pximds,lgraph,OPTS);
单CPU上的培训。| ======================================================================================== ||大纪元|迭代|已用时间|小批量|小批量|基础教育|| | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:08 | 57.31% | 0.7145 | 0.0100 | | 2 | 50 | 00:06:05 | 99.23% | 0.0198 | 0.0100 | | 3 | 75 | 00:09:05 | 99.12% | 0.0214 | 0.0100 | |========================================================================================|

阅读测试图像。

I = imread('triangleTest.jpg');

通过因子调整测试图像等于输入图像尺寸除以32,使得测试图像中的三角形是在训练期间大致等于所述三角形的大小。

I = imresize(I,'规模',IMAGESIZE / 32)。

分割图像。

C = semanticseg(I,净);

显示结果。

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

输入参数

全部收缩

网络输入的图像尺寸,指定为:

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

  • 在格式3元素矢量高度宽度3]。第三元件,如图3所示,对应于RGB。

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

基地网络,指定为resnet18resnet50mobilenetv2xception, 要么inceptionresnetv2。你必须附加安装相应的网络。

输出参数

全部收缩

DeepLab V3 +网络,返回语义图像分割卷积神经网络。该网络使用编码器 - 解码器架构,散瞳卷积,然后跳到段图像连接。您必须使用trainNetwork功能(需要深度学习工具箱™)对网络进行训练,然后才能使用网络的语义分割。

算法

  • 当您使用的xception要么mobilenetv2基地网络,以创建一个DeepLab V3 +网络中,深度可分离卷积是在atrous空间金字塔池(ASPP)和解码器的子网络中。对于所有其他基础网络中,使用卷积层。

  • DeepLab V3 +的此实现不包括在ASPP全球平均汇聚层。

参考

[1]陈,L.,Y.诸,G.帕潘德里欧,F.施罗夫和H.亚当。“编码器 - 解码器与Atrous可分离卷积语义图像分割”。计算机视觉 - ECCV 2018,833-851。慕尼黑,德国:ECCV,2018。

扩展功能

介绍了在R2019b