【论文研读】【目标检测】Revisiting Open World Object Detection

本文对开放世界目标检测任务进行重新梳理,并提出了两种新的衡量指标
针对CEC模块存在理解问题(文中红色问号处)

Revisiting Open World Object Detection


在这里插入图片描述
发表于 Computer Vision and Pattern Recognition 2022/01/04


Introduction


(1) 概要

  • 领域:目标检测
  • 行文目的:OWOD的实验设置不合理(benchmark不合理、度量标准不合理、研究方法不合理)
  • 贡献:
    • (1)提出了5条基本原则,用以指导OWOD的基准建设
    • (2)设计了2种公平的评价指标

(2) OWOD

  • closed set object detection(传统意义上的目标检测)
    • 只需检测出已知的类别
    • 推理阶段也只针对已知类别的检测性能进行评价
    • 未知类别的目标可以直接忽略,或者误分类为已知类别
  • open world object detection(考虑未知类别)
    • OWOD任务包括多个增量子任务
    • 每个子任务中,训练阶段:模型仅在已知类别上做训练;测试阶段:模型需正确检测出所有已知类别,针对未知类别需分类为“unkown”
    • 人类标注员针对检测出的未知类别进行手工标注,再进入下一个增量子任务(下一次任务中就增加了新的类别标签)
      在这里插入图片描述

(3) 存在问题及改进

i. 存在问题:(OWOD概念在《Towards open world object detection》中首次提出)

  • 基准不合理
  • 度量不合理
  • 方法不合理
    ii. 改进:(本文思路)
  • 提出5项基准原则,用以指导OWOD基准建设
  • 提出2项衡量指标 Unknown Detection Recall (UDR)、Unknown Detection Precision (UDP),更有利于衡量未知类别的检测性能
  • 提出1种简单有效的OWOD框架,包含Proposal ADvisor (PAD)模块、Class-specific Expelling Classifier (CEC)模块,解决未知类别与背景、已知类别间的难区分问题:
    • PAD模块:
      • 无参的模块
      • 协助PRN确认未知类别的proposal,引导RPN从背景中识别出未知类的proposal
    • CEC模块:
      • 标定over-confident activation boundary
      • 通过 class-specific expelling function,过滤掉不确定的预测结果,避免将未知类别分类到已知类别

(4) 本文贡献

  • 总结出5条OWOD基准原则
  • 提出2项OWOD评价指标
  • 提出一个简单有效的OWOD框架,包含PAD、CEC
  • 实验论证了本文提出的OWOD框架在原有指标及新提出的指标上的有效性

Rethinking OWOD


(1) 五原则

  • 类别的开放性(Class Openness):
    • 已知类别的集合记为

      K

      \mathcal{K}

      K

    • 未知类别的集合记为

      U

      \mathcal{U}

      U

    • K

      U

      =

      \mathcal{K} \cap \mathcal{U} = \varnothing

      KU=

    • 训练阶段:仅有

      K

      \mathcal{K}

      K参与训练

    • 测试阶段:测试集中包含

      K

      \mathcal{K}

      K

      U

      \mathcal{U}

      U

  • 任务的递增性(Task Increment):
    • 前一个个子任务完成后,标注员会介入进行未知类别的人工标注,因此类别数会递增,任务也会呈现递增性
    • 在task t阶段:已知类别为

      K

      t

      \mathcal{K}_t

      Kt,未知类别为

      U

      t

      \mathcal{U}_t

      Ut

    • 在task t+1阶段:原

      U

      t

      \mathcal{U}_t

      Ut 中的

      U

      t

      (

      k

      )

      \mathcal{U}_t^{(k)}

      Ut(k) (

      U

      t

      (

      k

      )

      U

      t

      \mathcal{U}_{t}^{(k)} \in \mathcal{U}_{t}

      Ut(k)Ut),对

      U

      t

      (

      k

      )

      \mathcal{U}_{t}^{(k)}

      Ut(k) 进行标注后,并入已知类别中,

      K

      t

      +

      1

      =

      K

      t

      U

      t

      (

      k

      )

      \mathcal{K}_{t+1}=\mathcal{K}_{t} \cup \mathcal{U}_{t}^{(k)}

      Kt+1=KtUt(k)

    • 重复上述操作,直至未知类别集合为空
  • 标注的特异性(Annotation Specificity):
    • 标签:

      Y

      =

      [

      L

      ,

      B

      ]

      Y = [L, B]

      Y=[L,B],其中Y为类别,B为边界框

    • 训练、验证阶段:仅有已知类别参与训练
    • 测试阶段:未知类别也参与测试,L赋值为“Unknown”
    • 原OWOD未遵循此原则,使用了包含未知标签的验证集来训练
  • 标签的完整性(Label Integrity):
    • 测试集中的标注信息应当完备,即所有对象(包括未知类别)在测试集标签中均应标注清楚
    • 例如PASCAL VOC的测试集中仅标注了已知的20个类别,对未知类别未标注
      在这里插入图片描述
  • 数据的特异性(Data Specificity):
    • 训练集、验证集、测试集之间不允许有交集
    • 每个数据集中不能有重复样本
    • 否则,会影响评价结果
      在这里插入图片描述

