mindspore.ops.CheckValid

class mindspore.ops.CheckValid[源代码]

检查边界框。

检查由 bboxes 指定的一些边框是否是有效的。 如果边框在由 img_metas 确定的边界内部则返回True,否则返回False。

输入:
  • bboxes (Tensor) - shape大小为 \((N, 4)\)\(N\) 表示边界框的数量, 4 表示 x0y0x1y1 。数据类型必须是float16或float32。

  • img_metas (Tensor) - 原始图片的信息 \((长度, 宽度, 比率)\) ,指定有效边界为 \((长度 * 比率, 宽度 * 比率)\) 。数据类型必须是float16或float32。

输出:

Tensor,shape为 \((N,)\) ,类型为bool,指出边界框是否在图片内。 True 表示在, False 表示不在。

异常:
  • TypeError - 如果 bboxes 或者 img_metas 不是Tensor。

  • TypeError - 如果 bboxes 或者 img_metas 的数据类型既不是float16,也不是float32。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import mindspore.nn as nn
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> class Net(nn.Cell):
...     def __init__(self):
...         super(Net, self).__init__()
...         self.check_valid = ops.CheckValid()
...     def construct(self, x, y):
...         valid_result = self.check_valid(x, y)
...         return valid_result
...
>>> bboxes = Tensor(np.linspace(0, 6, 12).reshape(3, 4), mindspore.float32)
>>> img_metas = Tensor(np.array([2, 1, 3]), mindspore.float32)
>>> net = Net()
>>> output = net(bboxes, img_metas)
>>> print(output)
[ True False False]