Main Content

deeplabv3plusLayers

(削除予定) セマンティック イメージ セグメンテーション用の DeepLab v3+ 畳み込みニューラル ネットワークの作成

R2019b 以降

deeplabv3plusLayers は将来のリリースで削除される予定です。代わりに関数 deeplabv3plus を使用してください。詳細については、互換性の考慮事項を参照してください。

説明

layerGraph = deeplabv3plusLayers(imageSize,numClasses,network) は、指定されたベース ネットワーク、クラス数、およびイメージ サイズをもつ DeepLab v3+ 層を返します。

layerGraph = deeplabv3plusLayers(___,"DownsamplingFactor",value) はさらに、ダウンサンプリング係数 (出力ストライド) [1]8 または 16 に設定します。ダウンサンプリング係数は、DeepLab v3+ の符号化器セクションが入力イメージをダウンサンプリングする量を設定します。

すべて折りたたむ

ResNet-18 ベースの DeepLab v3+ ネットワークを作成します。

imageSize = [480 640 3];
numClasses = 5;
network = "resnet18";
lgraph = deeplabv3plusLayers(imageSize,numClasses,network, ...
             "DownsamplingFactor",16);

ネットワークを表示します。

analyzeNetwork(lgraph)

入力引数

すべて折りたたむ

ネットワーク入力のイメージ サイズ。以下として指定します。

  • [height, width] の形式の 2 要素ベクトル。

  • [height, width, 3] の形式の 3 要素ベクトル。3 番目の要素 3 は、RGB に対応します。

ネットワークが分類するクラス数。1 より大きい整数として指定します。

ベース ネットワーク。resnet18 (Deep Learning Toolbox)resnet50 (Deep Learning Toolbox)mobilenetv2 (Deep Learning Toolbox)xception (Deep Learning Toolbox)、または inceptionresnetv2 (Deep Learning Toolbox) として指定します。対応するネットワーク アドオンをインストールしなければなりません。

出力引数

すべて折りたたむ

DeepLab v3+ ネットワーク。セマンティック イメージ セグメンテーション用の layerGraph (Deep Learning Toolbox) オブジェクトとして返されます。ネットワークは、符号化器-復号化器アーキテクチャ、膨張畳み込み、およびスキップ接続を使用してイメージをセグメント化します。ネットワークをセマンティック セグメンテーション用に使用する前に、関数 trainNetwork (Deep Learning Toolbox) (Deep Learning Toolbox™ が必要) を使用してネットワークに学習させなければなりません。

アルゴリズム

  • xception (Deep Learning Toolbox) ベース ネットワークまたは mobilenetv2 (Deep Learning Toolbox) ベース ネットワークのいずれかを使用して DeepLab v3+ ネットワークを作成する場合、深さ方向に分離可能な畳み込みがアトラス空間ピラミッドプーリング (ASPP) および復号化器サブネットワークで使用されます。他のすべてのベース ネットワークでは、畳み込み層が使用されます。

  • この DeepLab v3+ の実装には、ASPP にグローバル平均プーリング層が含まれていません。

参照

[1] Chen, L., Y. Zhu, G. Papandreou, F. Schroff, and H. Adam. "Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation." Computer Vision — ECCV 2018, 833-851. Munic, Germany: ECCV, 2018.

拡張機能

バージョン履歴

R2019b で導入

すべて折りたたむ

R2024a: deeplabv3plusLayers は削除予定

関数 deeplabv3plusLayers は将来のリリースで削除される予定です。代わりに関数 deeplabv3plus を使用してください。関数 deeplabv3plusdlnetwork (Deep Learning Toolbox) オブジェクトを返します。このオブジェクトは、layerGraph オブジェクトに比べて次のような利点があります。

  • dlnetwork オブジェクトは、関数 trainnet (Deep Learning Toolbox) を使用して簡単に学習させたり、外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。

  • dlnetwork オブジェクトの方が柔軟です。このオブジェクトは、Deep Learning Toolbox の現在の機能や今後導入される機能をより幅広くサポートします。

  • dlnetwork オブジェクトは、ネットワークの構築、予測、組み込み学習、圧縮、およびカスタム学習ループをサポートする統合されたデータ型を提供します。

  • dlnetwork を使用した学習と予測は、通常、DAGNetworkSeriesNetwork を使用した学習と予測よりも高速です。

コードを更新するには、deeplabv3plusLayers のインスタンスを関数 deeplabv3plus に置き換えます。入力引数を変更する必要はありません。

非推奨の使用方法推奨される代替案

この例では、関数 deeplabv3plusLayers を使用して、LayerGraph オブジェクトとして返される DeepLab v3+ ネットワークを作成します。

imageSize = [480 640 3];
numClasses = 5;
network = "resnet18";
deepLabNetwork = deeplabv3plusLayers(imageSize,numClasses,network, ...
	DownsamplingFactor=16);

以下は、代わりに関数 deeplabv3plus を使用して、dlnetwork オブジェクトとして返される DeepLab v3+ ネットワークを作成する同等のコードです。

imageSize = [480 640 3];
numClasses = 5;
network = "resnet18";
deepLabNetwork = deeplabv3plus(imageSize,numClasses,network, ...
	DownsamplingFactor=16);