(2) 原始的ORE原则和本文的5原则对比

在这里插入图片描述
使用5原则对COCO数据集进行修改:
在这里插入图片描述

(3) 新的评价指标

OWOD任务存需解决的关键难点:

  • i)需从背景中识别出未知对象
  • ii)需将未知对象与已知对象作区分,确保不能将未知对象错误识别为已知的某个类别
    原评价指标不能完全评价OWOD的性能:
  • standard mAP: 衡量分类性能
  • WI、Absolute Open-Set Error(A-OSE)衡量检测未知类别的性能
  • 其中,WI不能直接应用于OWOD任务中。
    本文提出2个新的评价指标:
  • UDR(Unknow Detection Recall):
    • 衡量未知对象的定位精度
    • U

      D

      R

      =

      T

      P

      u

      +

      F

      N

      u

      T

      P

      u

      +

      F

      N

      u

      \mathrm{UDR}=\frac{\mathrm{TP}_{u}+\mathrm{FN}_{u}^{*}}{\mathrm{TP}_{u}+\mathrm{FN}_{u}}

      UDR=TPu+FNuTPu+FNu

    • T

      P

      u

      TP_u

      TPu: true positive proposals of unknow classes

    • F

      N

      u

      FN_u

      FNu: false negative proposals of unknow classes

    • F

      N

      u

      FN^*_u

      FNu: the number of ground-truth boxes recalled by misclassified predicted bounding boxes

  • UDP(Unknow Detection Precision):
    • 衡量未知对象的分类精度
    • U

      D

      P

      =

      T

      P

      u

      T

      P

      u

      +

      F

      N

      u

      \mathrm{UDP}=\frac{\mathrm{TP}_{u}}{\mathrm{TP}_{u}+\mathrm{FN}_{u}^{*}}

      UDP=TPu+FNuTPu
      ![[imgs/截屏2022-01-18 上午1.06.06.png]]


Method


在这里插入图片描述

(1) PAD(Proposal ADvisior)模块

未知样本标签的缺失,导致RPN很难生成未知样本的proposal,因此本文添加了PAD,辅助RPN针对此类proposal生成。

i) 对RPN的未知proposal结果进行再确认

  • RPN获得高分的negative proposal,有可能是被错误分类为背景的未知样本的proposal,记为

    P

    (

    u

    )

    +

    P^{(u)+}

    P(u)+

  • P

    (

    u

    )

    +

    P^{(u)+}

    P(u)+可能包含未知样本的proposal,同时可能包含背景

  • advisor的实现:选择性搜索(Selective Search)算法
    • 步骤一:使用《Efficient Graph-Based Image Segmentation》论文里的方法产生初始的分割区域
    • 步骤二:相似度计算后将小的区域进行相互合并
    • 重复步骤一、二
  • 确认阶段:
    • RPN 输出:

      P

      (

      u

      )

      +

      P^{(u)+}

      P(u)+; advisor 输出:

      P

      ~

      +

      \widetilde{\mathbf{P}}+

      P

      +

    • S

      i

      =

      S

      i

      ×

      I

      {

      max

      1

      j

      P

      ~

      +

      (

      IOU

      (

      P

      i

      (

      u

      )

      +

      ,

      P

      ~

      j

      +

      )

      )

      >

      θ

      }

      \overline{\mathbf{S}}_{i}=\mathbf{S}_{i} \times \mathcal{I}\left\{\max _{1 \leq j \leq\left|\widetilde{\mathbf{P}}^{+}\right|}\left(\operatorname{IOU}\left(\mathbf{P}_{i}^{(u)+}, \widetilde{\mathbf{P}}_{j}^{+}\right)\right)>\theta\right\}

      Si=Si×I{max1jP

      +(IOU(Pi(u)+,P

      j+))>θ}

      • IOU 大于阈值,表示advisor和RPN均认为该区域是positive proposal

ii) 指导未知类别定位任务的无监督训练过程

  • 获取到精确的proposal后,将对应类别确认改为“前景”
  • 将对应Anchors从negative anchor set中移动到positive anchor set中
  • 将新的anchor set 输入到RPN的分类器中,计算损失:

    a

    A

    +

    A

    (

    u

    )

    +

    BCE

    (

    f

    (

    a

    )

    ,

    1

    )

    +

    a

    A

    \

    A

    (

    u

    )

    +

    BCE

    (

    f

    (

    a

    )

    ,

    0

    )

    \sum_{\mathbf{a} \in \mathcal{A}+\cup \mathcal{A}^{(u)+}} \operatorname{BCE}(f(\mathbf{a}), \mathbf{1})+\sum_{\mathbf{a} \in \mathcal{A}^{-} \backslash \mathcal{A}^{(u)+}} \operatorname{BCE}(f(\mathbf{a}), \mathbf{0})

    aA+A(u)+BCE(f(a),1)+aA\A(u)+BCE(f(a),0)

