領域固有の深層学習用途のためのデータの前処理
データの前処理は、学習、検証、および推論に使用されます。前処理は、目的のデータの特徴を正規化または強調する一連の確定的な演算で構成されます。たとえば、固定された範囲にデータを正規化したり、ネットワーク入力層に必要なサイズにデータを再スケーリングできます。
深層学習のワークフローでは、前処理は 2 つの段階で発生することがあります。
通常、前処理は、ネットワークに渡されるデータを準備する前に完了する個別の手順として発生します。元のデータを読み込み、前処理演算を適用して、結果をディスクに保存します。この方法の利点は、前処理のオーバーヘッドが必要になるのは 1 回のみで、その後ネットワークの学習を試行する際には前処理されたイメージが開始点として既に用意されていることです。
データをデータストアに読み込むと、関数
transform
および関数combine
を使用して、学習中に前処理を適用することもできます。詳細については、深層学習用のデータストアを参照してください。変換後のイメージはメモリに格納されません。この方法は、前処理演算に大量の計算が必要ではなく、ネットワークの学習速度に顕著な影響を与えない場合に、学習データの 2 つ目のコピーをディスクに書き込むことを回避するのに便利です。
データ拡張は、ネットワークの学習中に学習データに適用されるランダム化された演算で構成されます。拡張を行うと、学習データの実質的な量が増加し、ネットワークをデータの一般的な歪みに対して不変にするのに役立ちます。たとえば、学習データに人工的なノイズを追加してネットワークをノイズに対して不変にすることができます。
学習データを拡張するには、まずデータをデータストアに読み込みます。詳細については、深層学習用のデータストアを参照してください。いくつかの組み込みデータストアは、特定の用途の場合に特定の限られた拡張をデータに適用します。関数 transform
および関数 combine
を使用して、データストア内のデータに対して独自の拡張演算を適用することもできます。学習中、データストアによって各エポックの学習データにランダムに摂動が与えられるため、エポックごとにわずかに異なるデータ セットが使用されます。
イメージ処理の使用例
イメージ データを拡張し、イメージの取得時のばらつきをシミュレーションします。たとえば、最も一般的なタイプのイメージ拡張演算は、シーンに対するカメラの向きのばらつきをシミュレーションする、回転や平行移動などの幾何学的変換です。色のジッターは、シーンでのライティング条件と色のばらつきをシミュレーションします。人工的なノイズは、センサーの電気変動およびアナログからデジタルへの変換の誤差によって生じる歪みをシミュレーションします。ブレは、フォーカスの合っていないレンズまたはシーンに対するカメラの動きをシミュレーションします。
一般的なイメージ前処理演算には、ノイズ除去、エッジ保存平滑化、色空間変換、コントラスト強調、モルフォロジーなどがあります。
Image Processing Toolbox™ がある場合、これらの演算とツールボックスのその他の機能を使用して、データを処理できます。これらの変換を作成および適用する方法を説明する例については、深層学習ワークフローのためのイメージの拡張を参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
イメージのサイズ変更 | 固定の倍率、または目標のサイズにイメージのサイズを変更する | | |
イメージのワープ | ランダムな反転、回転、スケール、せん断、および平行移動をイメージに適用する |
| |
イメージのトリミング | 中心またはランダムな位置からイメージを目標のサイズにトリミングする |
| |
色のジッター | イメージの色相、彩度、明度、またはコントラストをランダムに調整する |
| |
ノイズのシミュレーション | ランダムなガウス ノイズ、ポアソン ノイズ、ごま塩ノイズ、または乗法性ノイズを追加する |
| |
ブレのシミュレーション | ガウス ノイズまたは指向性運動によるブレを追加する |
| |
オブジェクトの検出
オブジェクト検出データは、イメージ、およびイメージ内のオブジェクトの位置と特性を示す境界ボックスで構成されます。
Computer Vision Toolbox™ がある場合、イメージ ラベラー (Computer Vision Toolbox) アプリとビデオ ラベラー (Computer Vision Toolbox) アプリを使用して、ROI に対話形式でラベルを付け、ニューラル ネットワークに学習させるためのラベル データをエクスポートできます。Automated Driving Toolbox™ がある場合、グラウンド トゥルース ラベラー (Automated Driving Toolbox) アプリを使用してラベル付きグラウンド トゥルース学習データを作成することもできます。
イメージを変換する場合、対応する境界ボックスに対して同一の変換を実行しなければなりません。Computer Vision Toolbox がある場合、表に示す演算を使用して境界ボックスを処理できます。これらの変換を作成および適用する方法を説明する例については、オブジェクト検出のための境界ボックスの拡張を参照してください。詳細については、深層学習を使用したオブジェクト検出入門 (Computer Vision Toolbox)を参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
境界ボックスのサイズ変更 | 固定の倍率、または目標のサイズに境界ボックスのサイズを変更する |
| |
境界ボックスのトリミング | 中心またはランダムな位置から境界ボックスを目標のサイズにトリミングする |
| |
境界ボックスのワープ | 反転、回転、スケール、せん断、および平行移動を境界ボックスに適用する |
| |
セマンティック セグメンテーション
セマンティック セグメンテーション データは、イメージ、および categorical 配列として表される対応するピクセル ラベルで構成されます。
Computer Vision Toolbox がある場合、イメージ ラベラー (Computer Vision Toolbox) アプリとビデオ ラベラー (Computer Vision Toolbox) アプリを使用して、ピクセルに対話形式でラベルを付け、ニューラル ネットワークに学習させるためのラベル データをエクスポートできます。Automated Driving Toolbox がある場合、グラウンド トゥルース ラベラー (Automated Driving Toolbox) アプリを使用してラベル付きグラウンド トゥルース学習データを作成することもできます。
イメージを変換する場合、対応するピクセル ラベル付きイメージに対して同一の変換を実行しなければなりません。Image Processing Toolbox がある場合、表に示す関数、およびカテゴリカル入力をサポートするその他のツールボックス関数を使用して、ピクセル ラベル イメージを処理できます。これらの変換を作成および適用する方法を説明する例については、セマンティック セグメンテーションのためのピクセル ラベルの拡張を参照してください。詳細については、深層学習を使用したセマンティック セグメンテーション入門 (Computer Vision Toolbox)を参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
ピクセルのラベルのサイズ変更 | 固定の倍率、または目標のサイズにピクセル ラベル イメージのサイズを変更する | | |
ピクセル ラベルのトリミング | 中心またはランダムな位置からピクセル ラベル イメージを目標のサイズにトリミングする |
| |
ピクセル ラベルのワープ | ランダムな反転、回転、スケール、せん断、および平行移動をピクセル ラベル イメージに適用する |
| |
LiDAR 処理アプリケーション
Lidar Toolbox™ を使用すると、LiDAR システムの設計、解析、テストを行うことができます。オブジェクトの検出と追跡、セマンティック セグメンテーション、形状フィッティング、レジストレーションを実行できます。LiDAR センサーから得られた生の点群データをこれらの高度なワークフローで使用するには、それらの点群データに対して基本的な処理を行う必要があります。
Lidar Toolbox では、点群データのダウンサンプリング、フィルター処理、位置調整、特徴量抽出といった前処理を実行するためのツールが用意されています。また、点群の拡張や変換を行って、学習データの多様性を高めることもできます。
点群データを可視化、解析、評価するには、LiDAR ビューアー (Lidar Toolbox)アプリを使用します。組み込みの前処理アルゴリズムを使用してデータを前処理することや、カスタム アルゴリズムをインポートすることができます。詳細については、Create Custom Preprocessing Workflow with Lidar Viewer (Lidar Toolbox)を参照してください。
LiDAR ラベラー (Lidar Toolbox)アプリを使用して、ラベル付きグラウンド トゥルース学習データを作成できます。自動ラベリングの詳細については、Automate Ground Truth Labeling for Vehicle Detection Using PointPillars (Lidar Toolbox)を参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
点群データのクリーニングとフィルター処理 |
|
| |
点群の整理 | 点群をオーガナイズド形式に変換します。この変換では、点どうしの空間的な関係に基づいて、データを行と列に配置します。 |
| size(ptCloudUnorg.Location) ans = 1×2 37879 3 ptCloudOrg = pcorganize(ptCloudUnorg,params); size(ptCloudOrg.Location) ans = 1×3 64 1024 3 |
ブロック化された点群の作成 | データが大きすぎてメモリに収まらない場合、点群を個別のブロックに分割して処理します。 |
| |
点群データの拡張 |
|
| |
信号処理の使用例
Signal Processing Toolbox™ では、信号のノイズ除去、平滑化、トレンド除去、およびリサンプリングを行うことができます。ノイズ、マルチパス フェージング、およびパルスやチャープなどの合成信号で学習データを拡張できます。信号ラベラー (Signal Processing Toolbox) アプリと labeledSignalSet
(Signal Processing Toolbox) オブジェクトを使用して、ラベル付き信号セットを作成することもできます。これらの変換を作成および適用する方法を説明する例については、深層学習を使用した波形セグメンテーションを参照してください。
Wavelet Toolbox™ と Signal Processing Toolbox を使用すると、信号分類用途でイメージ入力として使用できる時系列データの 2 次元時間-周波数表現を生成できます。例については、ウェーブレット解析と深層学習を使用した時系列の分類を参照してください。同様に、信号データからシーケンスを抽出して LSTM ネットワークの入力として使用できます。例については、長短期記憶ネットワークを使用した ECG 信号の分類 (Signal Processing Toolbox)を参照してください。
Communications Toolbox™ には拡張された信号処理機能があり、通信システムの誤り訂正、インターリーブ、変調、フィルター処理、同期、およびイコライズを実行できます。これらの変換を作成および適用する方法を説明する例については、深層学習による変調の分類を参照してください。
表に示す関数、および各ツールボックスのその他の機能を使用して、信号データを処理できます。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
信号のクリーンアップ |
|
| |
信号のフィルター処理 |
|
| |
信号の拡張 |
| | |
時間-周波数表現の作成 | スペクトログラム、スカログラム、および 1 次元信号のその他の 2 次元表現を作成する | | |
信号からの特徴の抽出 | 信号から時間領域、周波数領域、時間周波数特徴を抽出する |
| |
オーディオ処理の使用例
Audio Toolbox™ には、オーディオ処理、音声分析、および音響測定を行うためのツールが用意されています。これらのツールを使用して聴覚的な特徴を抽出し、オーディオ信号を変換します。ランダム化された、または確定的な時間スケーリング、時間ストレッチ、およびピッチ シフトでオーディオ データを拡張します。信号ラベラー (Signal Processing Toolbox) アプリを使用してラベル付きグラウンド トゥルース学習データを作成することもできます。次の表に示す関数、およびツールボックスのその他の機能を使用して、オーディオ データを処理できます。これらの変換を作成および適用する方法を説明する例については、Augment Audio Dataset (Audio Toolbox)を参照してください。
Audio Toolbox には、事前学習済みのオーディオ深層学習ネットワーク向けの MATLAB® および Simulink® のサポートも用意されています。YAMNet を使用して音の特定と分類を行い、CREPE を使用してピッチを推定します。VGGish と OpenL3 の特徴埋め込みを抽出して、機械学習や深層学習のシステムに入力します。事前学習済みの Audio Toolbox ネットワークは ディープ ネットワーク デザイナーで利用できます。YAMNet の例については、Adapt Pretrained Audio Network for New Data Using Deep Network Designerを参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
オーディオ データの拡張 | ランダムまたは確定的なピッチ シフト、時間-スケール変更、時間シフト、ノイズの追加、ボリューム コントロールを実行する |
| |
オーディオの特徴の抽出 | オーディオ セグメントからスペクトル パラメーターを抽出する |
|
処理された出力:
ans = struct with fields: mfcc: [1 2 3 4 5 6 7 8 9 10 11 12 13] mfccDelta: [14 15 16 17 18 19 20 21 22 23 24 25 26] mfccDeltaDelta: [27 28 29 30 31 32 33 34 35 36 37 38 39] spectralCentroid: 40 pitch: 41 |
時間-周波数表現の作成 |
|
| |
テキスト分析
Text Analytics Toolbox™ には、装置のログ、ニュース フィード、アンケート、オペレーター レポート、ソーシャル メディアなどのソースからの生テキストを処理するツールが含まれています。これらのツールを使用して、一般的なファイル形式からのテキストの抽出、生テキストの処理、個々の単語やマルチワード フレーズ (n-gram) の抽出、テキストから数値表現への変換、統計モデルの作成を行います。次の表に示す関数、およびツールボックスのその他の機能を使用して、テキスト データを処理できます。開始方法を示す例については、解析用のテキスト データの準備 (Text Analytics Toolbox)を参照してください。
前処理のタイプ | 説明 | 関数のサンプル | 出力のサンプル |
---|---|---|---|
テキストのトークン化 | テキストを解析して単語と句読点にする |
| 元の出力:
処理された出力:
|
テキストのクリーンアップ |
|
| 処理された出力:
|
参考
transform
| combine
| read
| trainnet
| trainingOptions
| dlnetwork