Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

深層学習を使用したオブジェクト検出入門

深層学習を使用したオブジェクト検出は、イメージ内のオブジェクトの位置を予測するための迅速で正確な手段を提供します。深層学習は、オブジェクト検出器が検出タスクに必要なイメージの特徴を自動的に学習する強力な機械学習手法です。深層学習を使用したオブジェクト検出には、Faster R-CNN、You Only Look Once (YOLO) v2、シングル ショット検出 (SSD) など、いくつかの方法を利用できます。

オブジェクト検出の応用例は次のとおりです。

  • イメージ分類

  • シーン理解

  • 自動運転車

  • 監視

オブジェクト検出用学習データの作成

ラベル付けアプリを使用して、ビデオ、イメージ シーケンス、イメージ コレクション、またはカスタム データ ソースのグラウンド トゥルース データに対話形式でラベルを付けます。イメージ内のオブジェクトの位置とサイズを定義する四角形のラベルを使用して、オブジェクト検出グラウンド トゥルースにラベルを付けることができます。

データの拡張と前処理

データ拡張を使用すると、限られたデータセットで学習を行うことができます。平行移動、トリミング、変換などのわずかな変更をイメージに加えることで、ロバストな検出器の学習に使用できる特徴的な一意のイメージが新たに作成されます。データストアは、データの集合の読み取りや拡張に便利です。イメージとラベル付き境界ボックスのデータ用のデータストアを作成するには、imageDatastoreboxLabelDatastore を使用します。

データストアを使用した学習データの拡張の詳細については、深層学習用のデータストア (Deep Learning Toolbox)および組み込みデータストアを使用した追加のイメージ処理演算の実行 (Deep Learning Toolbox)を参照してください。

オブジェクト検出ネットワークの作成

各オブジェクト検出器には、固有のネットワーク アーキテクチャが含まれます。たとえば、Faster R-CNN 検出器は検出に 2 ステージのネットワークを使用するのに対し、YOLO v2 は単一ステージを使用します。ネットワークの作成には、fasterRCNNLayersyolov2Layers などの関数を使用します。ディープ ネットワーク デザイナー (Deep Learning Toolbox)を使用して、ネットワークを 1 層ずつ設計することもできます。

検出器の学習と結果の評価

オブジェクト検出器の学習には、関数 trainFasterRCNNObjectDetector、関数 trainYOLOv2ObjectDetector、関数 trainSSDObjectDetector を使用します。学習結果の評価には、関数 evaluateDetectionMissRate および関数 evaluateDetectionPrecision を使用します。

深層学習の検出器を使用したオブジェクトの検出

学習済みの検出器を使用してイメージ内のオブジェクトを検出します。たとえば、以下に示す部分的なコードでは、学習済みの detector をイメージ I に対して使用します。オブジェクト関数 detectfasterRCNNObjectDetector オブジェクト、yolov2ObjectDetector オブジェクト、またはssdObjectDetector オブジェクトに対して使用すると、境界ボックス、検出スコア、および境界ボックスに割り当てられたカテゴリカル ラベルが返されます。

I = imread(input_image)
[bboxes,scores,labels] = detect(detector,I)

参考

アプリ

関連するトピック