ROIPooling

バージョン名: ROIPooling-1

カテゴリー: 物体検出

簡単な説明:: ROIPooling は、不均一な入力サイズの特徴マップ上で使用されるプーリングレイヤーであり、固定サイズの特徴マップを出力します。

詳細説明:

ROIPooling は、入力特徴マップに対して関心領域 (ROI) ごとに次の操作を実行します。

  1. method 属性に基づいて、入力特徴マップサイズに相対的なボックス座標を生成します。

  2. ボックスの高さと幅を計算します。

  3. プールされた size 属性 [pooled_h, pooled_w] に従ってボックスをビンに分割します。

  4. method 属性に基づいてビンごとに最大または双線形 (bilinear) 内挿プーリングを適用して、出力特徴マップ要素を生成します。

ボックスの高さと幅は、method 属性に基づいて異なる表現になります。

  • max: 相対座標で表現します。ボックスの高さと幅は次の方法で計算されます: roi_width = max(spatial_scale * (x_2 - x_1), 1.0)roi_height = max(spatial_scale * (y_2 - y_1), 1.0) したがって、不正なボックスはサイズ 1 x 1 のボックスとして表現されます。

  • bilinear: 絶対座標で表され、[0, 1] 間隔に正規化されます。ボックスの高さと幅は次の方法で計算されます: roi_width = (W - 1)  * (x_2 - x_1)roi_height = (H - 1) * (y_2 - y_1)

属性:

  • pooled_h

    • 説明: pooled_h は、ROI 出力特徴マップの高さです。例えば、pooled_h が 6 に等しい場合、ROIPooling の出力の高さが 6 であることを意味します。

    • 値の範囲: 負ではない整数

    • タイプ: int

    • 必須: はい

  • pooled_w

    • 説明: pooled_w は、ROI 出力特徴マップの幅です。例えば、pooled_w が 6 に等しい場合、ROIPooling の出力の幅が 6 であることを意味します。

    • 値の範囲: 負ではない整数

    • タイプ: int

    • 必須: はい

  • spatial_scale

    • 説明: spatial_scale は、入力画像サイズに対する入力特徴マップの比率です。

    • 値の範囲: 正の浮動小数点数

    • タイプ: float

    • 必須: はい

  • method

    • 説明: method はプーリングを実行する方法を指定します。メソッドが bilinear の場合、入力ボックスの座標は [0, 1] 間隔に正規化されます。

    • 値の範囲: max または bilinear

    • タイプ: 文字列

    • デフォルト値 : max

    • 必須: いいえ

入力:

  • 1: T タイプの特徴マップを持つ形状 [N, C, H, W] の 4D 入力テンソル。必須。

  • 2: タイプ T の 5 つの要素タプルから構成される関心領域ボックスを記述する形状 [NUM_ROIS, 5] の 2D 入力テンソル: [batch_id, x_1, y_1, x_2, y_2]必須。

バッチ・インデックスは [0, N-1] の範囲内にある必要があります。

出力:

  • 1: タイプ T の特徴マップを持つ形状 [NUM_ROIS, C, pooled_h, pooled_w] の 4D 出力テンソル。

タイプ:

  • T: サポートされている浮動小数点タイプ。

例:

<layer ... type="ROIPooling" ... >
        <data pooled_h="6" pooled_w="6" spatial_scale="0.062500"/>
        <input> ... </input>
        <output> ... </output>
    </layer>