GridSample¶
Versioned name : GridSample-9
Category : Image processing
Short description : GridSample performs interpolated sampling of pixels from the input image using normalized, non-integer coordinates passed in as one of its inputs.
Detailed description : GridSample operates on a 4D input tensor representing an image. It calculates the output by selecting a location in the input image based on the values of the grid
input. The latter contains a pair of float numbers for each output element that the operator is supposed to produce. Conceptually the operator behaves like Gather or GatherND but the difference is that the pixels to be selected are denoted by pairs of floats which belong to the range [-1, 1]
. Those values have to be denormalized first (mapped to the integer coordinates of the input tensor) and then the output value is calculated according to the interpolation mode
.
Attributes
align_corners
Description : controls how the extrema values in the
grid
input tensor map to the border pixels of the input image. The value of -1 for both width and height can map either to the center of the border pixels or their left/top border. Similarily the value of 1 can also map to the center of the border pixels or their right/bottom border. Inherently this means that theGridSample
operation treats pixels as squares rather than infinitely small points.Range of values :
false
- map extrema values to the center of pixelstrue
- map extrema values to the borders of pixels
Type :
boolean
Default value : false
Required : no
mode
Description : specifies the interpolation type used to calculate the output elements
Range of values : one of:
bilinear
,bicubic
ornearest
Type :
string
Default value : bilinear
Required : no
padding_mode
Description : controls the handling of out-of-bounds coordinates. The denormalized coordinates might fall outside of the input tensor’s area(values outside the grid).
Range of values :
zeros
- consider values in the padding to be zerosborder
- the operator is supposed to select the nearest in-bounds pixelreflection
- repeatedly reflect the out-of bounds value until it points to a pixel that belongs to the image
Type :
string
Default value : zeros
Required : no
Inputs
1 :
data
- Input tensor of typeT
with data to be sampled. This input is expected to be a 4-dimensional tensor with NCHW layout. Required.2 :
grid
- A 4-dimensional tensor containing normalized sampling coordinates(pairs of floats). The shape of this tensor is[N, H_out, W_out, 2]
and the data type isT1
. Required.
Outputs
1 : A 4-dimensional tensor of type
T
with[N, C, H_out, W_out]
shape. It contains the interpolated values calculated by this operator.
Types
T : any type supported by OpenVINO.
T1 : any supported floating-point type.
Example
<layer ... type="GridSample" ...>
<data align_corners="true" mode="nearest" padding_mode="border"/>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
<dim>100</dim>
<dim>100</dim>
</port>
<port id="1">
<dim>1</dim>
<dim>10</dim>
<dim>10</dim>
<dim>2</dim>
</port>
</input>
<output>
<port id="0">
<dim>1</dim>
<dim>3</dim>
<dim>10</dim>
<dim>10</dim>
</port>
</output>
</layer>