Alpha-CLIP: A CLIP Model Focusing on Wherever You Want

原文链接

阅读报告

What:Alpha-CLIP

这是一个增强的CLIP版本带有辅助alpha通道,以建议注意区域,并使用构建的数百万个RGBA区域-文本对进行微调。Alpha-CLIP不仅保留了CLIP的视觉识别能力,而且能够精确控制图像内容的强调。

Why:

虽然 CLIP 捕获了整个图像的内容,但关注感兴趣的区域以实现更精细的理解和可控内容生成也至关重要。这些区域可以通过人类交互或感知模型由点、掩码或框指定。

为了获取以区域为中心的 CLIP 特征:传统的方法:

①:将感兴趣的区域裁剪到不同的patch

②:或将Mask应用于图像、特征和注意力掩码的不相关部分来排除不相关的区域。

这两种方法会破坏(裁剪)并省略(在掩蔽中)上下文信息,然而上下文信息对于精确的图像理解和推理至关重要。

③:在馈送到 CLIP 的图像上用圆圈或掩码轮廓突出感兴趣的区域。

尽管用户友好的,但它改变了图像的原始内容,这将导致不良识别和生成结果。

Challenge:

1、怎么对区域进行指定

Idea:

为了在不损害原始图像的情况下实现区域焦点,我们提出了Alpha-CLIP,它通过额外的alpha通道输入合并感兴趣的区域来改进CLIP[43]。除了 RGB 通道,引入的 alpha 通道使 Alpha-CLIP 能够专注于指定区域,同时保持对上下文信息的认识。在用CLIP[43]模型初始化时,Alpha-CLIP的训练仍然需要大量的区域-文本配对集合数据。通过利用分段任意模型(SAM)[22]和多模态大型模型进行图像字幕,如BLIP-2[28],我们开发了一个有效的管道来生成数百万个易于转换为RGBA-文本数据的区域-文本对。在使用区域-文本对和图像-文本对的混合进行训练后,Alpha-CLIP可以专注于特定区域,同时保持CLIP[43]的视觉识别精度。

Model:

对于GRIT数据集,本身带框和标签,分别提取每个框,用SAM生成掩码,生成图片掩码真值对

对于ImageNet数据集,直接对图片应用SAM算法,随机生成几个掩码,再对带掩码的图片用Clip进行分类,去计算应用不同掩码的图像的每个类别的分数,测出的真值水平越高,就选最高的掩码,这样生成图片掩码对,再用BLIP生成图片描述,于是就得到了图片文本真值对

对于图像的测试过程如右图所示,

模型结构。我们的Alpha-CLIPCLIP图像编码器实现了微妙的结构修改,以保持CLIP的先验知识。在CLIP图像编码器的ViT[11]结构中,对第一层的图像应用RGB卷积。如图 3b 所示,我们引入了一个与 RGB Conv 层平行的附加 Alpha Conv 层,这使得 CLIP 图像编码器能够接受额外的 alpha 通道作为输入。alpha 通道输入设置为 [0, 1] 的范围,其中 1 表示前景,0 表示背景。我们将 Alpha Conv 内核权重初始化为零,确保初始 Alpha-CLIP 忽略 alpha 通道作为输入。

训练方法。在训练期间,我们保持 CLIP 文本编码器固定完全训练 Alpha-CLIP 图像编码器。与处理 alpha 通道输入的第一个卷积层相比,我们将较低的学习率应用于后续的变换器块。为了保留CLIP对完整图像的全局识别能力,我们在训练期间采用了特定的数据采样策略。我们将样本比率设置为 rs = 0.1,以偶尔将我们生成的 RGBA-文本对替换为原始图像-文本对,并将 alpha 通道设置为完整 1。消融研究请参阅附录 A.1,例如解冻 Transformer 块的数量和 rs 的值。

下游任务的Alpha-CLIP训练后,Alpha-CLIP 具有专注于指定区域和受控编辑的能力。Alpha-CLIP 可以以即插即用的方式提高 CLIP 在各种基线上的性能,跨越识别、MLLM 2D/3D 生成等各种下游任务(见表 1)。1 在第 1 节中。 1)。

原文翻译

Abstract

