【CARD】多变化字幕的上下文感知差异提炼(ACL 2024)

摘要

  • Multi-change captioning旨在用自然语言描述图像对中的复杂变化。和图像字幕相比,这个任务要求模型具有更高层次的认知能力来推理任意数量的变化。
  • 本文提出一种新的上下文感知差异提取网络(CARD)。给定一个图像对,CARD首先解耦聚合所有公共/差异上下文特征。然后,设计一致性和独立性约束,以保证公共/差异上下文特征的alignment/discrepancy。此外,公共上下文特征引导模型挖掘局部不变的特征,并从这对特征中减去,提取局部不同的特征。差异上下文特征增强了局部差异特征,以确保所有的变化都被提炼出来。以此得到所有变化的全方位表示,并通过一个transformer解码器生成语言句子。
  • 文章链接:https://arxiv.org/abs/2405.20810
  • 代码链接:GitHub - tuyunbin/CARD: [ACL 2024] This is the Pytorch code for our paper "Context-aware Difference Distilling for Multi-change Captioning".

动机

  • 之前的研究取得了进展,但是还存在一些局限性。
  1. 在视点变化下,两幅图像之间的直接减法在归纳为未对齐的图像对上效果很差,如图1 (c)。
  2. 随着多个对象的变化,直接关联两个图像不能充分挖掘局部不变的特征,因为这些特征可能和变化后对象的特征混合在一起。
  3. 之前的研究方法侧重于建模局部差异特征,有利于捕捉明显的变化。但是,一些较弱特征的局部变化可能会被忽略,例如,图1 (a)中的汽车被其阴影遮挡这些限制将导致语言解码器获得不可靠的差异特征。
  • 之前的方法仅基于局部特征捕获两幅图像之间的差异,而忽略了更全面的特征的使用。因此,本文认为,为了学习两幅图像的局部不变/变化的特征,模型应首先封装它们的共性和差异性的上下文特征,这种上下文特征聚合了所有相似/不同的语义。称为公共/差异上下文特征。前者帮助挖掘局部共性来推断局部差异特征,后者增强局部差异特征,确保所有的变化被提炼出来。
  • 简而言之,和以往仅基于局部特征计算差异特征的方法不同,CARD首先从图像对中解耦公共和差异上下文特征。公共上下文特征引导模型完全提取局部不变的特征来计算局部差异的特征,而差异上下文特征增强局部差异特征,构造所有变化的全表示,以生成准确的句子。

方法

CARD的总体架构如下图所示:

CARD包含三个组成部分:

  • 图像对编码:首先使用预训练的ResNet101分别提取双时态特征。然后,引入一个可训练的[CLS]表示每个图像的全局内容,并添加位置编码。之后使用多头自注意力层获取每个图像特征之间的关系。
  • 上下文感知的差异蒸馏
    • 上下文特征解耦:一个公共编码器CE和两个差异编码器DE获取公共和差异上下文特征,前者共享参数,后者不共享。
      • Consistency Constraint:基于对比学习设计,将两个公共的上下文特征嵌入到一个共享空间。给一个采用了B对特征训练batch,对于第k个before图像 C_k^{bef}的公共上下文特征,第r个after图像 C_{r(r=k)}^{aft^+}是正样本,其他 C_{r(r\neq k)}^{aft^-}是负样本。然后,将这些正/负对投影到一个共享的嵌入空间中,并对它们使用L2归一化且计算它们之间的相似性。引入InfoNCE损失来优化,即拉近语义相近的 C_k^{bef}C_{r(r=k)}^{aft^+}对,推开非相关对。
      • Independence Constraint:确保两个不同的上下文特征被投影到单独的特征空间。首先将每个图像的差异上下文特征投影到单独空间,用过L2归一化处理,并定义 D_{bef}D_{aft}之间的独立性约束( Hilbert-Schmidt独立性准则,HSIC, 这是一种已被证明的测试特征独立性的方法,来设计独立性约束的损失。)如果得分较低,则其差异越显著。
    • 差异蒸馏
      • 使用公共上下文解耦得到的结果和图像对编码阶段得到的结果在通道方向上连接,引导图像交互挖掘局部不变特征,并使用ReLU激活函数处理,输入到多头交叉注意力机制中计算每个图像上的局部公共特征。随后,多头注意力机制得到的结果减去图像对编码阶段的结果,计算每个图像的局部差异特征。这些局部差异特征通过每个图像的不同上下文特征进一步增强,从而提取出每个图像中所有的真实变化。得到的结果和差异上下文解耦模块得到的结果级联起来,并使用ReLU激活函数处理,作为两个图像之间所有变化的综合表示。
  • 标题生成解码器:使用transformer作为解码器。

实验

Implementation Details

遵循之前的multi-change captioning方法,使用预先训练的ResNet-101提取一对图像的局部特征,特征维数为1024×14×14,将其投影到较低的512维度中,可训练的[CLS]特征的维数也被设置为512,模型的隐藏层大小和单词嵌入大小分别设置为512和300。等式(2)中温度τ设置为0.07。

Performance Comparison

Results on CLEVR-Multi-Change

Results on LEVIR-CC
Results on the Spot-the-Diff Dataset

Ablation Study and Analysis

Ablation Study for Context Features
Ablation Study for Constrains
Generalization to unaligned image pairs

Qualitative Analysis

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vm.max_map_count是什么?起到什么作用

vm.max_map_count 是 Linux 内核中的一个参数,它决定了一个进程可以拥有的最大内存映射区域数。内存映射区域是指内存映射文件、匿名内存映射等。这个参数对于一些应用程序(如 Elasticsearch)特别重要,因为它们在运行时会创建大量…

socket通讯可以直接传地址吗?【面试】