(2) CEC(Class-specific Expelling Classifier)模块

  • 问题:未知类别的对象有可能被预测为已知的某类,且赋予较高的置信度
  • 解决:Class-specific Expelling Classifier模块
    • CEC模块会淘汰掉错误预测为已知类别的对象
    • Φ

      (

      L

      i

      c

      )

      =

      L

      i

      c

      α

      ×

      1

      M

      j

      B

      ~

      k

      B

      c

      [

      I

      (

      IOU

      (

      B

      ~

      j

      ,

      B

      k

      c

      )

      >

      φ

      )

      ×

      L

      ~

      i

      c

      ]

      \Phi\left(\overline{\mathbf{L}}_{i}^{c}\right)=\overline{\mathbf{L}}_{i}^{c}-\alpha \times \frac{1}{M} \sum_{j}^{|\widetilde{\mathbf{B}}|} \sum_{k}^{\left|\mathbf{B}^{c}\right|}\left[\mathcal{I}\left(\operatorname{IOU}\left(\widetilde{\mathbf{B}}_{j}, \mathbf{B}_{k}^{c}\right)>\varphi\right) \times \widetilde{\mathbf{L}}_{i}^{c}\right]

      Φ(Lic)=Licα×M1jB

      kBc[I(IOU(B

      j,Bkc)>φ)×L

      ic] ???

    • 其中,

      Y

      =

      [

      L

      ,

      B

      ]

      \mathbf{Y} = [\mathbf{L}, \mathbf{B}]

      Y=[L,B] 为ground-truth

    • Y

      =

      [

      L

      ,

      B

      ]

      \overline{\mathbf{Y}}=[\overline{\mathbf{L}}, \overline{\mathbf{B}}]

      Y=[L,B] 为在测试集的预测结果

    • L

      ~

      =

      [

      L

      ~

      ,

      B

      ~

      ]

      \widetilde{\mathbf{L}}=[\widetilde{\mathbf{L}}, \widetilde{\mathbf{B}}]

      L

      =[L

      ,B

      ] 为训练集上的预测结果(原文为training images)?


Experiments


(1) 实验设置

  • 算力:8 * Tesla V100
  • 模型:标准Faster-RCNN,backbone网络为ResNet-50
  • 4个递增任务
  • batch_size: 8, optimizer: SGD(lr=0.01, momentum=0.9, weight_decay=0.0001)
  • task1:迭代次数 90k
  • task2-task4:迭代次数 [52k, 40k, 41k],fine-tuning迭代次数 [4k, 2.5k, 3k]
  • RPN的unknow proposals 选前top-50
  • advisor的proposals 选前top-50
  • advisor的超参

    θ

    =

    0.7

    \theta= 0.7

    θ=0.7

  • CEC的超参

    ϕ

    =

    0.9

    \phi=0.9

    ϕ=0.9

    α

    =

    0.5

    \alpha=0.5

    α=0.5

(2) 实验结果

  • Faster-RCNN
  • Faster-RCNN + finetuning
  • ORE
  • ORE*, 不包含 annotation-leakage EBUI的ORE
  • Oracle detector 可认为是OWOD的性能上限
    在这里插入图片描述
    结果分析:
  • WI指标,体现了本文模型对已知的类别检测性能影响最小
  • mAP指标,体现了本文模型在上阶段与当前阶段的任务中,对已知类别检测性能都很好,证明了增量学习的能力
  • Faster-RCNN虽然在当前任务上性能好,但对先前的预测结果较差,不符合增量学习要求
  • UR、UDP、UDR指标,体现了本文模型能从背景中区分出未知类别的对象,并避免错分为已知类别
    ![[imgs/截屏2022-01-18 上午4.54.55.png]]

(3) 消融实验

论证了各模块的有效性
![[imgs/截屏2022-01-18 上午4.55.57.png]]

i) 针对PAD的实验

![[imgs/截屏2022-01-18 上午4.57.50.png]]

ii) 针对CEC的实验

不同超参下的性能对比
![[imgs/截屏2022-01-18 上午5.00.02.png]]

  • α

    \alpha

    α 的增加,会让预测精度提升,但会损伤召回率

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

fe_风满楼

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

暂无评论

发表评论

相关推荐

从0开始实现目标检测——实践篇

根据上一篇《从0开始实现目标检测——原理篇》的讲述,我们选择了YOLOv3作为模型,那么本篇文章将继续接着上篇的内容,自己动手基于YOLOv3实现模型训练和mAP的计算。 在自己动手的这个过程中&#xf

YOLO-V3-SPP详细解析

YOLO-V3-SPP 继前两篇简单的YOLO博文 YOLO-V1 论文理解《You Only Look Once: Unified, Real-Time Object Detection》YOLO-V2论文理解《YOLO9000: Bet

目标检测部署(卡牌识别)

最近在折腾yolov5,训练了一个识别纸牌的模型,最后使用onnxruntime进行部署,感兴趣的可以上github上clone下来玩玩,模型的权重文件上传到了百度网盘,链接