このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
深層学習を使用したオブジェクト検出入門
深層学習を使用したオブジェクト検出は、イメージ内のオブジェクトの位置を予測するための迅速で正確な手段を提供します。深層学習は、オブジェクト検出器が検出タスクに必要なイメージの特徴を自動的に学習する強力な機械学習手法です。深層学習を使用したオブジェクト検出には、Faster R-CNN、You Only Look Once (YOLO) v2、YOLO v3、シングル ショット検出 (SSD) など、いくつかの方法を利用できます。
オブジェクト検出の応用例は次のとおりです。
イメージ分類
シーン理解
自動運転車
監視
オブジェクト検出用学習データの作成
ラベル付けアプリを使用して、ビデオ、イメージ シーケンス、イメージ コレクション、またはカスタム データ ソースのグラウンド トゥルース データに対話形式でラベルを付けます。イメージ内のオブジェクトの位置とサイズを定義する四角形のラベルを使用して、オブジェクト検出グラウンド トゥルースにラベルを付けることができます。
データの拡張と前処理
データ拡張を使用すると、限られたデータセットで学習を行うことができます。平行移動、トリミング、変換などのわずかな変更をイメージに加えることで、ロバストな検出器の学習に使用できる特徴的な一意のイメージが新たに作成されます。データストアは、データの集合の読み取りや拡張に便利です。イメージとラベル付き境界ボックスのデータ用のデータストアを作成するには、imageDatastore
と boxLabelDatastore
を使用します。
オブジェクト検出のための境界ボックスの拡張 (Deep Learning Toolbox)
イメージの深層学習向け前処理 (Deep Learning Toolbox)
領域固有の深層学習用途のためのデータの前処理 (Deep Learning Toolbox)
データストアを使用した学習データの拡張の詳細については、深層学習用のデータストア (Deep Learning Toolbox)および組み込みデータストアを使用した追加のイメージ処理演算の実行 (Deep Learning Toolbox)を参照してください。
オブジェクト検出ネットワークの作成
各オブジェクト検出器には、固有のネットワーク アーキテクチャが含まれます。たとえば、Faster R-CNN 検出器は検出に 2 ステージのネットワークを使用するのに対し、YOLO v2 は単一ステージを使用します。ネットワークの作成には、fasterRCNNLayers
や yolov2Layers
などの関数を使用します。ディープ ネットワーク デザイナー (Deep Learning Toolbox)を使用して、ネットワークを 1 層ずつ設計することもできます。
事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)
検出器の学習と結果の評価
オブジェクト検出器の学習には、関数 trainFasterRCNNObjectDetector
、関数 trainYOLOv2ObjectDetector
、関数 trainSSDObjectDetector
を使用します。学習結果の評価には、関数 evaluateDetectionMissRate
および関数 evaluateDetectionPrecision
を使用します。
深層学習の検出器を使用したオブジェクトの検出
学習済みの検出器を使用してイメージ内のオブジェクトを検出します。たとえば、以下に示す部分的なコードでは、学習済みの detector
をイメージ I
に対して使用します。オブジェクト関数 detect
を fasterRCNNObjectDetector
オブジェクト、yolov2ObjectDetector
オブジェクト、yolov3ObjectDetector
オブジェクト、または ssdObjectDetector
オブジェクトに対して使用すると、境界ボックス、検出スコア、および境界ボックスに割り当てられたカテゴリカル ラベルが返されます。
I = imread(input_image) [bboxes,scores,labels] = detect(detector,I)
事前学習済みのオブジェクト検出モデルを使用したオブジェクトの検出
MathWorks® GitHub リポジトリでは、ダウンロードして使用できる最新の事前学習済みオブジェクト検出深層学習ネットワークの実装を提供しており、すぐに推論を実行できます。事前学習済みのオブジェクト検出ネットワークは、COCO データ セットや Pascal VOC データ セットなどの標準データ セットについて学習済みです。これらの事前学習済みモデルを直接使用して、テスト イメージ内のさまざまなオブジェクトを検出できます。
次に例を示します。
事前学習済みの You-Only-Look-Once (YOLO) v2 および v4 の深層学習ネットワークを使用してオブジェクト検出を実行するには、事前学習済み YOLO v2 深層学習ネットワークを使用したオブジェクト検出および事前学習済み YOLO v4 深層学習ネットワークを使用したオブジェクト検出をそれぞれ参照してください。
事前学習済みの深層学習ネットワークを使用してスキャン テキスト検出を実行するには、事前学習済み Character Region Awareness For Text 検出モデルを参照してください。この事前学習済みモデルを使用して、イメージ内のテキストを検出できます。モデルは、次の 7 つの言語のテキストを検出できます。英語、韓国語、イタリア語、フランス語、アラビア語、ドイツ語、ベンガル語。
MathWorks の最新の事前学習済みモデルおよび例のすべてのリストについては、MATLAB Deep Learning (GitHub) を参照してください。