对比语言-图像预训练(CLIP)在从不同任务中从图像中提取有价值的内容信息方面起着至关重要的作用。它将文本和视觉模式对齐以理解整个图像,包括所有细节,即使是与特定任务无关的细节。然而,为了更精细地理解和控制图像的编辑,关注特定感兴趣区域变得至关重要,这些区域可以表示为点、掩码或框由人类设置或由模型生成。为了满足需求,我们引入了Alpha-CLIP,这是一个增强的CLIP版本带有辅助alpha通道,以建议注意区域,并使用构建的数百万个RGBA区域-文本对进行微调。Alpha-CLIP不仅保留了CLIP的视觉识别能力,而且能够精确控制图像内容的强调。它在各种任务中展示了有效性,包括但不限于开放世界识别、多模态大型语言模型和条件 2D / 3D 生成。它具有作为与图像相关任务的通用工具的巨大潜力。

Introduction

对比语言-图像预训练 (CLIP) [19, 43] 及其变体 [10, 30, 55] 的最新进展建立了一个稳健的框架,用于从图像和文本中提取语义连贯的特征。这些特征旨在捕获图像中的所有语义细节,表现出强大的表示能力和卓越的泛化性,使它们在各种下游任务中是通用的,例如开放世界识别 [7, 13, 62, 64, 65]、多模态大型语言模型 (MLLM) [4, 18, 26, 28, 33, 34, 41, 56, 71] 和 2D / 3D 生成 [20, 25, 27, 38, 39, 44, 68]。

虽然 CLIP 捕获了整个图像的内容,但关注感兴趣的区域以实现更精细的理解 [16, 21, 24, 42, 53, 77] 和可控内容生成 [25, 38, 51, 60] 也至关重要。这些区域可以通过人类交互或感知模型(如SAM[22]、GLIP[29]和提议网络[70])由点、掩码或框指定。

为了满足下游任务的需求,研究人员尝试使用两种主要策略获取以区域为中心的 CLIP 特征。第一种方法是通过将感兴趣的区域裁剪到不同的补丁[7,54,73,74]或将掩蔽应用于图像[31]、特征[31,60]和注意掩码[65,75]的不相关部分来排除不相关的区域。然而,这种方法会破坏(裁剪)并省略(在掩蔽中)上下文信息,这对于精确的图像理解和推理至关重要。第二种方法是在馈送到 CLIP 的图像上用圆圈 [52] 或掩码轮廓 [66] 突出感兴趣的区域。尽管用户友好的,但它改变了图像的原始内容,这将导致不良识别和生成结果(cf.图2)。

为了在不损害原始图像的情况下实现区域焦点,我们提出了Alpha-CLIP,它通过额外的alpha通道输入合并感兴趣的区域来改进CLIP[43]。除了 RGB 通道,引入的 alpha 通道使 Alpha-CLIP 能够专注于指定区域,同时保持对上下文信息的认识。在用CLIP[43]模型初始化时,Alpha-CLIP的训练仍然需要大量的区域-文本配对集合数据。通过利用分段任意模型(SAM)[22]和多模态大型模型进行图像字幕,如BLIP-2[28],我们开发了一个有效的管道来生成数百万个易于转换为RGBA-文本数据的区域-文本对。在使用区域-文本对和图像-文本对的混合进行训练后,Alpha-CLIP可以专注于特定区域,同时保持CLIP[43]的视觉识别精度。

Alpha-CLIP 可以在广泛的下游任务中增强 CLIP,应用一种即插即用的方法,可以渗透不同的领域,从感知到 2D 和 3D 应用程序中的生成,如图 1 和 Tab 所示。1.具体来说,1)图像识别:AlphaCLIP不仅保持了原始CLIP的视觉识别能力,而且提高了基于区域的识别能力。具体来说,当提供ground-truth区域专注于时,Alpha-CLIP在零镜头ImageNet分类任务中top-1精度提高了4.1%。这种优越的基于区域的识别能力有助于下游任务,如引用表达式理解(REC)[54],也可以作为开放词汇表检测(OVD)的数据引擎[76]。2) 作为 MLLM 的视觉主干:结合大型语言模型,Alpha-CLIP 能够在 MLLM 框架内促进区域级字幕和 VQA。这种集成显着减少了幻觉(例如,黑色衬衫)的出现,并减少了模型偏差(例如,携带环形的人)。3) 2D生成:当与扩散模型集成时,Alpha-CLIP增强了BLIP-Diffusion[27]在图像变化任务中的可控性。此外,它能够从复杂图像中提取受试者进行主题驱动的生成,克服使用原始CLIP部署BLIP-Diffusion时遇到的障碍,这只支持简单图像中的单个受试者。4) 3D生成:除了2D生成的能力外,Alpha-CLIP在3D生成方面也表现出了熟练程度。它可以有效地与Point-E[39]等扩散模型相结合,以提高3D对象生成的质量。此外,它可以与NeRF[37]一起使用,如PureCLIPNeRF[25]所示,以优化创建优越的3D对象。

