各种非极大抑制(nms)处理候选框

2023-12-26 09:34:47

1.非极大抑制的算法原理

非极大值抑制(Non-maximum supression)简称NMS,其作用是去除冗余的检测框,去冗余手段是剔除与极大值重叠较多的检测框结果

常规使用的多类别NMS的算法原理:

step1:先将所有的边界框按照类别进行区分;

step2:把每个类别中的边界框,按照置信度从高到低进行降序排列;

step3:选择某类别所有边界框中置信度最高的边界框bbox1,然后从该类别的所有边界框列表中将该置信度最高的边界框bbox1移除并同时添加到输出列表中;

step4:依次计算该bbox1和该类别边界框列表中剩余的bbox计算IOU;

step5:将IOU与NMS预设阈值Thre进行比较,若某bbox与bbox1的IOU大于Thre,即视为bbox1的“邻域”,则在该类别边界框列表中移除该bbox,即去除冗余边界框;

step6:重复step3~step5,直至该类别的所有边界框列表为空,此时即为完成了一个物体类别的遍历;

step7:重复step2~step6,依次完成所有物体类别的NMS后处理过程;

step8:输出列表即为想要输出的检测框,NMS流程结束。

2.代码实现(python原理实现)

单类别的NMS代码:

boxes, clascores = self.nms(outputs[0].squeeze(), outputs[1].squeeze(), scoreThresh=0.6,

文章来源:https://blog.csdn.net/qq_22764813/article/details/135212886
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。