CVPR2023 | 手绘草图就能实现目标检测?一种新的目检测训练范例

作者:PCIPG-ka   | 来源:3D视觉工坊

在公众号「3D视觉工坊」后台,回复「原论文」即可获取论文pdf。

添加微信:dddvisiona,备注:目标检测,拉你入群。文末附行业细分群。

f989adaf85113300ceabdfcbf233527b.png

CVPR2023:提出了一种新的范例训练目标检测,将 CLIP 和 SBIR 结合、无需边界框注释或图像级类标签

1介绍

在本文中,我们提出一个问题:绘制的草图可以为物体检测的基本视觉任务做什么?因此,设想的结果是一个支持草图的对象检测框架,它根据您的草图内容(即您想要如何表达自己)进行检测。绘制“吃草的斑马”应该从一群斑马中检测出“那只”斑马(实例感知检测),并且它还可以让您自由地指定各个部分(部分感知检测) ),所以如果你更想要“斑马”的“头”,那么就画出这个头。作者没有从头开始设计一个支持草图的对象检测模型,而是证明CLIP和现成的 SBIR 模型 之间的协同作用已经可以相当优雅地解决问题,CLIP 提供模型泛化,SBIR 弥合草图到照片差距;使用 SBIR 模型训练目标检测器分为以下三步:(a) 首先,使用现有的草图-照片对训练 FG-SBIR 模型,该模型可推广到未见过的类别。(b) 为了训练对象检测器模块,我们平铺来自 SBIR 数据集的多个对象级照片,并通过预先训练的草图编码器使用其配对草图编码来对齐检测到的框的区域嵌入。(c) 包含用于对象检测的草图开辟了多种途径,例如检测查询草图的特定对象(例如,检测正在吃草的“斑马”)或对象的一部分(例如,“斑马”的“头”)。这里也推荐「3D视觉工坊」新课程《面向自动驾驶领域目标检测中的视觉Transformer》

2.主要贡献

  • 首次培养用于目标检测的绘制草图的表现力,

  • 基于草图的目标检测器,用于检测您想要在草图中表达的内容

  • 一个目标检测器除了执行传统的类别级检测之外,还具有实例感知和部分感知功能。

  • 一种新颖的提示学习设置,将 CLIP 和 SBIR 结合起来,构建草图感知检测器,该检测器无需边界框注释(如监督 、类标签(如弱监督)),并且可以在零样本的情况下工作。

  • 在零样本设置下,结果优于监督 (SOD) 和弱监督目标检测器 (WSOD)。

3.方法

3.1背景

我们的框架有两个关键模块——目标检测和基于草图的图像检索(类别级和细粒度)。为了完整起见,我们给出了简短的背景。Faster Rcnn1db80c57cb711ec46c70bf6ecb14c785.pngFaster Rcnn目标检测领域的重要算法,并在各种应用中取得了出色的性能,包括物体检测、行人检测、车辆检测等。它的算法流程主要包括四步

  1. 特征提取:使用预训练的卷积神经网络(如VGG、ResNet等)对输入图像进行特征提取,得到图像的特征图。

  2. 候选区域提取(Region Proposal Network,RPN):在特征图上,RPN通过滑动窗口来生成一系列候选区域(即候选检测框),每个候选区域都有一个边界框回归和一个置信度得分。

  3. 区域分类与回归:对于每个候选区域,Faster R-CNN将其与实际目标进行对比,通过分类器判断其所属类别,并校正候选区域的边界框位置。这一步使用了RoI(Region of Interest)池化操作来从特征图中提取固定大小的特征向量。

  4. 结果输出:根据候选区域的分类结果和位置调整,选择最终的检测结果,并输出目标类别和边界框的坐标。

SBIR框架

  1. 特征提取:给定草图/照片对 (s, p),类别级 SBIR 需要来自同一类别的 (s, p),而细粒度 SBIR 需要实例级草图/照片匹配,使用图像检索任务中常见的特征提取方法,从草图和图像数据获取特征图 fs = Fs(s) ε R512 和 fp = Fp(p) ε R512。

  2. 特征匹配与相似度计算:将草图特征与图像特征进行匹配,计算特征的余弦距离。其中负样本与草图的余弦距离− 应该增加,而正样本与草图的余弦距离 + 应该减小

  3. 检索与排序:根据相似度分数,对图像数据库中的图像进行排序,以确定与草图最匹配的图像。按照相似度降序排列,以提供最相关的图像结果。

