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 - boxes 与 query_boxes 第一个维度不相同。
ValueError - boxes 或 query_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)