augmentedImageDatastore
バッチの変換によるイメージ データの拡張
説明
拡張イメージ データストアは、サイズ変更、回転、反転などのオプションの前処理を使用して、学習データ、検証データ、テスト データ、および予測データのバッチを変換します。イメージのサイズを変更して、深層学習ネットワークの入力サイズに適合させます。ネットワークで過適合が発生したり、学習イメージの正確な詳細が記憶されたりすることを防止するには、ランダムな前処理演算を使用して学習イメージ データを拡張します。
拡張イメージを使用してネットワークに学習させるには、augmentedImageDatastore
を trainnet
関数に指定します。詳細については、イメージの深層学習向け前処理を参照してください。
拡張イメージ データストアを学習イメージのソースとして使用する場合、データストアによって各エポックの学習データにランダムに摂動が与えられるため、エポックごとにわずかに異なるデータセットが使用されます。各エポックの学習イメージの実際の数は変化しません。変換後のイメージはメモリに格納されません。
imageInputLayer
は、元のデータセットの平均ではなく拡張イメージの平均を使用してイメージの正規化を行います。この平均は、最初の拡張エポックで 1 回計算されます。他のすべてのエポックで同じ平均が使用されるため、学習中には平均イメージが変化しません。イメージのサイズ変更を含む深層学習用のイメージの前処理を効率的に行うには、拡張イメージ データストアを使用します。
ImageDatastore
オブジェクトのReadFcn
オプションを使用しないでください。ImageDatastore
を使用すると、事前取得を使用して JPG または PNG のイメージ ファイルのバッチ読み取りを行うことができます。ReadFcn
オプションをカスタム関数に設定した場合、ImageDatastore
は事前取得を行わないため、通常、速度が大幅に低下します。
既定では、augmentedImageDatastore
はイメージのサイズを出力サイズに合わせて変更するだけです。imageDataAugmenter
を使用して、追加のイメージ変換のオプションを設定できます。
作成
構文
説明
auimds = augmentedImageDatastore(
は、イメージ データストア outputSize
,imds
)imds
のイメージを使用して、分類問題用の拡張イメージ データストアを作成します。データストアは、outputSize
で指定された高さと幅に合わせてイメージのサイズを変更します。
auimds = augmentedImageDatastore(
は、分類および回帰問題用の拡張イメージ データストアを作成します。配列 outputSize
,X
,Y
)X
には予測子変数が含まれ、配列 Y
にはカテゴリカル ラベルまたは数値応答が含まれます。
auimds = augmentedImageDatastore(
は、配列 outputSize
,X
)X
のイメージ データの応答を予測するための拡張イメージ データストアを作成します。
auimds = augmentedImageDatastore(
は、分類および回帰問題用の拡張イメージ データストアを作成します。テーブル outputSize
,tbl
)tbl
には、予測子と応答が含まれます。
auimds = augmentedImageDatastore(
は、分類および回帰問題用の拡張イメージ データストアを作成します。テーブル outputSize
,tbl
,responseNames
)tbl
には、予測子と応答が含まれます。引数 responseNames
は、tbl
の応答変数を指定します。
auimds = augmentedImageDatastore(___,
は、名前と値の引数を使用して、書き込み可能なプロパティも設定します。たとえば、Name=Value
)augmentedImageDatastore([28,28],imds,OutputSizeMode="centercrop")
は中心からイメージをトリミングする拡張イメージ データストアを作成します。
入力引数
名前と値の引数
プロパティ
オブジェクト関数
combine | 複数のデータストアのデータを統合 |
hasdata | データが読み取り可能かどうかを判別 |
numpartitions | データストアの区画数 |
partition | データストアを分割する |
partitionByIndex | インデックスに応じた augmentedImageDatastore の分割 |
preview | データストア内のデータのサブセットをプレビュー |
read | augmentedImageDatastore からデータを読み取る |
readall | データストアのすべてのデータの読み取り |
readByIndex | インデックスで指定されたデータを augmentedImageDatastore から読み取る |
reset | データストアの初期状態へのリセット |
shuffle | augmentedImageDatastore でデータをシャッフルする |
subset | データストアまたは FileSet のサブセットの作成 |
transform | データストアの変換 |
isPartitionable | データストアが分割可能かどうかを判別 |
isShuffleable | データストアがシャッフル可能かどうかを判別 |
例
ヒント
関数
imtile
を使用して、変換された多くのイメージを同じ Figure で可視化できます。たとえば、次のコードは、auimds
という拡張イメージ データストアから、変換されたイメージのミニバッチの 1 つを表示します。minibatch = read(auimds); imshow(imtile(minibatch.input))
既定では、イメージに対して実行されるイメージ前処理演算はサイズの変更のみです。
imageDataAugmenter
オブジェクトで名前と値の引数DataAugmentation
を使用して、追加の前処理演算を有効にします。拡張イメージ データストアからイメージが読み取られるたびに、前処理演算がランダムな異なる組み合わせで各イメージに適用されます。
バージョン履歴
R2018a で導入