Spherical Linear Interpolation and Text-Anchoring for Zero-shot Composed Image Retrieval

news/2025/2/24 17:03:49/文章来源:https://www.cnblogs.com/MTandHJ/p/18734467

目录
  • Spherical Linear Interpolation (Slerp)
    • Text-Anchored-Tuning (TAT)
  • 代码

Jiang Y. K., Huynh D., Shah A., Chen W. and Lim S. Spherical linear interpolation and text-anchoring for zero-shot composed image retrieval. ECCV, 2024.

本文提出了一种非常简单的 Zero-Shot Composed Image Retrieval (ZS-CIR) 方法. 仅通过 image feature 和 text feature 间的球面线性插值就可以得到 SOTA 的结果.

Spherical Linear Interpolation (Slerp)

  • ZS-CIR 的目标是找到匹配图片 \(x\) 和一段文本描述 \(t\) 的其它图片.

  • 通过 visual/textual encoder 我们可以得到二者的向量表示 (normalize 过后的):

    \[\mathbf{v} = E_I(x) \in \mathbb{R}^d, \\ \mathbf{w} = E_t(t) \in \mathbb{R}^d. \]

  • 本文提出了一种非常简单的方式: Slerp. 即通过两个向量的球面线性插值得到

    \[\mathbf{c}: \text{Slerp}(\mathbf{v}, \mathbf{w}; \alpha) =\frac{\sin((1 - \alpha) \theta)}{\sin(\theta)} \mathbf{v} +\frac{\sin(\alpha \theta)}{\sin(\theta)} \mathbf{w}, \]

    其中 \(\theta = \cos^{-1} (\mathbf{v} \cdot \mathbf{w})\) 为两个向量间的夹角.

注: 上面的系数是通过三角形三边三角如下的关系得到的:
$$
\frac{a}{\sin(\alpha)} = \frac{b}{\sin(\beta)} = \frac{c}{\sin(\gamma)},
$$
其中 \(a, b, c\) 分别为角 \(\alpha, \beta, \gamma\) 所对应的边.

  • 作者发现, 通常情况下, text-only 的检索比 image-only 的检索效果要好很多很多, 所以作者推荐设置一个 \(\alpha \ge 0.8\), 从而 \(\mathbf{c}\) 实际上更偏向于文本描述.

Text-Anchored-Tuning (TAT)

  • 注意到, 到目前为止, 我们只用到了预训练的 encoder 而没有进行任何额外的训练, 实际上根据实验结果可以发现, 仅此就可以取得非常好的结果了.

  • 但是, 作者发现效果可以进一步提升, 提升的空间来自譬如 CLIP 的得到 image/text 表示实际上有很大的 gap. 于是作者希望通过微调 image encoder 来进一步将 image 表示推向文本表示.

  • 如上图所示, 除了用 LoRA 微调 image encoder 外, 其余部分均是固定的. 训练目标和 CLIP 所用的对比学习保持一致, 所以整体上是非常简单的.

代码

[official-code]

注: 作者仅开源了部分代码.

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

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

相关文章

uniapp + 微信小程序:新版canvas常用api及注意事项

关于新旧canvas的比较我以前写过一篇博客 :https://www.cnblogs.com/sunshine233/p/17014701.html ,这里就不重复了。 但在正文开始之前,我不得不再说一遍微信的文档写的真垃圾。很多问题的答案都是在微信开发者社区里找到的。一、新版canvas 基础用法:<template><…

Java 实现 Excel(XLS/ XLSX)和 HTML 格式之间的转换

Excel 是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,以便更好地利用和展示数据。本文将介绍如何通过 Java 实现 Excel 与 HTML 格式之间的相互转换。将Exce…

Python异步编程终极指南:用协程与事件循环重构你的高并发系统

title: Python异步编程终极指南:用协程与事件循环重构你的高并发系统 date: 2025/2/24 updated: 2025/2/24 author: cmdragon excerpt: 🚀 深入剖析Python异步编程的核心机制。你将掌握:\n 事件循环的底层实现原理与调度算法\n async/await协程的6种高级用法模式\n 异步H…

Uniapp开发安卓app之使用360加固加壳处理

Uniapp开发安卓app之使用360加固加壳处理 注:360加固只针对Android App免费。360加固助手官方下载 1.流程 安卓加固 》 签名APK 2.前提 先使用Hbuilder完成app打包,得到apk文件。 3.安卓加固1)安装、登录360加固软件并打开 2)在安卓加固》APK加固》添加任务,选择hbi…

用python画五角星

import turtle turtle.setup(500,500) turtle.bgcolor("white") turtle.pensize(3) turtle.color("red") turtle.begin_fill() for _ in range(5): turtle.forward(200) turtle.right(144) turtle.end_fill() turtle.hideturtle() turtle.done()

win10忘记开机密码怎么办?

下面我们来看看win10笔记本电脑开机密码忘记了怎么办_ 方法一、重置电脑,但是数据可能会丢失 1、开机,在看到Windows10Logo,下面有个圆圈在转的时候,数5秒。然后直接按下电源键关机。2.桌面,如果您的台式机有重新启动键,也可以直接按重新启动键。这样重复2~3次。 三、鼠标…

mysql知识面试day1

1.介绍mysql MYSQL是一个关系型数据库 2.事务的四大特性 acidA原子性表示要么全部成功要么全部失败 C一致性事务执行前和执行后需要保持一致的状态 I隔离性一个事务只能读到已提交的更改 D持久性事务一旦被提交更改就是永久性的3.数据库的三大范式 第一范式inf:确保字段的原子性…

图像采集卡功能与应用详解

图像采集卡(Image Capture Card),也称为视频采集卡或图像采集设备,是一种用于将摄像头、相机、显微镜、传感器等设备输出的图像或视频信号转换为计算机可处理的数字信号的硬件设备。它在工业检测、医疗影像、机器视觉、安防监控、科学研究等领域有广泛应用。 一、核心功能 …

项目管理工具-禅道(2)

一、bug的等级 (1)1级bug (致命bug) (2)2级bug(严重bug) (3)3级bug(一般bug) (4)4级bug(简易性bug) 划分: 1级bug (致命bug) 必须优先修改,在测试中较少出现,一旦出现应立即中止当前版本测试; 致命bug: (1)常规操作引起的崩溃,死机,死循环,内存泄露…