megengine.functional.vision.nms

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

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

参数
  • boxes – 形状为 (N, 4) 的张量;表示所有会被进行 nms 的小方框;每个小方框期望的格式为 (x1, y1, x2, y2)

  • iou_thresh – IoU 重叠的阈值。

  • scores – 形状为 (N,) 的张量,表示小方块的分值。

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

返回

indices of the elements that have been kept by NMS, sorted by scores.

注解

max_output should be specified and should have valid positive value under tracing

例如:

import numpy as np
from megengine import tensor
import megengine.functional as F

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)
result = F.vision.nms(inp, scores, iou_thresh=0.7)
print(result.numpy())

输出:

[75 69]