Main Content

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

R-CNN、Fast R-CNN および Faster R-CNN 入門

"オブジェクトの検出" は、イメージ内のオブジェクトを検出して分類するプロセスです。深層学習アプローチの 1 つである R-CNN (Regions with Convolutional Neural Networks) では、四角形の領域提案を畳み込みニューラル ネットワークの特徴と組み合わせます。R-CNN は 2 段階検出アルゴリズムです。第 1 段階では、オブジェクトを含んでいる可能性のあるイメージ内の領域のサブセットを特定します。第 2 段階では、各領域に含まれるオブジェクトを分類します。

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

  • 自動運転

  • スマート監視システム

  • 顔認識

Computer Vision Toolbox™ には、R-CNN、Fast R-CNN、および Faster R-CNN アルゴリズムのオブジェクト検出器が用意されています。

"インスタンス セグメンテーション" は、オブジェクト検出を拡張して、検出された個々のオブジェクトのピクセル レベルのセグメンテーションを提供します。Computer Vision Toolbox では、Mask R-CNN と呼ばれるインスタンス セグメンテーションの深層学習アプローチをサポートする層を提供しています。詳細については、インスタンス セグメンテーションの Mask R-CNN 入門を参照してください。

R-CNN アルゴリズムを使用したオブジェクトの検出

R-CNN を使用したオブジェクトの検出用モデルは、次の 3 つのプロセスに基づきます。

  • オブジェクトが含まれている可能性のあるイメージ内の領域を検出します。これらの領域は "領域提案" と呼ばれます。

  • 領域提案から CNN 特徴量を抽出します。

  • 抽出した特徴量を使用してオブジェクトを分類します。

R-CNN には 3 つのバリアントがあります。各バリアントでは、上記のプロセスの 1 つ以上の結果の最適化、加速、または強化を試みます。

R-CNN

R-CNN 検出器[2]はまず、Edge Boxes[1] などのアルゴリズムを使用して領域提案を生成します。提案領域はイメージからトリミングされ、サイズ変更されます。その後、トリミングされてサイズ変更された領域は、CNN によって分類されます。最後に、CNN 特徴量を使用して学習したサポート ベクター マシン (SVM) によって、領域提案境界ボックスが調整されます。

関数 trainRCNNObjectDetector を使用して R-CNN オブジェクト検出器に学習させます。この関数は、イメージ内のオブジェクトを検出する rcnnObjectDetector オブジェクトを返します。

Fast R-CNN

R-CNN 検出器と同様に、Fast R-CNN[3] 検出器も Edge Boxes などのアルゴリズムを使用して領域提案を生成します。領域提案をトリミングしてサイズ変更する R-CNN 検出器とは異なり、Fast R-CNN 検出器ではイメージ全体を処理します。R-CNN 検出器は各領域を分類しなければなりませんが、Fast R-CNN は各領域提案に対応する CNN 特徴量をプーリングします。Fast R-CNN 検出器ではオーバーラップする領域の計算を共有するので、Fast R-CNN は R-CNN よりも効率的です。

関数 trainFastRCNNObjectDetector を使用して Fast R-CNN オブジェクト検出器に学習させます。この関数は、イメージからオブジェクトを検出する fastRCNNObjectDetector を返します。

Faster R-CNN

Faster R-CNN [4] 検出器では、Edge Boxes などの外部アルゴリズムを使用する代わりに、領域提案ネットワーク (RPN) を追加してネットワーク内で領域提案を直接生成します。RPN はアンカー ボックスによるオブジェクトの検出を使用します。ネットワーク内で領域提案を生成する方が高速であり、データに合わせてより適切に調整されます。

関数 trainFasterRCNNObjectDetector を使用して Faster R-CNN オブジェクト検出器に学習させます。この関数は、イメージからオブジェクトを検出する fasterRCNNObjectDetector を返します。

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

このオブジェクト検出器ファミリでは、領域提案を使用してイメージ内のオブジェクトを検出します。提案された領域の数によって、イメージ内のオブジェクトの検出にかかる時間が決まります。Fast R-CNN 検出器と Faster R-CNN 検出器は、領域の数が多い場合に検出のパフォーマンスを向上させるように設計されています。

