1 简介
本文根据2021年《Weighted boxes fusion: Ensembling boxes from different object detection models》翻译总结的。
NMS、soft-NMS的方法是去除一些预测的物体box,而WBF(Weighted boxes fusion)是利用的所有box的信息进行融合。
不过WBF在融合多个模型的结果上效果好于NMS、soft-NMS,但如果只是处理单个模型,其效果没有NMS、soft-NMS的好,是因为NMS、soft-NMS在处理很多低可信度的box过滤上效果好吧。
此外WBF的运行速度慢于NMS,平均大约比NMS慢3倍吧。
non-maximum weighted (NMW)方法的思想类似WBF,但是NMW没有改变可信度得分,它使用intersection-over- union (IoU)来权重处理box。
2 NMS
在WBF(Weighted boxes fusion)之前,我们先介绍下NMS、soft-NMS。
NMS(non-maximum suppression):首先根据检测box的可信度得分排序,接着选择拥有最大可信度得分的box。其中box被认为属于某个单独物体,是要看intersection-over- union (IoU) 高于某个阈值(threshold),如0.5. 如下面图片,NMS算法只取可信度得分最高的,即只有红色的框。而实际上丢失了另外两匹马。
3 Soft-NMS
Soft-NMS:不是直接根据Iou和可信度得分去除候选box,而是会根据IoU的值按比例调整box的可信度得分。如上图,绿色的box和黄色的box有明显的重叠,就会去除绿色的。即soft-NMS算法检测出两个box,黄色和红色的。
4 Weighted Boxes Fusion
假设有N个模型。
- List B:每个模型的预测box都放到该list里,按可信度分数C降序排序。
- List L:box的簇(cluster)的集合;List F: 融合(fused)box的集合。在 list L的每一个位置包含一个box集合(也可能只有一个box),其形成一个簇(cluster)。在List F的每个位置只有一个融合box,其对应着L中的簇(cluster)。
- 循环迭代List B,尝试在F中找到一个匹配的box。如果IoU阈值超过某个值就认为找到匹配的。我们实验中阈值采用的0.55.
- 如果没匹配到(和F比较的),就将来自B的这个box添加到list L和List F的末端。接着处理B中下一个box。
- 如果匹配到(和F比较的),就将来自B的这个box添加到list L对应的位置的簇(cluster)。
- list L对应的位置的簇(cluster)重新计算list F中box的坐标和可信度得分,簇(cluster)中有T个box。公式如下:
如公式所述,拥有较大可信度得分C的box对融合(fused)box的贡献度更大。
- 当B中的所有box都处理完后,重新缩放list F中的可信度得分C。乘以簇(cluster)中box的数量T,除以模型数量T。如果一个簇(cluster)中的box数量降低,可能意味着只有很少的模型预测到它,所以我们需要降低其可信度得分。
5 实验结果
如下表,WBF只融合了两个模型EffDetB6和EffDetB7,就取得了很好的效果。
下表是融合多个模型的效果。