最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。

イメージの深层学习向け前处理

ネットワークに学习させ,新しいデータについて予测するには,イメージがネットワークの入力サイズに一致しなければなりません。ネットワークに一致するようにイメージのサイズを调整する必要がある场合,データの再スケーリングまたはトリミングを行って必要なサイズにすることができます。

ランダム化された“拡张”をデータに适用して,実质的に学习データの量を増やすことができます。拡张では,イメージデータの歪みに対して不変になるようにネットワークに学习させることもできます。たとえば,入力イメージに存在する回転に対してネットワークが不変になるように,入力イメージにランダムな回転を追加できます。augmentedImageDatastoreは,分类问题用の2次元イメージに限られた拡张を适用する便利な方法を提供します。

回帰问题用のイメージの前处理,3次元ボリュームイメージの处理など,より高度な前处理演算の场合,组み込みデータストアで开始することができます。关数转变および结合を使用して,独自のパイプラインに従ってイメージの前处理を行うこともできます。

再スケーリングとトリミングを使用したイメージのサイズ変更

イメージデータは,数値配列,ImageDatastoreオブジェクト,または表として格纳できます。ImageDatastoreを使用すると,大きすぎてメモリに收まらないイメージのコレクションからデータをバッチ単位でインポートできます。拡张イメージデータストアまたはサイズを変更した4次元配列は学习,予测,および分类に使用できます。サイズを変更した3次元配列は予测および分类にのみ使用できます。

ネットワークの入力サイズに一致するようにイメージデータのサイズを変更する方法は2つあります。

  • 再スケーリングでは,イメージの高さと幅に倍率が挂けられます。倍率が垂直方向と水平方向で同一ではない场合,再スケーリングによってピクセルの空间范囲と縦横比が変更されます。

  • トリミングでは,イメージの部分领域が抽出され,各ピクセルの空间范囲が保持されます。イメージは,中心から,またはイメージのランダムな位置からトリミングできます。

サイズ変更オプション データ形式 サイズ変更关数 サンプルコード
再スケーリング
  • 1つのカラーイメージまたはマルチスペクトルイメージを表す3次元配列

  • グレースケールイメージのスタックを表す3次元配列

  • イメージのスタックを表す4次元配列

imresize

IM = imresize(I,inputSize);

inputSizeは再スケーリングされたイメージの次元を指定します。

  • イメージのスタックを表す4次元配列

  • ImageDatastore

augmentedImageDatastore

auimds = augmentedImageDatastore(inputSize,I);

inputSizeは再スケーリングされたイメージの次元を指定します。

トリミング
  • 1つのカラーイメージまたはマルチスペクトルイメージを表す3次元配列

imcrop

IM = imcrop(I,RECT);

矩形は2次元トリミングウィンドウのサイズと位置を指定します。

  • グレースケールイメージのスタックを表す3次元配列

  • カラーイメージまたはマルチスペクトルイメージのスタックを表す4次元配列

imcrop3

IM = imcrop3(I,长方体);

长方体は3次元トリミングウィンドウのサイズと位置を指定します。

  • イメージのスタックを表す4次元配列

  • ImageDatastore

augmentedImageDatastore

auimds = augmentedImageDatastore(inputSize,I,'OutputSizeMode',M);

入力イメージの中心からトリミングするには'centercrop'に指定します。

入力イメージのランダムな位置からトリミングするには'randomcrop'に指定します。

ランダムな几何学的変换での学习用のイメージの拡张

イメージ分类问题の场合,augmentedImageDatastoreを使用して,サイズ変更,回転,反転,せん断,および平行移动のランダムな组み合わせでイメージを拡张できます。

図は,trainNetworkがどのように拡张イメージデータストアを使用して各エポックの学习データを変换するかを示しています。ワークフローの例については,拡张イメージを使用したネットワークの学习を参照してください。

  1. 学习イメージを指定します。

  2. imageDataAugmenterを作成して,反転をランダムに适用するかどうかや回転角度の范囲などのイメージ変换オプションを构成します。

    ヒント

    サンプルイメージに适用された変换をプレビューするには,关数增加を使用します。

  3. augmentedImageDatastoreを作成します。学习イメージ,出力イメージのサイズ,およびimageDataAugmenterを指定します。出力イメージのサイズは,ネットワークのimageInputLayerのサイズに适合しなければなりません。

  4. 拡张イメージデータストアをtrainNetworkのデータソースとして指定してネットワークに学习させます。学习の反复ごとに,拡张イメージデータストアは変换のランダムな组み合わせを学习データのミニバッチのイメージに适用します。

    拡张イメージデータストアを学习イメージのソースとして使用する场合,データストアによって各エポックの学习データにランダムに摂动が与えられるため,エポックごとにわずかに异なるデータセットが使用されます。各エポックの学习イメージの実际の数は変化しません。変换后のイメージはメモリに格纳されません。

