AI学习者 · 2022年04月28日

开放集合目标检测任务 Open-set Detection

【GiantPandaCV 导语】最近因为工程需要,就去调研一下 open-set detection 算法,然后发现一篇不错的论文 《Towards Open-Set Object Detection and Discovery》。论文使用了额外的 memory 来当做网络的记忆缓存,在实现对未知类物体的坐标回归的同时,还挖掘了未知类物体潜在的类别。算法挺有意思的,里面也涉及了很多自己的知识盲点,于是和大家分享一下,一起研究研究。

论文地址:https://arxiv.org/abs/2204.05604

1.介绍

在之前的 open-set object detection (OSOD) 中,除了检测识别已知物体外,还会检测一些未知类别的物体,但把所有未知的物体都归到 “未知类”。该论文提出的 Open-Set Object Detection and Discovery (OSODD),不仅可以检测未知物体,还可以挖掘它们潜在的类别。OSODD 采用了两阶检测方式,先对已知物体和未知物体进行预测,然后通过无监督和半监督方式学习预测到的物体的表征并进行聚类,从而挖掘出未知物体的类别。

2. 任务形式

在 OSODD 中,假设已知类为 Ck = {C1, C21,....,Cm};未知类为 Cu = {Cm+1, Cm+2, ..... Cm+n},Ck 和 Cu 没有交集。训练集只包含 Ck,而测试集是 Ck 和 Cu 的合集。模型的任务就是对所有物体进行定位和分类 I = [c, x, y, w, h],已知物体归于Ck,未知物体则归于 Cu。

3. 具体方法

论文提出的 OSODD 包含两个部分,分别是 Object Detection and Retrieval (ODR) 和 Object Category Discovery (OCD)。

7f4b8325fa687c5d0d51b3bcb7c3c88d.png

网络框架

  • ODR 是一个带有两个记忆缓存的开集检测器,对于已知物体,检测器预测他们的位置信息和类别,对于未知物体,只预测其位置信息。其中已知物体和类别信息储存在 known memory 中,未知物体则储存在 working memory 中。
  • OCD 则是主要利用 working memory 来挖掘未知物体的类别,包含了一个特征编码器和聚类辨别器。首先使用非监督对比学习方式,从 known 和 working memory 中训练一个编码器,在 latent space 中学习更好的物体表征。最后用 constrained k-means 来进行聚类。

3.1 Object Detection and Retrieval

open-set object detector 主要是对所有物体进行定位,同时对已知物物体进行分类,且把未知物体归到“unknown” 一类。文中使用了 faster-rcnn 作为模型的 backbone,利用了 RPN 对类别无感知的特性,把那些与 ground-truth 没有重叠且置信度比较高的候选框作为位置物体。为了让物体的特征更具有区别性,作者使用了对比损失,也就是计算从 ROI pooling 中得到的特征和模板之间的相差度:

88a0437deef48416611e26fa27f86eec.png

相差度

其中模板 pi 是该类别特征的滑动平均值。所以在 region of interest pooling 中的 loss 变成:

d910b4a12d42bacff27eb20f118f2b91.png

loss

3.2 Object Category Discovery

因为未知物体的类别是不确定的,只能通过一些方式来挖掘出这些物体潜在的类别信息,文中采用了 DCT,主要是通过一种特殊的无参数学习的 k-mean 来估计潜在的类别数目。为了更好地挖掘未知物体的潜在类别,作者在 OCD 中加入了一个 encoder,用来学习更有判别性的 embedding。在encoder 中使用 known memory 和 working memory 来进行对比学习,增大 positive pairs 的相似度,而减小 negative pairs的相似度,类似减小类内差而增大类间差,这样更有益于后面的聚类操作。对比学习的  InfoNCE loss 为:
719267d57c1123021b21565892b5e53a.png

InfoNCE loss

为了使得 embedding 有更加好的分布和创建更多的训练样本,作者还使用一种无监督增强方法,把 {k} 和 q 线性组合起来,代替原本的 {k},对应地,loss 中的虚拟标签也变成:

389cfe3190f32564f1aff6dc536ae515.png

虚拟标签

4.实验

在实验中,作者把数据分成三种,对应着不同的 Known / Unknown。对于已知类物体,采用 mAP 作为检测评价标准,对于未知类物体,则采用 UDR 和 UDP 作为检测评价标准:
e444b2d2ac51a911887aa5a4a82ed804.png

UDR和UDP

对于类别挖掘的评价指标,作者采用了聚类准确率、归一化互信息和聚类纯度:

5c1182ac6079097f3e13187fe55bd869.png

ACC

因为是 unknown class,所以不确定具体哪个物体的类别 ID具体是多少,Object Category Discovery (OCD) 也是通过 k-mean 来聚类。所以必须对unknown object 的label 进行排列组合,算出最大的那个 ACC,作为最终的结果。
99ebb33b40b0719c2da9e2c4aac3fefe.png
NMI

63edf327696e06d3141bd817c48740aa.png

purity

5. 结果与分析

作者在 Object Detection 和 Category Discovery 的baseline 上做了对比试验,还进行了多种组合的消融实验,证明文中提出的方法几乎在所有评价指标都达到了最优性能。

212814dcc64723bd424a1da3ca2237b2.png

不同cluster

b5ac17992ce1a2f453086168c9f51b7f.png

ablation study

fde2fbe499d74de2ec297e18a086f325.png
实际检测效果

作者:黄德波
原文: GiantPandaCV

推荐阅读

推荐阅读
关注数
18808
内容数
1351
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息