(Arxiv,2023)CLIP激活的蒸馏学习:面向开放词汇的航空目标检测技术

本文主要是介绍(Arxiv,2023)CLIP激活的蒸馏学习:面向开放词汇的航空目标检测技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 相关资料
  • 摘要
  • 引言
  • 方法
    • 问题描述
    • 开放词汇对象探测器
      • 架构概述
      • 类不可知框回归头
      • 语义分类器头
    • 定位教师
      • 指数移动平均
      • 一致性训练与熵最小化
      • 边界框选择策略
    • 动态伪标签队列
      • 生成伪标签
      • 维护队列
    • 混合训练
      • 未标记数据流
      • 队列数据流
  • 实验

相关资料

论文:Toward Open Vocabulary Aerial Object Detection with CLIP-Activated Student-Teacher Learning
代码:https://github.com/lizzy8587/CastDet

摘要

遥感图像数量的日益增加促进了可扩展目标检测器的发展,这些检测器能够在无需昂贵地收集新的标记数据的情况下,检测超出训练类别的对象。在本文中,我们旨在开发一种开放词汇目标检测(OVD)技术,用于航空图像,该技术能够将目标词汇量扩展到超出训练数据的范围。开放词汇目标检测性能的基本挑战在于:类别不可知区域提议的质量和能够很好地泛化到新目标类别的伪标签。为了同时生成高质量的提议和伪标签,我们提出了CastDet,一个CLIP激活的师生开放词汇目标检测框架。我们的端到端框架遵循学生-教师自学习方法,采用RemoteCLIP模型作为一个额外的全知教师,拥有丰富的知识。通过这样做,我们的方法不仅提升了新目标提议,还提升了分类。此外,我们设计了一个动态标签队列策略,在批量训练期间维持高质量的伪标签。我们在多个现有的航空目标检测数据集上进行了广泛的实验,这些数据集是为OVD任务设置的。实验结果表明,我们的CastDet在开放词汇检测性能上取得了卓越的成绩,例如,在VisDroneZSD数据集上达到了40.5%的mAP,比之前的方法Detic/ViLD分别提高了23.7%/14.9%。据我们所知,这是第一次将开放词汇目标检测技术应用于航空图像的工作。

引言

充足且准确的注释对于检测器训练来说是时间和劳动密集型的,甚至需要人类专家策划数据集。这阻碍了检测器在开放世界场景中的扩展。结果,当前的航空目标检测数据集,尽管进行了广泛的收集工作,但与自然图像数据集相比,在大小和类别词汇量上仍然较小。
在这里插入图片描述
从正面视角拍摄的自然图像通常展示清晰的轮廓和纹理,对于训练在丰富对象类别上的类不可知区域提议网络(RPN)显示出对未见类别的提议生成具有出色的泛化能力。相比之下,从上方视角拍摄的航空图像只能捕捉到对象顶部表面的微弱外观特征。经常发生对象与周围背景具有相似外观的干扰,使得区分感兴趣的对象和背景噪声变得复杂。例如,机场(AIRPORT)与高速公路(HIGHWAY)在局部上相似,而常见数据集通常将高速公路视为背景,这使得模型很难检测到新型别机场,如图2(a)∼(b)所示。这降低了航空图像OVD中新型别的召回率,如图2©所示。
在这里插入图片描述
为了解决上述问题,我们提出了一个简单但有效的航空开放词汇对象检测框架,名为CastDet,这是一个
由CLIP激活的师生检测器
。我们的航空OVD检测框架遵循多教师自学习机制,包括三个模型:

  1. 负责探测器训练的学生模型,该模型由两个教师模型指导;
  2. 定位教师模型主要负责发现和定位潜在对象
  3. 外部教师用于将新类别分类为额外的伪标签。

我们将RemoteCLIP作为一个拥有丰富外部知识的额外教师纳入师生学习过程中。RemoteCLIP是一个视觉-语言基础模型,用于遥感图像解释,它在大规模遥感图像-文本对上进行了预训练,遵循CLIP框架,具有显著的泛化能力。

我们提出了一个动态标签队列来存储和迭代更新由RemoteCLIP获得的伪标签。我们提出了一个混合训练机制,包括带有真实标签的标记数据和由定位教师生成的未标记数据的伪标签,以及由外部教师通过动态标签队列生成的伪标签数据。

与以前的基于CLIP的方法不同,这些方法直接从CLIP转移知识进行零样本识别,我们的CLIP激活的师生交互自学习框架将来自RemoteCLIP的高置信度知识作为激励,指导学生和**定位教师**更新他们的知识库。我们的交互式自学习机制促进了一种“飞轮效应”,其中外部教师转移知识以加强定位教师发现“未见”对象的潜在区域并识别它们的类别,而定位教师反过来为外部教师生成更准确的伪框。通过我们的师生交互学习方案,我们的检测模型可以不断更新,以定位和识别不断扩展的对象类别词汇表,提高召回率和准确性。