R-CNN 検出器説明
trainRCNNObjectDetector
  • 学習と検出に時間がかかる

  • カスタム領域提案が使用可能

trainFastRCNNObjectDetector
  • カスタム領域提案が使用可能

trainFasterRCNNObjectDetector
  • 実行時のパフォーマンスが最適

  • カスタム領域提案はサポートしない

転移学習

事前学習済みの畳み込みニューラル ネットワーク (CNN) を R-CNN 検出器の基礎として使用できます。この手法は、"転移学習" とも呼ばれます。事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)を参照してください。関数 trainRCNNObjectDetectortrainFasterRCNNObjectDetector、または trainFastRCNNObjectDetector と一緒に、次のネットワークのいずれかを使用します。これらのネットワークを使用するには、対応する Deep Learning Toolbox™ モデルをインストールしなければなりません。

事前学習済みイメージ分類 CNN に基づいてカスタム モデルを設計することもできます。R-CNN、Fast R-CNN、Faster R-CNN モデルの設計の節およびディープ ネットワーク デザイナー (Deep Learning Toolbox) アプリを参照してください。

R-CNN、Fast R-CNN、Faster R-CNN モデルの設計

事前学習済みイメージ分類 CNN に基づいてカスタム R-CNN モデルを設計できます。深層学習ネットワークを構築、可視化および編集するために、ディープ ネットワーク デザイナー (Deep Learning Toolbox)を使用することもできます。

  1. 基本 R-CNN モデルは、事前学習済みのネットワークから開始します。最後の 3 つの分類層は、検出対象のオブジェクト クラスに固有の新しい層で置き換えられます。

    R-CNN オブジェクト検出ネットワークの作成方法の例については、R-CNN オブジェクト検出ネットワークの作成を参照してください。

  2. Fast R-CNN モデルは基本 R-CNN モデルに基づいています。一連のボックス オフセットを学習してイメージ内のオブジェクトの位置を改善するために、ボックス回帰層が追加されています。各領域提案の CNN 特徴量をプーリングするために、ROI プーリング層がネットワークに挿入されています。

    Fast R-CNN オブジェクト検出ネットワークの作成方法の例については、Fast R-CNN オブジェクト検出ネットワークの作成を参照してください。

  3. Faster R-CNN モデルは Fast R-CNN モデルに基づいています。提案を外部アルゴリズムから取得するのではなく、領域提案を生成するために、領域提案ネットワークが追加されています。

    Faster R-CNN オブジェクト検出ネットワークの作成方法の例については、Faster R-CNN オブジェクト検出ネットワークの作成を参照してください。

深層学習用学習データのラベル付け

イメージ ラベラービデオ ラベラー、またはグラウンド トゥルース ラベラー (Automated Driving Toolbox) アプリを使用して、対話形式でピクセルにラベル付けし、ラベル データを学習用にエクスポートできます。アプリは、オブジェクト検出用の四角形の関心領域 (ROI)、イメージ分類用のシーン ラベル、セマンティック セグメンテーション用のピクセルにラベルを付けるためにも使用できます。いずれかのラベラーでエクスポートされたグラウンド トゥルース オブジェクトから学習データを作成するには、関数 objectDetectorTrainingData または関数 pixelLabelTrainingData を使用できます。詳細については、オブジェクト検出およびセマンティック セグメンテーション用の学習データを参照してください。

参照

[1] Zitnick, C. Lawrence, and P. Dollar. "Edge boxes: Locating object proposals from edges." Computer Vision-ECCV. Springer International Publishing. Pages 391-4050. 2014.

[2] Girshick, R., J. Donahue, T. Darrell, and J. Malik. "Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation." CVPR '14 Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Pages 580-587. 2014

[3] Girshick, Ross. "Fast r-cnn." Proceedings of the IEEE International Conference on Computer Vision. 2015

[4] Ren, Shaoqing, Kaiming He, Ross Girshick, and Jian Sun. "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks." Advances in Neural Information Processing Systems . Vol. 28, 2015.

参考

アプリ

関数

関連する例

詳細