Advertisement

Python代码实现NMS算法

阅读量:

NMS

NMS非极大值抑制,目标:消除多余的框,只保留最佳物体检测的位置

步骤:

  1. 按照置信度值对所有目标框进行排序。
  2. 确定具有最高置信度的目标框记为B_{max}
  3. 逐一计算每个目标框与当前目标框之间的重叠区域。
  4. 若计算出的目标区域覆盖面积超过预先设定的标准,则移除该目标框。
  5. 继续按照置信度值重新排列剩余未处理的目标框。
  6. 依次循环以上步骤直至所有目标均被处理完毕。

检测模型的输出为:(batch_size, all_boxes, 4+1+num_classes)

该模型的输出结果包括 batch\_size, x,y,w,h ,其中物体存在的概率以及各个类别(从类别1到类别n)的概率。

对于SSD输出的信息具体为: batch_size, x,y,w,h, 背景存在的概率 ,各分类别(从1到n)出现的概率

实现NMS

复制代码
    '''对于yolo的nms代码'''
    
    def nms(boxes, num_classes, conf_thres=0.5, nms_thres=0.4):
     #boxes: 检测的boxes及scores,维度(batch_size, all_boxes, 4+1+num_classes)
     #num_classes: 类别的数量

全部评论 (0)

还没有任何评论哟~