问题的提出
无论是基于滑动窗口
,还是基于网格YOLO
的目标检测算法,都有可能存在同一个问题:对同一个对象作出多次检测,如下图所示:
怎么才能让一个车辆被检测到一次呢?
非极大值抑制
非极大值抑制(non-max suppression)的具体做法为:
首先:
- 找到检测概率最高的边界框标记(这里为0.9),如下图,高亮标记
- 遍历剩余的所有边界框
- 抑制所有和这个概率最高的边界框交并比(IoU)最高的其它边界框
具体如下图所示:
接下来,找到剩余边界框中检测概率最高的那个边界框(此时变为0.8),再遍历所有剩余边界框,移除IoU高的边界框。
这样迭代下去,直到所有边界框都被遍历完毕。
参考
- AndrewNG的deep learning