ExperimentalDetectronDetectionOutput¶
バージョン名: ExperimentalDetectronDetectionOutput-6
カテゴリー: 物体検出
簡単な説明: ExperimentalDetectronDetectionOutput 操作は、位置とスコアの予測に関する情報を使用して非最大抑制を実行し、検出出力を生成します。
詳細な説明: 操作では次の手順が実行されます。
デルタをボックスサイズ [x 1, y 1, x 2, y 2] に適用し、次の式に従ってボックスの座標を取得します。
x1_new = ctr_x + (dx - 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w
y0_new = ctr_y + (dy - 0.5 * exp(min(d_log_h, max_delta_log_wh))) * box_h
x1_new = ctr_x + (dx + 0.5 * exp(min(d_log_w, max_delta_log_wh))) * box_w - 1.0
y1_new = ctr_y + (dy + 0.5 * exp(min(d_log_h, max_delta_log_wh))) * box_h - 1.0
box_w
とbox_h
はそれぞれボックスの幅と高さです。box_w = x1 - x0 + 1.0
box_h = y1 - y0 + 1.0
ctr_x
とctr_y
はボックスの中心位置です。ctr_x = x0 + 0.5f * box_w
ctr_y = y0 + 0.5f * box_h
dx
、dy
、d_log_w
、d_log_h
は以下の式に従って計算されたデルタであり、deltas_tensor
は 2 番目の入力です。dx = deltas_tensor[roi_idx, 4 * class_idx + 0] / deltas_weights[0]
dy = deltas_tensor[roi_idx, 4 * class_idx + 1] / deltas_weights[1]
d_log_w = deltas_tensor[roi_idx, 4 * class_idx + 2] / deltas_weights[2]
d_log_h = deltas_tensor[roi_idx, 4 * class_idx + 3] / deltas_weights[3]
class_agnostic_box_regression が
true
の場合、バックグラウンド・クラスの予測が削除されます。ボックスを画像にクリップします。
検出スコアに score_threshold を適用します。
nms_threshold を使用してクラスごとに非最大抑制を適用し、クラスごとに post_nms_count 以下の検出を返します。
検出の合計数が max_detections_per_image を超える場合は、max_detections_per_image 検出数を返します。それ以外の場合は、検出の合計数を返し、出力テンソルは残りの出力テンソル要素の未定義の値で埋められます。
属性:
-
score_threshold
説明: score_threshold 属性は、スコアがしきい値よりも大きい検出のしきい値を指定します。
値の範囲: 負でない浮動小数点数
タイプ:
float
デフォルト値: なし
必須: はい
-
nms_threshold
説明: nms_threshold 属性は、NMS ステージで使用されるしきい値を指定します。
値の範囲: 負でない浮動小数点数
タイプ:
float
デフォルト値: なし
必須: はい
-
num_classes
説明: num_classes 属性は、検出されたクラスの数を指定します。
値の範囲: 負でない整数
タイプ:
int
デフォルト値: なし
必須: はい
-
post_nms_count
説明: post_nms_count 属性は、クラスごとの検出の最大数を指定します。
値の範囲: 負でない整数
タイプ:
int
デフォルト値: なし
必須: はい
-
max_detections_per_image
説明: max_detections_per_image 属性は、画像ごとの検出の最大数を指定します。
値の範囲: 負でない整数
タイプ:
int
デフォルト値: なし
必須: はい
-
class_agnostic_box_regression
説明: class_agnostic_box_regression 属性は、バックグラウンド・クラスを削除するかを決定するフラグです。
-
値の範囲:
true
バックグラウンド・クラスを削除する必要があることを意味しますfalse
バックグラウンド・クラスを削除すべきではないことを意味します
タイプ:
boolean
デフォルト値 : false
必須: いいえ
-
max_delta_log_wh
説明: max_delta_log_wh 属性は、幅と高さの対数の最大デルタを指定します。
値の範囲: 浮動小数点数
タイプ:
float
デフォルト値: なし
必須: はい
-
deltas_weights
説明: deltas_weights 属性は、境界ボックス・サイズ・デルタの重みを指定します。
値の範囲: 負でない浮動小数点数のリスト
タイプ:
float[]
デフォルト値: なし
必須: はい
入力:
1: 入力 ROI を持つタイプ T の 2D テンソル。形状
[number_of_ROIs, 4]
で、ROI を 4 つのタプル [x 1, y 1, x 2, y 2] として提供します。1 番目、2 番目、および 3 番目の入力のバッチ次元は同じである必要があります。必須。2: 入力ボックスのデルタを提供する、形状
[number_of_ROIs, num_classes * 4]
を持つタイプ T の 2D テンソル。必須。3: 検出スコアを提供する形状
[number_of_ROIs, num_classes]
を持つタイプ T の 2D テンソル。必須。4: 形状
[1, 3]
のタイプ T の 2D テンソルには、入力画像サイズ情報を提供する 3 つの要素[image_height, image_width, scale_height_and_width]
が含まれています。必須。
出力:
1: ボックス・インデックスを提供する形状
[max_detections_per_image, 4]
を持つタイプ T の 2D テンソル。2: クラス・インデックスを提供する形状
[max_detections_per_image]
を持つタイプ T_IND の 1D テンソル。3: スコア・インデックスを提供する形状
[max_detections_per_image]
を持つタイプ T の 1D テンソル。
タイプ:
T: サポートされている浮動小数点タイプ。
T_IND:
int64
またはint32
。
例:
<layer ... type="ExperimentalDetectronDetectionOutput" version="opset6">
<data class_agnostic_box_regression="false" deltas_weights="10.0,10.0,5.0,5.0" max_delta_log_wh="4.135166645050049" max_detections_per_image="100" nms_threshold="0.5" num_classes="81" post_nms_count="2000" score_threshold="0.05000000074505806"/>
<input>
<port id="0">
<dim>1000</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>1000</dim>
<dim>324</dim>
</port>
<port id="2">
<dim>1000</dim>
<dim>81</dim>
</port>
<port id="3">
<dim>1</dim>
<dim>3</dim>
</port>
</input>
<output>
<port id="4" precision="FP32">
<dim>100</dim>
<dim>4</dim>
</port>
<port id="5" precision="I32">
<dim>100</dim>
</port>
<port id="6" precision="FP32">
<dim>100</dim>
</port>
<port id="7" precision="I32">
<dim>100</dim>
</port>
</output>
</layer>