megengine.functional.nn.nms

nms(boxes, scores, iou_thresh, max_output=None)[源代码]

根据小方框的 IoU 值进行 非最大值抑制(NMS)。

参数
  • boxes (Tensor) – 形状为 (N, 4) 的张量;需要进行 nms 的小方框;每个小方框应该用 (x1, y1, x2, y2) 表示。

  • iou_thresh (float) – IoU 重叠的阈值。

  • scores (Tensor) – 形状为 (N,) 的张量,小方框的分数

  • max_output (Optional[int]) – 将要保留的小方框的最大数目;如果这个算子未被追溯则此参数是可选的,否则必须指定;如果未被指定,所有的小方框都会被保留。

返回类型

Tensor

返回

按scores排序的NMS保留的元素的指数。

注解

应该保留max_output并且跟踪有效正值。

实际案例

>>> import numpy as np
>>> x = np.zeros((100,4))
>>> np.random.seed(42)
>>> x[:,:2] = np.random.rand(100,2)*20
>>> x[:,2:] = np.random.rand(100,2)*20 + 100
>>> scores = Tensor(np.random.rand(100))
>>> inp = Tensor(x)
>>> F.vision.nms(inp, scores, iou_thresh=0.7)
Tensor([75 69], dtype=int32, device=xpux:0)