主要内容gydF4y2Ba

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba

unetLayersgydF4y2Ba

セマンティックセグメンテーションのU-Net層の作成gydF4y2Ba

説明gydF4y2Ba

例gydF4y2Ba

lgraphgydF4y2Ba= unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2BaはU-Netネットワークを返します。gydF4y2BaunetLayersgydF4y2Baには,入力イメージ内のすべてのピクセルのカテゴリカルラベルを予測するための,ネットワークのピクセル分類層が含まれています。gydF4y2Ba

unetLayersgydF4y2Baを使用して,U-Netネットワークアーキテクチャを作成します。深度学习工具箱™の関数gydF4y2BatrainNetworkgydF4y2Ba(深度学习工具箱)gydF4y2Baを使用してネットワークを学習させなければなりません。gydF4y2Ba

[gydF4y2BalgraphgydF4y2Ba,gydF4y2BaoutputSizegydF4y2Ba) = unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba)gydF4y2Baは,U-Netネットワークからの出力サイズも返します。gydF4y2Ba

___gydF4y2Ba= unetLayers (gydF4y2Ba图象尺寸gydF4y2Ba,gydF4y2BanumClassesgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Baは1つ以上の名前と値のペアの引数を使用してオプションを指定します。各プロパティ名を引用符で囲みます。たとえば,gydF4y2BaunetLayers(图象尺寸、numClasses NumFirstEncoderFilters, 64)gydF4y2Baは,さらに最初の符号化器ステージの出力チャネルの数をgydF4y2Ba64gydF4y2Baに設定します。gydF4y2Ba

例gydF4y2Ba

すべて折りたたむgydF4y2Ba

深さ3の符号化器/復号化器を持つU-Netネットワークを作成します。gydF4y2Ba

imageSize = [480 640 3];numClasses = 5;encoderDepth = 3;numClasses lgraph = unetLayers(图象尺寸,gydF4y2Ba“EncoderDepth”gydF4y2BaencoderDepth)gydF4y2Ba
lgraph = LayerGraph with properties: Layers: [46x1 nnet.cnn.layer.Layer] Connections: [48x2 table] InputNames: {'ImageInputLayer'} OutputNames: {' segment- layer '}gydF4y2Ba

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

情节(lgraph)gydF4y2Ba

图中包含一个轴。坐标轴包含一个graphplot类型的对象。gydF4y2Ba

学習イメージとピクセルラベルをワークスペースに読み込みます。gydF4y2Ba

dataSetDir = fullfile (toolboxdir (gydF4y2Ba“愿景”gydF4y2Ba),gydF4y2Ba“visiondata”gydF4y2Ba,gydF4y2Ba“triangleImages”gydF4y2Ba);imageDir = fullfile (dataSetDir,gydF4y2Ba“trainingImages”gydF4y2Ba);labelDir = fullfile (dataSetDir,gydF4y2Ba“trainingLabels”gydF4y2Ba);gydF4y2Ba

学習イメージを保存するgydF4y2BaimageDatastoregydF4y2Baオブジェクトを作成します。gydF4y2Ba

imd = imageDatastore (imageDir);gydF4y2Ba

クラス名と関連するラベルIDを定義します。gydF4y2Ba

一会= [gydF4y2Ba“三角形”gydF4y2Ba,gydF4y2Ba“背景”gydF4y2Ba];标签id = [255 0];gydF4y2Ba

学習イメージのグラウンドトゥルースピクセルラベルを保存するgydF4y2BapixelLabelDatastoregydF4y2Baオブジェクトを作成します。gydF4y2Ba

一会,pxds = pixelLabelDatastore (labelDir labelIDs);gydF4y2Ba

U-Netネットワークを作成します。gydF4y2Ba

imageSize = [32 32];numClasses = 2;lgraph = unetLayers(imageSize, numClasses)gydF4y2Ba
lgraph = LayerGraph with properties: Layers: [58×1 nnet.cnn.layer.Layer] Connections: [61×2 table] InputNames: {'ImageInputLayer'} OutputNames: {' segment- layer '}gydF4y2Ba

ネットワークの学習用のデータストアを作成します。gydF4y2Ba

ds =结合(imd, pxds);gydF4y2Ba

学習オプションを設定します。gydF4y2Ba

选择= trainingOptions (gydF4y2Ba“个”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“InitialLearnRate”gydF4y2Ba1 e - 3,gydF4y2Ba...gydF4y2Ba“MaxEpochs”gydF4y2Ba, 20岁,gydF4y2Ba...gydF4y2Ba“VerboseFrequency”gydF4y2Ba10);gydF4y2Ba

ネットワークに学習をさせます。gydF4y2Ba

净= trainNetwork (ds、lgraph选项)gydF4y2Ba
单CPU训练。初始化输入数据规范化。|========================================================================================| | 时代| |迭代时间| Mini-batch | Mini-batch |基地学习  | | | | ( hh: mm: ss) | | |丧失准确性  | |========================================================================================| | 1 | 1 | 00:00:04 | | 2.4341 | 0.0010 75.57%||10 | 10 | 00:00:36 | 96.02% | 0.4517 | 0.0010 | | 20 | 20 | 00:01:13 | 97.62% | 0.2324 | 0.0010 | |========================================================================================|
net = DAGNetwork with properties: Layers: [58×1 nnet.cnn.layer.Layer] Connections: [61×2 table] InputNames: {'ImageInputLayer'} OutputNames: {' segment- layer '}gydF4y2Ba

入力引数gydF4y2Ba

すべて折りたたむgydF4y2Ba

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

  • (高度、宽度)形式の2要素ベクトル。gydF4y2Ba

  • (高度、宽度、深度)形式の3要素ベクトル。深度はイメージチャネルの数です。深度はRGBイメージの場合はgydF4y2Ba3.gydF4y2Ba,グレースケールイメージの場合はgydF4y2Ba1gydF4y2Ba,マルチスペクトルイメージおよびハイパースペクトルイメージの場合はチャネル数に設定します。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

セマンティックセグメンテーションのクラス数。1より大きい整数で指定します。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

名前と値のペアの引数gydF4y2Ba

例:gydF4y2Ba“EncoderDepth”,3gydF4y2Ba

符号化器の深さ。正の整数で指定します。U-Net は、符号化器のサブネットワークと、対応する復号化器のサブネットワークで構成されます。これらのネットワークの深さが、処理中に入力イメージがダウンサンプリングされるか、アップサンプリングされる回数を決定します。符号化器ネットワークは、入力イメージを係数 2DgydF4y2Baでダウンサンプリングします。DはgydF4y2BaEncoderDepthgydF4y2Baの値です。復号化器ネットワークは符号化器ネットワーク出力を係数2gydF4y2BaDgydF4y2Baでアップサンプリングします。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

メモgydF4y2Ba

NumOutputChannelsgydF4y2Baは,gydF4y2BaNumFirstEncoderFiltersgydF4y2Baに名前が変更されており,将来のリリースではサポートされなくなります。代わりにgydF4y2BaNumFirstEncoderFiltersgydF4y2Baを使用してください。gydF4y2Ba

1番目の符号化器ステージの出力チャネル数。正の整数または正の整数のベクトルとして指定します。後続の各符号化器ステージでは、出力チャネル数が 2 倍になります。unetLayersgydF4y2Baは,各復号化器ステージの出力チャネル数を,対応する符号化器ステージの出力チャネル数と一致するように設定します。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

1番目の符号化器ステージの出力チャネル数。正の整数または正の整数のベクトルとして指定します。後続の各符号化器ステージでは、出力チャネル数が 2 倍になります。関数unetLayersgydF4y2Baは,各復号化器ステージの出力チャネル数を,対応する符号化器ステージの出力チャネル数と一致するように設定します。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

畳み込み層のフィルターサイズ。正の奇数の整数または正の奇数の整数の2要素の行ベクトルとして指定します。一般的な値は[3、7]の範囲にあります。gydF4y2Ba

FilterSizegydF4y2Ba 説明gydF4y2Ba
スカラーgydF4y2Ba フィルターは正方形です。gydF4y2Ba
2要素の行ベクトルgydF4y2Ba

フィルターのサイズは(高度宽度)です。gydF4y2Ba

データ型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

パディングのタイプ。gydF4y2Ba“相同”gydF4y2BaまたはgydF4y2Ba“有效”gydF4y2Baとして指定します。パディングのタイプは,符号化器サブネットワークと復号化器サブネットワークのconvolution2dLayergydF4y2Ba(深度学习工具箱)gydF4y2Baのパディングスタイルを指定します。出力の特徴マップの空間サイズは,パディングのタイプによって異なります。指定するパディングのタイプによって次のようになります。gydF4y2Ba

  • “相同”gydF4y2Ba——出力と入力の特徴マップのサイズが同じになるように,畳み込み層への入力にゼロパディングが適用されます。gydF4y2Ba

  • “有效”gydF4y2Ba——畳み込み層への入力にはゼロパディングが適用されません。畳み込み層は,ゼロパディングなしで計算された畳み込みの値のみを返します。出力の特徴マップは入力の特徴マップより小さくなります。gydF4y2Ba

メモgydF4y2Ba

最大プーリング層への入力の高度と宽度が必ず偶数になるように,ネットワーク入力のイメージサイズを次の基準のいずれかに適合するように選択します。gydF4y2Ba

  • “ConvolutionPadding”gydF4y2BaをgydF4y2Ba“相同”gydF4y2Baとして指定する場合,入力イメージの高度と宽度は2gydF4y2BaDgydF4y2Baの倍数でなければなりません。gydF4y2Ba

  • “ConvolutionPadding”gydF4y2BaをgydF4y2Ba“有效”gydF4y2Baとして指定する場合,入力イメージの高度と宽度は,gydF4y2Ba hgydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba hgydF4y2Ba tgydF4y2Ba −gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba DgydF4y2Ba 2gydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba hgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba とgydF4y2Ba wgydF4y2Ba 我gydF4y2Ba dgydF4y2Ba tgydF4y2Ba hgydF4y2Ba −gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba DgydF4y2Ba 2gydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba wgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba が2gydF4y2BaDgydF4y2Baの倍数になるように選択しなければなりません。gydF4y2Ba

    ここでfgydF4y2BahgydF4y2BaとfgydF4y2BawgydF4y2Baは,それぞれ2次元畳み込みカーネルの高さと幅です。Dは符号化器の深さです。gydF4y2Ba

データ型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

出力引数gydF4y2Ba

すべて折りたたむgydF4y2Ba

U-Netネットワークアーキテクチャを表す層。gydF4y2BalayerGraphgydF4y2Ba(深度学习工具箱)gydF4y2Baオブジェクトとして返されます。gydF4y2Ba

ネットワーク出力のイメージサイズ。[he我ght,w我dth,channels] の形式の 3 要素ベクトルとして返されます。channels は、出力チャネル数であり、入力で指定されているクラス数と等しくなります。ネットワークからの出力イメージの height と width は、畳み込みのパディングのタイプによって異なります。

  • “ConvolutionPadding”gydF4y2BaをgydF4y2Ba“相同”gydF4y2Baとして指定すると,ネットワークの出力イメージと入力イメージの高度と宽度は同じになります。gydF4y2Ba

  • “ConvolutionPadding”gydF4y2BaをgydF4y2Ba“有效”gydF4y2Baとして指定すると,ネットワークの出力イメージの高度と宽度はネットワークの入力イメージのものより小さくなります。gydF4y2Ba

データ型:gydF4y2Ba双gydF4y2Ba

詳細gydF4y2Ba

すべて折りたたむgydF4y2Ba

U-NetアーキテクチャgydF4y2Ba

  • U-Netアーキテクチャは,ブリッジセクションで接続された符号化器のサブネットワークと復号化器のサブネットワークで構成されます。gydF4y2Ba

  • U-Netアーキテクチャの符号化器と復号化器のサブネットワークは,複数のステージで構成されます。符号化器と復号化器のサブネットワークの深さを指定するgydF4y2BaEncoderDepthgydF4y2Baによってステージ数が設定されます。gydF4y2Ba

  • U-Net符号化器サブネットワーク内のステージは,2組の畳み込み層およびReLU層と,それに続く2 x 2の最大プーリング層で構成されます。復号化器のサブネットワークは,アップサンプリング用の転置畳み込み層と,それに続く2組の畳み込み層およびReLU層で構成されます。gydF4y2Ba

  • ブリッジセクションは,2組の畳み込み層およびReLU層で構成されます。gydF4y2Ba

  • すべての畳み込み層のバイアス項はゼロに初期化されます。gydF4y2Ba

  • 符号化器と復号化器のサブネットワーク内の畳み込み層の重みはgydF4y2Ba“他”gydF4y2Ba重み初期化メソッドgydF4y2Ba[2]gydF4y2Baを使用して初期化されます。gydF4y2Ba

ヒントgydF4y2Ba

  • 畳み込み層でgydF4y2Ba“相同”gydF4y2Baパディングを使用すると,入力から出力まで同じデータサイズが維持され,幅広い入力イメージサイズの使用が可能になります。gydF4y2Ba

  • 大きなイメージをシームレスにセグメント化するにはパッチベースのアプローチを使用します。图像处理工具箱™の関数gydF4y2BarandomPatchExtractionDatastoregydF4y2Baを使用してイメージパッチを抽出できます。gydF4y2Ba

  • パッチベースのアプローチを使用してセグメンテーションを行う際に,境界のアーティファクトが生じるのを防ぐには,gydF4y2Ba“有效”gydF4y2Baパディングを使用します。gydF4y2Ba

  • 関数gydF4y2BaunetLayersgydF4y2Baを使用して作成したネットワークは,gydF4y2BatrainNetworkgydF4y2Ba(深度学习工具箱)gydF4y2Baで学習させた後,GPUコード生成に使用できます。詳細と例については,gydF4y2Ba深層学習のコード生成gydF4y2Ba(深度学习工具箱)gydF4y2Baを参照してください。gydF4y2Ba

互換性の考慮事項gydF4y2Ba

すべて展開するgydF4y2Ba

R2019b以降は非推奨gydF4y2Ba

参照gydF4y2Ba

Ronneberger, O., P. Fischer和T. Brox。U-Net:用于生物医学图像分割的卷积网络。医学图像计算和计算机辅助干预(MICCAI)。第9351卷,2015年,234-241页。gydF4y2Ba

何凯,张旭东,任舜,孙杰。深入研究整流器:在图像网分类上超越人类水平的表现。计算机工程与应用,2015,35(6):758 - 762。gydF4y2Ba

拡張機能gydF4y2Ba

R2018bで導入gydF4y2Ba