Main Content

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

YOLO v2 入門

You-Only-Look-Once (YOLO) v2 オブジェクト検出器は、単一ステージのオブジェクトの検出ネットワークを使用します。YOLO v2 は、畳み込みニューラル ネットワーク (Faster R-CNN) を含む領域などの、2 段階深層学習オブジェクト検出器より高速です。

YOLO v2 モデルは、入力イメージに対して深層学習 CNN を実行し、ネットワーク予測を生成します。オブジェクト検出器は予測を復号化し、境界ボックスを生成します。

イメージ内のオブジェクトの予測

YOLO v2 は、アンカー ボックスを使用してイメージ内のオブジェクトのクラスを検出します。詳細については、アンカー ボックスによるオブジェクトの検出を参照してください。YOLO v2 は、各アンカー ボックスの次の 3 つの属性を予測します。

  • Intersection over Union (IoU) — 各アンカー ボックスのオブジェクトらしさのスコアを予測します。

  • アンカー ボックスのオフセット — アンカー ボックスの位置を調整します。

  • クラス確率 — 各アンカー ボックスに割り当てられるクラス ラベルを予測します。

次の図は、特徴マップ内の各位置の事前定義されたアンカー ボックス (破線) と、オフセットの適用後の調整された位置を示します。クラスと一致したボックスは色付きで表示されます。

転移学習

転移学習を使用すると、YOLO v2 検出ネットワークで事前学習済みの CNN を特徴抽出器として使用できます。関数 yolov2Layers を使用して、たとえば MobileNet v2 などの事前学習済みの CNN から YOLO v2 検出ネットワークを作成します。事前学習済みの CNN の一覧については、事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)を参照してください。

事前学習済みイメージ分類 CNN に基づいてカスタム モデルを設計することもできます。詳細については、YOLO v2 検出ネットワークの設計を参照してください。

YOLO v2 検出ネットワークの設計

カスタム YOLO v2 モデルを層単位で設計できます。モデルは、事前学習済みの CNN を初期化するか、ゼロから学習させることができる特徴抽出器ネットワークから始まります。検出サブネットワークには、一連の ConvBatch norm および ReLu 層が含まれ、その後に変換および出力層 yolov2TransformLayer および yolov2OutputLayer オブジェクトがそれぞれ続きます。yolov2TransformLayer は、生の CNN 出力をオブジェクト検出の生成に必要なフォームに変換します。yolov2OutputLayer は、アンカー ボックスのパラメーターを定義し、検出器の学習に使用される損失関数を実装します。

ネットワークを手動で作成するためにディープ ネットワーク デザイナー (Deep Learning Toolbox) アプリを使用することもできます。デザイナーは Computer Vision Toolbox™ YOLO v2 機能を組み込みます。

Reorg 層を含む YOLO v2 検出ネットワークの設計

再編成層 (spaceToDepthLayer オブジェクトを使用して作成) および深さ連結層 (depthConcatenationLayer (Deep Learning Toolbox) オブジェクトを使用して作成) を使用して、低レベルおよび高レベルの特徴を連結します。これらの層は、低レベルのイメージ情報を追加し、小さいオブジェクトの検出精度を向上させることで、検出を向上させます。通常、再編成層は、出力の特徴マップが特徴抽出層の出力より大きい特徴抽出ネットワーク内の層に接続されています。

ヒント

この種類のネットワークを作成する方法の詳細については、YOLO v2 オブジェクト検出ネットワークの作成を参照してください。

オブジェクト検出器の学習と YOLO v2 モデルを含むオブジェクトの検出

CNN で YOLO 深層学習手法を使用したオブジェクト検出器の学習方法の詳細については、YOLO v2 深層学習を使用したオブジェクトの検出の例を参照してください。

コード生成

YOLO v2 オブジェクト検出器 (yolov2ObjectDetector オブジェクトを使用して作成) を使用した CUDA® コードの生成方法の詳細については、YOLO v2 を使用したオブジェクト検出のコードの生成を参照してください。

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

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

参照

[1] Redmon, Joseph, and Ali Farhadi. “YOLO9000: Better, Faster, Stronger.” In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 6517–25. Honolulu, HI: IEEE, 2017. https://doi.org/10.1109/CVPR.2017.690.

[2] Redmon, Joseph, Santosh Divvala, Ross Girshick, and Ali Farhadi. "You only look once: Unified, real-time object detection." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 779–788. Las Vegas, NV: CVPR, 2016.

参考

アプリ

オブジェクト

関数

関連する例

詳細