當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python mxnet.ndarray.op.ROIPooling用法及代碼示例


用法:

mxnet.ndarray.op.ROIPooling(data=None, rois=None, pooled_size=_Null, spatial_scale=_Null, out=None, name=None, **kwargs)

參數

  • data(NDArray) - 池化算子的輸入數組,一個 4D 特征圖
  • rois(NDArray) - 邊界框坐標,[[batch_index, x1, y1, x2, y2]] 的二維數組,其中 (x1, y1) 和 (x2, y2) 是指定感興趣區域的左上角和右下角.batch_index表示輸入數組中對應圖像的索引
  • pooled_size(Shape(tuple), required) - ROI 池化輸出形狀 (h,w)
  • spatial_scale(float, required) - 輸入特征圖高度(或 w)與原始圖像高度(或 w)的比率。等於卷積層中總步幅的倒數
  • out(NDArray, optional) - 輸出 NDArray 來保存結果。

返回

out- 此函數的輸出。

返回類型

NDArray 或 NDArray 列表

對輸入數組執行感興趣區域 (ROI) 池化。

ROI 池化是最大池化層的變體,其中輸出大小是固定的,感興趣區域是一個參數。其目的是對大小不均勻的輸入進行最大池化,以獲得固定大小的特征圖。 ROI pooling 是一個neural-net 層,主要用於訓練Fast R-CNN 網絡以進行對象檢測。

該算子將 4D 特征圖作為輸入數組,將區域建議作為 rois ,然後匯集 sub-regions 的輸入並生成 fixed-sized 輸出數組,而不考慮 ROI 大小。

要相應地裁剪特征圖,您可以通過更改參數 roisspatial_scale 來調整邊界框坐標的大小。

裁剪後的特征圖通過標準最大池化操作池化到由pooled_size 參數指示的固定大小的輸出。 batch_size 將更改為 ROIPooling 之後的區域邊界框數。

每個感興趣區域的大小不必完全被池化部分的數量(pooled_size)整除。

例子:

x = [[[[  0.,   1.,   2.,   3.,   4.,   5.],
       [  6.,   7.,   8.,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  15.,  16.,  17.],
       [ 18.,  19.,  20.,  21.,  22.,  23.],
       [ 24.,  25.,  26.,  27.,  28.,  29.],
       [ 30.,  31.,  32.,  33.,  34.,  35.],
       [ 36.,  37.,  38.,  39.,  40.,  41.],
       [ 42.,  43.,  44.,  45.,  46.,  47.]]]]

// region of interest i.e. bounding box coordinates.
y = [[0,0,0,4,4]]

// returns array of shape (2,2) according to the given roi with max pooling.
ROIPooling(x, y, (2,2), 1.0) = [[[[ 14.,  16.],
                                  [ 26.,  28.]]]]

// region of interest is changed due to the change in `spacial_scale` parameter.
ROIPooling(x, y, (2,2), 0.7) = [[[[  7.,   9.],
                                  [ 19.,  21.]]]]

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.ndarray.op.ROIPooling。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。