mindspore.ops.check_valid

查看源文件
mindspore.ops.check_valid(bboxes, img_metas)[源代码]

检查边界框是否在图片内。

bboxes 里包含了多组边界框,每一组边界框用两个横坐标点 (x0,x1) 和两个纵坐标点 (y0,y1) 表示。 img_metas 提供了原始图片的信息,包含 (height,width,ratio) 三个参数,用于指定图片的有效边界。 当满足:

x0>=0

y0>=0

x1<=widthratio1

y1<=heightratio1

时,认为边界框在图片内。

警告

bboxes 指定的边界框和由 img_metas 指定的图片信息需要是有效的,即: x0<=x1y0<=y1img_metas 中的信息 (height,width,ratio) 均为正数。

参数:
  • bboxes (Tensor) - shape大小为 (N,4)N 表示边界框的数量, 4 表示 (x0,y0,x1,y1) 四个坐标点。数据类型必须是float16或float32。

  • img_metas (Tensor) - 原始图片的信息 (height,width,ratio) ,指定有效边界为 (heightratio1,widthratio1) 。数据类型必须是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 numpy as np
>>> from mindspore import Tensor, ops
>>> bboxes = Tensor(np.linspace(0, 6, 12).reshape(3, 4), mindspore.float32)
>>> img_metas = Tensor(np.array([2, 1, 3]), mindspore.float32)
>>> output = ops.check_valid(bboxes, img_metas)
>>> print(output)
[ True False False]