https://zhuanlan.zhihu.com/p/64423753
https://blog.csdn.net/xiexu911/article/details/80609298?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
在网上看到许多关于非极大值抑制的讲解,大部分都是如下的说法:
先对每个框的score进行排序,首先选择第一个,也就是score最高的框,它一定是我们要保留的框。然后拿它和剩下的框进行比较,如果IOU大于一定阈值,说明两者重合度高,应该去掉,这样筛选出的框就是和第一个框重合度低的框,第一次迭代结束。第二次从保留的框中选出score第一的框,重复上述过程直到没有框保留了。
但是说实话,只看这段话有点难以理解整个的原理,下面通过一个例子来说明原理会更加直观:
(1)对图片中框的score进行排序:0.98>0.83>0.81>0.75>0.67,首先选择score最高的框0.98,保留它。
(2)保留的框为红色框,然后拿它和剩下的框进行比较,如果IOU大于一定阈值,说明两者重合度高,应该去掉,可以发现score为0.83和0.75的框和红色框的重合度很高,所以去掉,剩下保留框的就是score为0.81和0.67的框,然后再从中选出分数最高的框0.81,发现0.67的框和它重合度很高,所以去掉。
(3)最后剩下的框就是0.98,0.81,非极大值抑制过程结束。