メインコンテンツ

read

augmentedImageDatastore からデータを読み取る

説明

data = read(auimds) は、拡張イメージ データストア auimds から取得したデータのバッチを返します。関数 read の後続の呼び出しでは、直前の呼び出しのエンドポイントから引き続き読み取ります。

[data,info] = read(auimds) は、メタデータを含む抽出データに関する情報も info に返します。

すべて折りたたむ

サンプル データを読み込みます。サンプル データは、手書き数字の合成イメージで構成されています。XTrain は 28×28×1×5000 の配列です。ここで、以下のようになります。

  • 28 はイメージの高さと幅。

  • 1 はチャネルの数。

  • 5000 は手書き数字の合成イメージの数。

labelsTrain は、各観測値のラベルが含まれる categorical ベクトルです。

load DigitsDataTrain

サイズ変更、回転、平行移動、反転など、イメージ拡張の前処理オプションを指定する imageDataAugmenter オブジェクトを作成します。イメージを、水平方向および垂直方向に最大 3 ピクセルまでのランダムな平行移動をさせたり、最大 20 度までの回転をさせたりします。

imageAugmenter = imageDataAugmenter( ...
    RandRotation=[-20,20], ...
    RandXTranslation=[-3 3], ...
    RandYTranslation=[-3 3]);

拡張されたイメージ データを使用して augmentedImageDatastore を作成します。たとえば、trainnet 関数を使用してネットワークに学習させているときにデータストアから読み取りを行うと、データストアはイメージの拡張を実行し、イメージのサイズを変更します。データストアは、イメージをメモリに保存せずにイメージを拡張します。

imageSize = [64 64 1];
augimds = augmentedImageDatastore(imageSize,XTrain,labelsTrain,DataAugmentation=imageAugmenter);

データストアから読み取ります。

minibatch = read(augimds)
minibatch=128×2 table
        input         response
    ______________    ________

    {64×64 single}       3    
    {64×64 single}       3    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       9    
    {64×64 single}       9    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       3    
    {64×64 single}       9    
    {64×64 single}       9    
    {64×64 single}       7    
    {64×64 single}       3    
    {64×64 single}       7    
      ⋮

最初の 9 つの拡張されたイメージを表示します。

imshow(imtile(minibatch.input(1:9)));

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

拡張イメージ データストア。augmentedImageDatastore オブジェクトとして指定します。データストアは、各バッチの観測値の MiniBatchSize 数および観測値の合計数 numObservations を指定します。

出力引数

すべて折りたたむ

出力データ。table として返されます。データストア auimds がデータの全バッチを読み取る場合、table の行数は MiniBatchSize になります。データストア内のデータの最終バッチについて、numObservationsMiniBatchSize できれいに割り切れない場合、read は残りのすべての観測値を含む部分バッチを返します。

テーブルの最初の列 "input" は、各イメージのデータを返します。auimds が以下のタイプのデータを読み取る場合、テーブルの 2 番目の列は "response" になります。

  • ラベル付きイメージ データを含むイメージ ファイル (ファイル名がイメージ データストアによって指定されている場合)

  • カテゴリカル ラベルまたは数値応答を含む数値配列

  • 1 つ以上の応答を含む table

読み取りデータに関する情報。構造体配列として返されます。構造体配列には、以下のフィールドを含めることができます。

フィールド名説明
Filename

文字ベクトルの cell 配列。各要素は、対応するイメージのパス文字列、ファイル名、およびファイル拡張子を含む完全解決済みパスです。このフィールドは、auimds がイメージ データストアで指定されたファイルからデータを読み取るときに表示されます。

FileSize

数値ベクトル。各要素は、対応するイメージの合計ファイル サイズ (バイト単位) です。MAT ファイルの場合、FileSize はファイル内のキーと値のペアの総数になります。このフィールドは、auimds がイメージ データストアで指定されたファイルからデータを読み取るときに表示されます。

Label

categorical ベクトル。各要素は、対応するイメージのカテゴリ ラベルです。このフィールドは、auimds がイメージ データストアで指定されたファイルからラベル付きデータを読み取るときに表示されます。

MiniBatchIndices

数値ベクトル。各要素は、配列内の入力イメージのインデックスです。このフィールドは、auimds が数値配列からデータを読み取るときに表示されます。

バージョン履歴

R2018a で導入