主要内容

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

randomPatchExtractionDatastore

イメージまたはピクセルラベルイメージから2次元または3次元のランダムパッチを抽出するためのデータストア

説明

randomPatchExtractionDatastoreは2つのイメージベースのデータストアから,対応するランダムに配置されたパッチを抽出します。たとえば,入力データストアには、image-to-image 回帰ネットワークの学習用のネットワーク入力と目的のネットワーク応答、またはセマンティック セグメンテーション ネットワークの学習用のグラウンド トゥルース イメージとピクセル ラベル データを含む 2 つのイメージ データストアを指定できます。

このオブジェクトを使用するには,深度学习工具箱™が必要です。

メモ

randomPatchExtractionDatastoreを学習データのソースとして使用する場合,データストアがエポックごとに各イメージから複数のランダムパッチを抽出するため,エポックごとに若干異なるデータセットが使用されます。エポックごとの学習パッチの実際の数は,学習イメージの数のPatchesPerImage倍です。イメージパッチはメモリに格納されません。

作成

説明

patchds = randomPatchExtractionDatastore (ds1的ds2PatchSizeは,データストアds1的内の入力データとデータストアds2内の応答データからサイズがPatchSizeのランダムに配置されたパッチを抽出するデータストアを作成します。

patchds = randomPatchExtractionDatastore (ds1的ds2PatchSize名称,值は,名前と値のペアを使用してPatchesPerImageDataAugmentationおよびDispatchInBackgroundプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

たとえば,randomPatchExtractionDatastore (imds1 imds2 50 PatchesPerImage, 40)は,イメージデータストアimds1imds2内の各イメージから50行50列ピクセルの40個のパッチを無作為に生成するデータストアを作成します。

入力引数

すべて展開する

ネットワークへの学習用の入力を含む入力データ。ImageDatastorePixelLabelDatastore(计算机视觉工具箱),またはTransformedDatastoreとして指定します。

PixelLabelDatastoreを指定する場合,计算机视觉工具箱™が必要です。

メモ

ImageDatastoreを使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。イメージの読み取りにカスタム関数を使用する場合,事前取得は行われません。

目的のネットワーク応答を表す応答データ。ImageDatastorePixelLabelDatastore(计算机视觉工具箱),またはTransformedDatastoreとして指定します。TransformedDatastoreを指定した場合,基になるデータストアはImageDatastoreまたはPixelLabelDatastoreでなければなりません。

PixelLabelDatastoreを指定する場合,计算机视觉工具箱が必要です。

メモ

ImageDatastoreを使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。イメージの読み取りにカスタム関数を使用する場合,事前取得は行われません。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

パッチのサイズ。次のいずれかを指定します。

  • 2次元パッチの正の整数の2要素ベクトル。PatchSizeの形式は[r c]であり,rはパッチ内の行数を指定し,cは列数を指定します。

  • 3次元パッチの正の整数の3要素ベクトル。PatchSizeの形式は(r c p)であり,rはパッチ内の行数,cは列数,pは平面の数を指定します。

イメージあたりのランダムパッチの数。正の整数として指定します。

入力イメージに適用される前処理。imageDataAugmenter(深度学习工具箱)オブジェクトまたは“没有”として指定します。DataAugmentation“没有”である場合,入力イメージには前処理が適用されません。

サイズ変更,回転および鏡映などのランダムな変換によってデータを拡張します。ネットワークで過適合が発生したり,学習データの正確な詳細が記憶されたりすることを防止するのに役立ちます。randomPatchExtractionDatastoreは各ペアの両方のパッチに同じランダムな変換を適用します。データストアのデータは学習中にリアルタイムで拡張されます。

DataAugmentationプロパティは3次元データではサポートされていません。3次元データを前処理するには,関数变换を使用します。

学習,予測,または分類中のバックグラウンドにおける観測値の送信。または真正的として指定します。バックグラウンドディスパッチを使用するには,并行计算工具箱™が必要です。

各バッチで返される観測値の数。データストアの作成後にのみMiniBatchSizeの値を変更できます。学習,予測,および分類では,MiniBatchSizeプロパティはtrainingOptions(深度学习工具箱)で定義されたミニバッチサイズに設定されます。

このプロパティは読み取り専用です。

randomPatchExtractionDatastoreに含まれている観測値の合計数。観測値の数は1つの学習エポックの長さです。

オブジェクト関数

结合 複数のデータストアのデータを統合
hasdata データが読み取り可能かどうかを判別
numpartitions データストアの区画数
分区 データストアを分割する
partitionByIndex インデックスに応じたrandomPatchExtractionDatastoreの分割
预览 データストア内のデータのサブセットをプレビュー
randomPatchExtractionDatastoreからデータを読み取る
readall データストアのすべてのデータの読み取り
readByIndex randomPatchExtractionDatastoreからインデックスで指定されたデータを読み取る
重置 データストアの初期状態へのリセット
洗牌 データストア内のデータのシャッフル
变换 データストアの変換
isPartitionable データストアが分割可能かどうかを判別
isShuffleable データストアがシャッフル可能かどうかを判別

すべて折りたたむ

学習イメージを含むイメージデータストアを作成します。この例のデータストアにはJPEGカラーイメージが含まれています。

imageDir = fullfile (toolboxdir (“图片”),“imdata”);imds1 = imageDatastore (imageDir,“FileExtensions”“jpg”);

ガウスぼかしを適用することによってimds1内のイメージを変換する2番目のデータストアを作成します。

imds2 =变换(imds1 @ (x) imgaussfilt (x, 2));

[0, 90]度の範囲のランダムな角度でイメージを回転させ,イメージデータを水平にランダムに反転させるimageDataAugmenterを作成します。

增量= imageDataAugmenter (“RandRotation”90年[0],“RandXReflection”,真正的)
augmenter = imageDataAugmenter: FillValue: 0 RandXReflection: 1 RandYReflection: 0 RandRotation: [0 90] RandXScale: [1 1] RandXScale: [1 1] RandXScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]

未処理の学習イメージと対応する平滑化された応答イメージから,サイズが100行100列のランダムパッチを抽出するrandomPatchExtractionDatastoreオブジェクトを作成します。DataAugmentationプロパティを設定して拡張オプションを指定します。

patchds = randomPatchExtractionDatastore(imds1,imds2,[100 100]),...“DataAugmentation”增量)
patchds = randomPatchExtractionDatastore with properties: patchperimage: 128 PatchSize: [100 100] DataAugmentation: [1×1 imageDataAugmenter] MiniBatchSize: 128 NumObservations: [] DispatchInBackground: 0

