mindspore.ops.iou
- mindspore.ops.iou(anchor_boxes, gt_boxes, mode='iou')[源代码]
计算矩形的IOU,即真实区域和预测区域的交并比。
根据真实区域和预测区域计算IOU(intersection over union)或IOF(intersection over foreground)。
警告
在Ascend中,仅支持计算float16数据。为避免溢出,输入长度和宽度在内部按0.2缩放。
- 参数:
anchor_boxes (Tensor) - 预测区域,shape为
的Tensor。 表示预测区域的数量, 表示预测区域的四个边界坐标"x0"、"y0"、"x1"和"y1"。数据类型为float16、float32或float64。gt_boxes (Tensor) - 真实区域,shape为
的Tensor。 表示地面真实区域的数量, 表示真实区域的四个边界坐标"x0"、"y0"、"x1"和"y1"。数据类型为float16、float32或float64。mode (str) - 指定计算方法,现支持
'iou'
(intersection over union)或'iof'
(intersection over foreground)模式。默认值:'iou'
。
- 返回:
Tensor,IOU/IOF的计算结果,shape为
的Tensor,数据类型与 anchor_boxes 的相同。- 异常:
KeyError - mode 不是
'iou'
或'iof'
。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> anchor_boxes = Tensor(np.random.randint(1.0, 5.0, [3, 4]), mindspore.float16) >>> gt_boxes = Tensor(np.random.randint(1.0, 5.0, [3, 4]), mindspore.float16) >>> mode = 'iou' >>> output = ops.iou(anchor_boxes, gt_boxes, mode) >>> print(output.shape) (3, 3)