前一段时间看过一次NMS,但是也只是含含糊糊的,理解的不是很到位。最近在做一个东西的时候必须要用到NMS,因此重新仔细的看了一遍NMS。那么我将从三个方面阐述对于NMS的一些理解。
1.什么是NMS?
NMS的中文意思就是非极大值抑制。故名思意就是抑制不是极大值的一些值,在概念这块的理解来说,它不是一个最大值而是一个局部最大值。那对于目标检测来说的话,就是要删除一些不是极大框的目标区域。
2.为什么要用NMS?
在做目标检测的时候,往往会生成很多很多候选框,不管是在R-CNN中还是在Faster R-CNN中都会出现这种问题,那么生成很多候选框或者是重叠的或者是两个框的IOU值特别大,这个时候我们就需要对这些候选框做一些处理。因此我们选择使用NMS算法。下图所示,左边是没有经过NMS处理过的,右边是经过NMS处理过的。
3.NMS算法的具体流程处理
1.对某一类按score对候选框进行排序,并选出score最高的候选框,我们称之为Max_s
2.设定一个阈值,称这个阈值为Th。
3.计算其他候选框与Max_s的IOU值,如果大于IOU>Th,则表明与Max_s重叠太多应该删去;如果IOU<Th&