组み込みデータストアを使用した追加のイメージ处理演算の実行

一部のデータストアは,データのバッチを読み取る际に特定の限られたイメージ前处理演算を実行します。これらのアプリケーション固有のデータストアを次の表に示します。これらのデータストアは,深学习工具箱™を使用する深层学习アプリケーションの学习データセット,検证データセット,およびテストデータセットのソースとして使用できます。これらのデータストアはすべて,trainNetworkでサポートされている形式でデータを返します。

データストア 说明
augmentedImageDatastore 深层ニューラルネットワークに学习させるために,サイズ変更,回転,反転,せん断,平行移动を含む,ランダムなアフィン几何変换を适用します。例については,AlexNetを使用した転移学习を参照してください。
pixelLabelImageDatastore セマンティックセグメンテーションネットワークに学习させるために,イメージおよび対応するグラウンドトゥルースラベルに対して,同一のアフィン几何変换を适用します(计算机视觉工具箱™が必要)。例については,深层学习を使用したセマンティックセグメンテーションを参照してください。
randomPatchExtractionDatastore イメージまたはピクセルラベルイメージからランダムパッチの复数のペアを抽出します(图像处理工具箱™が必要)。オプションで,同一のランダムなアフィン几何変换をパッチのペアに适用できます。例については,单幅图像的超分辨率使用Deep学习を参照してください。
denoisingImageDatastore ノイズ除去ネットワークに学习させるために,ランダムに生成されたガウスノイズを适用します(图像处理工具箱が必要)。

组み合わせと変换を使用したカスタムイメージ前处理パイプラインの适用

アプリケーション固有のデータストアが提供するイメージ前处理演算より一般的で复雑なイメージ前处理演算を実行するには,关数转变および结合を使用できます。详细については,深层学习用のデータストアを参照してください。

イメージデータを含むデータストアの変换

关数转变は,定义した変换关数に従い,基になるデータストアによって読み取られたデータを変换することで,“基になるデータストア”と呼ばれるデータストアの変更された形式を作成します。

カスタム変换关数は,基になるデータストアの关数によって返される形式のデータを受け入れなければなりません。ImageDatastore内のイメージデータの场合,形式はREADSIZEプロパティによって异なります。

  • READSIZEが1の场合,変换关数は整数配列を受け入れなければなりません。配列のサイズは,ImageDatastoreのイメージのタイプと整合性があります。たとえば,グレースケールイメージの次元はm×n个,トゥルーカラーイメージの次元はm×n个×3,C个のチャネルがあるマルチスペクトルイメージの次元はm×n个XÇです。

  • READSIZEが1より大きい场合,変换关数はイメージデータの细胞配列を受け入れなければなりません。各要素はバッチのイメージに対応します。

关数转变は,ネットワークの入力サイズに一致するデータを返さなければなりません。关数转变は一対多の観测値マッピングをサポートしていません。

ヒント

关数转变は,基になるImageDatastoreがJPGまたはPNGイメージファイルのバッチを読み取る际に事前取得をサポートします。これらのイメージタイプの场合,ImageDatastoreの引数readFcnを使用してイメージ前处理を适用しないでください。このオプションでは通常,速度が大幅に低下するためです。カスタム読み取り关数を使用する场合,ImageDatastoreは事前取得を行いません。

データストアとイメージデータの组み合わせ

关数结合は,复数のデータストアから読み取られたデータを连结して,データストア间のパリティを维持します。

  • データを2列の表または2列の细胞配列に连结して,图像到图像的回帰ネットワークなど,単一の入力があるネットワークの学习に使用します。

  • データを(numInputs1)列の细胞配列に连结して,复数の入力があるネットワークの学习に使用します。

参考

||||

关连する例

详细