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为1mask
:ROIPerspectiveTransformOp
的掩码,4D-LoDTensor,形状是(num_rois,1,transformed_height,transformed_width),lod_level为1transform_matrix
:ROIPerspectiveTransformOp
的转换矩阵,2D-LoDTensor,形状是(num_rois,9),lod_level为1
返回类型: 元组
代码示例:
- import paddle.fluid as fluid
- x = fluid.layers.data(name='x', shape=[256, 28, 28], dtype='float32')
- rois = fluid.layers.data(name='rois', shape=[8], lod_level=1, dtype='float32')
- out, mask, transform_matrix = fluid.layers.roi_perspective_transform(x, rois, 7, 7, 1.0)