点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
作者丨黄德波
来源丨GiantPandaCV
【 导语】最近因为工程需要,就去调研一下 open-set detection 算法,然后发现一篇不错的论文 《Towards Open-Set Object Detection and Discovery》。论文使用了额外的 memory 来当做网络的记忆缓存,在实现对未知类物体的坐标回归的同时,还挖掘了未知类物体潜在的类别。算法挺有意思的,里面也涉及了很多自己的知识盲点,于是和大家分享一下,一起研究研究。
论文地址:https://arxiv.org/abs/2204.05604
在之前的 open-set object detection (OSOD) 中,除了检测识别已知物体外,还会检测一些未知类别的物体,但把所有未知的物体都归到 “未知类”。该论文提出的 Open-Set Object Detection and Discovery (OSODD),不仅可以检测未知物体,还可以挖掘它们潜在的类别。OSODD 采用了两阶检测方式,先对已知物体和未知物体进行预测,然后通过无监督和半监督方式学习预测到的物体的表征并进行聚类,从而挖掘出未知物体的类别。
在 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。
论文提出的 OSODD 包含两个部分,分别是 Object Detection and Retrieval (ODR) 和 Object Category Discovery (OCD)。
网络框架ODR 是一个带有两个记忆缓存的开集检测器,对于已知物体,检测器预测他们的位置信息和类别,对于未知物体,只预测其位置信息。其中已知物体和类别信息储存在 known memory 中,未知物体则储存在 working memory 中。
OCD 则是主要利用 working memory 来挖掘未知物体的类别,包含了一个特征编码器和聚类辨别器。首先使用非监督对比学习方式,从 known 和 working memory 中训练一个编码器,在 latent space 中学习更好的物体表征。最后用 constrained k-means 来进行聚类。
open-set object detector 主要是对所有物体进行定位,同时对已知物物体进行分类,且把未知物体归到“unknown” 一类。文中使用了 faster-rcnn 作为模型的 backbone,利用了 RPN 对类别无感知的特性,把那些与 ground-truth 没有重叠且置信度比较高的候选框作为位置物体。为了让物体的特征更具有区别性,作者使用了对比损失,也就是计算从 ROI pooling 中得到的特征和模板之间的相差度:
相差度其中模板 pi 是该类别特征的滑动平均值。所以在 region of interest pooling 中的 loss 变成:
loss因为未知物体的类别是不确定的,只能通过一些方式来挖掘出这些物体潜在的类别信息,文中采用了 DCT,主要是通过一种特殊的无参数学习的 k-mean 来估计潜在的类别数目。为了更好地挖掘未知物体的潜在类别,作者在 OCD 中加入了一个 encoder,用来学习更有判别性的 embedding。在encoder 中使用 known memory 和 working memory 来进行对比学习,增大 positive pairs 的相似度,而减小 negative pairs的相似度,类似减小类内差而增大类间差,这样更有益于后面的聚类操作。对比学习的 InfoNCE loss 为:
InfoNCE loss为了使得 embedding 有更加好的分布和创建更多的训练样本,作者还使用一种无监督增强方法,把 {k} 和 q 线性组合起来,代替原本的 {k},对应地,loss 中的虚拟标签也变成:
虚拟标签在实验中,作者把数据分成三种,对应着不同的 Known / Unknown。对于已知类物体,采用 mAP 作为检测评价标准,对于未知类物体,则采用 UDR 和 UDP 作为检测评价标准:
UDR和UDP对于类别挖掘的评价指标,作者采用了聚类准确率、归一化互信息和聚类纯度:
ACC因为是 unknown class,所以不确定具体哪个物体的类别 ID具体是多少,Object Category Discovery (OCD) 也是通过 k-mean 来聚类。所以必须对unknown object 的label 进行排列组合,算出最大的那个 ACC,作为最终的结果。
NMI purity作者在 Object Detection 和 Category Discovery 的baseline 上做了对比试验,还进行了多种组合的消融实验,证明文中提出的方法几乎在所有评价指标都达到了最优性能。
不同cluster ablation study 实际检测效果本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
计算机视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
14.ROS2从入门到精通:理论与实战
15.国内首个3D缺陷检测教程:理论、源码与实战
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~