mindspore.ops.iou
- mindspore.ops.iou(anchor_boxes, gt_boxes, mode='iou')[source]
Calculates intersection over union for boxes.
Computes the intersection over union (IOU) or the intersection over foreground (IOF) based on the ground-truth and predicted regions.
\[ \begin{align}\begin{aligned}\text{IOU} = \frac{\text{Area of Overlap}}{\text{Area of Union}}\\\text{IOF} = \frac{\text{Area of Overlap}}{\text{Area of Ground Truth}}\end{aligned}\end{align} \]Warning
In Ascend, only computation of float16 data is supported. To avoid overflow, the input length and width are scaled by 0.2 internally.
- Parameters
anchor_boxes (Tensor) – Anchor boxes, tensor of shape \((N, 4)\) . \(N\) indicates the number of anchor boxes, and the value \(4\) refers to four boundary coordinates of the predicted area "x0", "y0", "x1", and "y1". Data type must be either float16, float32 or float64.
gt_boxes (Tensor) – Ground truth boxes, tensor of shape \((M, 4)\) . \(M\) indicates the number of ground truth boxes, and the value \(4\) refers to four boundary coordinates of the truth area "x0", "y0", "x1", and "y1". Data type must be either float16, float32 or float64.
mode (string) – The mode is used to specify the calculation method, now supporting 'iou' (intersection over union) or 'iof' (intersection over foreground) mode. Default:
'iou'
.
- Returns
Tensor, the IOU/IOF values, tensor of shape \((M, N)\) , with the same data type as anchor_boxes.
- Raises
KeyError – When mode is not
'iou'
or'iof'
.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> 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)