box_clip

paddle.fluid.layers.box_clip(input, im_info, name=None)[源代码]

将检测框框剪切为 im_info 给出的大小。对于每个输入框,公式如下:

xmin = max(min(xmin, im_w - 1), 0)
ymin = max(min(ymin, im_h - 1), 0)
xmax = max(min(xmax, im_w - 1), 0)
ymax = max(min(ymax, im_h - 1), 0)

其中im_w和im_h是通过im_info计算的:

im_h = round(height / scale)
im_w = round(weight / scale)
参数:
  • input (Variable) – 维度为[N_1, N_2, ..., N_k, 4]的多维Tensor,其中最后一维为box坐标维度。数据类型为float32或float64。
  • im_info (Variable) – 维度为[N, 3]的2-D Tensor,N为输入图片个数。具有(高度height,宽度width,比例scale)图像的信息,其中高度和宽度是输入大小,比例是输入大小和原始大小的比率。数据类型为float32或float64。
  • name (str,可选) – 具体用法请参见 Name ,一般无需设置,默认值为None。

返回: 表示剪切后的检测框的Tensor或LoDTensor,数据类型为float32或float64,形状与输入检测框相同

返回类型:Variable

代码示例

import paddle.fluid as fluid
boxes = fluid.data(
    name='boxes', shape=[None, 8, 4], dtype='float32', lod_level=1)
im_info = fluid.data(name='im_info', shape=[None, 3])
out = fluid.layers.box_clip(
    input=boxes, im_info=im_info)