NMS:
假设有一张图片,输入到RPN中,RPN会输出bbox集合D,这些bbox的置信度各不相同,当然位置也各有差异,但是,总是会存在一些bbox它们的位置会有重叠,这会是得:如果直接使用RPN的输出,那么很多bbox是多余的。
此时,NMS的做法是,先取出集合D中置信度最大的bbox bmax0,将其放到集合R中,同时将D中的bmax0删除,接着寻找D中与集合R中的bbox的IOU大于设定阈值的bbox,将这些bbox从集合D中删去,接着再在D中寻找到置信度最大者bmax1,将其放入到R中,同时将D中的bmax1删除,再找到D中与bbox1的IOU大于设定阈值的bbox,将其删除…如此重复,直到D中没有bbox,而R中的bbox就是NMS的目标bbox
Soft_NMS:
假设有一张图片,输入到RPN中,RPN会输出bbox集合D,这些bbox的置信度各不相同,当然位置也各有差异,但是,总是会存在一些bbox它们的位置会有重叠,这会是得:如果直接使用RPN的输出,那么很多bbox是多余的。
此时,Soft_NMS的做法是,先取出集合D中置信度最大的bbox - bmax0,将其放到集合R中,同时将D中的bmax0删除,接着寻找D中与集合R中的bbox的IOU大于设定阈值的bbox,将这些bbox从集合D中删去,并将IOU输入到设定的函数中,得到一个值J,该值J对相应的bbox的置信度进行调整,之后将这些bbox放入到集合R中,接着再在D中寻找到置信度最大者bmax1,将其放入到R中,同时将D中的bmax1删除,再找到D中与bbox1的IOU大于设定阈值的bbox,将其置信度调整后加到R中…如此重复,直到D中没有bbox,而R中的bbox就是Soft_NMS的目标bbox
总结:NMS将重叠度高的bbox暴力删除了一部分,而Soft_NMS则是选择将其置信度降低后加到最终的输出中