训练使用三元组损失函数,超参数为µ > 0:50d561c2fd704937fc99ffdb23497fbd.png将SBIR扩展到用于区分类别时,损失函数就可以用交叉熵来实现:83787032020801d5b7db5367e64d5b10.png查询 q = {s, p},ci 表示第 i 个样本的类标签,Fc : R512 → R|C|预测 softmax 概率。

3.2弱监督目标检测

4f7a27990404f1df155d95cca621b38a.png如何实现弱监督(不使用边界框注释)?一)使用图像级类标签进行训练,使用RPN方法生成候选框r = {r1,...rR},并获得每个候选框的特征 fr = P(fp, r) ,如图三红色框所示,与Faster Rcnn类似,将每个patch的特征输入分类头φcls和检测头φdet,xc = φcls(fr) ∈ RR×(|C|+1),xd = φdet(fr) ∈ RR×(|C|+1) a:分类头φcls:通过对(|C| + 1)个类别标签进行softmax,将候选框分为预定义的C个类别和背景类别的分数38432cdd45e9b897a13ae7a43c8549a5.pngb:检测头 φdet :通过在所有区域上进行softmax操作,计算每个补丁 i 在图片被分为类别 j时做出的贡献0924456bd760be0a361a4e708445bd81.png训练过程中,使用图像级类标签:Y=[y0,y1....y|C|]T∈ R(|C|+1)×1,其中 yc = 1 或 0 表示图像中是否存在类 c ∈ C 的实例。对于每个patch,我们计算其组合得分; ω0 = σcls(xc) ⊙ σdet(xd),ω0 ∈ RR×(|C|+1) 将所有patch的组合分数 ω0 相加,以得出图像中是否存在第 c 类的实例的概率:395ae2e00578ebf18c6b58112b623156.png训练通过多类交叉熵进行ccb6e4d5bdd4f9bd18d708d52ba3266d.png二)提出了迭代细化分类器,使用(k-1)次迭代的伪分数标签进行监督2a211f2814f8e82c4458105b88ea4824.png与使用边界框注释来完善提案的监督对象检测 (SOD) 不同,WSOD 仅使用图像级别的类标签,这不足以完善提案,为了解决这个问题,使用了迭代细化分类器。ωk = φ* cls(fr),其中 ωk ∈ RR×(|C|+1) 来预测每个patch的细化类别分数,使用伪标签训练,目标是尽可能将预测的标签与真实标签对齐 具体步骤 (i) 我们计算每个类中得分最高的patch 52f66b2fb7e46519aaaed580dd37bf2f.png 。(ii) 如与最高评分块 rc * 具有高度重叠(iou>0.5)的所有区域 ri ∈ r 应该是相同的类标签 c,b04dd4f993afddd119fa40d22bd73a45.png。(iii) 如果区域 ri ∈ r 与任何得分最高的块 rc * 具有较低的重叠,我们将其分配给背景类be8051ac555d9125eeb9f9bb39c92cfd.png。(iv) 如果类 c 不在图像 p 中,我们将其分配给74171ebfa7a913af9c44169a8a1ea05a.png通过迭代K次,细化过程涉及根据伪分数标签调整分类器的权重和参数,使损失函数收敛,c5cf5ac58f38465599430598f022960a.png在弱监督物体检测 (WSOD) 中使用方程 (5) 和 (6) 来训练模型,期望得到最正确的分类头和检测头分数,输出草图是c ∈ C 的概率

3.3使用查询草图本地化对象区域

