最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。
ネットワークに学习させ,新しいデータについて予测するには,イメージがネットワークの入力サイズに一致しなければなりません。ネットワークに一致するようにイメージのサイズを调整する必要がある场合,データの再スケーリングまたはトリミングを行って必要なサイズにすることができます。
ランダム化された“拡张”をデータに适用して,実质的に学习データの量を増やすことができます。拡张では,イメージデータの歪みに対して不変になるようにネットワークに学习させることもできます。たとえば,入力イメージに存在する回転に対してネットワークが不変になるように,入力イメージにランダムな回転を追加できます。augmentedImageDatastore
は,分类问题用の2次元イメージに限られた拡张を适用する便利な方法を提供します。
回帰问题用のイメージの前处理,3次元ボリュームイメージの处理など,より高度な前处理演算の场合,组み込みデータストアで开始することができます。关数转变
および结合
を使用して,独自のパイプラインに従ってイメージの前处理を行うこともできます。
イメージデータは,数値配列,ImageDatastore
オブジェクト,または表として格纳できます。ImageDatastore
を使用すると,大きすぎてメモリに收まらないイメージのコレクションからデータをバッチ単位でインポートできます。拡张イメージデータストアまたはサイズを変更した4次元配列は学习,予测,および分类に使用できます。サイズを変更した3次元配列は予测および分类にのみ使用できます。
ネットワークの入力サイズに一致するようにイメージデータのサイズを変更する方法は2つあります。
再スケーリングでは,イメージの高さと幅に倍率が挂けられます。倍率が垂直方向と水平方向で同一ではない场合,再スケーリングによってピクセルの空间范囲と縦横比が変更されます。
トリミングでは,イメージの部分领域が抽出され,各ピクセルの空间范囲が保持されます。イメージは,中心から,またはイメージのランダムな位置からトリミングできます。
サイズ変更オプション | データ形式 | サイズ変更关数 | サンプルコード |
---|---|---|---|
再スケーリング |
|
imresize |
IM = imresize(I,inputSize);
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore(inputSize,I);
|
|
トリミング |
|
imcrop |
IM = imcrop(I,RECT);
|
|
imcrop3 |
IM = imcrop3(I,长方体);
|
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore(inputSize,I,'OutputSizeMode',M);
入力イメージの中心からトリミングするには 入力イメージのランダムな位置からトリミングするには |
イメージ分类问题の场合,augmentedImageDatastore
を使用して,サイズ変更,回転,反転,せん断,および平行移动のランダムな组み合わせでイメージを拡张できます。
図は,trainNetwork
がどのように拡张イメージデータストアを使用して各エポックの学习データを変换するかを示しています。ワークフローの例については,拡张イメージを使用したネットワークの学习を参照してください。
学习イメージを指定します。
imageDataAugmenter
を作成して,反転をランダムに适用するかどうかや回転角度の范囲などのイメージ変换オプションを构成します。
サンプルイメージに适用された変换をプレビューするには,关数增加
を使用します。
augmentedImageDatastore
を作成します。学习イメージ,出力イメージのサイズ,およびimageDataAugmenter
を指定します。出力イメージのサイズは,ネットワークのimageInputLayer
のサイズに适合しなければなりません。
拡张イメージデータストアを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列の细胞配列に连结して,图像到图像的回帰ネットワークなど,単一の入力があるネットワークの学习に使用します。
データを(numInputs
1)列の细胞配列に连结して,复数の入力があるネットワークの学习に使用します。
ImageDatastore
|结合
|imresize
|trainNetwork
|转变