Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

オブジェクト検出器の選択

Computer Vision Toolbox™ では、イメージやビデオ内のオブジェクトを検出および分類するために使用するオブジェクト検出器を提供しています。オブジェクト検出器関数を使用して検出器に学習させ、機械学習および深層学習と共に使用して、イメージ内のオブジェクトの位置を迅速かつ正確に予測します。

検出器を選択するときは、次の特徴が必要かどうかを検討してください。

アプリケーションとパフォーマンス

  • 単一クラスと複数クラス — 複数のクラスには、イメージまたはビデオの複数の場所とスケールで使用されるさまざまな分類器のバリエーションが必要です。

  • ランタイム パフォーマンス — 検出器のパフォーマンスは、イメージ内のオブジェクトの検出にかかる時間によって異なります。単一のクラス用に学習させた検出器、または姿勢と形状が類似しているオブジェクトを検出するように学習させた検出器は、複数のオブジェクトで学習させた深層学習検出器よりもランタイム パフォーマンスが高くなります。さらに重要なことに、深層学習は、機械学習や特徴ベースの検出アプローチよりも多くの計算を必要とするため、時間がかかります。

  • 機械学習 — 機械学習では、既知の入力データと出力データでモデルに学習させて将来の出力を予測できるようにする教師あり学習と、入力データの隠れたパターンや固有の構造を見つける教師なし学習の 2 種類の手法を使用します。詳細については、MATLAB の機械学習 (Statistics and Machine Learning Toolbox)を参照してください。

  • 深層学習 — アルゴリズム、事前学習済みのモデル、およびアプリを使用して深層ニューラル ネットワークを実装します。畳み込みニューラル ネットワークを使用して、イメージの分類と回帰を実行できます。詳細については、深層学習を使用したオブジェクト検出入門を参照してください。

展開

  • C/C++コード生成 — SSD、YOLO、ACF、および System object ベースの検出器は、デスクトップ システムから組み込みハードウェアまで、さまざまなハードウェア プラットフォーム用の MATLAB® Coder™ C および C++ コード生成をサポートします。詳細については、MATLAB Coder を参照してください。R-CNN ベースの検出器はコード生成をサポートしていません。

  • GPU コード生成 — 深層学習ベースの検出器は、組み込みビジョンや自律型システム用に、GPU Coder™ によって最適化された CUDA® を使った GPU コード生成をサポートします。詳細については、GPU Coder を参照してください。

オブジェクト検出器機能を参照および比較するには、次のセクションの表を使用します。

一般的なオブジェクト検出器

検出器 複数クラスのサポート 深層学習のサポート コード生成のサポート GPU サポート説明
yoloxObjectDetector (Computer Vision Toolbox Automated Visual Inspection Library)ありありありあり

YOLOX は、完全な解像度での学習、フル解像度でのシングル ショット推論、タイル イメージを使用した学習をサポートするアンカーフリーのオブジェクト検出器です。

  • 最適なパフォーマンスを得るには GPU が必要です。

  • この検出器は、小さなオブジェクトの検出で YOLOv4 よりもパフォーマンスを向上させる必要がある場合、または学習と推論の両方で任意のイメージ サイズを使用する必要がある場合に使用します。

yolov4ObjectDetectorありありありあり

YOLO v4 は、YOLO v3 よりも高速で正確な単一ステージ オブジェクト検出器です。この検出器は、spatial pyramid pooling とパス アグリゲーション ネットワークを使用して集約された特徴を計算します。また、さまざまなサイズの小さなオブジェクトを検出できます。

  • 最適なパフォーマンスを得るには GPU が必要です。

yolov3ObjectDetectorありありありありYOLO v3 深層学習を使用したオブジェクトの検出

YOLO v3 は、マルチスケールの特徴を使用し、さまざまなサイズのオブジェクトの検出をより適切に処理する単一ステージのネットワークです。パフォーマンス速度と精度を向上させるために、YOLO v4 の使用を検討してください。

  • 最適なパフォーマンスを得るには GPU が必要です。

yolov2ObjectDetectorありありありあり

  • さまざまなサイズでパフォーマンスを向上させるには、SSD または YOLO v4 の使用を検討してください。

  • 最適なパフォーマンスを得るには GPU が必要です。

  • FasterR-CNN と比べてランタイム パフォーマンスが優れています。

YOLO v2 は、単一ステージのネットワークを使用してオブジェクト検出を実行します。

fasterRCNNObjectDetectorありありなしありFaster R-CNN 深層学習を使用したオブジェクトの検出

  • 最適なパフォーマンスを得るには GPU が必要です。

  • より正確なオブジェクトの位置推定精度が必要な場合は、この検出器を使用してください。

  • R-CNN ファミリの最高のパフォーマンスですが、YOLO v2 および SSD よりは低速です。

Faster R-CNN は 2 段階のネットワークです。第 2 段階では、第 1 段階で作成された検出の提案を調整します。これはランタイム パフォーマンスを犠牲にして位置推定を向上させるのに役立ちます。

