(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) 是动量系数。这比冻结教师带来了三个实际优势:

  1. 教师可以充分利用未标记数据,以更少的注释数据提高模型的准确性;
  2. 它可以聚合学生模型历史信息,从而获得更稳健的预测;
  3. 该方法实现了在线学习,并且可以扩展到更多新型概念。

一致性训练与熵最小化

给定一个未标记的图像,对其应用弱增强和强增强,分别作为定位教师学生模型的输入。我们应用一致性训练,鼓励学生对未标记增强输入预测与教师相同的类别。然后,我们最小化这两个预测之间的交叉熵,即, 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θ))

边界框选择策略

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

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

  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 分别表示高度和宽度。

  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 个候选项,如定位教师所讨论的。随后,我们通过 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 是通过在开放词汇对象探测器中提到的方法创建的。给定一组 RoI 特征 { v i } k i = 1 \{v_i\}_{k i=1} {vi}ki=1,预测分数的计算如下:
在这里插入图片描述

其中 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) ]

实验

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

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 22:50:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 22:50:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 22:50:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 22:50:04       20 阅读

热门阅读

  1. .net后端程序发布到nignx上,通过nginx访问

    2024-06-10 22:50:04       10 阅读
  2. 7、Spring之Bean生命周期~初始化

    2024-06-10 22:50:04       8 阅读
  3. Spring 冷知识:利用 @Profile 实现 AOP 的预先配置

    2024-06-10 22:50:04       11 阅读
  4. 京东一面测开(KPI)

    2024-06-10 22:50:04       10 阅读
  5. 构建高效爬虫系统:设计思路与案例分析

    2024-06-10 22:50:04       10 阅读
  6. 速览三版HTTP的改进策略

    2024-06-10 22:50:04       7 阅读
  7. 困难 Leetcode 312. 戳气球 区间dp/记忆化搜索

    2024-06-10 22:50:04       9 阅读
  8. 力扣22. 括号生成

    2024-06-10 22:50:04       10 阅读
  9. Leetcode 3177. Find the Maximum Length of a Good Subsequence II

    2024-06-10 22:50:04       16 阅读
  10. 力扣1234.替换子串得到平衡字符串

    2024-06-10 22:50:04       7 阅读
  11. C# —— 二维数组

    2024-06-10 22:50:04       9 阅读
  12. c++外部模板

    2024-06-10 22:50:04       9 阅读
  13. linux 启动minio.rpm , minio服务启动

    2024-06-10 22:50:04       10 阅读
  14. linux 关于jq的安装和使用

    2024-06-10 22:50:04       13 阅读
  15. 网络流媒体协议——HLS协议

    2024-06-10 22:50:04       10 阅读