在许多应用中,特别是为机器学习准备数据集时,图像的自动标签、标注或描述是一项至关重要的任务。图像到文本模型正是在这种情况下应运而生。目前领先的图像到文本模型包括 CLIP、BLIP、WD 1.4(也称为 WD14 或 Waifu Diffusion 1.4 Tagger)、SigLIP 2 和具备视觉能力的 ChatGPT。
CLIP:革命性的飞跃
OpenAI 的对比语言-图像预训练(CLIP)模型因其在理解和生成图像描述方面的革命性方法而广受认可。CLIP 利用大量的互联网文本和图像数据来学习各种视觉概念,从而为图像生成描述性语句。
然而,根据用户评价,CLIP 生成的描述性语句有时可能显得冗余或过于verbose。常见的批评是该模型倾向于对同一对象重复类似的描述,或过度强调某些属性,例如物体的颜色。
BLIP:简约与功能性的结合
BLIP 模型虽然在描述的细节方面不如 CLIP,但在图像到文本处理方面提供了一种更简单直接的方法。正如一位评论者所说,BLIP “很酷,但相当基础”。对于需要直接、简洁的标签或描述的应用来说,该模型的简洁性可能是一个优势。
然而,一些用户发现 BLIP 的输出通常缺乏像 WD14 等模型所提供的深度和细致程度。虽然它可以生成令人满意的结果,但对于需要详细、复杂的标签的应用来说,BLIP 可能不是最佳选择。
我发现 WD14 虽然最初是为动漫设计的,但在人物照片上也表现出色。我通常将它与 BLIP 结合使用,而且大多数时候它都能捕捉到比 BLIP 更多的细节。
Toni Corvera at YouTube comments
Blip 挺酷的,但就是太基础了。
WD 1.4 (WD14) 的标签功能就好多了——更详细,标签更丰富。
OrphBean at GitHub
WD 1.4(又名 WD14):细节的精准
WD 1.4 模型(也称为 WD14 或 Waifu Diffusion 1.4 Tagger)最初是为动漫图像设计的,但已展现出令人惊讶的多功能性,即使处理照片也表现出色。用户称赞其高级配置选项和批量处理能力,这使其成为一个强大的图像到文本转换工具。
WD14 的独特之处在于它能够生成更详细、“更丰富”的标签,与同类模型相比,能提供更深入的图像描述。虽然该模型不太可能产生虚假标签,但其对动漫的侧重可能会成为某些类型图像的限制。
问:WD14 标签器比 Automatic1111 内置的 BLIP 或 deepdanbooru 更好吗?
答:这个扩展插件提供了更好的配置和批量处理选项,而且我发现它比 deepdanbooru 更不容易产生完全虚假的标签。CLIP/BLIP 不同,因为它们生成的是描述性语句而不是标签列表,但后者通常更符合我的需求。而且,内置的 CLIP interrogator 容易出现诸如 “一张(描述)的图片,以及一张(稍微不同的同一事物的描述)的图片”,或者 “(基本完整的描述)以及粉色头发和粉色头发和粉色头发和(重复多次)” 之类的结果。
虽然 WD14 标签器是为动漫制作的,但它在照片上的效果也相当不错。
MorganTheDual at Reddit
SigLIP 2:强大的图像到文本引擎
Google 发布的免费开源模型 SigLIP 2 不仅仅是一个视觉语言模型;它还是一个将图像转化为有意义文本的强大引擎。虽然它在图像-文本检索和零样本分类等任务中表现出色,但其架构和训练方面的增强使其成为图像到文本生成和理解领域的有力竞争者。以下是 SigLIP 2 在此上下文中工作原理的详细分析:
基础:Vision Transformer (ViT) 和 Sigmoid 损失
- Vision Transformer (ViT):与卷积神经网络 (CNN) 不同,SigLIP 2 使用 Vision Transformer (ViT) 架构。ViT 将图像视为一系列图像块,类似于自然语言处理中单词被视为标记的方式。每个图像块都被转换为向量表示(嵌入)。这使得模型能够利用强大的 Transformer 架构(以其捕获长距离依赖关系的能力而闻名)来理解图像不同部分之间的关系。
- Sigmoid 损失(非对比性):SigLIP(和 SigLIP 2)的一个关键区别是使用了 sigmoid 损失函数,而不是更常见的对比损失(在像 CLIP 这样的模型中使用)。对比学习需要将图像与多个文本选项进行比较。另一方面,sigmoid 损失将图像-文本匹配视为每个图像-文本对的二元分类问题。这种看似微小的变化产生了巨大的影响:它允许更稳定的训练和更好的性能,尤其是在使用更大的批量大小时。它侧重于各个图像-文本对的匹配。
增强的文本生成训练
SigLIP 2 在 SigLIP 的基础上增加了一些关键的增强功能,这些功能直接有利于其图像到文本的能力:
- 基于字幕的预训练:这是一个巨大的进步。SigLIP 2 将字幕生成纳入其预训练过程的一部分。这意味着它经过专门训练来生成图像的文本描述。这与原始 CLIP 等模型形成对比,后者主要在图像-文本匹配而非生成方面进行训练。
- 受自监督学习的启发:SigLIP 2 利用了强大的技术:
- 自蒸馏:模型从自身的预测中学习,随着时间的推移改进其理解。
- 掩码预测:输入的部分(图像块或文本标记)被隐藏,模型学习预测缺失的部分。这迫使它对两种模态都发展出更深入的理解。
- LocCa 损失和解码器:SigLIP 2 集成了 LocCa 损失,它增加了一个带有交叉注意力的 Transformer 解码器。这个解码器专门针对图像字幕生成、指称表达预测(基于文本识别区域)和 grounded captioning 等任务进行训练。这增强了细粒度的定位和详细的特征提取。
工作原理(图像 -> 文本)
- 图像输入:图像被输入到 ViT 编码器中。
- 图像块嵌入:图像被分成图像块,每个图像块被转换为嵌入向量。
- Transformer 编码:Transformer 层处理这些图像块嵌入,捕捉图像不同部分之间的关系。学习到的位置嵌入提供有关每个图像块位置的信息。
- 注意力池化:基于注意力的池化机制(MAP head)将图像块嵌入中的信息聚合为单个、全面的图像表示。
- 文本解码器(图像到文本的关键):这是 SigLIP 2 的字幕生成能力发挥作用的地方。来自编码器的图像表示被输入到 Transformer 解码器中(由 LocCa 损失添加)。解码器使用交叉注意力来关注图像表示的相关部分,同时生成文本。
- 文本输出:解码器生成一系列文本标记,形成图像的字幕或描述。
多语言能力
SigLIP 2 不仅限于英语。它在多语言数据集 (WebLI) 上进行训练,使其能够理解和生成多种语言的文本,成为一个真正的全球化图像到文本工具。
总结
SigLIP 2 将强大的基于 ViT 的架构、sigmoid 损失以及至关重要的、基于解码器的预训练与字幕生成和自蒸馏相结合,使其成为图像到文本任务的高效模型。它超越了简单的图像-文本匹配,可以主动生成描述性文本,为自动图像字幕生成、视觉问答和详细图像分析等应用开辟了可能性。
链接
具备视觉能力的 ChatGPT
如果你需要描述一个不太大的图像数据集,可以使用 ChatGPT 中的 Image Describer 工具。它不适用于大批量图像,但非常适合较小的图像集,因为它能提供绝对最佳的自然语言描述。来自此工具的描述非常精确和详细。它不仅仅是标签,而是连贯且信息丰富的文本,还能考虑到图像中物体之间的关系。
示例:
测试图像集:



