基于语义增强的少样本检测,突破新类别偏见 | ICIP24

news/2024/9/20 9:47:38

Few-shot目标检测(FSOD)旨在在有限标注实例的情况下检测新颖对象,在近年取得了显著进展。然而,现有方法仍然存在偏见表示问题,特别是在极低标注情况下的新颖类别。在微调过程中,一种新颖类别可能会利用来自相似基础类别的知识来构建自己的特征分布,导致分类混淆和性能下降。为了解决这些挑战,论文提出了一种基于微调的FSOD框架,利用语义嵌入来实现更好的检测。在提出的方法中,将视觉特征与类名嵌入对齐,并用语义相似性分类器替换线性分类器,训练每个区域提议收敛到相应的类别嵌入。此外,引入了多模态特征融合来增强视觉-语言通信,使新颖类别可以明确地从训练有素的相似基础类别中获得支持。为了避免类别混淆,提出了一种语义感知最大间隔损失,自适应地应用于超出相似类别的间隔。因此,论文的方法允许每个新颖类别构建一个紧凑的特征空间,而不会与相似基础类别混淆。

来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Semantic Enhanced Few-shot Object Detection

  • 论文地址:https://arxiv.org/abs/2406.13498

Introduction


  深度神经网络在目标检测方面最近取得了巨大进展。然而,深度检测器需要大量标注数据才能有效识别一个对象。相比之下,人类只需要少量样本就能识别一类对象。常规检测器在少样本情境下容易出现过拟合问题,缩小常规检测与少样本检测之间的性能差距已成为计算机视觉领域的一个关键研究领域。

  与少样本分类和常规目标检测相比,少样本目标检测(FSOD)是一项更具挑战性的任务。在给定具有足够数据量的基础类别和仅有少量带标签边界框的新颖类别的情况下,FSOD致力于学习基础类别上的基础知识,并在新颖类别上具有良好的泛化能力。早期的FSOD方法倾向于遵循元学习范式,学习与任务无关的知识,并快速适应新任务。然而,这些方法需要复杂的训练过程,并常常在实际环境中表现不佳。另一方面,基于微调的方法采用简单而有效的两阶段训练策略,并取得可比较的结果。

  近年来,许多研究集中在基于微调的FSOD上,旨在将从丰富基础数据中学到的知识转移到新颖类别。TFA揭示了在微调期间简单冻结最后几层的潜力,为基于微调的方法奠定了基础。DeFRCN通过缩放和截断梯度来解耦分类和回归,并实现了卓越的性能。尽管它们取得了成功,仍然存在两个潜在问题:

  1. 先前基于微调的FSOD方法在训练样本极为有限时会出现性能下降,例如,当每个类别只有一个带标注的边界框时。只有一个对象无法很好地代表外观多样的类别是合理的,这种偏向性表示严重损害了新颖类别的性能。
  2. FSOD的性能继续受到新颖类别和基础类别之间混淆的威胁。仅有少量带标注样本时,新颖类别几乎无法构建紧凑的特征空间。这可能造成新颖类可能散布在类似基础类别良好构建的特征空间中,导致分类混淆。

  论文提出一个基于微调的框架,利用语义嵌入来提高对新颖类别的泛化能力。该框架在微调阶段用语义相似分类器(SSC)取代线性分类器,通过计算类名嵌入和提议物体区域特征之间的余弦相似度产生分类结果。此外,论文提出了多模态特征融合(MFF)来对视觉和文本特征进行深层融合。论文还在原始交叉熵损失之上应用了语义感知最大间隔(SAM)损失,以区分与自身相似的新颖类别和基础类别,如图1所示。在微调过程中,SSCMFF通过经典的Faster R-CNN损失和SAM损失以端到端的方式进行优化。

  论文的贡献可总结如下:

  1. 提出一个利用语义信息来解决少样本性能下降和类别混淆问题的框架。

  2. 为了解决这些问题,设计了三个新模块,即SSCMFFSAM损失。这些模块提供无偏表示,并增加类间分离。

  3. PASCAL VOCMS COCO数据集进行了大量实验,证明方法的有效性。结果表明,论文的方法将最先进性能大幅提升。

Method


