roi_perspective_transform¶
- paddle.fluid.layers. roi_perspective_transform ( input, rois, transformed_height, transformed_width, spatial_scale=1.0 ) [源代码] ¶
该OP对RoI区域做透视变换,将不规则的RoI区域变成固定大小的矩形区域,透视变换是线性代数里面的一种基础变换。
参数¶
input (Variable) - 输入特征图,4-D Tensor,格式为NCHW。N是batch_size,C是输入通道数,H是特征图高度,W是特征图宽度。数据类型是float32
rois (Variable) - 感兴趣区域,2D-LoDTensor,形状是(num_rois,8),lod_level为1。其数据形式是[[x1,y1,x2,y2,x3,y3,x4,y4], ...],其中(x1,y1)是左上角坐标,(x2,y2)是右上角坐标,(x3,y3)是右下角坐标,(x4,y4)是左下角坐标。数据类型与
input
相同transformed_height (int) - 输出的高度
transformed_width (int) – 输出的宽度
spatial_scale (float,可选) - 空间尺度因子,用于缩放ROI坐标,浮点数。默认值1.0
返回¶
由三个变量构成的元组 (out, mask, transform_matrix) -
out
:ROIPerspectiveTransformOp
的输出,4D-LoDTensor,形状是(num_rois,channels,transformed_height,transformed_width),lod_level为1 -mask
:ROIPerspectiveTransformOp
的掩码,4D-LoDTensor,形状是(num_rois,1,transformed_height,transformed_width),lod_level为1 -transform_matrix
:ROIPerspectiveTransformOp
的转换矩阵,2D-LoDTensor,形状是(num_rois,9),lod_level为1
返回类型¶
元组
代码示例¶
import paddle.fluid as fluid
x = fluid.data(name='x', shape=[100, 256, 28, 28], dtype='float32')
rois = fluid.data(name='rois', shape=[None, 8], lod_level=1, dtype='float32')
out, mask, transform_matrix = fluid.layers.roi_perspective_transform(x, rois, 7, 7, 1.0)