Image Describer 对这 3 张图像的输出:
你上传了三张图片。以下是每张图片的描述:
- 第一张图片描绘了一只可爱、风格化的卡通小猫,它有着大而富有表现力的眼睛。它整体呈橙色,脸部、胸部和爪子上带有白色点缀。小猫拿着一支几乎和自己一样大的笔,正在一个亮黄色的球上画一个笑脸。艺术风格非常精致,带有一种光滑的质感。背景暗示了一个异想天开的场景,带有彩色、抽象的形状和星空的暗示。
- 第二张图片似乎是社交媒体平台上的聊天或评论区的截图。许多用户留下了评论,其中许多评论包含笑声或通过 “LMAO” 等首字母缩写词和表情符号表示的娱乐。用户名和个人资料图片为了隐私而被像素化,像素化中显示出各种颜色。
- 第三张图片是一幅非常细致和逼真的年轻女性插画,她面带友好的表情。她有着黑色的长发、白皙的皮肤,穿着一件紫色的连帽衫。这位女性还戴着耳机,这表明她可能是一名视频游戏主播,或者参与某种形式的在线交流。背景似乎是一个被紫色色调照亮的房间,可能是来自 LED 灯,表明这是一个游戏设置。
每张图片都有非常不同的背景和视觉风格,从异想天开的插画到数字互动的截图,再到更逼真的数字绘画。
总结
在 CLIP、BLIP、WD 1.4、SigLIP 2 和 Image Describer 之间进行选择,很大程度上取决于项目的具体需求。如果精度和细节至关重要,WD 1.4 以其高级配置和详细的标签功能提供了一个引人注目的选择。对于更简单的应用,BLIP 的直接方法可能更合适。同时,CLIP 在细节和简洁之间取得了平衡,尽管它有 verbose 的倾向。
Image Describer 提供了最佳结果,但不适用于描述或标记大型图像集。
随着这些模型的不断发展和改进,它们在从内容创作到数据分析等广泛的应用领域都具有广阔的潜力。尽管 CLIP、BLIP、WD 1.4、SigLIP 2 和 GPT-Vision 模型各不相同,但它们都证明了图像到文本技术的快速进步,每种模型都为这个令人兴奋的领域贡献了独特的优势。