在网络编程中,socket 通信不直接传输内存地址。这是因为网络通信是在不同的内存空间和可能不同的计算机之间进行的,内存地址在不同的进程和机器上没有意义。相反,socket 通信使用套接字(socket): IP地址&a…

深入浅出Java的函数式编程

深入浅出Java的函数式编程 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨Java中的函数式编程,这是一种强大的编程范式,它…

用 Terraform 初始化 GCP环境

前置准备 安装 Terraform 请参考 Terraform 官方文件 安装 Terraform。MacOS 可以使用 Homebrew 安装: brew install terraform 安装 Google Cloud SDK 请参考 Google Cloud SDK 官方文件 安装 Google Cloud SDK。MacOS 可以使用 Homebrew 安装: b…

Multigranularity and MultiscaleProgressive Contrastive Learning

这篇文章将一张图片划分为四个不同细粒度大小的图片,然后输出四个神经网络,这四个神经网络共享权重,得到四个输出,将这四个输出求交叉熵损失和对比学习损失,共同监督模型学习。 通过对比学习,最大化一个Bat…

Microsoft Edge无法启动搜索问题的解决

今天本来想清一下电脑,看到visual studio2022没怎么用了就打算卸载掉。然后看到网上有篇文章说进入C盘的ProgramFiles(x86)目录下的microsoft目录下的microsoft visual studio目录下的install目录中,双击InstallCleanup.exe&#…

谷歌浏览器与谷歌驱动匹配

网址:Chrome for Testing availability (googlechromelabs.github.io)

中医诊所处方药材管理系统有哪些必备功能?

随着信息技术的飞速发展,传统中医行业也迎来了数字化转型的浪潮。欣九康诊疗系统,具有全面的功能,可以作为一款合适中医诊所处方药材管理系统来使用。那么,中医诊所使用欣九康,有哪些独特的功能和优势呢?能否为中医诊…

Windows环境利用 OpenCV 中 CascadeClassifier 分类器识别人脸 c++

Windows环境中配置OpenCV 关于在Windows环境中配置opencv的说明,具体可以参考:VS2022 配置OpenCV开发环境详细教程。 CascadeClassifier 分类器 CascadeClassifier 是 OpenCV 库中的一个类,它用于实现一种快速的物体检测算法,称…

API接口技术开发分享;按关键字搜索淘宝、天猫商品API返回值接入说明

淘宝数据API的接入流程主要包括注册key账号、创建开发者应用、获取ApiKey和ApiSecret、申请API权限等步骤。淘通过这些接口可以获取商品、订单、用户、营销和物流管理等多方面的数据。以下是关于淘宝数据API接入流程的相关介绍: 注册key账号:进行账号注册…

JAVA医院绩效考核系统源码 功能特点:大型医院绩效考核系统源码

JAVA医院绩效考核系统源码 功能特点:大型医院绩效考核系统源码 医院绩效管理系统主要用于对科室和岗位的工作量、工作质量、服务质量进行全面考核,并对科室绩效工资和岗位绩效工资进行核算的系统。医院绩效管理系统开发主要用到的管理工具有RBRVS、DRGS…

AUCell和AddModuleScore函数进行基因集评分

AUCell 和AddModuleScore 分析是两种主流的用于单细胞RNA测序数据的基因集活性分析的方法。这些基因集可以来自文献、数据库或者根据具体研究问题进行自行定义。 AUCell分析原理: 1、AUCell分析可以将细胞中的所有基因按表达量进行排序,生成一个基因排…

Unity核心

回顾 Unity核心学习的主要内容 项目展示 基础知识 认识模型制作流程 2D相关 图片导入设置相关 图片导入概述 参数设置——纹理类型 参数设置——纹理形状 参数设置——高级设置 参数设置——平铺拉伸 参数设置——平台设置(非常重要) Sprite Sprite Edit…

【Apache Doris】周FAQ集锦:第 7 期

【Apache Doris】周FAQ集锦:第 7 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和…

uvalde-bash提权

**后续需要虚拟机的私信我,我会打包进行文章发布链接,请持续关注!!!** VM网络不通也没法改密码进去,只能下个VirtualBox和VMware互通了 vmware与virtualbox虚拟机互通_vmware和virtualbox互联-CSDN博客 但…

动态规划03(二维01背包,一维01背包,leetcode416)

参考资料: https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 46. 携带研究材料(第六期模拟笔试) 题目描述: 输入示例 6 1 2 2 3 1 5 2 2 3 1 5 4 3 输出示例 …

软件测试质量度量之 “三级指标体系”

管理学大师彼得 - 德鲁克曾说过:无数据不管理。 数字是人们快速认知事物的一种有效方式。无论在生活还是工作,对事还是对人都息息相关。碰上难以的用数字描述事物或现象肯定是没有找对适用的指标和度量方式。尤其对于质量工程方面的工作,定量…

喂饭教程:AI生成100套Word题库阿里云百炼实训营

郭震原创,手撸码字187022张图 你好,我是郭震 1 实际需求 前段时间,有个关注我的粉丝联系我,是一位大学计算机女老师。 她想做一个二级考试题库,选择题实操题,最好100套以上,拿来给学生练手。 问…

解两道四年级奥数题(等差数列)玩玩

1、1~200这200个连续自然数的全部数字之和是________。 2、2,4,6,……,2008这些偶数的所有各位数字之和是________。 这两道题算易错吧,这里求数字之和,比如124这个数的全部数字之和是1247。 …

【ClickHouse】副本、分片集群 (六)

副本 副本的目的主要是保障数据的高可用性,即使一台ClickHouse节点宕机,那么也可以从其他服务器获得相同的数据。 https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/ 副本写入流程 写入流程如图-18所示: 图-18 写…