主要内容

deeplabv3plusLayers

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

描述

例子

layerGraph= deeplabv3plusLayers (图象尺寸numClasses网络返回一个具有指定的基本网络、类数量和图像大小的DeepLab v3+层。

layerGraph= deeplabv3plusLayers (___、“DownsamplingFactor”值)另外设置下采样因子(输出步幅)[1]要么816.下采样因子设置了deeplv v3+的编码器部分对输入图像的下采样量。

例子

全部折叠

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

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

显示网络。

analyzeNetwork (lgraph)

使用图像数据存储加载三角形数据集图像。该数据存储包含200张随机三角形的灰度图像。每张图片都是32乘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+组网。

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

结合图像和像素标签数据进行训练,并应用预处理变换调整训练图像的大小。

cd =结合(imd, pxds);tds = transform(cds, @(data)preprocessTrainingData(data,imageSize));

指定培训选项。降低小批处理大小以减少内存使用。

选择= 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)

支持功能

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

输入参数

全部折叠

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

  • 格式为[高度宽度].

  • 格式为[高度宽度3.].第三个元素3对应RGB。

网络要分类的类数,指定为大于1的整数。

基本网络,指定为resnet18(深度学习工具箱)resnet50(深度学习工具箱)mobilenetv2(深度学习工具箱)xception(深度学习工具箱),或inceptionresnetv2(深度学习工具箱).您必须安装相应的网络附加组件。

输出参数

全部折叠

DeepLab v3+网络,返回为卷积神经网络,用于语义图像分割。该网络使用编码器-解码器架构、扩展卷积和跳过连接来分割图像。你必须使用trainNetwork(深度学习工具箱)函数(需要深度学习工具箱™)来训练网络,然后才能使用网络进行语义分割。

算法

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

  • DeepLab v3+的实现在ASPP中不包括全局平均池层。

参考文献

[1]陈丽娟、朱云云、G.帕潘德里欧、F.施洛夫、H.亚当。用于语义图像分割的Atrous可分卷积编码器-解码器。计算机视觉- ECCV 2018, 833 - 851。慕尼黑,德国:ECCV, 2018。

扩展功能

版本历史

介绍了R2019b

另请参阅

对象

功能

Baidu
map