总之,我们提出了 Alpha-CLIP,它为原始 CLIP 模型配备了区域感知能力。通过对数百万个 RGBA 区域-文本对进行微调,Alpha-CLIP 在各种任务中显示出比原始 CLIP 显着优势,包括但不限于图像识别 [43, 54, 76]、多模态大型语言模型 [28, 34]、2D 生成 [27, 44] 和 3D 生成 [25, 39]。

Related Word

赋予CLIP具有区域意识。为了使 CLIP [43] 能够从整个图像中分离出区域以进行更有针对性的处理和理解,在分割领域已经探索了各种方法。其中,MaskCLIP[75]使用1x1卷积层提取CLIP的最终2D特征,得到不同区域的语义信息。SAN[64]在CLIP旁边训练侧网络,以帮助模型进行局部语义感知。MaskCLIP[9]和ODISE[62]使用注意掩码使CLIP更多地关注局部区域。这些方法不会改变CLIP模型本身的权重。RegionCLIP[74]为局部区域生成区域框文本对,并对CLIP模型进行微调,进行框级识别。MaskAdaptedCLIP[31]通过伪标记过程为局部掩码生成掩码-文本对,并对CLIP模型进行微调,使其更适应掩码图像。MaskQCLIP[65]为新的掩码[CLS]标记微调注意层,使其更适合掩码对象分类。这两种方法试图增强CLIP专注于局部特征的能力,并在特定的下游数据集上专门微调CLIP,导致在检测或分割任务之外的泛化能力较差。

另一种方法是通过简单地裁剪或屏蔽图像来只留下前景对象来改变输入图像。ReCLIP[54]和OvarNet[7]使用来自对象提议网络[70]的边界框裁剪原始图像,并应用于引用表达式理解和开放属性识别任务。MaskAdaptedCLIP[31]将背景区域设置为像素空间中的纯颜色,并使用蒙版图像作为输入进行开放词汇分割。然而,除了使用 ReCLIP [54] 中提出的复杂后处理外,有价值的上下文信息会丢失。其他一些方法通过修改输入图像来提示 CLIP,引导 CLIP 专注于感兴趣的区域。例如,Red-Circle [52]、FGVP [66] 使用圆形或掩码轮廓来告诉 CLIP 在哪里聚焦。总体而言,改变输入图像的原始内容的方法的质量在很大程度上取决于 CLIP 预训练数据集中的符号。另一个限制是引导修改图像会导致与 CLIP 相关图像的域间隙。与之前依赖分割或改变输入图像的方法不同,我们的Alpha-CLIP包含了一个额外的alpha通道,它不改变图像内容并保留泛化性能(cf.图2)。

区域级图像注释。现有的CLIP模型在LAION-400M[49]和LAION-5B[50]等大规模数据集上进行了预训练,但由于人工劳动成本高,细粒度掩码级标签不可用。最近,Kosmos-2 [41] 引入了一种伪标记管道,它使用预训练的 GLIP [29] 模型自动生成区域框及其关联表达式的细粒度伪标签。通过使用这种伪标记基线,Kosmos-2 发布了 GRIT 数据集,并为多模态模型 [18] 配备了局部感知能力。同样,All-Seeing [59] 项目还通过伪标记管道生成细粒度的文本标签。同时,最近的SAM[22]模型在海量视觉模态数据上进行训练,对下游任务具有较强的零镜头能力,如盒到掩模的转换和自动掩模生成。这些发展使得大规模生成具有区域字幕的伪掩码成为可能,并为区域级识别对 CLIP 进行更大调整开辟了潜力。因此,我们在 GRIT[41] 和 SAM [22] 的基础上提出了一种从接地数据生成 RGBA 区域-文本对的方法。