FSOD Preliminaries

  论文遵循之前的工作中的Few-shot目标检测(FSOD)设置。将训练数据分为基础集合 \(\mathcal{D}_b\) 和新颖集合 \(\mathcal{D}_n\) ,其中基础类别 \(\mathcal{C}_b\) 具有丰富的标记数据,而每个新颖类别 \(\mathcal{C}_n\) 只有少量注释样本。基础类别和新颖类别之间没有重叠,即 \(\mathcal{C}_b \cap \mathcal{C}_n = \varnothing\) 。在迁移学习的背景下,训练阶段包括在 \(\mathcal{D}_b\) 上的基础训练和在 \(\mathcal{D}_n\) 上的新颖微调。目标是利用从大规模基础数据学习到的通用知识快速适应新颖类别,期望能够检测测试集中 \(\mathcal{C}_b \cup \mathcal{C}_n\) 类别中的对象。

  论文的方法可以以即插即用的方式应用于任何基于微调的Few-shot检测器,并将论文的方法与之前的最先进方法DeFRCN进行集成以进行验证。与TFA不同的是,DeFRCN在第二阶段冻结大多数参数以防止过拟合,提出了Gradient Decoupled Layer来截断RPN的梯度并调整两个阶段中R-CNN的梯度。

Semantic Alignment Learning

  论文旨在利用语义嵌入,为所有类别提供无偏的表示,以解决性能下降问题,特别是在极低样本情景下。

  • Semantic Similarity Classifier

  论文的Few-shot检测器建立在流行的两阶段目标检测器Faster R-CNN之上。在Faster R-CNN中,提取区域建议,并将其传递给框分类器和框回归器以生成类别标签和准确的框坐标。以往基于微调的Few-shot目标检测方法简单地通过随机初始化来扩展分类器,以泛化到新颖类别。然而,仅给定一两个新颖对象的标记样本时,检测器很难为每个新颖类别构建无偏的特征分布,特别是当新颖样本不够具有代表性时。新颖类别的无偏特征分布将导致令人不满意的检测性能。

  为了克服上述障碍,论文提出了一个语义相似度分类器,并使用固定的语义嵌入进行识别,而不是线性分类器。这是基于这样一个观察结果:类名嵌入与大量的视觉信息内在地对齐。当训练样本极为有限时,类名嵌入可作为良好的类中心。

  首先通过一个投影器将区域特征与语义嵌入进行对齐,然后利用投影后的区域特征与类名嵌入之间的余弦相似度来生成分类得分 \(\mathbf{s}\)

\[\begin{equation} \mathbf{s}=\text{softmax}(\text{D}(\mathbf{t}, \mathbf{Pv})) \label{eq:projection} \end{equation} \]

  其中, \(\mathbf{v}\) 是区域特征, \(\mathbf{P}\) 是投影器, \(\mathbf{t}\) 是类名嵌入, \(\text{D}\) 表示距离测量函数。

  • Multimodal Feature Fusion

  语义相似度分类器学习将视觉空间中的概念与语义空间对齐,但仍然独立地处理每个类别,并且在除了最后一层之外,不进行模态之间的知识传播。这可能对充分利用类间相关性构成障碍。因此,论文进一步引入多模态特征融合,以促进跨模态通信。融合模块基于交叉注意力机制,在区域特征 \(\mathbf{v}\) 和类名嵌入 \(\mathbf{t}\) 上进行聚合。从数学上讲,该过程如下所示:

\[\begin{equation} q_v=W^{(q)}\mathbf{v}, k_t=W^{(k)}\mathbf{t}, v_t=W^{(v)}\mathbf{t} \label{eq:attn_proj} \end{equation} \]

\[\begin{equation} attention=\text{softmax}(q_vk_t^T/\sqrt{d}) \label{eq:x-attn} \end{equation} \]

\[\begin{equation} \hat{q_v}=q_v+attention\cdot v_t \label{eq:residual} \end{equation} \]

  其中, \(W^{(q)}, W^{(k)}, W^{(v)}\) 是交叉注意力的可训练参数, \(d\) 是中间通道的大小。

  多模态融合模块确保在图像特征提取的早期阶段与文本特征进行充分的通信,从而丰富了区域特征的多样性。此外,它提高了利用语义信息中包含的类间相关性的效果。

Semantic-aware Max-margin Loss

  语义相似度分类器将视觉特征与语义嵌入对齐,导致新类别的特征分布无偏。然而,语义嵌入中包含的类间相关性也可能导致相似基类和新类之间的类别混淆。为了避免这种情况,论文提出了一种基于语义感知的最大间隔损失,根据它们的语义关系在两个类别之间应用自适应边界。

  在先前的研究中,分类分支通过端到端的交叉熵损失进行优化,每个区域特征被训练成靠近类中心。给定第 \(i\) 个区域特征 \(v_i\) 和标签 \(y_i\) ,分类损失计算如下。

