• [读论文]Weighted Boxes Fusion 代替NMS的result ensemble


    arxiv链接

    0x01 从NMS到Soft-NMS

    在detection中,通常为了避免prediction boxes的重合会使用非极大值抑制的方法筛选候选框,最简单的做法是将bounding box的Confidence排序后依次从C最大的box与其他计算IOU,设置一个固定的阈值,IOU超过阈值的bbox则被删除,将所有bbox遍历一次后得到最终的结果;这样的做法对有些模型来说会降低Recall,因此为了改进这个情况提出了Soft-NMS,即不直接删除掉IOU过高的候选框,而是降低IOU过高的框的C,再进行计算,如果置信度过低再将之剔除。

    0x02 TTA & model ensembling

    在后处理的方法上,除了NMS用的比较多的还有TTA(Test-Time Augmentation),将原图和增强后的图片都输入到model然后将结果平均。以分类为例来说,做模型融合是一个非常显而易见的问题:我可以训练a~c三个(或更多)模型,并将分类结果的概率求均值即可得到ensemble model的result。

    0x03 WBF

    wbf的提出我觉得还是比较自然的,直接像NMS一样把prediction丢掉(也许)会损失一部分信息,因此如何高效利用model的输出也是提高score的一环也是说得通的。原文写的是

    However, both NMS and soft-NMS discard redundant boxes, and thus can not produce averaged localization predictions from different models effectively.

    Both NMS and soft-NMS exclude some boxes, while WBF uses all boxes. Thus, it can fix cases where all boxes are predicted inaccurately by all models.

    wbf的算法流程如下:

    1. 将每个bbox添加到一个空的list(B),并按Confidence排序.

    2. 创建两个新的列表L和F分别用于存放bbox的聚类结果和融合后的bbox,其中L的组织形式如下L=[[box1, box2], [box3,box4,box5]...],每个子list包含的是一个boxes集合(应该就是相近的用于融合的bboxes),F的组织形式如下F=[box1, box2, box3...],代表L中每一个子集的融合结果。

    3. 对每个在B中的box与F中的结果进行matching,计算IOU, 并根据阈值判断matching结果(论文中写的是他们用的THR=0.55)。

    4. 对B中的元素,如果没在F中找到IOU大于阈值的结果,则将B目前的box添加到F和L中,并进行下一次迭代.

    5. 如果找到了对应的matching,将B当前的box添加到L中对应F中matching位置的前方.

    6. 使用L中每个子集对F中的box重新计算坐标和Confidence

    7. 对B中所有box计算完后,还需要重新整理下F中的Confidence,具体做法是将C乘cluster中box个数再除以模型的个数(这里不说我差点忘了是model ensemble了= =)这样做的原因是如果一个类的box少意味着比较少的模型预测出了这个结果,因此它可能是不可信的,所以需要降低对应的C。

    0x04 NMW

    Non-Maximum Weighted(NMW)和wbf有点类似,但是它的结果并没有改变box的confidence,而是使用IOU去作为boxes的权重,与NMS的思路差不多,将C最大的暂时作为gt,然后将融合后的box作为gt和后面的比,迭代了属于是,多的不表了。

    0x05 实验结果

    对ensemble model效果明显好于NMS、SoftNMS。

    • 不同模型ensemble

    COCO

    Open Image

    • 相同模型不同backbone ensemble

    在single model下使用Retinanet(Res152)反而不如直接使用NMS。

    作者对此给出的解释是单个模型可能会给出过多错误的预测框导致WBF之后错误累积了

    0x10086 拾遗

    • 迭代中融合box的Confidence居然也是对子集类中的boxes求平均。。。但融合box的坐标是有权重的,根据Confidence来的,因此C高的会contribute更多,河里。
      Set the confidence score for the fused box as the average confidence of all boxes that form it

    • 在discussion最后作者也说了现在使用WBF的速度大概是NMS的三倍。刷刷分还行,实际应用场景估计不指望了。

    • 感觉实验做出来结果反过来推可能的原理都挺形而上的。。

    • code available here: github仓库3D目标检测

  • 相关阅读:
    【sqli-labs】 less52 GET -Blind based -Order By Clause -numeric -Stacked injection(GET型基于盲注的整型Order By从句堆叠注入)
    【sqli-labs】 less51 GET -Error based -Order By Clause -String -Stacked injection(GET型基于错误的字符型Order By从句堆叠注入)
    How to create a site with AJAX enabled in MVC framework.
    ASP.NET AJAX web chat application
    Asp.Net MVC4入门指南(1): 入门介绍
    跟我一起学习ASP.NET 4.5 MVC4.0 (转)
    VisualStudio2012轻松把JSON数据转换到POCO的代码(转)
    博客园自定义地址栏logo
    博客园侧边栏修改随笔分类为3D样式
    license.json
  • 原文地址:https://www.cnblogs.com/Valeyw/p/15176606.html
Copyright © 2020-2023  润新知