方法

在这里插入图片描述

问题描述

给定一个标记的检测数据集 L L L,其注释在一组基础类别 C base C_{\text{base}} Cbase 上,以及一个未标记的数据集 U U U,其中可能包含新型类别 C novel C_{\text{novel}} Cnovel。我们的训练数据集包括标记数据和未标记数据,即, D train = L ∪ U = { ( I 1 , y 1 ) , … , ( I n , y n ) , I n + 1 , … , I n + m } D_{\text{train}} = L \cup U = \{(I_1, y_1), \ldots, (I_n, y_n), I_{n+1}, \ldots, I_{n+m}\} Dtrain=LU={(I1,y1),,(In,yn),In+1,,In+m},其中 I i ∈ R H × W × 3 I_i \in \mathbb{R}^{H \times W \times 3} IiRH×W×3 指的是第 i i i 个图像,其标签 y = { ( b i , c i ) } y = \{(b_i, c_i)\} y={(bi,ci)} 由边界框坐标 b i ∈ R 4 b_i \in \mathbb{R}^4 biR4 和它们的类别 c i ∈ R C base c_i \in \mathbb{R}^{C_{\text{base}}} ciRCbase 组成。我们的目标是训练一个能够检测基础和新型类别的探测器,即 C test = C base ∪ C novel C_{\text{test}} = C_{\text{base}} \cup C_{\text{novel}} Ctest=CbaseCnovel,其中 C base ∩ C novel = ∅ C_{\text{base}} \cap C_{\text{novel}} = \emptyset CbaseCnovel=

开放词汇对象探测器

架构概述

图 3 展示了我们的 CastDet 框架的概述。有一个学生模型和两个教师模型:一个定位教师和一个外部教师
学生模型是基于 Faster R-CNN 架构的对象检测模型,具有修改过的类不可知边界框回归头语义分类器学生模型在标记样本和未标记样本上进行训练,这些样本由定位教师和动态标签队列产生的伪分类和边界框回归标签。
定位教师学生模型的指数移动平均值(EMA),以便在训练迭代过程中聚合历史信息以获得更好和更稳定的表示,确保伪标签的质量。在训练过程中,定位教师同时为未标记图像生成两套伪标签,一个用于学生模型训练,另一个用伪框输入外部教师进行伪标签生成
外部教师是一个冻结的 RemoteCLIP 基础模型,这是一个视觉-语言模型,预训练在大规模遥感图像-文本对上,遵循 CLIP 框架,通过比较它们的图像嵌入和类别嵌入具有强大的开放词汇分类能力。此外,我们采用动态队列来存储由外部教师生成的伪标签,以便于维持高质量的伪标签和平衡的数据采样,用于学生模型训练。

类不可知框回归头

类不可知框回归头是边界框回归分支,共享所有类别的参数,即,每个框 i i i 的回归框 b i ∈ R 4 b_i \in \mathbb{R}^4 biR4 而不是 b i ∈ R 4 ∣ C test ∣ b_i \in \mathbb{R}^{4 |C_{\text{test}}|} biR4∣Ctest。这种方法可以简化模型并使其更加通用,允许处理对象类别数量不固定的情况。

语义分类器头

语义分类器头旨在对超出预定义类别集的 RoI 区域(兴趣区域)进行分类。我们遵循 Detic 使用类别词汇的语义嵌入作为最后全连接层的权重。通过这样做,可以轻松扩展预测类别。语义嵌入通过两个步骤生成:(1) 用预定义的提示模板“a photo of [category]”填充概念。(2) 通过 RemoteCLIP 的预训练文本编码器将文本描述编码为语义嵌入 t j t_j tj。给定一组 RoI 特征 { v i } k i = 1 \{v_i\}_{k i=1} {vi}ki=1,预测分数计算为

[ \hat{s}_{ij} = \frac{v_i^T \cdot t_j}{|v_i| \cdot |t_j|} ]

其中 τ 是控制 softmax 中 logits 范围的温度参数,它在训练过程中直接作为一个对数参数化的乘法标量进行优化。

定位教师

指数移动平均

正如我们之前讨论的,航空图像中新型类别的区域提议召回率显著低于自然图像(图 1)。为了解决这个问题,我们采用了一个强大的教师进行对象发现。为了实现开放词汇检测,教师需要不断更新,学习如何发现和定位所有可能的新型类别。因此,我们采用了学生和教师模型之间的交互学习机制,而不是冻结教师。教师模型在训练迭代过程中通过学生模型的指数移动平均值进行更新。教师的权重 θ ′ \theta' θ 按以下方式更新:

[ \theta'_t = \alpha \theta'_{t-1} + (1 - \alpha) \theta_t ]

