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
gridinput 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 theGridSampleoperation 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 :
booleanDefault value : false
Required : no
mode
Description : specifies the interpolation type used to calculate the output elements
Range of values : one of:
bilinear,bicubicornearestType :
stringDefault 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 :
stringDefault value : zeros
Required : no
Inputs
1 :
data- Input tensor of typeTwith 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
Twith[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>