mindspore.ops.BoundingBoxDecode

class mindspore.ops.BoundingBoxDecode(max_shape, means=(0.0, 0.0, 0.0, 0.0), stds=(1.0, 1.0, 1.0, 1.0), wh_ratio_clip=0.016)[源代码]

解码边界框位置信息。

算子的功能是计算偏移量,此算子将偏移量转换为Bbox,用于在后续图像中标记目标等。

参数:
  • max_shape (tuple) - 解码框计算的上限值。

  • means (tuple) - 计算 deltas 的均值。默认值:(0.0, 0.0, 0.0, 0.0)

  • stds (tuple) - 计算 deltas 的标准差。默认值: (1.0, 1.0, 1.0, 1.0)

  • wh_ratio_clip (float) - 解码框计算的宽高比限制。默认值: 0.016

输入:
  • anchor_box (Tensor) - 锚框。锚框的shape必须为 \((n, 4)\)

  • deltas (Tensor) - 框的增量。它的shape与 anchor_box 相同。

输出:

Tensor,解码框。它的数据类型和shape与 anchor_box 相同。

异常:
  • TypeError - 如果 meansstdsmax_shape 不是tuple。

  • TypeError - 如果 wh_ratio_clip 不是float。

  • TypeError - 如果 anchor_boxdeltas 不是Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, ops
>>> anchor_box = Tensor([[4, 1, 2, 1], [2, 2, 2, 3]], mindspore.float32)
>>> deltas = Tensor([[3, 1, 2, 2], [1, 2, 1, 4]], mindspore.float32)
>>> boundingbox_decode = ops.BoundingBoxDecode(means=(0.0, 0.0, 0.0, 0.0), stds=(1.0, 1.0, 1.0, 1.0),
...                                          max_shape=(768, 1280), wh_ratio_clip=0.016)
>>> output = boundingbox_decode(anchor_box, deltas)
>>> print(output)
[[ 4.194528  0.         0.         5.194528]
 [ 2.1408591   0.         3.8591409  60.598152  ]]