yolo-v2-tf

ユースケースと概要説明

YOLO v2 は、このリポジトリーの Keras* を使用して実装され、TensorFlow* フレームワークに変換されたリアルタイム物体検出モデルです。このモデルは、80 クラスの Common Objects in Context (COCO) データセットで事前トレーニングされました。

変換

  1. 元のリポジトリーをダウンロードまたはクローンします (d38c3d8 コミットでテスト済み)。

  2. 次のコマンドで、元のモデル (リポジトリー内の yolov2 という名前) を取得し、それを Keras* 形式に変換します (詳細は、公式リポジトリーの README.md ファイルを参照してください)。

    1. YOLO v2 の重みをダウンロードします。

      wget -O weights/yolov2.weights https://pjreddie.com/media/files/yolov2.weights
      
    2. モデルの重みを Keras* に変換します。

      python tools/model_converter/convert.py cfg/yolov2.cfg weights/yolov2.weights weights/yolov2.h5
      
  3. モデルを protobuf に変換します。

    python tools/model_converter/keras_to_tensorflow.py --input_model weights/yolov2.h5 --output_model=weights/yolo-v2.pb
    

仕様

メトリック

タイプ

検出

GFLOPs

63.03

MParams

50.95

ソース・フレームワーク

Keras*

精度

変換されたモデルの Common Objects in Context (COCO) 検証データセットで取得された精度メトリック。

メトリック

mAP

53.15%

COCO mAP

56.5%

入力

元のモデル

画像、名前: image_input、形状: 1, 608, 608, 3、形式: B, H, W, C

説明:

  • B - バッチサイズ

  • H - 高さ

  • W - 幅

  • C - チャネル

チャネルの順番は RGB です。スケール値 - 255。

変換されたモデル

画像、名前: image_input、形状: 1, 608, 608, 3、形式: B, H, W, C

説明:

  • B - バッチサイズ

  • H - 高さ

  • W - 幅

  • C - チャネル

チャネルの順番は BGR です。

出力

元のモデル

検出概要情報の配列、名前 - conv2d_22/BiasAdd、形状 - 1, 19, 19, 425、形式 - B, Cx, Cy, N*85

説明:

  • B - バッチサイズ

  • CxCy - セル・インデックス

  • N - セルの検出ボックスの数

検出ボックスの形式は、[x, y, h, w, box_score, class_no_1, …, class_no_80]。

説明:

  • (x, y) - ボックスの中心の生の座標。sigmoid 関数を適用してセルを基準とした座標を取得します。

  • hw - ボックスの生の高さと幅、指数関数を適用し、対応するアンカーと乗算して、セルに対する高さと幅の値を取得します

  • box_score - 検出の信頼度ボックス。sigmoid 関数を適用して [0, 1] 範囲の信頼度を取得します。

  • class_no_1, …, class_no_80 - クラス全体の確率分布をロジット形式で計算し、softmax 関数を適用し、取得した信頼値を乗算して各クラスの信頼度を取得します。

このモデルは、80 カテゴリーのオブジェクトを含む Common Objects in Context (COCO) データセットでトレーニングされました。<omz_dir>/data/dataset_classes/coco_80cl.txt ファイルで提供されるクラス名へのマッピング。anchor 値は、0.57273,0.677385, 1.87446,2.06253, 3.33843,5.47434, 7.88282,3.52778, 9.77052,9.16828 です。

変換されたモデル

検出概要情報の配列、名前 - conv2d_22/BiasAdd/YoloRegion、形状 - 1, 153425、形式 - B, N*85, Cx, Cy

説明:

  • B - バッチサイズ

  • N - セルの検出ボックスの数

  • CxCy - セル・インデックス

検出ボックスの形式は、[x, y, h, w, box_score, class_no_1, …, class_no_80]。

説明:

  • (x,y) - セルに対するボックスの中心の座標

  • hw - ボックスの生の高さと幅、指数関数を適用し、対応するアンカーと乗算して、セルに対する高さと幅の値を取得します

  • box_score - [0, 1] 範囲の検出ボックスの信頼度

  • class_no_1、…、class_no_80 - [0, 1] 範囲のクラスにわたる確率分布。信頼値を乗算して各クラスの信頼度を取得します

このモデルは、80 カテゴリーのオブジェクトを含む Common Objects in Context (COCO) データセットでトレーニングされました。<omz_dir>/data/dataset_classes/coco_80cl.txt ファイルで提供されるクラス名へのマッピング。anchor 値は、0.57273,0.677385, 1.87446,2.06253, 3.33843,5.47434, 7.88282,3.52778, 9.77052,9.16828 です。

モデルをダウンロードして OpenVINO™ IR 形式に変換

以下の例に示すように、モデルをダウンロードし、必要に応じてモデル・ダウンローダーやその他の自動化ツールによってモデルを OpenVINO™ IR 形式に変換できます。

モデル・ダウンローダーの使用例:

omz_downloader --name <model_name>

モデル・コンバーターの使用例:

omz_converter --name <model_name>

デモの使い方

Open Model Zoo が提供する次のデモでこのモデルを使用して、その機能を確認できます。