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

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

WBF

  • 一、相关介绍
    • NMS
    • Soft-NMS
  • 二、Weighted Boxes Fusion
  • 三、实验与思考

一、相关介绍

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

NMS

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

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值来为边界框赋权,然后使用最大置信度的边界框和其他重叠的边界框进行比较,当然他也没有利用预测模型的个数这个信息,实验对比在下面给出。
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第2张图片

三、实验与思考

本次实验使用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模型的评估结果:
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第3张图片
EfficientDetB7模型下,不同后处理对比TTA:
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第4张图片

在COCO数据集上,多模型集成:
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第5张图片
在COCO数据集上,单一RetinaNet模型不同backbone,权重相同:
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第6张图片
在Open Images数据集上。多模型集成:
多检测模型边界框集成方法:Weighted boxes fusion: Ensembling boxes from different object detection models_第7张图片

如果将检测器中的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工作更加优秀。

你可能感兴趣的:(目标检测,神经网络,深度学习,目标检测,WBF,监测模型集成)