多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models

论文地址:链接
代码地址:链接

一、相关介绍

NMS在单个模型的的边界框过滤中表现还是不错的,但是对于多个模型的,NMS只是进行边界框的选择,去除部分预测,无法有效生成组合了多个模型的预测的平均坐标。

NMS

一个模型在图片检测中的预测包括边界框,分类标签以及其相依的置信度。在NMS方法中,如果边界框交际过大,或者重合就会被认为是同一单个目标,因此IoU的阈值会直接影响边界最后过滤的质量,也会影响最后模型的表现。阈值的选择也会存在一定的技巧,不同的任务可能设置的阈值时不同的。比如下面这个图,如果阈值设为0.5,那最后只会输出一个边界框。
在这里插入图片描述

Soft-NMS

Soft-NMS的提出就会减少以上的问题。避免完全去除高置信度和高IoU的检测proposal,会减少和IoU值成正比的置信度值。即Soft-NMS会按比例降低重叠的边界框的置信度得分,就上图而言,绿色和黄色重叠很大,最终会被去除。

虽然有相较于NMS确实有提升,但都放弃的冗余边界框,因此无法从多个模型中有效生成平均坐标预测。

二、Weighted Boxes Fusion

主要介绍这种新颖的边界框融合方法:WBF。假设使用N个不同模型对相同的图片进行边界框预测,或者说是对于相同的模型,对于相同的图片和增强后的图片预测量了N次(类似于TTA)。

然后算法如下操作:

  1. 将每个模型的每个预测边界框加入到一个单独的列表

    B

    \mathbf B

    B中,按照置信度

    C

    \mathbf C

    C进行递减排序。

  2. 分别为边界框簇和融合后的边界框分别声明空列表

    L

    \mathbf L

    L

    F

    \mathbf F

    F。列表

    L

    \mathbf L

    L中的每个位置,可以包含一个边界框或者一个边界框集合,形成一个簇。

    F

    \mathbf F

    F中每个位置只包含一个边界框,从相应的

    L

    \mathbf L

    L中的簇中融合出来的边界框。公式稍后介绍。

  3. 在一个循环中迭代

    B

    \mathbf B

    B中的预测框,尝试找到列表F中的一个匹配边界框。匹配的定义为一个边界框在IoU>阈值的情况下存在很大的重叠。该实验阈值设置为0.55。

  4. 如果未找到匹配,则将

    B

    \mathbf B

    B作为一个新的实体加入到列表

    L

    \mathbf L

    L

    F

    \mathbf F

    F的最后,继续对

    B

    \mathbf B

    B中下一个边界框进行处理。

  5. 如果找到匹配,则将该框添加到列表

    L

    \mathbf L

    L中与列表

    F

    \mathbf F

    F中匹配框对应的位置

    p

    o

    s

    \mathbf{pos}

    pos处。

  6. 使用所有的在簇

    L

    [

    p

    o

    s

    ]

    \mathbf{L[pos]}

    L[pos]中的

    T

    T

    T个边界框重新计算

    F

    [

    p

    o

    s

    ]

    \mathbf{F[pos]}

    F[pos]中边界框的坐标和置信度得分:

    C

    =

    i

    =

    1

    T

    C

    i

    T

    (1)

    \mathbf{C}=\frac{\sum_{i=1}^{\mathbf{T}} \mathbf{C}_{i}}{T}\tag{1}

    C=Ti=1TCi(1)

    X

    1

    ,

    2

    =

    i

    =

    1

    T

    C

    i

    X

    1

    ,

    2

    i

    i

    =

    1

    T

    C

    i

    (2)

    \mathbf{X} \mathbf{1}, \mathbf{2}=\frac{\sum_{i=1}^{\mathbf{T}} \mathbf{C}_{i} * \mathbf{X} \mathbf{1}, \mathbf{2}_{i}}{\sum_{i=1}^{\mathrm{T}} \mathbf{C}_{i}}\tag{2}

    X1,2=i=1TCii=1TCiX1,2i(2)

    Y

    1

    ,

    2

    =

    i

    =

    1

    T

    C

    i

    Y

    1

    ,

    2

    i

    i

    =

    1

    T

    C

    i

    (3)

    \mathbf{Y} \mathbf{1}, \mathbf{2}=\frac{\sum_{i=1}^{\mathbf{T}} \mathbf{C}_{i} * \mathbf{Y} \mathbf{1}, \mathbf{2}_{i}}{\sum_{i=1}^{\mathbf{T}} \mathbf{C}_{i}}\tag{3}

    Y1,2=i=1TCii=1TCiY1,2i(3)注意也可以使用一些非线性的权重如

    C

    2

    ,

    s

    q

    r

    t

    (

    C

    )

    \mathbf{C^2},sqrt(\mathbf{C})

    C2,sqrt(C)等。

    融合框的置信度为所有形成他的边界框的平均置信度,而其坐标也是所有形成他的边界框的坐标的加权和,权重为相应的边界框的置信度。也就是置信度越高的边界框对于融合边界框的坐标做出的贡献越大。

  7. B

    \mathbf B

    B中的所有边界框都被处理了,对

    F

    \mathbf F

    F列表的置信度得分重新缩估计:乘上簇中的边界框个数,在除以模型数目。也就是当簇中边界框数目少的时候,则认为有较少的边界框预测该融合框,也就是该融合框的置信度应该降低:

    C

    =

    C

    min

    (

    T

    ,

    N

    )

    N

    (4)

    \mathbf{C}=\mathbf{C} * \frac{\min (T, N)}{N} \tag{4}

    C=CNmin(T,N)(4)
    或者

    C

    =

    C

    T

    N

    (5)

    \mathbf{C}=\mathbf{C} * \frac{T}{N} \tag{5}

    C=CNT(5)实践中第一种稍微好一点。

