Weighted Boxes Fusion 是2019年cvpr的一篇文章,文章非常之短(只有三页不到),并且对bounding box 的融合又非常有效的方法。
原文链接:https://arxiv.org/pdf/1910.13302.pdf
源码https://github.com/ZFTurbo/Weighted-Boxes-Fusion
下面是WBF的算法步骤:
- 每个模型的每个预测框都添加到List B,并将此列表按置信度得分C降序排列
- 建立空List L 和 F(用于融合的)
- 循环遍历B,并在F中找到于之匹配的box(同一类别MIOU > 0.55)
- 如果 step3 中没有找到匹配的box 就将这个框加到L和F的尾部
- 如果 step3 中找到了匹配的box 就将这个框加到L,加入的位置是box在F中匹配框的Index. L中每个位置可能有多个框,需要根据这多个框更新对应F[index]的值。
上图为F[index]更新方法,x,y对应的是坐标值,对坐标值根据置信值进行加权求和。 - 遍历完成后对F中的元素再进行一次置信值的调整,下图为调整的方法
这样调整的原因是减少某些box只被少数模型预测到的置信值。
实验对比了其他几种目标框融合的方法:
WBF 的一些缺陷:
- 速度慢,大概比标准NMS慢3倍
- WBF实验中是在已经完成NMS的模型上进行的