(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

相关文章

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N