MLLM中的CLIP。在多模态大型语言模型(MLLM)的时代[1-4],18,26,28,33,34,40,41,71],CLIP[43]因其语义代表性特征和有希望的可扩展性而被广泛用作视觉主干。为了使 MLLM 专注于特定区域,Kosmos-2 [41] 使用数百万个区域字幕数据来训练模型,并在框角点的指导下。GPT4ROI[72]提出将ROI Align[15]算子应用于CLIP图像特征,以参考特定区域。GLAMM [45] 进一步添加了一个额外的区域编码器。与之前只支持框级聚焦和依赖训练额外网络的方法不同,我们的工作实现了更细粒度的掩码级区域聚焦,只使用CLIP模型。

二维图像变化的CLIP。CLIP图像编码器广泛应用于二维图像变化(如DALLE-2[44]、Diffusers[58]和IP-Adapter[68]),以实现更好的质量或可控性。至于DreamBooth[47]开创的主题驱动图像变化,从整个图像中提取纯单个对象特征更为重要,因为以下方法ELITE[60]提出使用特征级掩蔽来消除背景信息以生成更好的主题。类似地,BLIP-Diffusion [27] 使用文本来提取最相关的对象特征。所有这些主题驱动的图像变化方法都要求图像在图像的中心有一个前景对象,并且不能在保持原始上下文信息的同时专注于更复杂图像中的用户指定的对象来实现变化。这种限制突出了我们的Alpha-CLIP的重要性,它支持复杂场景中的主题驱动生成,并实现了专注于图像变化任务的用户定义的区域。

CLIP在3D生成中。现有的一些3D对象生成方法涉及CLIP[43]模型。在基于扩散的 3D 生成中,Point-E [39] 使用点云扩散模型直接从单视图图像或文本生成由 CLIP 特征为条件的点云。文本到 3D 领域的另一种方法是由 Dream Fields [20] 首创的,它使用 CLIP 模型来提供监督损失。后续工作包括PureCLIPNeRF[25]、CLIP-Mesh[38]、CLIP-Forge[48]和Dream3D[63]也使用CLIP图像编码器来提取渲染图像特征。我们的Alpha-CLIP可以在3D对象生成中增强CLIP,使Point-E具有用户定义的区域聚焦能力,并帮助基于优化的文本到3D模型产生高质量的生成结果。

Method

本节介绍Alpha-CLIP的数据管道和框架。如图 3 所示,我们首先设计了一个数据管道来生成 RGBA 区域文本对数据(第 3.1 节)。使用我们生成的数据,然后用额外的 Alpha 通道输入来训练我们的 Alpha-CLIP(第 3.2 节)。

3.1. RGBA区域-文本对生成

为了使用额外的 alpha 通道输入微调 CLIP 模型,我们首先设计了一个数据生成管道(cf.图 3a) 创建数百万个 RGBA 区域文本对。我们的 d 管道由以下两个组件组成。接地数据管道。如图 3a 的上半部分所示,该分支专门用于生成区域文本对,其中包括具有前景 alpha 通道的自然图像和特定区域的相应引用表达式。自然图像来自 GRIT 数据集 [41],它使用 GLIP 和 CLIP 自动提取框区域-文本对的标签。在 GRIT 的基础上,我们更进一步生成掩码区域-文本对。具体来说,我们使用SAM[22]为每个框区域自动生成高质量的伪掩码。分类数据管道。如图3a下半部分所示,该分支用于生成区域文本对,其中前景对象被突出显示,而原始背景被删除。为此,我们使用 ImageNet [8] 数据集。首先,我们使用SAM为ImageNet中的每个图像自动生成几个掩码。随后,我们裁剪每个掩码的前景对象,居中它并放大它。然后使用CLIP 4计算每个掩码所属的图像的相应类标签的分数。接下来,我们根据掩码的分数按类对掩码进行排序,并选择得分最高的排名靠前的掩码。关于文本组件,为了确保每个掩码的标题不仅仅是 ImageNet [8] 类标签,我们将前景对象放置在纯白色背景上。然后我们使用 BLIP-2 [28] 用字幕注释这些掩码。最后,我们将细粒度的 ImageNet 类标签与 BLIP-2 [28] 生成的特定于图像的字幕合并,从而产生数百万个 RGBA 区域-文本对。

