DeformablePSROIPooling

Versioned name: DeformablePSROIPooling-1

Category: Object detection

Short description: DeformablePSROIPooling computes position-sensitive pooling on regions of interest specified by input.

Detailed description: Reference.

DeformablePSROIPooling operation takes two or three input tensors: with feature maps, with regions of interests (box coordinates) and an optional tensor with transformation values. The box coordinates are specified as five element tuples: [batch_id, x_1, y_1, x_2, y_2] in absolute values.

Attributes

  • output_dim
    • Description: output_dim is a pooled output channel number.
    • Range of values: a positive integer
    • Type: int
    • Default value: None
    • Required: yes
  • group_size
    • Description: group_size is the number of groups to encode position-sensitive score maps.
    • Range of values: a positive integer
    • Type: int
    • Default value: 1
    • Required: no
  • spatial_scale
    • Description: spatial_scale is a multiplicative spatial scale factor to translate ROI coordinates from their input scale to the scale used when pooling.
    • Range of values: a positive floating-point number
    • Type: float
    • Default value: None
    • Required: yes
  • mode
    • Description: mode specifies mode for pooling.
    • Range of values:
      • bilinear_deformable - perform pooling with bilinear interpolation and deformable transformation
    • Type: string
    • Default value: bilinear_deformable
    • Required: no
  • spatial_bins_x
    • Description: spatial_bins_x specifies numbers of bins to divide the input feature maps over width.
    • Range of values: a positive integer
    • Type: int
    • Default value: 1
    • Required: no
  • spatial_bins_y
    • Description: spatial_bins_y specifies numbers of bins to divide the input feature maps over height.
    • Range of values: a positive integer
    • Type: int
    • Default value: 1
    • Required: no
  • trans_std
    • Description: trans_std is the value that all transformation (offset) values are multiplied with.
    • Range of values: floating point number
    • Type: float
    • Default value: 1
    • Required: no
  • part_size
    • Description: part_size is the number of parts the output tensor spatial dimensions are divided into. Basically it is the height and width of the third input with transformation values.
    • Range of values: positive integer number
    • Type: int
    • Default value: 1
    • Required: no

Inputs:

  • 1: 4D input tensor with feature maps. Required.
  • 2: 2D input tensor describing box consisting of five element tuples: [batch_id, x_1, y_1, x_2, y_2]. Required.
  • 3: 4D input blob with transformation values (offsets). Optional.

Outputs:

  • 1: 4D output tensor with areas copied and interpolated from the 1st input tensor by coordinates of boxes from the 2nd input and transformed according to values from the 3rd input.

Example

<layer ... type="DeformablePSROIPooling" ... >
<data group_size="7" mode="bilinear_deformable" no_trans="False" output_dim="8" part_size="7" pooled_height="7" pooled_width="7" spatial_bins_x="4" spatial_bins_y="4" spatial_scale="0.0625" trans_std="0.1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>392</dim>
<dim>38</dim>
<dim>63</dim>
</port>
<port id="1">
<dim>300</dim>
<dim>5</dim>
</port>
<port id="2">
<dim>300</dim>
<dim>2</dim>
<dim>7</dim>
<dim>7</dim>
</port>
</input>
<output>
<port id="3" precision="FP32">
<dim>300</dim>
<dim>8</dim>
<dim>7</dim>
<dim>7</dim>
</port>
</output>
</layer>