如何使我的非最大抑制实现更快?

时间:2019-11-18 13:39:28

标签: python algorithm deep-learning computer-vision

我已按照以下方式实施NMS并遇到了运行时问题。该算法在最坏情况下的时间复杂度为O(N^2)

有没有办法更快地做到这一点?我有100,000-200,000个呼叫的数据帧

def NMS(df,K=0.6):
    all_boxes = []
    for _,row in df.iterrows():
        all_boxes.append(Box(row.x1,row.y1,row.x2,row.y2,row.probability))
    all_boxes.sort(key=lambda x: x.prob, reverse=True)
    N=len(all_boxes)
    B=[i for i in range(N)]
    D=[]
    while len(B)>0:
        highest_box_idx = B.pop(0)
        highest_box     = all_boxes[highest_box_idx]
        D.append(highest_box_idx)
        for b_idx in B:
            other_box = all_boxes[b_idx]
            if highest_box.IoU(other_box)>K:
                B.remove(b_idx)
    return df.iloc[D,:]

1 个答案:

答案 0 :(得分:0)

您可以使用Malisiewicz et al. method

我在寻求recognize Zombies

的过程中读到了有关内容

让我们知道如何为您解决问题!

计算机视觉令人震惊!在上面记笔记。