其中 α ∈ [0, 1) 是动量系数。这比冻结教师带来了三个实际优势:首先,教师可以充分利用未标记数据,以更少的注释数据提高模型的准确性;其次,它可以聚合学生模型的历史信息,从而获得更稳健的预测 [32];第三,该方法实现了在线学习,并且可以扩展到更多新型概念。

一致性训练与熵最小化

给定一个未标记的图像,对其应用弱增强和强增强,分别作为定位教师和学生的输入。我们应用一致性训练 [1],鼓励学生对未标记增强输入预测与教师相同的类别。然后,我们最小化这两个预测之间的交叉熵 [30],即, min ⁡ θ H ( p m ( y ∣ θ ) , p m ( y ∣ θ ′ ) ) \min_{\theta} H(p_m(y|\theta), p_m(y|\theta')) minθH(pm(yθ),pm(yθ))

边界框选择策略

定位教师的主要任务是确定对象的边界框,其准确性极大地影响了外部教师为新型类别生成可靠伪标签。在这个阶段,我们更强调伪框的精确度,因为师生学习本质上在较少标签的情况下产生有利的结果 [32]。我们比较了不同的边界框选择策略,如图 4 所示:
在这里插入图片描述

  1. RPN 分数。这种策略过滤掉了前景置信度低的 RPN 框,这是大多数 OVD 方法采用的常见方法 [4,44]。

  2. 边界框抖动方差(BJV)。边界框抖动意味着在 b i b_i bi 周围随机采样一组抖动框,并预测它们的细化框 { b ^ i , j } \{\hat{b}_{i,j}\} {b^i,j}。BJV 定义为 σ ˉ i = 1 4 ∑ k = 1 4 σ i k \bar{\sigma}_i = \frac{1}{4} \sum_{k=1}^{4} \sigma_{ik} σˉi=41k=14σik,其中 { σ i k } k = 1 4 \{\sigma_{ik}\}_{k=1}^{4} {σik}k=14 分别表示第 i i i 组框的标准差, h i , w i h_i, w_i hi,wi 分别表示高度和宽度 [36]。

  3. 回归抖动方差(RJV)。回归抖动意味着我们迭代地将预测的框放入回归分支进行更精确的预测。RJV 定义为 σ ˉ i = 1 4 ∑ k = 1 4 σ i k 2 \bar{\sigma}_i = \frac{1}{4} \sum_{k=1}^{4} \sigma_{ik}^2 σˉi=41k=14σik2,其中 { σ i k } k = 1 4 \{\sigma_{ik}\}_{k=1}^{4} {σik}k=14 是第 i i i 组回归框的标准差, h − 1 , w − 1 h^{-1}, w^{-1} h1,w1 分别是上一次回归框的高度和宽度。

动态伪标签队列

在这里插入图片描述

动态队列的工作流程包括两个步骤:1)通过外部教师生成高质量的伪标签;2)动态更新伪标签队列并传输数据,如图 5 所示。

生成伪标签

给定未标记图像 I I I 作为定位教师模型的输入,RPN 生成一组提议 { p i } \{p_i\} {pi}。然而,直接将这些提议输入 RemoteCLIP 进行类别预测在计算上是浪费和多余的。因此,我们使用提议过滤器选择 k 个候选项,如第 3.3 节所讨论的。随后,我们通过 RoI 池化提取这些提议的区域特征 f P ∈ R k × d f_P \in \mathbb{R}^{k \times d} fPRk×d 并通过类不可知回归分支预测它们的坐标 B = { b ^ i } i = 1 k B = \{\hat{b}_i\}_{i=1}^k B={b^i}i=1k。最后,我们通过从图像中裁剪相应区域获得一组图像裁剪 I ′ = { x I i } i = 1 k I' = \{x_{I_i}\}_{i=1}^k I={xIi}i=1k。对于图像裁剪 x I i x_{I_i} xIi,我们首先通过 RemoteCLIP 的视觉编码器提取其视觉特征 v i v_i vi。语义嵌入 t j t_j tj 是通过在第 3.2 节中提到的方法创建的。给定一组 RoI 特征 { v i } k i = 1 \{v_i\}_{k i=1} {vi}ki=1,预测分数的计算如下:

[ \hat{p}_{ij} = \frac{e^{\hat{s}_{ij}}}{\sum_{k} e^{\hat{s}_{ik}}} ]

其中 s ^ i j \hat{s}_{ij} s^ij 是通过公式 (1) 计算的。为了确保伪标签的可靠性,我们使用一个相对较高的阈值 p 0 p_0 p0 来过滤预测概率 p ^ i j \hat{p}_{ij} p^ij,并将带有正面样本的图像 ( I , y ^ ) (I, \hat{y}) (I,y^) 推入动态标签队列,其中 y ^ = { ( b ^ i , c ^ i ) } i = 1 k \hat{y} = \{(\hat{b}_i, \hat{c}_i)\}_{i=1}^k y^={(b^i,c^i)}i=1k 并且 c ^ i = arg ⁡ max ⁡ j p ^ i j \hat{c}_i = \arg\max_j \hat{p}_{ij} c^i=argmaxjp^ij 表示预测标签。

