mindspore.ops.rotated_iou

查看源文件
mindspore.ops.rotated_iou(boxes, query_boxes, trans=False, mode=0, is_cross=True, v_threshold=0.0, e_threshold=0.0)[源代码]

计算旋转矩形之间的重叠面积。

警告

这是一个实验性API,后续可能修改或删除。

说明

Ascend平台支持的输入数据类型包括bfloat16、float16、float32。

参数:
  • boxes (Tensor) - 第一组矩形,shape为 \((B, N, 5)\)

  • query_boxes (Tensor) - 第二组矩形,shape为 \((B, K, 5)\)

  • trans (bool) - 区分boxes与query_boxes中矩形表示方法。如果为 True,格式为 'xyxyt',如果为 False,格式为 'xywht'。默认为 False

  • mode (int) - 区分计算模式。如果为 1,计算方法为 'iof',如果为 0,计算方法为 'iou'。默认为 0

  • is_cross (bool) - 如果为 True,采用交叉计算,如果为 False,表示一对一计算。默认为 True

  • v_threshold (float) - 为交叉计算提供条件松弛。默认为 0.0

  • e_threshold (float) - 为交叉计算提供条件松弛。默认为 0.0

返回:

Tensor,shape为 \((B, N, K)\)

异常:
  • TypeError - boxes 不是Tensor。

  • TypeError - query_boxes 不是Tensor。

  • ValueError - boxesquery_boxes 第一个维度不相同。

  • ValueError - boxesquery_boxes 第三个维度不为 5

支持平台:

Ascend

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> a = np.random.uniform(0,1,(2,2,5)).astype(np.float16)
>>> b = np.random.uniform(0,1,(2,3,5)).astype(np.float16)
>>> box1 = Tensor(a)
>>> box2 = Tensor(b)
>>> output = ops.rotated_iou(box1, box2, trans=False, mode=0, is_cross=True)