一連の拡張されたイメージパッチと対応する平滑化されたイメージパッチをプレビューします。

minibatch =预览(patchds);输入= minibatch.InputImage;反应= minibatch.ResponseImage;测试=猫(2输入反应);蒙太奇(测试”,“大小”, 2[8])标题(输入(左)和响应(右)

学習イメージを含むイメージデータストアを作成します。

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

クラス名と関連するラベルIDを定義します。次に,学習イメージのグラウンドトゥルースピクセルラベルを含むピクセルラベルデータストアを作成します。

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

イメージと対応するピクセルラベルから32行32列ピクセルのランダムパッチを抽出するために,ランダムパッチ抽出データストアを作成します。オプションのPatchesPerImageプロパティを設定して,イメージとピクセルラベルの各ペアから512個のランダムパッチを抽出します。

pxds patchds = randomPatchExtractionDatastore (imd, 32岁...“PatchesPerImage”, 512);

セマンティックセグメンテーションのネットワークを作成します。

图层= [imageInputLayer([32 32 1])]“填充”(1) reluLayer) maxPooling2dLayer (2,“步”, 2) convolution2dLayer (64,“填充”, 1) reluLayer () transposedConv2dLayer (64,“步”2,“种植”,1)卷积2dlayer (1,2) softmaxLayer() pixelClassificationLayer()]
层= 10x1层数组与层:1”的形象输入32 x32x1图像zerocenter正常化2”64 3 x3的卷积,卷积步伐[1]和填充[1 1 1 1]3”ReLU ReLU 4”马克斯池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]5“卷积64 3 x3的隆起与步幅[1]和填充1 1 1 1 6”ReLU ReLU 7”转置卷积64 4x4转置卷积与stride[2 2]和输出裁剪[1 1]8 " Convolution 2 1x1卷积与stride[1 1]和填充[0 0 0 0]9 " Softmax Softmax 10 "像素分类层交叉熵损失

学習オプションをセットアップします。学習時間を短縮するために,MaxEpochsを5に設定します。

选择= trainingOptions (“个”...“InitialLearnRate”1 e - 3,...“MaxEpochs”5,...“详细”、假);

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

网= trainNetwork (patchds层,选项);

ヒント

  • randomPatchExtractionDatastoreでは,入力データストアに対する操作の出力から同じサイズの配列が返されると想定しています。

  • 入力データストアがImageDatastoreの場合,その标签プロパティの値はrandomPatchExtractionDatastoreによって無視されます。

  • randomPatchExtractionDatastoreの2次元データを可視化するには,データのサブセットを表で返す関数预览を使用できます。関数蒙太奇を使用して,パッチをすべて同じ图に可視化します。たとえば,このコードはrandomPatchExtractionDatastoreのイメージパッチpatchdsのプレビューを表示します。

    minibatch =预览(patchds);蒙太奇(minibatch.InputImage)

R2018bで導入