a4078bcd24cea099497de4533369f476.pngWSOD 将检测限制为预定义的 C 类,如何将任务扩展未知类别中呢?我们用可扩展的开放集原型学习替换 WSOD 中的固定集分类器 。--最初的 WSOD 模型中,使用函数 φ预测分数,该函数将 512 维特征向量映射到维度为 RR× (|C|+1) 的分数向量:RR×512 → RR×(|C|+1 --在修改后的模型中,函数 φ用于计算嵌入向量而不是分数。-嵌入向量是通过将函数 φ应用于 512 维特征向量来计算的,从而生成一个新的 512 维向量:RR ×512→RR×512     e =ecls, edet, e* cls};如果要扩展到未知类别中,需要将未知类别的草图作为支持,提出了一个支持集:类别级别或这实际级别的草图;如图所示,查询草图 {s1,s2,s3....sc|,使用预训练的草图编码器Fs对草图特征提取,得到a078191dc9c6657f87c857800fea26b8.png其中 ebg是背景类,使用 S 和检测到的区域的嵌入向量 e 计算分数 {xc, xd, ωk}163dbae52af7a8705b48699160f71552.png选择不同的级别的草图编码器可以实现不同级别的检测结果:(i)类别级 SBIR 上的预训练 Fs 计算 S,检测与查询草图具有相同类别的区域 r ,实现类别级对象检测。(ii) 跨类别 FG-SBIR 上的预训练 Fs 计算 S,其中仅检测到实例级对齐区域 r ,实现细粒度对象检测。(iii) 使用通用(词汇外)草图编码器 Fs 扩展细粒度对象检测有助于在给定查询草图的情况下检测对象部分(例如,“马”的“头”),实现部分级对象检测。为了进一步提高训练效率,使用图片编码器(Fp)提供了额外的监督,即在目标检测器中候选框对应patch特征和使用预训练的 Fp 为裁剪的照片区域计算的照片特征之间施加特征匹配损失。特征匹配损失基于 L1,类似于特征蒸馏e072532a1e06ee05850d3d78f5ff4476.png此方法有助于学习在照明、复杂背景、遮挡、看不见的类别等广泛变化下进行类别级别和细粒度草图/照片匹配的通用(词汇外)SBIR。同时使用草图和照片编码器有助于弥合草图和照片之间的差距,这对于基于草图的物体检测至关重要。

3.4快速学习广义 SBIR

为了使用具有高度泛化和开放词汇功能的 SBIR 来训练目标检测,我们引入了使用 CLIP  进行 SBIR 的即时学习 类别级和跨类别细粒度) 什么是 CLIP?如下图所示:CLIP 包含一个图像和文本编码器(ViT 或 ResNet),在大型 400M 文本/图像对上进行训练,是一个高度通用的模型,可以实现灵验本学习。核心思想就是让图像识别模型从自然语言中学习监督信息,让模型可以学习图像特征和文字特征之间的关系。CLIP可以根据图像内容自动生成相关的文本标注。它可以理解图像并生成描述性的标注,为图像检索、图像搜索等任务提供更丰富的信息。

2514382e73b0d6d40800c62200cb096b.jpeg然而,将 CLIP 应用于草图是很棘手的,因为简单的的微调会导致模型崩溃。因此,我们使用即时学习,一组 可学习向量 vs  ∈ RP ×768 用于草图和vp ∈  RP ×768用于图片,被注入到ViT的第一层中,以促使CLIP学习下游的草图/图片分布。CLIP 学到的知识被提炼成提示的权重,同时保持 ViT 权重固定,从而以更少的数据和更快的收敛速度进行参数高效训练。对于类别级别的SBIR,(vs, vp)使用三元组损失学习类别感应提示。对于跨类别的细粒度SBIR,稍微复杂一些,它使用方程(1)中的硬三元组进行训练,并使用CLIP的文本编码器的修改类别区分损失方程(2),形式为:00615d96c4baa70f8e43acdad3f197b7.png

3.5连接对象级和图像级