R-CNN オブジェクト検出器の比較

fastRCNNObjectDetectorありありなしありFast R-CNN 一時停止標識検出器の学習

  • fasterRCNNObjectDetector で開始することを検討してください。

  • 最適なパフォーマンスを得るには GPU が必要です。

  • オブジェクト領域を生成する独自の方法がある場合は、この検出器を使用します。

  • R-CNN より高速ですが、Faster R-CNN より低速です。

R-CNN オブジェクト検出器の比較

rcnnObjectDetectorありありなしありR-CNN 深層学習を使用したオブジェクト検出器の学習

  • fasterRCNNObjectDetector で開始することを検討してください。

  • 最適なパフォーマンスを得るには GPU が必要です。

  • R-CNN ベースの検出器の中で最も低速です。

このアルゴリズムは、四角形領域の提案と畳み込みニューラル ネットワークの特徴を組み合わせたものです。2 段階の検出アルゴリズムです。第 1 段階では、オブジェクトを含んでいる可能性のあるイメージ内の領域のサブセットを特定します。第 2 段階では、各領域に含まれるオブジェクトを分類します。

R-CNN オブジェクト検出器の比較

ssdObjectDetectorありありありありSSD 深層学習を使用したオブジェクト検出

  • 最適なパフォーマンスを得るには GPU が必要です。

  • この検出器は、さまざまなサイズのオブジェクトを検出する必要があり、ランタイム パフォーマンスを向上させる必要がある場合に使用します。

  • FasterR-CNN および YOLO v2 よりもランタイム パフォーマンスが優れています。

シングル ショット検出器 (SSD) は、単一ステージの検出ネットワークを使用し、マルチスケールの特徴を使用してオブジェクトを検出します。

acfObjectDetectorなしなしありなしACF ベースの一時停止標識検出器の学習

  • 単一クラスのオブジェクト検出に適した剛体オブジェクト検出器。

  • 複数のオブジェクト クラスを検出する必要がある場合や、同じクラスに属しているものの構成や姿勢が異なるオブジェクトがある場合は、深層学習オブジェクト検出器の使用を検討してください。

  • この検出器は、検出するオブジェクトの姿勢と形状が類似していて、ランタイム パフォーマンスが重要な場合に使用します。

  • CPU 上の深層学習ベースの検出器よりもランタイム パフォーマンスが優れています。

ACF は、フロント、サイド、リアなどのさまざまな視点から車両を検出するときにはうまく機能しません。

vision.CascadeObjectDetectorなしなしありなし顔の正面分類モデルを使用したイメージ内の顔の検出

  • 剛体オブジェクト検出に適した Viola-Jones オブジェクト検出器。HAAR、HOG、または LBP 特徴を使用します。

  • 新しい検出器に学習させる場合は、パフォーマンスを向上させるために ACF から始めることを検討してください。

  • この検出器は、検出したいオブジェクト クラスに対して事前学習済みの検出器が利用でき、オブジェクトの姿勢や形状にほとんどバリエーションがない場合に使用します。

車両および人物の検出用オブジェクト検出器

検出器 複数クラスのサポート 深層学習のサポート コード生成のサポート GPU サポート説明
vehicleDetectorACF (Automated Driving Toolbox)事前学習済みなしありなしTrack Multiple Vehicles Using a Camera (Automated Driving Toolbox)事前学習済みの ACF 検出器
vehicleDetectorFasterRCNN (Automated Driving Toolbox)事前学習済みありなしありTrain a Deep Learning Vehicle Detector (Automated Driving Toolbox)事前学習済みの Faster R-CNN 検出器
vehicleDetectorYOLOv2 (Automated Driving Toolbox)事前学習済みありありありDetect Vehicles Using Monocular Camera and YOLO v2 (Automated Driving Toolbox)事前学習済みの YOLO v2 検出器
peopleDetectorACF事前学習済みなしありなし走行中の自動車からの歩行者の追跡

この事前学習済みの検出器は、直立した人物を検出するために使用します。

vision.PeopleDetector事前学習済みなしありなしステレオ ビデオからの深度推定この事前学習済みのカスケード型オブジェクト検出器は、直立した人物を検出するために使用します。

インスタンス セグメンテーション用の検出モデル

検出器 複数クラスのサポート 深層学習のサポート コード生成のサポート GPU サポート説明
SOLOv2 (Computer Vision Toolbox Model for SOLOv2 Instance Segmentation)ありありありあり
  • このインスタンス セグメンテーション モデルは、Mask R-CNN よりも高い精度でメモリ フットプリントを抑えてオブジェクトをセグメント化する必要がある場合に使用します。

  • Mask R-CNN よりも実行時のパフォーマンスが優れています。SOLOv2 のパフォーマンスは高速で、推論はリアルタイムに近く、アーキテクチャはアンカーフリーです。

maskrcnnありありなしあり

個々のオブジェクトをセグメント化する必要がある場合は、このインスタンス セグメンテーション モデルを使用します。

参考

アプリ

オブジェクト

関数

関連するトピック