retinanet-tf¶
ユースケースと概要説明¶
RetinaNet は、ResNet50 バックボーンを備えた高密度オブジェクト検出モデルであり、最初は Keras* でトレーニングされ、その後 TensorFlow* protobuf 形式に変換されました。詳細についてはこちらとリポジトリーを参照してください。
Keras* から TensorFlow* への変換を再現する手順¶
インストール手順に従って、元のリポジトリー (
47fdf189
コミットでテスト済み) を複製してインストールします。リポジトリーのルートからpython setup.py build_ext --inplace
を実行したことを確認してください。オリジナルモデルはこちらからダウンロードできます
-
変換スクリプトを取得します。
リポジトリーから変換スクリプトを取得します。
git clone https://github.com/amir-abdi/keras_to_tensorflow.git
変換がテストされたコミットをチェックアウトします。
git checkout c841508a88faa5aa1ffc7a4947c3809ea4ec1228
<omz_dir>/models/public/retinanet-tf
からkeras_to_tensorflow.patch
を適用します。
git apply keras_to_tensorflow.patch
スクリプトを実行:
python keras_to_tensorflow.py --input_model=<model_in>.h5 --output_model=<model_out>.pb
注: 変換は、keras==2.3.1、tensorflow==1.15、および h5py<3.0.0 でテストされました。
仕様¶
メトリック |
値 |
---|---|
タイプ |
物体検出 |
GFlops |
238.9469 |
MParams |
64.9706 |
ソース・フレームワーク |
TensorFlow* |
精度¶
メトリック |
値 |
---|---|
coco_precision |
33.15% |
入力¶
元のモデル¶
画像、名前: input_1
、形状: 1, 1333, 1333, 3
、形式: B, H, W, C
。
説明:
B
- バッチサイズH
- 画像の髙さW
- 画像の幅C
- チャネル数
予想される色の順序: BGR
。平均値: [103.939、116.779、123.68]
変換されたモデル¶
画像、名前: input_1
、形状: 1, 1333, 1333, 3
、形式: B, H, W, C
。
説明:
B
- バッチサイズH
- 画像の髙さW
- 画像の幅C
- チャネル数
予想される色の順序: BGR
。
出力¶
元のモデル¶
分類子、名前:
filtered_detections/map/TensorArrayStack_2/TensorArrayGatherV3
。範囲 [1, 80] の予測された境界ボックスクラスが含まれます。モデルは、80 カテゴリのオブジェクト (0 クラスは背景用) を含む Common Objects in Context (COCO) データセットでトレーニングされました。<omz_dir>/data/dataset_classes/coco_80cl_bkgr.txt
ファイルで提供されるクラス名へのマッピング。確率、名前:
filtered_detections/map/TensorArrayStack_1/TensorArrayGatherV3
。検出された境界ボックスの確率が含まれます。検出ボックス、名前:
filtered_detections/map/TensorArrayStack/TensorArrayGatherV3
。次の形式の検出ボックスの座標が含まれます:[y_min, x_min, y_max, x_max]
、ここで (x_min
,y_min
) は左上隅の座標、(x_max
,y_max
) は右下隅の座標です。座標は入力画像サイズに合わせて再スケールされます。
変換されたモデル¶
概要検出情報の配列、名前 - DetectionOutput
、形状 - 1, 1, 300, 7
形式の 1, 1, N, 7
、ここで N
は検出された境界ボックスの数です。各検出の形式は次のとおりです。
[image_id
, label
, conf
, x_min
, y_min
, x_max
, y_max
]
説明:
image_id
- バッチ内の画像の IDlabel
- 範囲 [1, 80] の予測クラス ID、<omz_dir>/data/dataset_classes/coco_80cl_bkgr.txt
ファイルで提供されるクラス名にマッピングされます。conf
- 予測されたクラスの信頼度(
x_min
,y_min
) - 境界ボックスの左上隅の座標 (座標は正規化された形式で、範囲 [0, 1])(
x_max
,y_max
) - 境界ボックスの右下隅の座標 (座標は正規化された形式で、範囲 [0, 1])
モデルをダウンロードして OpenVINO™ IR 形式に変換¶
以下の例に示すように、モデルをダウンロードし、必要に応じてモデル・ダウンローダーやその他の自動化ツールによってモデルを OpenVINO™ IR 形式に変換できます。
モデル・ダウンローダーの使用例:
omz_downloader --name <model_name>
モデル・コンバーターの使用例:
omz_converter --name <model_name>
デモの使い方¶
Open Model Zoo が提供する次のデモでこのモデルを使用して、その機能を確認できます。
法務上の注意書き¶
元のモデルは、Apache License バージョン 2.0 に基づいて配布されています。ライセンスの内容は、<omz_dir>/models/public/licenses/APACHE-2.0.txt
で確認できます。