尽管SBIR是使用物体级别(单个物体)的草图/照片对进行训练,但目标检测是在图像级别(多个物体)的数据上进行的。为了使用SBIR训练目标检测器,我们需要弥合这种物体级别和图像级别之间的差距。我们的解决方案非常简单——通过随机平铺 n = {1, . ……, 7} SBIR 数据集中的对象级照片,尽管它很简单,但我们的增强技巧(类似于 CutMix )提高了针对输入损坏和分布外泛化的鲁棒性。画布中照片的配对草图用于构造支持集 S。作者将这种设置称为极弱监督目标检测(EW-SOD),因为训练目标检测器无需“看到”评估数据分布或使用任何注释(边界框或图像级别的类别标签)1319ff99b57597968e62ca56db977221.png0428e05863fb3b77240afe4a0de6b2c3.png

4实验

4.1数据集

跨类别 FG-SBIR 数据集 – Sketchy:训练目标检测器,包含 125 个类别,每个类别有 100 张照片。每张照片至少有 5 个实例级配对草图;SketchyCOCO :由MS-COCO中的自然图像和实例级配对草图组成,从中选择了1,225对草图/照片,其中至少包含一个前景被描绘的物体 QuickDraw-Extended:对类别级草图/照片对进行训练,其中包含来自 110 个类别的 330k 草图和 204k 照片

4.2训练过程

(i) 保持 Fd 和 R 固定,训练 RoI 池化层和 FC 层 (P)、分类头 (φcls)、检测头 (φdet) 和细化头 (φ* cls) 240k 次迭代。(ii) 我们仅冻结 RPN 并微调所有模块以进行 80k 次迭代。应用 IoU ≥ 0.3 的非极大值抑制来获得最终预测;

4.3评价指标

(i) 对于细粒度目标检测,我们测量 AP.3、AP.5 和 AP.7,计算 IoU 值为 0.3、0.5 和 0.7 时的平均精度 (AP)。(ii) 对于类别级对象检测,我们使用测量 AP.5 和 CorLoc 来计算最置信度预测框与每个类别至少有一个真实框的 IoU ≥ 0.5 的图像百分比。(iii) 对于跨类别 FG-SBIR,我们测量 Acc.@q – top-q 列表中具有真正匹配照片的草图的百分比,以及 (iv) 平均精度 (mAP) 以及考虑前 200 个检索的精度 P@200对于类别级 SBIR。

4.4跨类别 FG-SBIR 的通用性

零样本类别级 SBIR (CL-SBIR) 和跨类别 FG-SBIR (CC-FGSBIR) 的定量性能。6956c4c1d92dd2fe7dc59adcbc783c10.png

4.5类别级目标检测

与其他的基于草图的目标检测方法相比,无论是强监督(SOD)、弱监督方法(WSOD)还是极弱监督(EWSOD),本文中提出的方法都展现出了最优的结果。这里也推荐「3D视觉工坊」新课程《面向自动驾驶领域目标检测中的视觉Transformer》dde327163c3556e529f72761ef72a4df.png

4.6细粒度目标检测

656a666772a4ac00b8ac7bb794315bf0.png
image.png

4.7部分级目标检测

该方法可以检测不同物体的草绘的 “头部” 区域,但是对于像 “腿” 这样的模棱两可的零件草图,检测性能较低。模型无法检测到微小的草绘零件84e4e5ad7c1c3161e47997e20c2b0f31.png

5总结

拟议的支持草图的对象检测框架使用结合了CLIP和SBIR的新型提示学习设置, 基于人类草图检测物体,并且无需边界框注释或类标签即可工作。该检测器设计为通用型,以零样本方式工作,在零样本设置下,其性能优于有监督和弱监督的物体探测器

6参考资料

https://zhuanlan.zhihu.com/p/31426458https://zhuanlan.zhihu.com/p/493489688

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

dc638efaf2b4a36df8835f9ae560d3b4.jpeg

添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款6b61f3ce460a1f1a6197d18ca0ad3fbe.jpeg

高质量教程资料、答疑解惑、助你高效解决问题
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]如何学习相机模型与标定?(代码+实战)

[3]ROS2从入门到精通:理论与实战

[4]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]机械臂抓取从入门到实战课程(理论+源码)

[3]三维点云处理:算法与实战汇总

[4]彻底搞懂基于Open3D的点云处理教程!

[5]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理论讲解与代码精析

视觉三维重建

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2]面向自动驾驶领域目标检测中的视觉Transformer

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D视觉工坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值