维护队列

动态标签队列包括一个用于存储图像元数据(例如,图像路径、标签、框等)的伪标签队列,以及一个索引字典来管理类别和图像索引之间的映射关系,如图 5(b) 所示。标签队列和索引字典通过定位教师生成的连续伪框流动态更新。具体来说,相同的图像将被覆盖,先前被识别为不存在对象的图像将在后续预测中被推入队列。同时,索引字典将更新为 { cls_id : list [ image_ids ] } \{ \text{cls\_id} : \text{list}[\text{image\_ids}] \} {cls_id:list[image_ids]}。这个动态过程使得队列能够随着模型迭代累积更丰富和更准确的伪标签。从动态标签队列到学生模型的数据传输由索引字典控制。最初,教师迭代所有未标记数据并将伪标签推入队列。随后,从每个类别的 [ image_ids ] [\text{image\_ids}] [image_ids] 列表中随机采样图像,并指定概率。选定的图像及其伪标签用于训练学生模型。这种方法作为引入新类别知识的动力,促进了学生和定位教师之间的正反馈循环。因此,整个系统被驱动去学习和发现新目标。

混合训练

训练过程如图 3 所示,总体损失包括三个部分:

[ L = L_s + \alpha L_u + \beta L_d ]

其中 L s L_s Ls L u L_u Lu L d L_d Ld 分别表示标记图像的监督损失、由定位教师注释的伪框的未标记图像的非监督损失,以及从动态标签队列中采样的图像的非监督损失。标记数据流。给定一批标记数据 { ( I k , { ( b i , c i ) } ) } \{(I_k, \{(b_i, c_i)\})\} {(Ik,{(bi,ci)})},我们使用开放词汇探测器预测它们坐标 { b ^ i } \{\hat{b}_i\} {b^i} 和预测分数 { s ^ i } \{\hat{s}_i\} {s^i},如图 3(a) 所示。监督损失计算如下:

[ L_s = \frac{1}{N_b} \sum_{i=1}^{N_b} L_{\text{cls}}(\hat{s}_i, c_i) + \frac{1}{N_{fg b}} \sum_{i=1}^{N_{fg b}} L_{\text{reg}}(\hat{b}_i, b_i) ]

其中 L cls L_{\text{cls}} Lcls 是分类损失, L reg L_{\text{reg}} Lreg 是边界框回归损失, N b N_b Nb N f g b N_{fg b} Nfgb 分别表示提议的总数和前景提议的数量。

未标记数据流

非监督损失 L u L_u Lu 由两部分组成:分类损失 L cls u L_{\text{cls} u} Lclsu 和边界框回归损失 L reg u L_{\text{reg} u} Lregu。在训练过程的初始阶段,系统难以检测新型类别。直接通过 RPN 分数或分类分数过滤预测会导致大量的假阴性。因此,我们为负样本分配权重 w j w_j wj,这是第 j j j 个候选者的背景预测分数的归一化贡献。分类损失定义为:

[ L_{\text{cls} u} = \frac{1}{N_{fg b}} \sum_{i=1}^{N_{fg b}} L_{\text{cls}} (\hat{s}_i, \hat{c}_i) + \frac{1}{N_{bg b}} \sum_{j=1}^{N_{bg b}} w_j L_{\text{cls}} (\hat{s}_j, \hat{c}_j) ]

其中 N b g b N_{bg b} Nbgb 表示背景目标的总数。我们应用边界框选择策略来过滤训练回归分支的候选者。回归损失定义为:

[ L_{\text{reg} u} = \frac{1}{N_{fg b}} \sum_{i=1}^{N_{fg b}} L_{\text{reg}} (\hat{b}_i^{\text{fg}}, \hat{b}_i) ]

其中 b ^ i fg \hat{b}_i^{\text{fg}} b^ifg b ^ i \hat{b}_i b^i 分别表示预测的前景框和分配的伪框。

队列数据流

为了激励学生-多教师模型在自学习过程中发现新目标,从动态队列中随机采样特定数量的图像。鉴于定位教师已经负责指导学生发现和定位目标,我们仅计算这些采样图像的分类损失,目的是将新知识融入学生的训练中。目标格式如下:

[ L_d = \frac{1}{N_b} \sum_{i=1}^{N_b} L_{\text{cls}}(\hat{s}_i, \hat{c}_i) ]

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于(Arxiv,2023)CLIP激活的蒸馏学习:面向开放词汇的航空目标检测技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032087

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