\[\begin{equation} L_{cls}=-\frac{1}{n}\sum_{i=1}^{n}\text{log} \ \frac{e^{\text{D}(v_i, t_{y_i})}}{\sum_{j=1}^{n}e^{\text{D}(v_i, t_{y_j})}} \label{eq:cross_entropy} \end{equation} \]

  其中 \(t_{y_i}\)\(y_i\) 的类名嵌入。

  论文用冻结的语义嵌入替换线性分类器。因此,新类别可以从训练良好的相似基类中学习。然而,如果两个类别之间的语义关系非常接近,这也可能造成混淆。因此,论文在交叉熵损失上添加一个自适应边界,将可能混淆的类别彼此分开。从数学上讲,语义感知最大间隔损失计算如下。

\[\begin{equation} L_{sam}=-\frac{1}{n}\sum_{i=1}^{n}\text{log} \ p_i \label{eq:max-margin1} \end{equation} \]

  其中 \(p_i\) 表示分类分数,

\[\begin{equation} p_i=\frac{e^{\text{D}(v_i, t_{y_i})}}{e^{\text{D}(v_i, t_{y_i})} + \sum_{j\neq i}^{n}e^{\text{D}(v_i, t_{y_j}) + m_{ij}}} \label{eq:max-margin2} \end{equation} \]

  其中 \(m_{ij}\) 表示应用于类别 \(i\) 和类别 \(j\) 之间的边界,

\[\begin{equation} m_{ij}= \begin{cases} \text{cosine}(t_i, t_j)& \text{cosine}(t_i, t_j)-\gamma>0 \\ 0& \text{cosine}(t_i, t_j)-\gamma\leq0 \end{cases} \label{eq:max-margin3} \end{equation} \]

  其中 \(\gamma\) 是语义相似性的阈值。对于每个类别,选择仅将前 \(k\) 个最相似的类别应用边界,以避免不必要的噪声。

Experiments




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/62427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何解决Warning: include(): Failed opening file_path for inclusion问题

解决方法检查文件路径确认文件路径是否正确无误,包括路径中的每个目录和文件名。验证文件是否存在使用file_exists()函数检查文件是否真的存在于指定路径上。检查文件权限确认文件具有足够的权限供当前用户读取。可以使用chmod命令修改文件权限:bashchmod 644 file_path确认文…

如何解决Unknown column column_name in field list问题

当遇到 "Unknown column column_name in field list" 这类错误时,通常表明 SQL 查询中引用了一个不存在的列。这类错误通常会给出具体的列名和出错的位置。下面是一些详细的解决步骤: 解决方法:检查 SQL 查询:确认 SQL 查询中引用的列名是否正确。检查拼写错误或…

最小圆覆盖(html)

最小圆覆盖问题是什么呢?就是指在二维平面上有一堆点,然后我们要求一个最小半径的圆能够将所有点全部都包住,这就是最小圆覆盖问题。 最小覆盖圆的性质 性质1:最小覆盖圆是唯一的 证明:我们假设有两个圆O1,O2,他们半径都是r,都是最小覆盖圆,那么所有的点一定在两圆的…

如何解决You have an error in your SQL syntax

当遇到 "You have an error in your SQL syntax" 这类错误时,通常表明 SQL 语句存在语法错误。这类错误通常会给出具体的错误位置和可能的原因。下面是一些详细的解决步骤: 解决方法:查看错误提示:错误提示通常会显示具体的 SQL 语句和出错的位置。例如: You ha…

网络安全C10-2024.9.15-Nmap、Xray、Nessus和AWVS使用扫描

1、安装并使用Nmap扫描一个地址(本机、VPS、虚拟机环境都可以),提供扫描结果截图nmap下载安装: https://nmap.org/download#windowsnmap概述: Nmap(“Network Mapper<网络映射器>”)是一款开放源代码的网络探测和安全审核的工具。 Nmap输出的是扫描目标的列表,以…

Warning: Cannot redeclare function_name()

"Warning: Cannot redeclare function_name()"原因:尝试重新声明已存在的函数。 解决方法:检查是否有重复定义函数的情况,确保每个函数只定义一次。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javas…

2024-08-29-SEA-RAFT-中英对照

SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical Flow SEA-RAFT:简单、高效、准确的光流RAFT算法 Yihan Wang, Lahav Lipson, and Jia Deng 王一涵,Lahav Lipson,和Jia Deng Department of Computer Science, Princeton University {yw7685, llipson, jiadeng}@pr…

You have an error in your SQL syntax

"You have an error in your SQL syntax"原因:SQL语句语法错误。 解决方法:检查SQL语句,确保语法正确。例如,如果提示在LIMIT子句附近出错,检查LIMIT后面的参数是否合法。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MY…