NMS和soft-NMS都是直接排除边界框,而WBF是利用了所有的边界框。他可以修正那些被所有模型都预测错误的例子。NMS和soft-NMS处理后会剩下唯一一个错误边界框,而WBF会直接将这些错误边界框进行融合。

**non-maximum weighted(NMW)**相较于本方法,他不会去修改边界框的置信度:他使用IoU值来为边界框赋权,然后使用最大置信度的边界框和其他重叠的边界框进行比较,当然他也没有利用预测模型的个数这个信息,实验对比在下面给出。
在这里插入图片描述

三、实验与思考

本次实验使用Open Images和COCO两个检测数据集进行实验。
对所有阈值进行实验室,在每个阈值

t

t

t(阈值从0.5-0.95,每0.05一次实验),会由TP,FN和FP来计算一个精确值:

Precision

(

t

)

=

T

P

(

t

)

T

P

(

t

)

+

F

P

(

t

)

+

F

N

(

t

)

\operatorname{Precision}(t)=\frac{T P(t)}{T P(t)+F P(t)+F N(t)}

Precision(t)=TP(t)+FP(t)+FN(t)TP(t)
AP计算如下:

A

P

=

1

 thresholds 

t

T

P

(

t

)

T

P

(

t

)

+

F

P

(

t

)

+

F

N

(

t

)

A P=\frac{1}{\mid \text { thresholds } \mid} \sum_{t} \frac{T P(t)}{T P(t)+F P(t)+F N(t)}

AP= thresholds 1tTP(t)+FP(t)+FN(t)TP(t)

以下检测方法中的NMS后处理并没有解除,即先进性的NMS后在进行的集成 WBF。

不同后处理的方法对于单一EfficientDet模型的评估结果:
在这里插入图片描述
EfficientDetB7模型下,不同后处理对比TTA:
在这里插入图片描述

在COCO数据集上,多模型集成:
在这里插入图片描述
在COCO数据集上,单一RetinaNet模型不同backbone,权重相同:
在这里插入图片描述
在Open Images数据集上。多模型集成:
在这里插入图片描述

如果将检测器中的NMS关闭,直接将输出送入WBF进行处理得到一下结果:

  1. 原始不经过后处理-mAP:0.1718 (存在大量的重叠框)
  2. 默认阈值为0.5的NMS-mAP:0.4902 (标准模型输出)
  3. 优化后的IoU阈值为0.47的NMS-mAP:0.4906
  4. 优化参数后的WBF-mAP:0.4532 (优化参数:IoU阈值0.43,跳过阈值0.21)

作者认为直接代替NMS效果下降的原因是大量的低置信度的错误预测导致的,而经过NMS后处理后,有效的过滤掉了这些预测,再此基础上,WBF工作更加优秀。

版权声明:本文为CSDN博主「三木ぃ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41214679/article/details/114689895

三木ぃ

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【学习分享】目标检测中的锚框(Anchor)

锚框
引例
在理解目标检测的锚框之前,我们首先通过一个不太严谨的例子对锚框进行一个简单的了解: 由于目前污染比较严重,导致海洋中漂浮着许多垃圾,这些垃圾既污染环境,又不利

深度学习_目标检测_“YOLOv5”详解(持续更新)

我最近对很火的元宇宙及其衍生概念进行了思考,虽然现在谈元宇宙落地还为时尚早,但是根据这个愿景反推回来很多的技术趋势和未来的发展方向还是值得关注的。下面是我的公众号原文:【AI行业进展研究与商业价值分析】