Main Content

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

YOLO v3 入門

You-Only-Look-Once (YOLO) v3 オブジェクト検出器は、特徴抽出ネットワークと複数の検出ヘッドを使用して複数のスケールで予測を行うマルチスケール オブジェクト検出ネットワークです。

YOLO v3 オブジェクト検出モデルは入力イメージに対して深層学習畳み込みニューラル ネットワーク (CNN) を実行し、複数の特徴マップからネットワーク予測を生成します。このオブジェクト検出器は予測結果を収集して復号化し、境界ボックスを生成します。

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

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

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

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

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

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

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

YOLO v3 オブジェクト検出ネットワークを設計するには、次の手順に従います。

  1. 特徴抽出ネットワークでモデルを開始します。特徴抽出ネットワークは、YOLO v3 深層学習ネットワークを作成するためのベース ネットワークとして機能します。ベース ネットワークには、事前学習済みの CNN または未学習の CNN を使用できます。ベース ネットワークが事前学習済みのネットワークの場合は、転移学習を実行できます。

  2. 畳み込み層、バッチ正規化層、および ReLu 層を使用して、検出サブネットワークを作成します。検出サブネットワークをベース ネットワークの任意の層に追加します。検出サブネットワークへの入力として接続する出力層は、検出ネットワーク ソースになります。特徴抽出ネットワークの層はどれでも、検出ネットワーク ソースとして使用できます。オブジェクト検出にマルチスケールの特徴を使用するには、サイズの異なる特徴マップを選択します。

YOLO v3 深層学習ネットワークを手動で作成するには、ディープ ネットワーク デザイナー (Deep Learning Toolbox) アプリを使用します。YOLO v3 深層学習ネットワークをプログラムで作成するには、yolov3ObjectDetector オブジェクトを使用します。

転移学習

転移学習を実行するために、事前学習済みの深層学習ネットワークを YOLO v3 深層学習ネットワークのベース ネットワークとして使用できます。アンカー ボックスと新しいオブジェクト クラスを指定して、新しいデータセットの学習を行う YOLO v3 深層学習を構成します。yolov3ObjectDetector オブジェクトを使用して、SqueezeNet などの事前学習済み CNN から YOLO v3 検出ネットワークを作成し、転移学習を実行します。事前学習済みの CNN の一覧については、事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)を参照してください。

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

深層学習ネットワークをベース ネットワークとして使用してカスタム YOLO v3 オブジェクト検出器を作成し、オブジェクト検出用に学習させる方法については、YOLO v3 深層学習を使用したオブジェクトの検出の例を参照してください。

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

イメージ ラベラービデオ ラベラー、またはグラウンド トゥルース ラベラー (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.

参考

アプリ

オブジェクト

関数

関連する例

詳細