ROIAlign#

バージョン名: ROIAlign-9

カテゴリー: 物体検出

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

詳細な説明: リファレンス

ROIAlign は、各入力特徴マップの関心領域 (ROI) ごとに以下を実行します:

  1. ボックス座標に spatial_scale を乗算して、aligned_mode 属性に基づいて入力特徴マップサイズを基準にしたボックス座標を生成します。

  2. ボックスを sampling_ratio 属性に従ってビンに分割します。

  3. 各ビンに 4 つのポイントで双線形内挿を適用し、mode 属性に基づいて最大または平均プーリングにより出力特徴マップ要素を生成します。

属性

  • pooled_h

    • 説明: pooled_h は、ROI 出力特徴マップの高さです。

    • 値の範囲: 正の整数

    • タイプ: int

    • 必須: はい

  • pooled_w

    • 説明: pooled_w は、ROI 出力特徴マップの幅です。

    • 値の範囲: 正の整数

    • タイプ: int

    • 必須: はい

  • sampling_ratio

    • 説明: sampling_ratio は、各出力特徴マップ要素の計算に使用する高さと幅のビンの数です。値が 0 に等しい場合は、高さと幅に対して適応要素数を使用します: それぞれ ceil(roi_height / pooled_h)ceil(roi_width / pooled_w) です。

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

    • タイプ: int

    • 必須: はい

  • spatial_scale

    • 説明: spatial_scale は、ROI 座標を入力空間スケールからプールする際に使用されるスケールに変換する乗算空間スケール係数です。

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

    • タイプ: float

    • 必須: はい

  • mode

    • 説明: mode は、出力特徴マップ要素を生成するためにプーリングを実行する方法を指定します。

    • 値の範囲:

      • max - 最大プーリング

      • avg - 平均プーリング

    • タイプ: 文字列

    • 必須: はい

  • aligned_mode

    • 説明: aligned_mode は、元のテンソルの座標をサイズ変更されたテンソルに変換する方法を指定します。

    • 値の範囲: 文字列形式の変換モードの名前 (ここでは、spatial_scale は resize_shape[x] /original_shape[x]、resize_shape[x] は x 軸のサイズ変更されたテンソルの形状、original_shape[x] は x 軸の元のテンソルの形状、および x_original は、入力軸からの任意の軸 x の軸 x の座標です):

      • asymmetric - サイズ変更されたテンソル軸 x の座標は、式 x_original * spatial_scale に従って計算されます。

      • half_pixel_for_nn - サイズ変更されたテンソル軸 x の座標は、x_original * spatial_scale - 0.5 です。

      • half_pixel - サイズ変更されたテンソル軸 x の座標は、((x_original + 0.5) * spatial_scale) - 0.5 として計算されます。

    • タイプ: 文字列

    • デフォルト値: asymmetric

    • 必須: いいえ

入力:

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

  • 2: 4 つの要素タプルから構成される関心領域ボックスを記述する形状 [NUM_ROIS, 4] の 2D 入力テンソル: [x_1, y_1, x_2, y_2] はタイプ T の相対座標です。ボックスの高さと幅は次のように計算されます:

    • aligned_modeasymmetric の場合: 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 のボックスとして表現されます。

    • それ以外の場合: roi_width = spatial_scale * (x_2 - x_1)roi_height = spatial_scale * (y_2 - y_1)

    • 必須。

  • 3: IND_T タイプのバッチ・インデックスを持つ形状 [NUM_ROIS] の 1D 入力テンソル。必須。

出力:

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

タイプ

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

  • IND_T: サポートされている整数タイプ。

<layer ... type="ROIAlign"...> 
    <data pooled_h="6" pooled_w="6" spatial_scale="16.0" sampling_ratio="2" mode="avg" aligned_mode="half_pixel"/> 
    <input> 
        <port id="0"> 
            <dim>7</dim> 
            <dim>256</dim> 
            <dim>200</dim> 
            <dim>200</dim> 
        </port> 
        <port id="1"> 
            <dim>1000</dim> 
            <dim>4</dim> 
        </port> 
        <port id="2"> 
            <dim>1000</dim> 
        </port> 
    </input> 
    <output> 
        <port id="3" precision="FP32"> 
            <dim>1000</dim> 
            <dim>256</dim> 
            <dim>6</dim> 
            <dim>6</dim> 
        </port> 
    </output> 
</layer>