Main Content

深層学習用イメージ前処理とイメージ拡張の入門

"データの前処理" は、目的のデータの特徴を正規化または強調する一連の確定的な演算で構成されます。たとえば、固定された範囲にデータを正規化したり、ネットワーク入力層に必要なサイズにデータを再スケーリングできます。前処理は、学習、検証、および推論に使用されます。

深層学習のワークフローでは、前処理は 2 つの段階で発生することがあります。

  • 通常、前処理は、ネットワークに渡されるデータを準備する前に完了する個別の手順として発生します。元のデータを読み込み、前処理演算を適用して、結果をディスクに保存します。この方法の利点は、前処理のオーバーヘッドが必要になるのは 1 回のみで、その後ネットワークの学習を試行する際には前処理されたイメージが開始点として既に用意されていることです。

  • データをデータストアに読み込むと、関数 transform および関数 combine を使用して、学習中に前処理を適用することもできます。詳細については、深層学習用のデータストア (Deep Learning Toolbox)を参照してください。変換後のイメージはメモリに格納されません。この方法は、前処理演算に大量の計算が必要ではなく、ネットワークの学習速度に顕著な影響を与えない場合に、学習データの 2 つ目のコピーをディスクに書き込むことを回避するのに便利です。

"データ拡張" は、ネットワークの学習中に学習データに適用されるランダム化された演算で構成されます。拡張を行うと、学習データの実質的な量が増加し、ネットワークをデータの一般的な歪みに対して不変にするのに役立ちます。たとえば、学習データに人工的なノイズを追加してネットワークをノイズに対して不変にすることができます。

学習データを拡張するには、まずデータをデータストアに読み込みます。いくつかの組み込みデータストアは、特定の用途の場合に特定の限られた拡張をデータに適用します。関数 transform および関数 combine を使用して、データストア内のデータに対して独自の拡張演算を適用することもできます。学習中、データストアによって各エポックの学習データにランダムに摂動が与えられるため、エポックごとにわずかに異なるデータセットが使用されます。詳細については、イメージの深層学習向け前処理ボリュームの深層学習向け前処理を参照してください。

イメージの前処理と拡張

一般的なイメージ前処理演算には、ノイズ除去、エッジ保存平滑化、色空間変換、コントラスト強調、モルフォロジーなどがあります。

イメージ データを拡張し、イメージの取得時のばらつきをシミュレーションします。たとえば、最も一般的なタイプのイメージ拡張演算は、シーンに対するカメラの向きのばらつきをシミュレーションする、回転や平行移動などの幾何学的変換です。色のジッターは、シーンでのライティング条件と色のばらつきをシミュレーションします。人工的なノイズは、センサーの電気変動およびアナログからデジタルへの変換の誤差によって生じる歪みをシミュレーションします。ブレは、フォーカスの合っていないレンズまたはシーンに対するカメラの動きをシミュレーションします。

次の表に示す演算やツールボックスのその他の機能を使用して、イメージ データを処理および拡張できます。これらの変換を作成および適用する方法を説明する例については、深層学習ワークフローのためのイメージの拡張を参照してください。

前処理のタイプ説明関数のサンプル出力のサンプル
イメージのサイズ変更固定の倍率、または目標のサイズにイメージのサイズを変更する

The original image is on the left, and a resized image is on the right.

イメージのトリミング中心またはランダムな位置からイメージを目標のサイズにトリミングする

An image cropped from the center is on the left, and an image cropped from a random position is on the right.

イメージのワープランダムな反転、回転、スケール、せん断、および平行移動をイメージに適用する

From left to right, the figure shows the original image and the resulting images after reflection, rotation, and scaling.

色のジッターカラー イメージのイメージ色相、彩度、明るさ、コントラストをランダムに調整する

From left to right, the figure shows the original image with random adjustments to the image hue, saturation, brightness, and contrast.

ノイズのシミュレーションランダムなガウス ノイズ、ポアソン ノイズ、ごま塩ノイズ、または乗法性ノイズを追加する

An image with randomly added salt and pepper noise is on the left, and an image with randomly added Gaussian noise is on the right.

ブレのシミュレーションガウス ノイズまたは指向性運動によるブレを追加する

An image with a Gaussian blur is on the left, and an image with a directional motion blur is on the right.

ジッターの強度グレースケール イメージとボリュームの明度、コントラスト、またはガンマ補正をランダムに調整する

From left to right, the figure shows the original image with random adjustments to the brightness, contrast, and gamma correction.

セマンティック セグメンテーションのためのピクセル ラベル イメージの前処理と拡張

セマンティック セグメンテーション データは、イメージ、および categorical 配列として表される対応するピクセル ラベルで構成されます。詳細については、深層学習を使用したセマンティック セグメンテーション入門 (Computer Vision Toolbox)を参照してください。

Computer Vision Toolbox™ がある場合、イメージ ラベラー (Computer Vision Toolbox) アプリとビデオ ラベラー (Computer Vision Toolbox) アプリを使用して、ピクセルに対話形式でラベルを付け、ニューラル ネットワークに学習させるためのラベル データをエクスポートできます。

セマンティック セグメンテーション用にイメージを変換する場合、対応するピクセル ラベル付きイメージに対して同一の変換を実行しなければなりません。表に示す関数、およびカテゴリカル入力をサポートするその他の関数を使用して、ピクセル ラベル イメージを処理できます。これらの変換を作成および適用する方法を説明する例については、Augment Pixel Labels for Semantic Segmentation (Computer Vision Toolbox)を参照してください。

前処理のタイプ説明関数のサンプル出力のサンプル
ピクセルのラベルのサイズ変更固定の倍率、または目標のサイズにピクセル ラベル イメージのサイズを変更する

The original pixel label image is on the left, and a resized pixel label image is on the right.

ピクセル ラベルのトリミング中心またはランダムな位置からピクセル ラベル イメージを目標のサイズにトリミングする

A pixel label image cropped from the center is on the left, and a pixel labeled image cropped from a random position is on the right.

ピクセル ラベルのワープランダムな反転、回転、スケール、せん断、および平行移動をピクセル ラベル イメージに適用する

From left to right, the figure shows the original pixel labeled image and the resulting pixel labeled image after reflection, rotation, and scaling.

関連する例

詳細