3.2. Alpha-CLIP

模型结构。我们的Alpha-CLIP对CLIP图像编码器实现了微妙的结构修改,以保持CLIP的先验知识。在CLIP图像编码器的ViT[11]结构中,对第一层的图像应用RGB卷积。如图 3b 所示,我们引入了一个与 RGB Conv 层平行的附加 Alpha Conv 层,这使得 CLIP 图像编码器能够接受额外的 alpha 通道作为输入。alpha 通道输入设置为 [0, 1] 的范围,其中 1 表示前景,0 表示背景。我们将 Alpha Conv 内核权重初始化为零,确保初始 Alpha-CLIP 忽略 alpha 通道作为输入。

训练方法。在训练期间,我们保持 CLIP 文本编码器固定完全训练 Alpha-CLIP 图像编码器。与处理 alpha 通道输入的第一个卷积层相比,我们将较低的学习率应用于后续的变换器块。为了保留CLIP对完整图像的全局识别能力,我们在训练期间采用了特定的数据采样策略。我们将样本比率设置为 rs = 0.1,以偶尔将我们生成的 RGBA-文本对替换为原始图像-文本对,并将 alpha 通道设置为完整 1。消融研究请参阅附录 A.1,例如解冻 Transformer 块的数量和 rs 的值。

下游任务的Alpha-CLIP。训练后,Alpha-CLIP 具有专注于指定区域和受控编辑的能力。Alpha-CLIP 可以以即插即用的方式提高 CLIP 在各种基线上的性能,跨越识别、MLLM 和 2D/3D 生成等各种下游任务(见表 1)。1 在第 1 节中。 1)。

Experiments

数据。我们使用来自 GRIT-20m [41] 的接地数据管道在 RGBA 区域-文本对上训练 Alpha-CLIP 用于 zeroshot ImageNet 分类。我们使用分类数据管道将其与ImageNet[8]中的460k RGBA区域-文本对相结合,为REC、OVD、区域级字幕、2D图像变化和3D生成等其他任务训练Alpha-CLIP。数据量和混合数据的真实在附录 A.2 和 C 中

Shader "FancyScrollViewGallery/Metaball" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stencil Operation", Float) = 0 _StencilWriteMask ("Stencil Write Mask", Float) = 255 _StencilReadMask ("Stencil Read Mask", Float) = 255 _ColorMask ("Color Mask", Float) = 15 [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 } CGINCLUDE #include "UnityCG.cginc" #include "UnityUI.cginc" #include "../Common/Common.cginc" #include "Metaball.hlsl" #pragma multi_compile __ UNITY_UI_CLIP_RECT #pragma multi_compile __ UNITY_UI_ALPHACLIP struct appdata_t { float4 vertex : POSITION; float4 color : COLOR; float2 texcoord : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; float2 uiCoord : TEXCOORD0; float4 worldPosition : TEXCOORD1; UNITY_VERTEX_OUTPUT_STEREO }; sampler2D _MainTex; fixed4 _Color; fixed4 _TextureSampleAdd; float4 _ClipRect; float4 _MainTex_ST; v2f vert(appdata_t v) { v2f OUT; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); OUT.worldPosition = v.vertex; OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); OUT.uiCoord = ui_coord(TRANSFORM_TEX(v.texcoord, _MainTex)); OUT.color = v.color * _Color; return OUT; } fixed4 frag(v2f i) : SV_Target { half4 color = metaball(i.uiCoord); color += _TextureSampleAdd; color *= i.color; #ifdef UNITY_UI_CLIP_RECT color.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect); #endif #ifdef UNITY_UI_ALPHACLIP clip(color.a - 0.001); #endif return color; } ENDCG SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } Stencil { Ref [_Stencil] Comp [_StencilComp] Pass [_StencilOp] ReadMask [_StencilReadMask] WriteMask [_StencilWriteMask] } Cull Off Lighting Off ZWrite Off ZTest [unity_GUIZTestMode] Blend SrcAlpha OneMinusSrcAlpha ColorMask [_ColorMask] Pass { Name "Default" CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 ENDCG } } }
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值