#CAR

自回归视觉生成里程碑!比ControlNet和T2I-Adapter 快五倍!北大&腾讯等重磅发布CAR

本文提出了一种名为可控自回归建模(CAR) 的全新框架,该框架可作为插件,整合条件控制机制到多尺度潜变量建模中,允许在预训练的视觉自回归模型中进行高效的控制生成。

文章链接:https://arxiv.org/pdf/2410.04671

项目链接:https://github.com/MiracleDance/CAR

亮点直击

  • CAR是首个为自回归模型家族设计的灵活、高效且即插即用的可控框架。
  • CAR基于预训练的自回归模型,不仅保留了原有的生成能力,还能在有限资源的情况下实现可控生成——所用数据量不到预训练所需数据的10%。
  • 设计了一个通用框架来捕捉多尺度的控制表示,这些表示具有鲁棒性,并能无缝集成到预训练的基础模型中。
  • 大量实验表明,CAR在各种条件信号下实现了精确的细粒度视觉控制。CAR有效地学习了这些条件的语义,能够在训练集中未见过的类别上实现鲁棒的泛化。

总结速览解决的问题:

当前的视觉生成模型主要有两种技术路径:扩散模型和自回归模型。扩散模型在生成控制上表现出色,但自回归模型虽然具备强大的生成能力和可扩展性,控制性和灵活性方面仍然未被充分探索。

提出的方案:

提出了一种名为可控自回归建模(CAR) 的全新框架,该框架可作为插件,整合条件控制机制到多尺度潜变量建模中,允许在预训练的视觉自回归模型中进行高效的控制生成。CAR逐步细化并捕捉控制表示,并将其注入到预训练模型的每个自回归步骤中,以引导生成过程。

应用的技术:

  • 多尺度潜变量建模:用于捕捉和细化控制表示。
  • 预训练视觉自回归模型:在预训练模型的基础上注入控制,逐步指导生成。
  • 条件控制机制:整合到自回归生成的每个步骤中,以实现细粒度控制。

达到的效果:

  • 在各种条件下实现了出色的控制能力。
  • 在图像质量上优于以往的方法。
  • 与预训练模型相比,CAR在实现良好泛化能力的同时显著减少了训练资源需求。
  • CAR是首个针对预训练自回归视觉生成模型的控制框架。

方法

可控自回归建模(CAR), 旨在探索自回归模型在可控图像生成任务中的潜力。将任务定义如下:给定一个条件控制图像 , 其中  和  代表图像的高度和宽度, 我们的目标是生成一个与指定视觉条件对齐的可控图像  。总体目标可以表述为建模条件分布  。

首先介绍视觉自回归建模中“下一尺度预测”范式的基础概念。接着解释了CAR框架如何通过多尺度潜变量建模控制视觉生成。通过应用贝叶斯推理,我们识别出CAR的学习目标是获取一个鲁棒的控制表示。最后详细讨论了控制表示的表达以及网络优化策略。

自回归建模的基础知识

传统的自回归模型采用"下一个token预测"的方法,将图像离散化并展平为序列  ,其中  是图像特征图的高度和宽度的乘积。每个token  基于前面的tokens  进行预测。最终的token序列被量化并解码以生成图像。

然而, 最近的一项研究(Tian et al., 2024)指出,这种范式可能导致数学不一致性和结构退化,对于生成高度结构化的图像而言, 这并非最优。为了解决这个问题, 它引入了一种全新的视觉自回归建模范式 (VAR),从"下一个token预测"转变为"下一尺度预测"。在VAR中,每个单元预测不同尺度下的完整 token图。生成过程从  尺度的token图  开始, VAR依次预测一系列多尺度token图 ,分辨率逐渐增加。生成过程表达为:

51c视觉~合集35_视觉

其中  代表第  级的token映射, 尺寸为  和 , 并且基于之前的token映射  进行条件预测。 中的每个token都是从VQVAE码本  中选取的索引, VQVAE通过多级量化进行训练, 并在不同尺度之间共享。

可控视觉自回归建模

如下图2所示, CAR框架通过建模条件分布  来实现可控图像生成。目标是最大化  的似然, 确保生成的图像  符合由条件图像  指定的视觉条件。

遵循VAR的“下一尺度预测”范式,CAR模型采用了多尺度潜变量框架,其中每个尺度的潜变量(token图)捕捉逐步更高分辨率的图像结构。控制信息提供了额外的观测,用于辅助推断每个尺度的潜变量。

多尺度条件概率建模假设潜变量框架中共有  个尺度, CAR模型以多尺度的方式生成图像 , 通过在每个尺度上将条件分布  分解为条件概率的乘积来实现:

其中  是第  尺度的图像token图,而  是从控制图像  中派生的对应控制图。每个token图  的生成条件是之前的token图  以及控制信息  。这种多尺度条件建模确保了每个尺度的控制信息在递归和分层的过程中引导生成过程, 逐步细化图像token图的潜在表示。

后验近似在CAR框架中, 如公式2所示, 前一尺度的图像和控制 token图  以及当前尺度的控制token图  构成了当前尺度图像token图的后验近似。这意味着  是通过利用这个后验近似的信息生成的。从贝叶斯的角度来看, CAR模型的目标是在每个尺度上, 给定控制信息, 近似图像token的后验分布:

51c视觉~合集35_视觉_02

其中,  表示从之前的token图中跨尺度学习到的自回归先验,  则表示在给定当前图像token图  的情况下观察到控制token图  的似然。

基于上述贝叶斯推理,可以明确识别出CAR的学习目标是优化  ,使得该控制表示与图像表示  对齐。该目标可以通过神经网络进行学习, 由提供的图像数据集中的真实  进行监督, 使网络逐步逼近后验分布。

控制表示和优化

控制表示表达

VAR 从之前所有尺度积累图像token , 并对其进行插值以匹配分辨率 , 然后形成用于第  尺度推理的输入, 记为  。在CAR框架中, 在每个尺度 , 通过融合输入的图像token图  和控制图  来注入控制信息, 从而形成一个组合表示。

51c视觉~合集35_视觉_03

其中  是一个由参数  表示的融合函数。该融合机制确保  包含了生成的图像特征和控制条件。通过利用  来预测 , 将控制信息纳入生成过程中, 确保生成的token图符合控制条件 , 从而提供细粒度的引导。

为了确保有效提取控制表示并整合控制信息,融合后的表示  被向量化,并通过一系列Transformer层进行变换,产生精炼的条件先验,以引导每个尺度  的图像生成。形式上,  通过学习到的映射 转化为向量化表示 , 具体如下:

51c视觉~合集35_视觉_04

其中  由CAR的Transformer参数  表示,它被设计为与VAR的Transformer并行的分支。 中的块对向量化的控制表示执行自注意力操作,通过建模控制信息中的依赖关系,提取相关的条件先验。

一旦提取出精炼的条件先验  ,它将被注入到由预训练的VAR预测的图像token图  中,  代表第 尺度的潜在图像特征。该注入过程通过一个由参数  表示的注入函数  来实现,  结合了  和 , 确保控制信息调制生成的图像token。

51c视觉~合集35_视觉_05

其中,  表示更新后的token图, 结合了控制信息。该机制使模型能够在多尺度控制信息的基础上逐步调节生成过程, 从而生成在各个尺度上连贯并符合外部视觉条件  的图像。

网络优化为了使生成的图像  与控制条件  对齐, 我们最小化模型的条件分布  与真实数据分布  之间的Kullback-Leibler (KL) 散度 (Kullback & Leibler, 1951):

51c视觉~合集35_视觉_06

其中,  表示我们CAR框架中的可学习参数, 具体为  。由于  相对于  是常数, 最小化  相当于最大化对数似然  。

利用融合后的表示 , 条件分布  可以被分解为:

51c视觉~合集35_视觉_07

最大化这个对数似然函数的过程确保生成的token图  与真实的  紧密匹配, 同时与之前的token保持一致, 并符合封装在  中的控制条件。这一过程有助于学习更有效的控制表示, 如在方程 3 中的后验近似所概述的,确保生成的图像遵循控制条件  的同时保留预训练VAR的原始生成能力。

实验

实验设置

模型架构设计

作者采用预训练的VAR作为基础模型, 在训练过程中对其进行冻结, 以保留其生成能力并减少训练成本。对于可学习模块 , 尝试了多种选择, 并根据实验结果选择最佳设计方案。对于融合函数 , 使用卷积编码器从控制输入  中提取语义特征, 并将其添加到基础模型输入  中。对于 , 设计了一系列类似于GPT- 2 的Transformer模块, 其深度为预训练基础模型的一半。对于 , 通过连接将  注入基础模型输出  中, 随后应用LayerNorm来规范化两个领域特征的分布, 并进行线性变换以调整通道维度。

数据集

在 ImageNet数据集上进行实验。首先,为训练集伪标记了五个条件:Canny 边缘、深度图、法线图、HED 图和草图,允许 CAR 在不同的条件控制下分别进行训练。从总共 1000 个类别中随机选择 100 个用于训练 CAR,并在剩余的 900 个未见类别上进行评估,以评估其可泛化的可控性。

评估指标

利用 Fréchet Inception Distance (FID)、Inception Score (IS)、精准度和召回率指标来评估生成结果的质量。还与现有的可控生成方法(如 ControlNet和 T2I-Adapter)比较推理速度。

训练细节

将预训练的 VAR 深度设置为 16、20、24 或 30,并使用 VAR 的前半部分的权重初始化控制 Transformer,以加速收敛。CAR 模型在 8 个 NVIDIA V100 GPU 上训练 100 轮,推理速度在单个 NVIDIA 4090 GPU 上进行评估。

定量评估

与以前方法的比较

将 CAR 模型与两个经典的可控生成基线 ControlNet 和 T2I-Adapter 进行了比较。为确保公平,我们在 ImageNet 数据集上重新训练了这两个模型,并对每个模型在所有五个条件注释上分别进行训练。如下表 1 所示,CAR 显示出显著的改进,FID 分别在 Canny、深度、法线、HED 和草图条件下减少了 3.3、2.3、2.3、3.0 和 5.1,相较于 ControlNet。IS 指标也观察到类似的改进。将这些收益归因于自回归模型的最新进展,这些模型通过在生成过程中逐步扩大分辨率,超越了扩散模型的图像生成能力。除了图像质量外,还比较了推理速度,CAR 的速度比 ControlNet 和 T2I-Adapter 快五倍以上,进一步凸显了 CAR 在实际应用中的效率优势。总体而言,这些令人鼓舞的定量结果表明,CAR 可以作为一种比基于扩散模型的 ControlNet 更高效、可扩展的可控生成范式。

不同类型条件的评估值得注意,HED 图、深度图和法线图显示出相对较优的指标,这可能归因于输入条件的清晰性和明确的目标。这些因素为模型提供了更精确的指导,提升了高质量图像的生成。相比之下,草图条件往往比较简单,仅由基本轮廓构成,视觉细节较少,使其可控性较差,导致模型生成更自由。这可能导致图像质量波动。

规模法则

评估 CAR 模型在其深度增加时的图像质量。如下图 3 所示,随着模型深度的增加,CAR 在五种不同条件下生成更高质量的图像,表现出更低的 FID 指标以及更高的 IS、精准度和召回率,这与自回归生成建模的规模法则一致。在 HED 图、深度图和法线图中观察到最高的指标,而 Canny 边缘和草图则相对较低,这与表 1 的观察结果一致。

用户研究

研究者们邀请了 30 位参与者进行用户研究,以评估CAR 在与之前的方法 ControlNet 和 T2I-Adapter 的生成性能比较。对于五种类型的条件,输入 30 张条件图像,并为每种方法生成相应的结果,每种方法生成 150 个结果。对于每个条件输入,参与者需要根据三个标准选择最佳结果:1)图像质量,2)条件保真度,3)图像多样性。如下表 2 所示,CAR 在这三个方面均优于 ControlNet 和 T2I-Adapter,证明了所提出的可控自回归建模的有效性。

消融研究

整体可控性和图像质量

下图 4 展示了CAR 模型根据给定的条件控制生成高质量和多样化的结果。各种条件输入的视觉细节在生成的图像中得到了有效反映,确保了图像与其对应条件之间的强对齐。值得注意的是,展示的类别不在训练期间使用的 100 个类别之内,但 CAR 仍然能对这些未见类别实现精确控制,这表明CAR 学会了从给定的条件控制中提取一般语义信息,而不是对训练集进行过拟合。这一优势突显了CAR 框架的跨类别泛化能力和强大的可控性。

数据分布分析从数据分布的角度分析 CAR 的可控性。具体而言,HED 图被用作一种条件,引导图像生成过程,这一条件是从真实图像中提取的。我们采用一种不可控的传统自回归模型来生成比较样本。我们应用 t-SNE可视化所有生成图像的嵌入特征的前两个主成分。这些嵌入特征是使用 HED 图提取方法的主干提取的。

如下图 5 所示,传统自回归模型的生成分布与真实图像之间存在显著的不对齐,因为传统模型缺乏条件控制信息。相比之下,CAR 模型生成结果的分布与真实图像密切对齐,表明我们的样本准确捕捉了 HED 图的视觉细节,使 HED 嵌入特征更接近真实图像。这突显了CAR 模型增强了基于提供的条件控制 C 生成结果的可控性和准确性。

消融研究

在 ImageNet 验证集上进行消融研究,以探索 CAR 框架中每个组件(包括 F(·)、T(·) 和 G(·))不同功能选择的影响。

F(·) 的不同功能选择

探讨了不同方法引入条件控制 ck 以形成 sk 在 F(·) 中的影响。具体而言,比较了两种策略:1)使用 VAR 模型的预训练 VQ-VAE 编码器直接将条件图像映射到不同尺度的标记图;2)我们的方法,通过像素级调整条件图像至不同尺度,使用共享的可学习卷积编码器进行控制特征提取。

结果如表 3 所示,可学习编码器在 IS 分数上显示出显著改善,表明图像质量得到提升。我们推测,预训练的 VQ-VAE 编码器设计用于图像重建,可能无法有效捕捉图像语义,因此不太适合提取控制语义。图 6 的可视化结果也证明了这一点,使用 VQ-VAE 编码器的生成图像存在失真和质量差的问题。

T(·) 的不同功能选择

我们设计了 T(·) 的编码器以提取准确有效的控制表示 ˆsk。具体而言,我们比较了两种架构:1)简单卷积网络;2)GPT-2 风格的 Transformer。下表 3 和图 6 显示,Transformer 相比简单卷积网络基线在图像质量上显著更高,这归因于其强大的表示能力。同时,基于 Transformer 的编码器与预训练自回归模型的架构相匹配,可能导致更接近的分布,增强后续注入过程。

G(·) 的不同功能选择

我们比较了不同的注入函数 G(·),在预训练自回归模型中将控制表示 ˆsk 注入图像表示 rk,以更新图像表示 ˆrk。具体而言,我们比较了三种技术:1)对控制表示应用零卷积(Zhang et al., 2023),然后加上控制和图像特征;2)应用交叉归一化,使用图像表示的均值和方差归一化控制表示,然后将这两个特征相加;3)我们的方法,将两个表示进行拼接,应用可学习的 LayerNorm 进行归一化,然后进行线性变换以调整通道维度。如上面表 3 所示,无论在加法之前是否应用零卷积和交叉归一化,添加图像和控制特征都会导致 IS 指标下降。这表明这些操作导致的图像质量降低,与我们的方法相比,生成结果在图像质量和自然性上表现较差。我们将此归因于两种不同领域表示的不兼容性。尽管交叉归一化试图对齐领域间的分布差异,但这种操作是不够的。因此,拼接这两个表示,再进行 LayerNorm,更有效地协调条件特征和主干特征,从而解决数据分布中的差异。

结论

本文提出了可控自回归建模(CAR),该模型建立了一种新颖的控制 VAR 生成的范式。CAR 捕捉了强大的多尺度控制表示,这些表示可以无缝集成到预训练的自回归模型中。实验结果表明,CAR 在可控性和图像质量方面均优于现有方法,同时降低了所需的计算成本。CAR 代表了自回归视觉生成的一个重要进展,为各种可控生成任务提供了一种灵活、高效且可扩展的解决方案。

讨论与未来工作

尽管所提出的 CAR 框架在可控视觉生成方面表现出色,但仍面临 VAR 模型固有的一些限制。具体而言,依赖于顺序token预测有时会限制模型的效率,特别是在处理长图像序列或需要在高分辨率下进行精细控制时。CAR 中使用的多尺度注入机制也可以扩展,以探索替代注入策略,例如基于注意力的或自适应注入,以进一步增强控制精度。此外,尽管当前设计在递归方式中优秀地注入了控制信号,但扩展框架以处理更复杂的任务,如视频生成,仍然是未来工作的一个开放挑战。







#T-Rex Label

超震撼 AI 自动标注工具,开箱即用、检测一切

“赛博螺丝工”解放双手的时刻来了!

重复手动拉框一直以来都是数据标注中最令人头疼的部分。人工标注不准确且低效,会严重影响数据集的质量。

人工标注费时费力

今天向大家介绍一款全新的交互式AI自动标注工具:T-Rex Label,可以帮助您显著提升标注效率。T-Rex Label 支持在密集场景下进行一键标注,适用于各行各业的数据集。作为一款开箱即用的工具,它将大幅提高您的标注效率。

AI 一键智能标注

T-Rex Label 如何实现提效 99%?

相信了解计算机视觉的朋友都会对刷新 SOTA 纪录的 Grounding DINO 和 T-Rex2 模型有所耳闻。这些都是由 IDEA 计算机视觉团队研发的开集目标检测模型,T-Rex Label 是由该团队基于 T-Rex2 推出的自动标注工具。接下来,我们就详细讲讲 T-Rex Label 如何借助 T-Rex2 实现“一键标注”与“检测一切”。

视觉提示,一键简化工作流程

T-Rex2 视觉提示功能相比于语言提示更高效。视觉提示可以直接框选 prompt 生成指令。语言提示在一些情况下则需要反复的措辞与修改,会消耗更多的时间。对于语言描述困难的物体,如复杂的形状或特殊的纹理,视觉提示可以有效降低语言障碍对标注过程的影响,即使在面对罕见的物体时也能提供准确高效的标注。

视觉提示演示

交互式视觉提示则可以让用户立即得到反馈,并在必要时进行快速修正,确保标注的准确性,提升数据质量。

交互式视觉提示演示

因此,T-Rex Label 的工作流程可以概括为:框选目标物体→ AI 一键标注→人工检查与 AI 辅助修正,省去了编排语言指令与手动拉框的过程,大大简化了标注流程,为研究人员节省了不少时间。

超越 GPT-4V, YOLOv8,效率、准确度兼备

在国外学者 Konlavach Mengsuwan 的论文[1] 中,更是直观地展示了 T-Rex 开集物体检测模型在计数方面的优势,远超 GPT-4V 和 YOLOv8!

GPT-4V 作为性能最强的多模态模型模型,在物体计数的速度与准确度上远不及T-Rex。在效率方面,T-Rex 可以实现0.5秒完成一张图片推理,包含物体检测与物体计数。GPT-4V 则需要 1.05 秒才能处理一张图片。在准确度方面,T-Rex 预测准确度 R2 值为 0.923,是 GPT-4V Zero-Shot 的2.5倍,这说明 T-Rex 的图片分析结果更接近真实情况,能实现高精确度的物体检测。

51c视觉~合集35_视觉_08

GPT-4 Zero-Shot VS T-Rex

T-Rex Label 的 AI 智能标注功能可以精准地按照提示识别物体。特别是针对高难度的复杂场景,T-Rex Label 更能展现出准确度优势。复杂场景除了物体数量,还存在物体大小、形状、角度的变异性,一些模型会在复杂场景中频频出错,因此还需要大量查缺补漏的时间。但 T-Rex Label 可以精准地识别出绝大部分物体,帮助标注员减少返工的时间。

复杂场景效果演示

使用预训练模型自动标注,通常需要收集数据、标注数据、微调模型、部署模型、再用于自动标注,这个周期较长,且耗时耗力。以 YOLOv8 为例,根据论文[1] 的实验结果,YOLOv8 需要花费大量的时间进行标注和训练,整个流程时长是 T-Rex 的194倍,标注的准确性也不及 T-Rex。

51c视觉~合集35_视觉_09

YOLOv8 VS T-Rex

卓越的零样本检测能力,让 T-Rex Label 无需额外的训练成本就可以直接应用到各类场景的标注中,具有极强的泛化能力。目前已知 T-Rex Label 在农业、工业、动物、生物、医药、OCR、零售、电子、运输、物流等多个领域的数据集上都表现优异。

多行业适用

[1] Mengsuwan K, Palacio J C R, Ryo M. ChatGPT and general-purpose AI count fruits in pictures surprisingly well[J]. arXiv preprint arXiv:2404.08515, 2024.

T-Rex Label 无需下载安装,上手成本极低,还支持 Github 账号一键登录!

复制下方链接或点击阅读原文可快速体验:

https://trexlabel.com/?source=wx







#TransXNet

全局动态性+局部动态性=性能强大,代码已开源!

本篇分享论文TransXNet: Learning both global and local dynamics with a dual dynamic token mixer for visual recognition,通用的视觉Backbone,TransXNet: 全局动态性+局部动态性=性能强大,代码已开源!

论文链接:https://arxiv.org/abs/2310.19380 (预印版)

代码链接:https://github.com/LMMMEng/TransXNet

摘要

香港大学计算机科学系俞益洲教授(https://www.cs.hku.hk/~yzyu/)及其研究团队开发了一种新型的通用视觉主干网络—TransXNet,该模型同时融合了全局和局部动态性。其创新之处在于引入了一个即插即用的模块,名为Dual Dynamic Token Mixer(D-Mixer)。

与以往的卷积和self-attention混合模块或全局与局部信息融合模块不同,D-Mixer专注于动态性的捕捉。

具体来说,D-Mixer能够利用网络上一层的feature map信息,生成用于提取当前层feature maps的全局和局部动态权重,从而显著增强模型对多尺度特征的动态表征能力。

为了验证TransXNet的性能,研究团队分别在ImageNet-1K、COCO 2017和ADE20K数据集上进行了广泛的实验,结果表明,TransXNet作为一个通用视觉主干网络,展现出了卓越的性能。

动机

在本文中,作者深入探讨了self-attention和卷积在权重计算方式上的不同,并基于此提出了改进方案。作者指出,self-attention之所以性能卓越,部分原因在于其权重(即attention matrix)会根据不同的输入动态变化,这种input-dependent的特性使得模型能够更好地捕捉输入数据的特征。

相比之下,传统的卷积操作中的权重是静态的,与输入数据无关,即input-independent,这限制了其表征能力。据此,作者进一步分析了如果将self-attention和传统的卷积简单地结合可能遇到的问题:

  • 表征能力差异:由于卷积缺乏类似self-attention的动态性,这导致在卷积-attention混合模块中,self-attention的语义建模能力可能会被削弱,因为卷积部分的静态特性限制了模块整体的表征能力。
  • 深层模型的挑战:在深层模型中,self-attention能够利用先前层的特征图的全局和局部信息来生成动态的attention matrix,从而提高模型的性能。然而,卷积核的静态特性使其无法利用这些信息来动态调整,从而限制了模型在深层结构中的表现。

方法

为了解决上述问题,作者提出了一个即插即用模块D-Mixer。该模块能够动态地捕获全局和局部信息,从而使网络兼具大感受野和稳定的归纳偏置。

如图1(a)所示,对于给定的输入特征图, D-Mixer首先会将其沿通道维度拆分为两部分,并分别将这两部分输入到两个不同的模块中,即Input-dependent Depthwise Convolution(IDConv)以及 Overlapping Spatial Reduction Attention(OSRA)。

输出结果会进行拼接,并且由一个轻量级的Squeezed Token Enhancer(STE)进行整合。以下为不同模块的具体描述:

51c视觉~合集35_视觉_10

图1 D-Mixer

Input-dependent Depthwise Convolution (IDConv):如图1(b)所示,对于任意输入特征图,作者首先使用一个自适应平均池化层聚合空间上下文,并将空间维度压缩至K×K,其中K为待生成的动态卷积核的大小。紧接着,输出的特征图被送入两个1×1卷积层中,并生成多组维度为G×C×K×K的空间注意力图,其中G、C分别表示注意力图的组数以及输入特征图的通道数量,注意力图在G维度上使用 softmax 函数对其进行归一化,使其具备自适应的选择能力。最后,通过将注意力图和一组维度同为G×C×K×K的可学习参数进行逐元素相乘来生成动态卷积核,并将其用于输入特征图的特征提取。IDConv可以根据上一层特征图携带的语义信息来动态地生成卷积核的权重,进而可以与self-attention进行深度嵌合。

Overlapping Spatial Reduction Attention (OSRA): 如1图(c)所示,OSRA的整体流程和PVT中提出的 Spatial Reduction Attention(SRA)类似,都采用了token-to-region的全局建模方式。主要不同之处在于,SRA在降采样的过程中使用的是Non-overlapping的卷积,即卷积核大小和步长大小一致。因此,一些连续的局部信息会在这个过程中被破坏,从而降低key/value分量包含的空间结构信息。据此,OSRA引入了 Overlapping卷积来进行降采样,即卷积核的大小大于步长。此外,OSRA还引入了一个轻量的局部算子(用3×3的depthwise卷积实现)来进一步提炼 key/value 分量的局部信息。

Squeezed Token Enhancer (STE):为了高效地将IDConv和OSRA处理后的特征进行融合,本文引入了一个轻量级的特征融合模块STE。如图1(d)所示,STE通过一个3×3的depthwise卷积和两个通道压缩的 1×1 卷积来实现特征融合。值得一提的是,STE相较于直接使用一个全连接层进行特征融合具有更好的性能以及更优的计算复杂度。

TransXNet 整体架构:如图 2 所示,TransXNet的基本构成部分主要包含D-Mixer和Multiscale Feed-forward Network(MS-FFN)。其中,MS-FFN 使用了多个不同卷积核大小的 depthwise 卷积来提取多尺度信息。由于TransXNet同样沿用了ResNet和Swin Transformer中的金字塔设计,因此,该网络可以应用到各类视觉任务中。

51c视觉~合集35_视觉_11

图2 TransXNet整体架构

实验结果:

  1. 图像分类:TransXNet在大规模数据集ImageNet-1K 上表现出了卓越的性能,相较于现有方法,展现出更为出色的性能以及更加优秀的tradeoff,如图 3 所示。

51c视觉~合集35_视觉_12

图3 不同模型在ImageNet-1K上的性能对比

  1. 目标检测:如表1所示,在COCO 2017数据集上,TransXNet 同样展示出了更优的性能。值得注意的是,TransXNet在处理小目标时比强调局部性的Slide-Tranformer性能更好,充分展现了TransXNet利用全局和局部动态性获得的强大能力。
  2. 语义分割:如表2所示,TransXNet在ADE20K上也进行了全面的评估,其性能在与一些强大的Vision Backbones的比较中脱颖而出,并且有着更优秀的tradeoff。
  3. 消融研究:如表3所示,TransXNet对核心模块进行了广泛的消融实验,例如与不同token mixer的性能对比以及和不同动态卷积的性能对比等。可以看出,TransXNet中的核心部件相较于其他算法有着更加出众的性能。除此之外,原文还包含有更多的性能和效率对比及分析。

51c视觉~合集35_视觉_13

表1 目标检测和实例分割性能对比

51c视觉~合集35_视觉_14

表2 语义分割性能对比

51c视觉~合集35_视觉_15

表3 核心部件的消融研究

可视化研究

动态卷积在卷积 - Attention混合模型中的重要性:

如图4 (a) 所示,在动态卷积的加持下,卷积-Attention混合模型能够拥有更大的有效感受野(Effective Receptive Field, ERF)。其中,所提出的IDConv展现出了最好的性能,表明其可以更好地配合self-attention 模块来捕获上下文信息。

不同Vision Backbones的ERF对比:

如图4 (b) 所示,TransXNet在具有最大感受野的同时还具备显著的局部敏感度,这是其他模型无法兼备的能力,进一步表明了全局和局部动态性的重要性。

51c视觉~合集35_视觉_16

图4 不同模型有效感受野(Effective Receptive Field, ERF)对比








#MambaAD

Mamba杀入异常检测!MambaAD:第一个使用Mamba进行多类无监督异常检测

本文介绍了一种名为MambaAD的新方法,它首次将Mamba模型应用于多类无监督异常检测任务。MambaAD结合了预训练的CNN编码器和由不同尺度的局部增强状态空间(LSS)模块组成的Mamba解码器,通过混合扫描(HS)编码器和状态空间模型(SSM)来建立全局联系,并在多个异常检测数据集上取得了最先进的性能。 

(来自浙大,腾讯优图,南洋理工大学)

论文:https://arxiv.org/abs/2404.06564

主页:lewandofskee.github.io/projects/MambaAD/

代码:github.com/lewandofskee/MambaAD

内容总结(太长不看版)

过去基于CNN和Transformer的结构的算法被广泛应用于异常检测领域取得了一定的效果。但是CNN无法处理长距离信息的关联性,而Transformer受限于其平方级别的计算复杂度。最近基于Mamba的模型凭借着其长距离建模的出色能力与线性计算复杂度引起了广泛的研究。在本文中,我们首次将Mamba应用于多类无监督异常检测领域并提出MambaAD如图1所示包含一个预训练的CNN编码器和由不同尺度的局部增强状态空间(LSS)模块成的Mamba解码器。被提出的LSS 模块包含并行的连续混合状态空间(HSS)模块和多核的卷积操作,能够同时具有长距离的建模能力与局部信息的建模能力。HSS模块所包含的混合扫描(HS)编码器将特征图编码至5种不同的扫描方式和8种不同的扫描方向并输送至SSM中建立全局的联系。其中我们采用了Hilbert扫描方式和8种扫描方向有利于提升特征序列的建模能力。大量实验表明,我们在6种不同异常检测数据集上、开~发~板~商~城~物联网测试设备,7种不同的指标上取得了SoTA,证明了Mamba AD方法了有效性。

51c视觉~合集35_视觉_17

图1 MambaAD框架结构图

1、引言

尽管基于合成和基于特征编码的方法在AD领域取得了不错的效果,但是这些方法需要额外的设计与不可轻易扩展的框架。基于重建的方法如RD4AD和UniAD具有非常好的效果与较好的可扩展性。RD4AD提出了预训练教师模型与学生模型并在多尺度特征层面上进行异常值对比。尽管基于CNN的RD4AD在多尺度上的有着捕捉相邻的信息能力并取得了较好的性能,但是其无法建立长距离的相关性。首个多类异常检测算法UniAD是基于预训练的CNN编码器和Transformer解码器的架构。尽管Transformer有着全局建模的能力,但是由于其平方级别计算复杂度,UniAD仅在最小尺度的特征图上对比得到异常图,这无疑会减弱模型性能。

51c视觉~合集35_视觉_18

图2 MambaAD与基于CNN的RD4AD和Transformer的UniAD方法对比

2、MambaAD贡献

最近,Mamba在大语言模型中取得了出色的表现,有着远小于transformer的线性复杂度并且能够与transformer相媲美的效果。近期大量的工作将Mamba引入视觉领域,涌现大量基于Mamba的研究工作。本文首次将Mamba引入异常检测领域,构建了MambaAD架构有着全局+局部的建模能力,并且利用它的线性复杂度在多尺度上计算异常图并且有着较低的参数量与计算复杂度。具体来说MambaAD使用金字塔结构的自编码器结构来重建多尺度的特征,通过一个预训练编码器和提出的基于Mamba结构的解码器。其中基于Mamba结构的解码器由不同尺度与数量的局部增强状态空间(Locality-Enhanced State Space) LSS module组成。LSS module由两部分组成:连续的(Hybrid State Space) HSS模块用于捕捉全局的信息和并联多核的卷积操作用来建立局部的联系。最终的输出特征不仅包含基于Mamba的全局建模能力,还包含了基于CNN的建立局部相关性的能力。所提出的HSS模块探索了5种不同的扫描方式和8种不同的扫描方向,其中的HS编码器和解码器分别将特征图编码至不同的扫描方式和方向的序列并解码。HSS模块能够增强在多个方向上的全局感受野并且所使用的Hilbert的扫描方式也更加适用于工业产品位置集中在中心区域的特点。通过在不同尺度的特征图上计算异常图并相加,MambaAD在6个不同的异常检测数据集上取得了SoTA性能并且模型参数量与计算复杂度也非常低。具体来说,我们的贡献如下:

1)我们提出了MambaAD首次使用Mamba来解决多类无监督异常检测任务,它能够在很少的模型参数量和计算复杂度上进行多尺度训练与推理。

2)我们设计了一个LSS module,连接的HSS模块和并行的多内核卷积分别提取全局特征相关性与局部信息关联性,实现全局加局部的统一建模。

3)我们探索了HSS模块即5种方法8种多方向的混合扫描方式如图3所示,能够增强复杂的异常检测图像在不同类别不同形态下的全局建模能力。

4)我们证明了MambaAD在多类异常检测任务的优越性和高效性。在6个不同的异常检测数据集上达到SOTA如表1所示,并且有着非常低的模型参数与计算复杂度见表2。

51c视觉~合集35_视觉_19

图3 五种不同的扫描方式和八种扫描方向

51c视觉~合集35_视觉_20

表1 三个异常检测数据集对比结果,更多详细结果参考文章附录

51c视觉~合集35_视觉_21

表2 MambaAD与SOTA方法在参数量、计算复杂度和效果上对比

51c视觉~合集35_视觉_22

图4 MambaAD与SOTA方法定性实验结果对比







#Segment Anything Model (SAM)

全面系统解读高效SAM变体:各种加速策略和核心技术展示

全面回顾了高效变体Segment Anything Model(SAM)的研究进展。

文章链接:https://arxiv.org/pdf/2410.04960

亮点直击

  • 提供了一项系统的高效 SAM 变体全面回顾,旨在加速分割任务。介绍了一个结构良好的分类法,将这些方法根据其采用的加速策略进行分类。据我们所知,这是第一项专门关注该领域的调查。
  • 对这些变体的效率和准确性进行了全面的评估和比较,旨在帮助研究人员选择最能满足其性能和应用需求的模型。
  • 提出了几个未来研究的潜在方向,为读者提供启发,以推动该领域的持续发展。

Segment Anything Model (SAM) 是一款基础模型,专用于图像分割任务,以其在多样应用中的强大泛化能力而闻名。然而,它的出色性能伴随着显著的计算和资源需求,这使得在资源有限的环境(如移动设备)中进行部署变得具有挑战性。为了解决这个问题,已经提出了多种 SAM 变体,以提高效率而不牺牲准确性。

本综述首次全面回顾了这些高效的 SAM 变体。我们首先探讨推动该研究的动机,然后介绍 SAM 和模型加速中使用的核心技术。接下来,深入分析各种加速策略,并按方法进行分类。最后,提供了对这些方法的统一和全面的评估,评估它们在代表性基准上的效率和准确性,并对它们的整体性能进行明确比较。

1 引言

基础模型的出现已经彻底改变了人工智能(AI)领域。基础模型是大型神经网络,在海量数据上进行预训练,具有强大的表示能力和出色的泛化能力,能够在各种任务中表现出色。在自然语言处理(NLP)领域,最近流行的研究趋势是大型语言模型(LLMs),如OpenAI的GPT系列、Google的PaLM系列和Meta的LLaMA系列等,这些模型取得了显著的发展。同时,视觉转换器(ViT)的成功首次将转换器架构引入计算机视觉(CV)领域,为视觉基础模型(VFM)开辟了新纪元。像CLIP、LLaVA和Video-ChatGPT等视觉-语言基础模型旨在对齐视觉和语言模态,在众多下游视觉任务中表现出色。

最近,Meta提出了一种新型的基础模型,用于通用图像分割,即 Segment Anything Model (SAM) 。SAM 完全在他们提出的 SA-1B 数据集上进行训练,该数据集包含超过十亿个mask和一千一百万张图像,旨在通过任何提示(例如点、框、mask和文本)实现有效的分割。SAM 能够很好地泛化到广泛的下游任务(如边缘检测、目标提议和实例分割),只需提供适当的提示。SAM 的出现引起了研究界的广泛关注,并催生了大量相关工作,探索 SAM 在各种场景中的泛化能力,包括不同的图像分割任务、视频分析任务和 3D 视觉任务。随着 SAM 的巨大成功,升级版的 Segment Anything Model 2 (SAM 2) 

尽管 SAM 在广泛应用中取得了成功,原始的 Segment Anything Model (SAM),特别是 SAM-H,由于运行速度慢和计算成本高面临显著的局限性。在资源受限或实时环境(如边缘设备和移动应用)中部署 SAM 时,这些挑战尤为明显。随着对在实际资源受限场景中部署机器学习模型的需求不断增加,SAM 当前的设计在广泛使用中显得效率低下。这导致了对更轻量级、高效变体的迫切需求,这些变体可以在满足模型强大分割能力的同时应对这些限制。优化 SAM 以提高效率的挑战进一步加剧,因为在实时应用、移动平台和嵌入式系统中对计算资源的需求越来越高。随着研究界努力克服这些障碍,全面了解在提高 SAM 效率方面的最新进展变得至关重要。因此,开展一项详细的调查,以研究提高 SAM 效率和扩展其在多样环境中的适用性的努力,是及时且必要的。

随着与 SAM 相关的研究不断增加,已有若干调查从不同角度提供了概述。然而,这些现有的调查主要集中在 SAM 的下游应用上,并存在几项局限性

  • 没有一项调查关注到提高 SAM 效率的新兴领域,而这一领域正在获得重要关注,对实际应用的部署至关重要。
  • 除了一项外,这些调查缺乏结构化的分类法,以便更清晰地组织和参考。
  • 大多数先前的调查主要集中在收集和描述基于 SAM 的方法,但缺乏对这些方法的系统性评估或比较。

为了解决这些不足,本文开展了本次调查,旨在全面回顾高效 Segment Anything 模型的发展,并公平地评估和比较它们。

本调查的其余部分组织如下。在第2节中,我们首先介绍原始 SAM 的背景,然后回顾可以应用于提高 SAM 效率的高效视觉表示骨干和模型压缩技术。在第3节中,我们根据目标和技术对现有方法进行分类,详细回顾每个类别。我们还讨论了进一步加速 SAM 的几个潜在研究方向。在第4节中,我们对这些模型在效率、准确性和相应的权衡方面进行公平评估。最后,在第5节中,我们简要总结了本次调查。

2 初步概述

2.1 Segment Anything Model

Segment Anything Model (SAM) 是图像分割领域中的一个强大基础模型,旨在通过基本的可提示分割任务,利用提示工程来统一各种分割任务。该项目的一个显著贡献是 SA-1B 数据集,该数据集包含来自 1100 万张经过许可和隐私保护的图像生成的超过 10 亿个masks。在如此丰富和高质量的数据上进行训练,SAM 展现出强大的鲁棒性和泛化能力。SAM 的巨大潜力迅速引起了研究人员对探索其在广泛现实应用中的能力以及改进其架构以实现更高效或更准确分割的兴趣。

最近,Segment Anything Model 2 (SAM 2) 被提出作为继任者,专注于高效的可提示视觉分割 (PVS),适用于图像和视频。为了使 SAM 2 能够在视频中分割任何内容,研究人员在 SAM 的原始架构中引入了流式记忆机制。SAM 2 采用两阶段训练:

  • 在 SA-1B 数据集上进行可提示分割任务的预训练;
  • 在混合数据上进行可提示分割任务的训练,处理图像和视频。

与 SAM 类似,研究人员开发了一个数据引擎,以创建一个用于视频分割的大规模数据集,命名为 SA-V 数据集。该数据集最终收集了 50,900 个视频中的 642.6K 个mask(视频中的对象分割)。在本次调查中,将 SAM 2 视为高效的 SAM 变体,并将其纳入评估和比较中。

2.1.1 模型

SAM 由三个主要组成部分构成:图像编码器、提示解码器和mask解码器,如下图 1(a) 所示。图像编码器是一个经过微小修改的 MAE预训练视觉Transformer (ViT)。它将预处理后的图像作为输入,并为每张图像输出一个图像嵌入。提示解码器用于嵌入提示:点、框、mask和文本。这两个嵌入然后输入到轻量级mask解码器,该解码器基于两个修改过的Transformer解码器块和一些预测头,生成有效的mask。

基于 SAM 的架构,SAM 2 额外引入了流式记忆机制。具体来说,这个机制包括一个记忆编码器、一个记忆库和一个记忆注意模块。SAM 2 的结构如上图 1(b) 所示。通过记忆机制,SAM 2 能够逐帧处理视频。记忆编码器生成当前帧的预测记忆并将其发送到记忆库。记忆库存储最近的预测、提示帧的特征图以及目标对象的高级语义信息(即对象指针)。记忆注意机制使来自图像编码器的图像嵌入与来自记忆库的信息充分交互,从而得到精细化的嵌入。除了记忆机制,SAM 2 还采用 MAE 预训练的 Hiera作为图像编码器,这比 ViT-H 更高效,预期可以实现更快的速度。

2.1.2 任务

可提示分割任务被提出作为 SAM 的基本任务,其目标是根据任何给定的提示(例如一个点、一个框、一个mask或文本)返回有效的mask。这个任务不仅是 SAM 训练过程中的目标,也是使 SAM 能够解决各种下游任务的基础。另一个重要任务是全mask生成,它会对图片中的所有对象进行分割。通过使用点网格对 SAM 进行提示,并根据这些稠密的提示预测mask来实现。全mask生成也是数据引擎最后阶段中的关键步骤,旨在增强 SA-1B 中mask的多样性。如下图 2 所示,可提示分割任务称为 Segment Anything (SegAny),而全mask生成任务则称为 Segment Everything (SegEvery)。这两个任务总结了 SAM 的分割能力,并为提升 SAM 效率指明了两个研究方向。在本次调查中,我们遵循这两个定义,探讨基于 SAM 的高效变体在 SegAny 和 SegEvery 任务中的表现。

2.1.3 应用

由于 SAM 及其继任者 SAM 2 在大量零样本下游任务中展示了强大的泛化能力,研究界正深入探索它们在更多场景中的应用。

SAM 的一个主要应用领域是医学图像分割 。根据[157]的说法,该领域的工作可以分为两类。一类旨在测试 SAM 在 CT 图像、MRI 图像、病理图像等中的分割性能。另一类则专注于通过微调、自动提示或框架修改来提高 SAM 在这些任务中的适应性。此外,像[35, 57]这样的研究试图提高医学 SAM 方法的效率。SAM 还被应用于不同现实场景中的对象检测,包括土木基础设施缺陷评估中的裂缝检测和陨石坑检测,农业中的作物病虫害检测,异常检测和遥感。此外,Segment Anything 已被改编为 Edit Everything、Inpaint Anything和 Caption Anything来处理图像编辑任务。

除了图像分割任务,SAM 还广泛应用于各种视频任务。大量研究集中于两个基本任务:视频对象分割 (VOS)和视频对象跟踪 (VOT)。研究人员还探索了 SAM 在生成相关任务中的应用,例如视频超分辨率和视频数据集标注生成。除此之外,SAM 还作为视频编辑任务中的一个中间工具被进一步利用。除了 2D 任务,SAM 还扩展到 3D 视觉领域。研究[100]将 SAM 应用于 3D 重建,而研究[28]则将其应用于 3D 点云分割。最近的工作[134]旨在实现在线设置下的任何 3D 物体的实时分割。对于最近提出的 SAM 2,已经有一些研究探索其在图像和视频任务中的应用。一个流行的趋势是将 SAM 2 应用于医学图像和视频任务。像[27, 99, 135]这样的研究评估了 SAM 2 在 2D 和 3D 模态下医学图像中的表现,而一些其他研究[75, 140]则测试了其在外科视频分割任务中的表现。研究人员还在寻找更好地将 SAM 2 适应医学任务的策略。此外,SAM 2 还被应用于一些特定的图像分割任务,如数字病理语义分割、网格部件分割和太阳能电池板分割。此外,一些研究[70, 113]利用 SAM 2 在具有挑战性的规模化视频对象分割 (LSVOS) 任务中取得了良好的结果。

2.1.4 局限性

尽管 SAM 在各种任务中表现出色,但在实际应用中仍面临两个关键挑战:

  • 它通常难以为精细结构预测完整的mask,从而导致边界不精确;
  • 它不是实时的,资源消耗仍然很高,特别是在使用像 ViT-H 这样的重型图像编码器时。

为了解决这些问题,研究如[49, 54]旨在通过利用高分辨率图像来改善mask质量,而其他研究[131, 147, 161, 164]则专注于创建更高效的架构,以减少 SAM 的时间和资源消耗。之前的调查[78, 100, 158]已探讨了提高 SAM 质量结果的最新进展。在本次调查中,我们专注于提高 SAM 效率的努力。

2.2 高效骨干网络

SAM 的低效主要源于其重量级的图像编码器。SAM 图像编码器的尺寸详见表 1,并在后面小节中提供了 SAM 总参数的进一步估算,比如在 SAM-H 中,ViT-H 图像编码器包含大约 632M 个参数,而模型的总大小为 641M,这意味着图像编码器占模型参数的大部分。即使在最小的变体 SAM-B 中,图像编码器仍占总参数的 90% 以上。因此,快速有效地加速 SAM 的一种方法是用更高效的骨干网络替换大型图像编码器。这些高效的骨干网络可以包括纯卷积神经网络 (CNN)、高效视觉Transformer架构以及最近的Transformer替代模型[87]。

2.2.1 高效视觉Transformer

提高视觉Transformer效率的努力通常可以分为两种方法:

  • 设计更高效的架构;
  • 重构注意力机制。

从结构角度减少计算成本,MobileViT是一种开创性的混合架构,创造性地将卷积神经网络(CNN)模块(MobileNetV2 模块)与Transformer模块集成到一个模型中。随后,像 [10, 62, 127] 这样的后续工作基本上遵循这个思路,构建高效的混合结构视觉Transformer,这些Transformer已被广泛用来替代 SAM 的重型图像编码器。在 [103, 161] 中,TinyViT 作为高效骨干网络,而在 [162] 和 [159] 中,EfficientFormerV2 和 EfficientViT分别替代了 SAM 的原始图像编码器。另一个具有影响力的视觉Transformer设计,MetaFormer,将注意力机制抽象为一个更广泛的概念,称为 token mixer,可以使用各种 token mixer 实现与Transformer相媲美的性能。最简单的变种 PoolFormer,通过使用池化操作作为 token mixer,而不引入额外的可学习参数,已被用作为 Lite-SAM开发轻量级图像编码器的基础架构。

研究人员在优化注意力机制方面也取得了显著进展。观察到注意力机制中的 softmax 操作显著增加了整体计算成本。在 EfficientViT 中,提出了一种新颖的 ReLU 线性注意力机制,以更高效地实现全局感受场。这种高效的骨干网络在中被进一步采用以加速 SAM。注意力机制的改进还在硬件层面上进行。FlashAttention通过切片、内核融合和重计算等技术显著降低了计算成本,并被应用于 SAM 加速工作,以减少内存需求并提高计算效率。

2.2.2 替代Transformer模型

虽然Transformer目前在语言和视觉领域占据主导地位,但一些新提出的模型在效率和性能方面显示出了超越Transformer的潜力。

接受权重关键值(RWKV)模型结合了递归神经网络(RNN)和Transformer的优势,随着序列长度的增加,实现了线性时间复杂度。RWKV 非常适合处理长序列处理的挑战。

为了促进全局信息交互,RWKV 用更高效的 WKV 操作符和输出门控机制替代了传统的具有二次复杂度的注意力机制。这些机制的公式如下:

其中 r, k, v  分别表示接收的tokens、键和值的移位tokens,W表示权重。RWKV 也已扩展到视觉任务。视觉 RWKV (VRWKV) 模型在效率上表现出与视觉Transformer (ViT) 相当的性能。为了将 RWKV 从一维序列适应到二维图像,引入了 Q-shift tokens,以在四个方向上融合邻域信息。在 [145] 中,一种基于 RWKV 的 SAM 变体通过采用混合 MobileNetV2 块 和 VRWKV 块的高效主干,取得了卓越的效率表现。

2.3 模型压缩

模型压缩涵盖一系列旨在减少模型大小和计算复杂度的技术,使其在计算资源有限的实际应用中部署大型模型成为必要。模型压缩和加速的四种主要方法是知识蒸馏、量化、剪枝和低秩分解。

2.3.1 知识蒸馏

知识蒸馏 (KD)最初被引入作为在资源受限环境中部署大型复杂神经网络的解决方案。其核心概念是将来自较大、训练良好的模型(教师模型)的知识和表征能力转移到较小、更高效的模型(学生模型)。

在将 KD 应用于加速 SAM 时,目标是从原始的较大 SAM 中提取知识,并将其传授给更高效的 SAM 类模型。鉴于 SAM 的编码器-解码器架构,KD 通常可以分为两种方法:蒸馏整个 SAM 模型或仅蒸馏图像编码器。大多数工作,如 [84, 103, 117, 147, 159],专注于仅蒸馏高效主干,同时保留原始 SAM 的提示编码器和掩膜解码器。然而,其他方法,如 [162, 164],旨在通过监督编码器和解码器的输出来蒸馏整个模型。

2.3.2 量化

量化是将模型的高精度权重/激活值 X(例如 32 位浮点数)转换为低精度格式(例如 16 位浮点数、8 位整数)的过程。广泛使用的一种量化函数是均匀对称量化,其公式如下:

其中 b, s 分别表示低精度中的位数和缩放因子,  将整数  限制在 a1/a2 之间,即当  或  时进行裁剪。神经网络的量化主要分为两种类型:后训练量化 (PTQ) 和量化感知训练 (QAT)。PTQ 在使用小的校准数据集对完全训练的模型进行量化,以减轻精度损失,而 QAT 在训练期间将模型调整为低精度,需用完整的训练数据集。因此,QAT 通常比 PTQ 更昂贵且效率较低。许多 PTQ 方法已针对 CNN和基于Transformer的架构开发。在加速 SAM 的背景下,如  的研究利用 PTQ 技术,通过针对性策略压缩 SAM 以提高效率。

2.3.3 剪枝

模型剪枝通过消除冗余的权重或连接来减少模型的大小和复杂性,同时尽量保持精度。剪枝方法通常分为两种类型:结构化剪枝和非结构化剪枝 。结构化剪枝根据特定标准以组的方式删除参数,系统性地针对通道、层或块等子结构。相比之下,非结构化剪枝则专注于单个权重,通常导致稀疏和碎片化的网络。然而,由于剩余网络结构的不规则性,非结构化剪枝可能在一般硬件上并未带来有效的加速。在 [18] 中,应用结构化剪枝来减轻 SAM 的重量,通过移除大量冗余权重显著减少了模型的大小,同时保留了大部分 SAM 的能力。

2.3.4 低秩分解

低秩分解是一种将高维矩阵分解为低维矩阵乘积的技术,旨在减少模型的参数,以占用更少的空间并提高计算效率。常用的低秩分解方法是奇异值分解 (SVD)。它将复杂矩阵分解为三个矩阵,其计算可以进一步重写为:

其中 、 是正交矩阵,  是对角矩阵, 包含了矩阵  的非零奇异值, 同时  表示  的秩。低秩分解已广泛应用于深度神经网络,例如 CNN、LSTM和基于 Transformer的模型。然而, 到目前为止, 还没有研究将该技术应用于压缩和加速 SAM, 这为未来的研究提供了潜在方向。

3 SAM 的高效变体

本节回顾了自 SAM 受到关注以来,为开发轻量级高效的 SAM 类模型所做的努力。这些工作旨在降低模型的高计算成本并实现高效性能,同时保持 SAM 强大的分割能力和泛化能力。正如前面所述,SAM 解决了两个主要任务,包括 Segment Anything (SegAny) 和 Segment Everything (SegEvery)。因此,我们分别讨论旨在改进每个任务的研究:首先,关注加速 SegAny 任务,然后涵盖加速 SegEvery 任务的努力。值得注意的是,一些方法适用于这两个任务,将单独讨论这些贡献。此外,根据所采用的技术将所有模型分类,并在下图 3 中呈现方法论的分类。最后,概述了该领域未来研究的四个潜在方向。

3.1 加速 SegAny 任务

正如前面所分析的,SegAny 任务的主要瓶颈在于 SAM 的庞大架构。一种直接的解决方案是用更高效的主干替换编码器。或者,采用保持与 SAM 相同分割能力的不同架构也是一种方法。遵循这些策略的工作要么涉及完全从头开始训练轻量级模型,要么使用合适的监督进行知识蒸馏训练模型。此外,一些研究探索量化、剪枝或局部优化等方法,以直接压缩 SAM,而不替换编码器或构建新架构。

3.1.1 从头开始训练

本小节聚焦于完全从头开始训练 SAM 变体的工作。根据它们的架构,这些模型可以分为两种类型:与 SAM 架构不同的架构和类似 SAM 的架构。我们将按照这种分类详细探讨每种类型。

FastSAM 是第一个不依赖于 SAM 原始编码器-解码器架构的 SAM 变体之一。为了实现更快的分割,它将 SegAny 任务分为两个子任务:全实例分割和基于提示的选择。由于实例分割已被许多基于 CNN 的方法有效解决,FastSAM 提供了比基于Transformer的 SAM 更高的效率。对于实例分割,FastSAM 采用 YOLOv8-Seg 模型,并使用 YOLACT 方法来提升性能。FastSAM 可以使用点、框或文本作为提示,可靠地预测感兴趣的物体。除了加速 SegAny 任务外,FastSAM 还在 SegEvery 任务中表现出色,因为这可以与全实例分割高效地实现。然而,作为 SAM 的早期高效变体,FastSAM 仍然存在一些局限性,例如对较小物体生成低质量mask和生成边界不够平滑的mask。尽管存在这些缺点,FastSAM 通过在该领域引入基于 CNN 的架构标志着显著的进展。FastSAM 的架构如下图 4 所示。

基于 FastSAM 中 CNN 成功应用的基础,Varadarajan 等人引入了 SqueezeSAM,进一步用 U-Net 结构替换了 SAM 的基于Transformer的架构。U-Net 由用于特征提取的编码器和用于信息恢复的解码器组成。SqueezeSAM 保留了一般的 U-Net 架构,但在 U-Net 的最低尺度处加入了两个Transformer层,以在速度和准确性之间取得平衡。此外,SqueezeSAM 还具有几个微观级别的优化,例如将输出通道限制在 256,使用 BatchNorm代替 LayerNorm以提高效率,并在编码器和解码器之间引入跳跃连接。SqueezeSAM 的一个独特挑战在于处理提示。与 SAM 在解码阶段使用提示tokens不同,SqueezeSAM 采用了早期融合策略,将编码的提示作为额外输入通道,添加到输入编码器之前。该模型使用 SA-1B 数据集从头开始训练,数据增强技术用于解决低质量数据问题。SqueezeSAM 主要设计用于摄影应用的部署,其中需要高效的交互式分割。如图 5 所示,其工作流程包括生成显著物体的初始mask,然后通过用户点击进行精细分割。

EfficientSAM并没有引入全新的网络,而是保留了 SAM 的原始架构,但替换了图像编码器。他们使用 ViT-tiny 或 ViT-small 作为轻量级编码器,并利用基于 SAM 的 Masked Image (SAMI) 预训练策略从头开始重新训练。SAMI 是从 Masked AutoEncoder (MAE) 框架适配而来,该框架最初用于预训练 SAM 的原始图像编码器。SAMI 遵循编码器-解码器管道:编码器从未遮罩的图块中生成潜在特征表示,而解码器则重构遮罩图块的缺失嵌入。这个过程由重构损失监督,比较 SAM 的 ViT-H 编码器生成的嵌入与 SAMI 管道生成的嵌入。预训练完成后,轻量级编码器从 SAMI 管道中提取并与 SAM 的其余组件集成,形成 EfficientSAM。最后一步是对整个模型在 SA-1B 数据集上进行微调,以进一步对齐和细化。SAMI 是一种通用的预训练方法,可以应用于训练任何用于 SAM 变体的主干。SAMI 和 EfficientSAM 的整体结构如下图 6 所示。

Xu 等人提出了 RAP-SAM,该模型旨在实现实时的通用分割,包括全景分割 (PS)、视频实例分割 (VIS) 和交互式分割(相当于 SegAny 任务)。RAP-SAM 保留了 SAM 的基本编码器-解码器架构,但结合了更高效的组件以增强性能。对于编码器,RAP-SAM 结合了特征金字塔网络 (FPN) 和可变形卷积 来从图像和视频中提取特征,同时使用提示编码器嵌入视觉提示。在解码器中,RAP-SAM 采用三阶段管道,利用新颖的基于池化的动态卷积来细化masktokens。每个阶段生成的tokens以及来自编码器的特征图作为输入。首先,这些输入通过动态卷积处理,然后利用多头自注意力 (MHSA) 和前馈网络 (FFN) 进行细化。在解码器之后,额外引入两个提示适配器,以增强视觉提示和分割tokens之间的交互。最终mask是通过计算更新后的tokens和更新后的提示之间的内积生成的。RAP-SAM 的架构如下图 7 所示。

最近,Ravi 等人引入了 Segment Anything Model 2 (SAM 2),这是对原始 SAM 的扩展。SAM 2 的目标是在图像和视频中提供高质量、实时的可提示分割。在图像分割任务中,SAM 2 报告显示其准确性更高,并且效率比原始 SAM 提高了 6 倍。这一显著进展主要归功于其高效的图像编码器 Hiera,这是一种分层 ViT,通过去除冗余组件并利用 MAE 框架进行训练,从 MViTv2 中简化而来。Hiera 是一种精简的、纯Transformer基础的架构,在图像和视频任务中运行速度更快,准确性更高。

3.1.2 基于知识蒸馏的方法

从前面图 3 所示的分类法中,我们观察到许多方法利用知识蒸馏,因为这种方法通常比完全模型训练需要更少的时间和资源。在本节中,我们回顾采用高效主干作为图像编码器,同时利用知识蒸馏进行训练的 SAM 变体。我们根据编码器类型将这些模型分为三类:具有 (i) 轻量级 ViT 编码器、(ii) 纯 CNN 编码器和 (iii) 修改过的注意力编码器的模型。我们将依次介绍每个类别。

(i) 轻量级 ViT 编码器Zhang 等人首次尝试用更高效的 TinyViT 替换 SAM 的重型 ViT 编码器,形成名为 MobileSAM 的集成模型。如 [55] 所强调,训练 SAM 从头开始需要多天和 128 个 GPU。MobileSAM 将这一复杂性归因于同时优化编码器和解码器的挑战。为了解决这个问题,他们提出了一种仅编码器蒸馏策略,如下图 8 所示,旨在将 ViT-H 的视觉表示能力转移到 TinyViT。所使用的损失函数是两个编码器的输出图像嵌入之间的简单均方误差 (MSE)。进一步微调提示编码器或mask解码器是可选的,并且可以提高准确性。

与 MobileSAM 类似,后来的 ESAM利用 EfficientFormerV2作为其主干,旨在在 CPU 环境中改善性能,特别是在资源有限的医疗设备上。鉴于专家模型在医疗应用中通常优于 SAM,ESAM 采用了一种新颖的知识蒸馏 (KD) 策略,称为整体知识蒸馏 (HKD),以将知识从专家模型转移到 ESAM。HKD 包括两个组成部分:特征图蒸馏和输出mask蒸馏。对于特征图蒸馏,结合了三种不同的聚焦方法 来指导学习过程。对于输出mask蒸馏,ESAM 使用教师mask和学生mask之间的均方误差 (MSE) 损失,辅以教师mask和真实mask之间的二元交叉熵 (BCE) 损失。为了进一步对齐专家模型和 ESAM 之间的特征图,提出了一种教师引导模块 (TGM),如下图 9 所示。

Shu 等人对 MobileSAM 进行了分析,发现仅编码器蒸馏可能导致显著的性能下降。为了解决这个问题,他们提出了更有效的全阶段知识蒸馏策略,称为 Hard Mining Full-Stage Knowledge Distillation,如下图 10 所示。

TinySAM 是一个新的 SAM 变体,其结构与 MobileSAM 相同,通过这种改进的 KD 策略进行训练。具体而言,该策略不仅监督图像嵌入,还监督输出tokens和输出mask,均使用 L1 损失。为了进一步增强蒸馏过程,他们引入了困难mask加权策略,该策略对更难预测的mask分配更大的权重,从而提高学习效率。因子 H 的计算如下:

(ii) 基于 CNN 的编码器

来自 NVIDIA 的研究人员基于 MobileSAM 引入了一种新的 SAM 变体,称为 NanoSAM。它旨在在 NVIDIA Jetson Orin 平台上实现实时性能,使用 NVIDIA TensorRT。NanoSAM 将基于 ViT 的编码器替换为纯卷积网络,具体为 ResNet18,同时保留了 MobileSAM 的其他组件。NanoSAM 从 MobileSAM 中进行蒸馏,两个模型都使用 TensorRT 进行重新训练以优化性能。MobileSAM 的图像编码器使用 FP32 精度进行优化,而 NanoSAM 的图像编码器则使用 FP16 精度以实现更快的执行。在 Jetson Orin Nano 和 Jetson AGX Orin 上的推理延迟结果表明,NanoSAM 比 MobileSAM 快 5 倍,且准确性损失最小。

Wang 等人 开发了一种高效的 SAM 变体 RepViT-SAM,使用他们新提出的基于 CNN 的主干 RepViT作为图像编码器。RepViT 背后的核心思想是将高效视觉Transformer (ViTs) 的有效设计原则集成到轻量级 CNN 中。这些设计原则应用于三个层次:块级、宏观和微观。在块级,RepViT 分离了tokens混合器和通道混合器,减少了扩展比,并增加了块的宽度。在宏观设计中,采用早期卷积作为输入干,深化下采样层 ,采用更简单的分类器,并调整各个阶段的块比例。在微观层面,仅使用 3x3 卷积,并且仅在奇数块中应用挤压与激励层。RepViT-SAM 使用知识蒸馏进行训练,遵循 [147] 中的相同流程,与 MobileSAM 相比,推理速度提高了 10 倍。

与 RepViT-SAM 的开发同时,Zhou 等人观察到,MobileSAM在边缘设备(如手机)上部署时仍难以实现实时性能。为了解决这个问题,他们引入了 EdgeSAM,该模型将基于 Transformer 的编码器替换为更轻量高效的纯 CNN 基础的 RepViT,旨在提高在资源有限设备上的性能。与 [162] 中的方法类似,Zhou 等人认为仅使用编码器蒸馏是不够的,因为它与任务无关,不能完全捕捉模型的任务特定需求。为了克服这一问题,他们提出了“循环中的提示蒸馏”方法,为输出mask增加额外的监督。“循环中的提示”是指一种动态采样策略,迭代地从教师和学生预测mask的非重叠区域中采样新提示。经过若干次迭代,累计损失被反向传播以更新编码器和解码器。为了进一步提高输出质量,EdgeSAM 提供了一个可选模块,从特定数据集中嵌入粒度先验。EdgeSAM 的蒸馏整体框架如下图 11 所示。

(iii) 修改过的注意力编码器

Zhang 等人引入了 EfficientViT-SAM,利用 EfficientViT作为图像编码器。EfficientViT 的主要优点是使用了 ReLU 线性注意力机制,该机制促进了全局信息交互,同时提高了硬件效率。通过消除不利于硬件的 softmax 操作并用 ReLU 替代,注意力计算重新公式化如下:

一旦子表达式  和  被计算出来, 它们可以在每个查询 中重复使用。因此, 复杂度降低为  。EfficientViT-SAM 的训练分为两个步骤。第一步是从 ViT-H蒸馏到 EfficientViT, 第二步是在 SA-1B 数据集上端到端训练整个模型。这种方法几乎没有准确性损失, 同时效率大幅提升。

Shen 等人引入了 FastSAM3D,这是一个专门为 3D 体积医学图像设计的高效分割模型。该工作的关键贡献是开发了 3D 稀疏闪存注意力机制。这种新颖的注意力方法结合了 3D 膨胀注意力 扩展感受野)的优点和 FlashAttention以加速计算。FastSAM3D 使用修改过的 ViT-Tiny 作为图像编码器,从 ViT-Base 编码器蒸馏而来,确保在不妥协性能的情况下实现效率。作者实现了一种层级渐进蒸馏策略,以迭代地对齐两个编码器之间的特征图。

在 FastSAM3D 的基础上,Song 等人引入了一个称为 SAM-Lightening 的 2D 变体。与其 3D 版本相似,SAM-Lightening 将稀疏/膨胀注意力和 FlashAttention 结合起来,以替代标准注意力机制,同时保留相同的图像编码器。主要区别在于知识蒸馏 (KD) 策略,称为动态层级蒸馏 (DLD)。在 DLD 中,应用一系列时变权重 来确定需要更新的层以及每层对更新过程的贡献程度。随着训练的进行,整个架构逐渐优化。SAM-Lightening 据报道相比 SAM-H 实现了 30 倍的加速。整体蒸馏框架与 FastSAM3D 类似,主要变化是将蒸馏策略替换为动态层级蒸馏。

Yuan 等人的最新研究 RWKV-SAM,在加速 SAM 方面代表了一个重要进展,引入了流行的线性注意力模型作为高效主干。在他们的研究中,他们比较了基于 RWKV 和 Mamba 的架构,选择基于 RWKV 的方法构建 SAM 的轻量版本。该主干是混合设计,前两层由来自 [97] 的移动卷积块组成,最后一层使用视觉 RWKV 块构建。有关 RWKV 的更多细节见第 2.2.2 节。此外,SAM 类架构中还纳入了一个细化模块,通过融合每个阶段生成的不同层次的特征来增强mask质量。RWKV-SAM 的整体架构如下图 12 所示。该模型使用“蒸馏-微调”策略进行训练,首先将 SAM-H 中的知识蒸馏到主干,然后对整个模型进行微调。RWKV-SAM 显示出显著的效率提升,同时保持与 SAM 相当的分割性能。

3.1.3 基于量化的方法

正如前一节所述,TinySAM 利用硬挖掘全阶段蒸馏来提高知识传递的有效性。为了进一步缩减 TinySAM 的规模, Shu 等人对 TinySAM 的编码器采用了后训练量化, 量化版本称为 Q-TinySAM。他们基本上按照 [146] 中的说明进行量化。在 ViT 中, 矩阵乘法  将被量化为 , 并带有缩放因子  。研究人员采用了一种交替和迭代的搜索策略,以找到可以最小化  和  之间距离的最佳  。使用 Hessian 引导度量来测量距离, 距离大致计算如下:

其中 , 并且mask和 loU 的 Kullback-Leibler (KL) 散度用于任务损失。不同于  TinySAM 中仅对编码器进行量化的方法, Lv 等人提出了一个新的框架, 可以直接对 SAM 进行后训练量化, 即 PTQ4SAM。他们的工作首先发现传统 PTQ 后的两个挑战:

  • 1)存在双模分布,对量化质量产生负面影响;
  • 2)不同注意力机制的分布存在明显差异。

因此, 研究人员提出了两种策略分别解决这两个问题:双模集成(BIM)和自适应粒度量化(AGQ)。对于双模集成, 引入了一个符号因子  将双模分布转换为正态分布。对于自适应粒度量化, 关键在于采用一个自适应参数  来调整  量化器中的基数。使用 AGQ 策略后, 期望不同注意力的后 softmax 分布之间的差异能有效缩小。PTQ4SAM 是一个即插即用的 SAM 变体, 可以轻松部署到下游任务中。

3.1.4 基于剪枝的方法

Chen 等人首先开发了一种有效的剪枝策略,以减少 SAM 的规模和复杂度,得到的模型称为 SlimSAM。如第 2.3.3 节所述,剪枝算法旨在以结构化或个别的方式删除冗余参数。在应用于 SAM 的重型编码器时,初始步骤涉及估计权重和激活值的重要性,以确定哪些应被剪枝。评估重要性的核心思想是评估给定参数有无的损失差异。SlimSAM 引入了扰动泰勒重要性方法,该方法使用一阶泰勒展开来近似参数的重要性,并引入高斯噪声以防止梯度变为零。这个过程被公式化如下:

一旦参数的重要性被估计,便采用一种称为交替剪枝的策略来执行结构化剪枝和后对齐。基于 ViT 的编码器首先被分为两个子结构:嵌入层和瓶颈层。该策略在修剪嵌入/瓶颈层以减小模型规模和对齐瓶颈/嵌入层以保持模型质量之间交替进行,确保效率与性能的平衡。该过程的工作流程如下图 13 所示。

3.1.5 代码重构

由 PyTorch 团队开发的 Segment Anything Fast 模型(SAMfast)是 SAM 的重写版本,利用了纯原生 PyTorch 的优化。报告显示,SAMfast 比原始实现快 8 倍,同时保持几乎相同的准确性。这一改进是通过系统地识别瓶颈并应用针对性的优化实现的。最初,团队发现了导致同步阻塞的长函数调用,从而重写了相应的代码。另一个显著的瓶颈是耗时的矩阵乘法,通过使用 bfloat16 精度来减轻这一问题。进行这些调整后,团队利用 torch.compile 融合更小的操作,并采用 PyTorch 的缩放点积注意力(SDPA)来加速 GPU 上的注意力计算。此外,通过集成使用 Triton 构建的新内核,进一步减少了 GPU 的内存使用。当 SAM 使用批量预测方法时,不同大小的输入张量被统一为 NestedTensors,从而显著提高了吞吐量。尽管进行了这些优化,矩阵乘法仍然是一个关键瓶颈。为了解决这个问题,团队实现了 int8 量化,并使用半结构稀疏性来近似矩阵乘法。有关逐步优化过程的更多细节,建议查看官方博客以获取更多信息。

3.2 加速 SegEvery 任务

如第 3.1 节所述,SegAny 任务的主要效率瓶颈在于重型图像编码器。任何具有更轻量架构的 SAM 变体在本质上都能比原始 SAM 更快地进行分割。然而,正如 Zhang 等人分析的那样,SegEvery 任务的主要挑战源于密集网格采样策略。该策略首先基于点网格预测大量mask,然后选择有效mask,这在计算上是昂贵的。因此,设计一种更高效的采样策略以减少预测mask的数量已成为加速 SegEvery 任务的核心方法。另一种潜在解决方案是将 SegEvery 任务转换为另一个成熟的任务,例如全实例分割,正如 FastSAM 所做的那样。在这一部分中,我们将回顾专门提出优化采样策略以加速 SegEvery 任务的相关工作。

基于 SAM 的结构,Zhang 等人 提出了一个面向对象的提示采样策略,以增强 SegEvery 任务的效率。这个项目名为 MobileSAMv2,独立于他们之前的工作,后者专注于加速 SegAny 任务。在 MobileSAMv2 中,研究人员使用训练在 SA-1B 小子集上的 YOLOv8 模型进行对象发现。该模型生成大量对应于潜在对象的边界框。通过非极大值抑制(NMS)过滤高度重叠的框,剩余的框作为框提示使用。通过使用这些过滤后的框作为提示,MobileSAMv2 消除了过滤预测mask的需要——这是一个耗时更长的过程。最大提示数设置为 320,新策略被报告为比传统的 32*32 网格采样策略快 16 倍。此外,MobileSAMv2 可以与 MobileSAM 集成,以创建一个统一模型,在 SegAny 和 SegEvery 任务中实现高效率。

Shu 等人观察到,使用密集点网格(例如,3232,6464)往往会生成大量冗余mask,这些mask在后处理过程中被过滤掉,这一操作会带来显著的时间成本。实际上,网格中只需少数点即可生成置信度高的mask。为了解决这一低效问题,他们提出了一种分层高效采样策略,逐步选择用于mask生成的最佳点。该策略涉及两轮提示生成。在第一轮中,使用稀疏网格,只包括每边默认点的四分之一(约 1/4)。基于这些点生成mask,经过过滤后,仅保留高置信度mask作为最终预测。在第二轮中,应用更密集的网格,遵循默认配置。然而,位于已被高置信度mask覆盖区域的点被排除,从而显著减少点的数量。两轮的预测结果随后被融合以生成最终输出。这一分层策略的流程如下图 14 所示。通过采用这种两轮方法,采样过程变得更加节省时间和细致,从而在 SegEvery 任务中显著加速,同时性能下降最小。

与前述所有工作不同,Fu et al.提出了一个专门为 SegEvery 任务设计的端到端训练管道,旨在开发一个能够更高效地进行全局分割的 SAM 变体。他们的模型名为 Lite-SAM,保留了原始 SAM 的整体架构,但用更轻量化的解决方案替换了重型图像编码器。Lite-SAM 的架构概述如下图 15 所示。

Lite-SAM 采用了一种称为 Lite-ViT 的 CNN-Transformer 混合结构,由 2、2、6 和 2 个 Lite-ViT 模块构成。Lite-ViT 的关键创新在于多尺度池化模块 (MSPM),该模块作为传统注意力机制的替代方案。MSPM 从 PoolFormer 模块 适配而来,利用通道层归一化并将池化操作扩展到多个尺度。正如前面所讨论的,SAM 的另一个主要瓶颈在于耗时的网格采样策略。为了解决这个问题,Lite-SAM 引入了一种自动提示提议网络(AutoPPN)以提高采样效率。AutoPPN 以编码器生成的特征图作为输入,直接预测点和框提示。为了确保高质量的提示,Lite-SAM 使用了比 CNN 更强大的基于 MSPM 的网络,并结合距离变换来估计点提示的置信度。虽然 Lite-SAM 主要设计用于加速 SegEvery 任务,但由于其轻量化的图像编码器,它在 SegAny 任务中也显示出更高的效率。

3.3 未来研究方向

通过对高效 SAM 变体的全面回顾,我们概述了加速 SAM 的当前进展。然而,仍然存在进一步探索和创新的机会。以下是几个潜在的未来研究方向,提供初步见解,希望能够激励读者为该领域的持续发展做出贡献。

3.3.1 探索先进的架构

尽管当前的 SAM 变体通过采用高效架构和模型压缩技术展示了效率提升,但仍有很大的改进潜力。探索 Transformer 替代模型,如 Mamba、RetNet、KAN和 TTT,为设计更轻量化和高效的结构提供了令人兴奋的机会。这些模型可能在计算效率方面具有优势,同时不牺牲分割准确性。除了替代模型外,进一步提升图像编码器和mask解码器中注意力机制的效率也是至关重要的。诸如线性注意力、低秩分解或结合卷积和基于注意力的设计的混合架构等方法应进一步研究。解决计算和内存使用中的瓶颈将增强 SAM 在不同硬件环境中的部署能力。

3.3.2 利用稀疏性和加速技术

在深度神经网络中观察到的固有稀疏性,即只有一部分参数对模型输出产生显著贡献,提供了提高 SAM 效率的有希望的途径。剪枝、量化和结构稀疏等技术可以进一步降低 SAM 的计算需求。尽管在 [18] 中的初步稀疏化努力已显示出成功,但未来的研究可以集中在理解 SAM 架构中稀疏性的分布和动态特性上。这包括研究可以在不影响性能的情况下被剪枝或稀疏化的 SAM 最优层或组件。此外,稀疏注意力机制、推理过程中的动态剪枝以及低精度训练等技术应被探索,以在大型部署中平衡准确性和效率。通过将这些与先进的知识蒸馏技术结合,可能实现更紧凑、高效的 SAM 变体。

3.3.3 硬件特定优化

对 SAM 进行针对特定硬件平台的优化,包括 GPU、TPU、专业 AI 加速器(例如 NVIDIA 的 TensorRT 或 Google 的 Edge TPU)以及边缘设备,可以显著提升性能和效率。硬件感知模型优化技术,如操作符融合、量化感知训练和自定义 CUDA 内核,可以在现代硬件平台上最大化吞吐量并降低延迟。在边缘设备的上下文中,由于面临存储、计算能力和能量供应的极端限制,这些优化对实时应用(如无人机或物联网设备上的分割)至关重要。未来的研究可以探索分层云-边缘架构,将计算密集型任务卸载到云端,同时在边缘设备上运行轻量级模型。此外,利用专用 AI 硬件(如现场可编程门阵列 (FPGA))或使用硬件感知的神经架构搜索 (NAS) 和混合精度量化等技术,可以进一步优化 SAM,以实现低延迟和资源受限环境中的有效运行,确保模型在不同硬件平台上高效运作。

3.3.4 视频和多模态数据的高效分割

  1. 评估

在本节中,我们系统比较了前述 SAM 变体的效率和准确性。参考这些工作的实验,我们选择大多数工作所执行的任务,并在其常用数据集上进行评估,并使用相应的度量标准。我们的评估在单个 24GB RTX 3090 GPU 和 14 个 vCPU 的 Intel(R) Xeon(R) Gold 6330 处理器 @ 2.00GHz 上进行。以下子节提供更多细节:第 4.1 节介绍了用于评估的数据集和度量标准;第 4.2 和 4.3 节分别报告了效率和准确性的定量结果。

4.1 数据集和度量标准

研究者们选择 COCO 2017和 LVIS v1作为评估数据集。COCO 是一个大规模数据集,旨在用于目标检测、分割和标注,包含 330K 张图像和 150 万个目标实例,覆盖 80 个目标类别。LVIS 针对大词汇实例分割进行了定制,特征超过 200 万个高质量的分割掩膜,涵盖 1200 多个类别,在 164K 张图像中。为了进行评估,我们使用两个数据集的验证集,COCO 包含 5000 张图像中的 36,781 个实例,LVIS 包含 19,809 张图像中的 244,707 个实例。为了评估效率,我们首先测试几个软指标,如参数数量 (#Params)、浮点运算量 (FLOPs)、乘加运算量 (MACs) 和内存使用情况。我们进一步计算有效错误率 (EER),这是一种更全面的评估,如 [86] 中所述。EER 定义为:

其中 N 是度量的数量, 和 分别表示被测试模型和参考模型的第 i 个度量。在我们的评估中,参考模型设定为 SAM-H。除了这些度量之外,还报告模型的运行时间和吞吐量。为了评估准确性,使用均值交并比(mIoU)来评估 SegAny 任务,并使用均值平均精度(AP)来评估实例分割任务。

4.2 效率比较

首先报告 SAM 及其变体的效率结果。以 SAM 官方示例中的图像 groceries.jpg 作为输入,利用一个边界框作为提示,使用工具 calflops 评估模型的参数数量、FLOPs 和 MACs。我们还计算了 ERR 以进行全面比较。结果如表 2 所示。在高效变体中,我们观察到 EdgeSAM 的参数数量、FLOPs、MACs 及其相应的 EER 是最低的,而 EfficientViT-SAM-XL1 的这些数值是最高的,其 EER 比 SAM-B 高出 3%。与最重的 SAM-H 相比,所有变体在模型大小和计算量上都表现出明显的降低。

还测量了模型在 SegAny 和 SegEvery 模式下的推理时间,使用来自 COCO 验证集的 100 张图像作为评估数据。在 SegAny 任务中,每张图像都提示 50 个固定的边界框。

通过曲线图(如下图16所示)报告每10个边界框的累计时间。基于此,计算处理一个图像并使用一个边界框提示所需的平均时间,并将其作为 SegAny 任务的推理时间报告。评估在 CPU 和 GPU 环境下进行,并同时记录 GPU 内存使用情况。此外,还测试了每个变体在 COCO 验证集上的吞吐量,使用真实的边界框。

结果总结在表3中。我们的研究发现,EfficientViT-SAM-L0 在 SegAny 任务中实现了最短的推理时间,与最重的模型 SAM-H 相比,在 GPU 上加速接近 30 倍,而在 CPU 上几乎加速 50 倍。EdgeSAM 也表现出令人印象深刻的性能,其 CPU 延迟为 259 毫秒,而 NanoSAM 在 GPU 上的延迟为 20 毫秒,均接近最佳结果。在 COCO 数据集的吞吐量测试中,NanoSAM 以每秒处理 27.9 张图像领先。其他两个变体,EfficientSAM-Ti 和 EfficientViT-SAM-L0,也展示了强大的吞吐量,各自超过每秒 20 张图像。

对于 SegEvery 任务,报告使用不同点网格大小(16_16、32_32、64_64)或专用采样策略生成图像所有mask所需的平均时间。结果在表4中呈现。使用默认的 32_32 网格,SAMfast-H 展示了最高的效率,延迟为 848 毫秒——比 SAM-H 快两倍以上。EfficientViT-SAM-L0 在 16_16 和 64_64 网格上表现最佳,分别实现了 258 毫秒和 3938 毫秒的延迟。有趣的是,我们观察到在使用较低网格密度时,EfficientSAM-S 比 SAM-H 更慢,16x16 网格的延迟为 1100 毫秒,32*32 网格的延迟为 2290 毫秒。采用替代采样策略的模型在效率上显示出显著改善,特别是 FastSAM 记录了 196 毫秒的延迟,而 MobileSAMv2 的延迟为 173 毫秒。

4.3. 精度比较

本小节报告了 SAM 及其变体在 SegAny 任务(使用点/框提示)和实例分割任务上的精度结果。我循了 [159] 中的评估框架,并通过引入其他评估模块进行了统一的变体评估。

为了评估 SegAny 任务,采用两种类型的点作为提示:

  • 1)真实边界框的中心点
  • 2)从真实mask中均匀随机采样的点,遵循 [131] 中的设置。

在 COCO 和 LVIS 上对变体进行了评估,并在下表 5 中报告了平均交并比(mIoU)。当使用中心点提示时,SAM2-B+ 和 EfficientViT-SAM-XL1 在 COCO 上达到了 54.3% 的最高 mIoU,超过了 SAM-H 的 53.6% mIoU,而 SAMfast-H 也以 53.6% 的 mIoU 在 LVIS 上展示了变体中的最佳性能。在随机点提示的设置下,EfficientViT-SAM-XL1 的表现优于 SAM-H,特别是在使用 3 个点提示时,分别增加了 2.7% 和 0.7%。从数据集的角度来看,我们观察到 LVIS 的结果普遍低于 COCO,尤其是对于 FastSAM 和 EfficientSAM-Ti,其在 LVIS 上的准确率降至 30% 以下。

此外,还评估了使用两种类型框提示的 SegAny 任务的精度:

  • 1)真实的边界框
  • 2)对应真实mask的最紧边界框,灵感来自于 [131, 159] 中的实验。

在 COCO 和 LVIS 上报告了 mIoU 的结果,如表 6 所示。我们观察到 EfficientViT-SAM-XL1 在每种设置中都展示了最高的准确性,分别超过 SAM-H 1.5%、1.1%、1.9% 和 0.6%。SAMfast-H 和 EfficientViT-SAM-L0 在框提示的分割任务中也展现了接近 SAM-H 的性能。

对于实例分割任务,采用了 ViTDet、YOLOv8、GrounddingDINO、Detic 和 H-Deformable-DETR 与 Swin-L 作为物体检测器,帮助生成潜在物体的边界框,参考文献 [117, 159, 164]。评估了所有物体的平均精度(AP),以及小型、中型和大型物体的 AP。结果报告在下面表 7、8 和 9 中。与之前的结果类似,我们发现 EfficientViT-SAM-XL1 在 COCO 数据集上总是以最高的 AP 表现(除 H-Deformable-DETR 外)。在将 ViTDet 作为检测器并在 LVIS 数据集上测试的设置下,SAMfast-H 以 44.5% 的 AP 超过了所有其他变体。

  1. 结论

在本次调查中,主要讨论和评估了关注于高效分割任意物体和分割所有物体的显著工作,这些方法旨在减少资源消耗和降低延迟。对于高效的 SegAny 任务,大多数工作采用替换图像编码器或整个架构为轻量级替代方案的方法,随后进行从头训练或通过知识蒸馏的方式进行训练。其他工作则旨在利用量化、剪枝或局部优化等技术压缩原始模型。对于高效的 SegEvery 任务,采用有效且高效的采样策略生成提示是至关重要的。

在详细回顾这些方法后,还概述了四个可能的未来研究方向,这些方向可能推动该领域的新趋势。此外,我们在一致的环境中评估了这些模型的效率、准确性及其相应的权衡,提供了公正而有价值的比较。我们的分析表明,一些变体在特定场景中已经超过了原始的 SAM,我们相信它们的成功将激励该领域的进一步探索和创新。








#骨干网络-优化器耦合偏好(BOCB)

揭秘视觉表征学习中的骨干网络-优化器耦合偏好

本文探讨了视觉表征学习中骨干网络与优化器之间的耦合偏好现象,即“骨干网络-优化器耦合偏好”(BOCB),揭示了不同网络架构对优化器选择的偏好性及其对模型性能的影响。文章通过实验和分析,为设计低优化器耦合的视觉骨干网络提供了指导,并推荐了通用优化器。 

摘要

本研究深入探讨了视觉领域中骨干网络与优化器之间的偏好关系,揭示了“骨干网络-优化器耦合偏好”(Backbone-Optimizer Coupling Bias, BOCB)的现象。实验观察表明,VGG和ResNet等传统卷积神经网络(CNNs)较偏好SGD系列优化器;而以Vision Transformers(ViTs)和ConvNeXt为代表的现代化深度网络(Modern DNNs),更偏好AdamW为代表的自适应学习率优化器,且表现出很强的耦合性。本研究构建了20个代表性骨干网络和20个优化器的BOCB基准,发现特定网络设计或优化器会导致BOCB现象,且可能显著影响视觉模型的预训练性能和下游任务泛化性。结合分析工具和具体案例分析,本研究总结了如何设计高性能且低优化器耦合的视觉骨干网络,并评估、推荐了几个通用优化器。期望本研究能够激发社区对网络架构和优化器的默认配置和耦合性的质疑,兼顾网络架构的性能和通用性,以构建高效且鲁棒的视觉深度学习系统。

1. 引言

过去十年中,深度学习在各类计算机视觉任务上取得了显著突破,这主要归功于网络架构和优化器的快速发展。尽管如此,现有研究往往默认使用固定优化器和超参数配置,很大程度上忽视了选用优化器所带来的影响,缺乏系统性的分析和论证。本文旨在探索骨干网络结构和优化器之间的耦合关系,评估并探索这种关系对模型性能、模型参数特征和迁移性的影响和规律。

  1. 视觉骨干和优化器的发展路线2.1 视觉骨干架构的分类

本文将近十年以来的视觉网络架构发展时间线和代表性宏观设计(Macro design)概括为下图:

51c视觉~合集35_视觉_23

阶段化宏观设计:现有视觉骨干可分为层次结构化架构(如VGG、ResNet)和各向同性架构(如ViTs和MLP-Mixer)。块内宏观设计:网络块内结构(Block-wise)包含无残差的平网络块、带残差跳连的瓶颈模块、令牌混合(Token Mixer)与通道混合(Channel Mixer)拆分的元网络模块(MetaFormer block)等。早期CNNs采用的平网络块和瓶颈模块属于同质化块结构,内部不细分空间和通道的建模操作,而Transfomer为代表的现代化深度网络属于异质化块结构,结合残差和前归一化(Pre-normalization)结构分别做空间和通道建模。

2.2 主流梯度基优化器

51c视觉~合集35_视觉_24

本文将常见优化器归纳为包含4步的通用优化算法(如上图),并将常见的20种优化器归类如下:

51c视觉~合集35_视觉_25

固定学习率与动量:以SGD为代表,该类别的优化器对所有参数使用固定学习率,通过动量梯度作为优化方向。

自适应学习率与动量:以AdamW为代表,该类优化器结合了梯度的动量(Momentum)和逐参数自适应学习率的优势,采用估计的梯度二阶矩调节学习率。

估计学习率与动量:以AdaBelief为代表,该类优化器在第二类优化器基础上,通过额外的约束或估计来改进第二类优化器的收敛速度和性能,通常应用于具体任务(例如图像生成或NLP任务)。

自适应学习率与原梯度:以RMSProp为代表,该类优化器基于历史统计数据为每个参数估计适应学习率,但采用每个循环的原始梯度作为优化方向。

  1. 骨干网络-优化器耦合偏好(BOCB)3.1 骨干网络和优化器的联合评估

通常认为,骨干网络和优化器应当具有通用性和独立性。若一个骨干网络非常依赖某种优化器,它会在使用该优化器时取得优异的性能,但根据没有免费午餐定律(No-Free Lunch Theroy),它大概率会在某些优化器上出现明显的性能退化,此时可认为该骨干网络与优化器存在强耦合偏好。

性能指标: 考虑图像分类任务, 以验证集上 top-1 准确率评估每种骨干网络-优化器组合的性能。给定一个骨干网络  在一组优化器  上的实验结果, BOCB 强的骨干网络通常存在少数比正常结果差很多的结果, 可用以下方式筛选出此类结果:

其中为人为给定的阈值,基准数据集上模型性能的方差有关。如果某个结果到最优性能的差距比第一第三分位点的差距还大,说明该结果比该骨干网络的正常性能要差,说明骨干网络与优化器不适配。

超参数鲁棒性:记录每个骨干网络-优化器组合的最优超参数。对于单个优化器而言,在某个数据集上应该存在一组默认超参数配置,通常为该数据集上各类模型超参数的众数。通过计算骨干网络-优化器组合的最优超参数与默认超参数配置的距离(距离越大则需要花费更多调参代价),可衡量该骨干网络-优化器组合的超参数鲁棒性。

参数模式和收敛质量:选用四个指标来衡量所学到的参数空间质量和特征。分别对每层参数矩阵计算PL指数alpha、熵、L2范数和top-k PCA能量比率,对各层进行统计为全局直方图或逐层可视化的山脊图。

3.2 基准测试和观察

基准设置:在CIFAR-100上对20个代表性视觉骨干和20个流行优化器进行主要基准测试。观察:发现某些流行模型(例如DeiT-S和ConvNeXt-T)与某些优化器(即SGD和LARS)的组合效果不佳,从而总结了BOCB现象。

51c视觉~合集35_视觉_26

4. BOCB的来源

4.1 骨干宏观设计和Token Mixers的起源

早期CNNs:这些架构以简单的卷积层和池化层叠加设计为特点,最终通过全连接层完成特征的提取与分类。这种范式虽然有效,但为后续的优化景观变革奠定了基础。这些早期的CNNs通过直接的方法进行特征提取,但其优化潜力有限,需要更复杂的设计来进一步提升性能。

经典CNNs:ResNet的引入标志着向分阶段的层次结构设计的转变,显著增强了特征提取和表征学习能力。特别是ResNet-50,它展示了一种平衡的BOCB处理方式,与SGD优化器展现出强烈的兼容性,并相对于同期的其他架构有较低的BOCB。ResNet通过引入残差连接解决了深度网络训练中的梯度消失问题,这一创新不仅提升了网络的优化效率,也为深度学习模型的设计提供了新的思路。

现代架构:向现代骨干网络的转变引入了简化的块状设计(例如,MetaNeXt和ConvNeXt变体)或复杂的Blo ck-wise异构结构(例如,MogaNet和UniRepLKNet),由于其复杂的特征提取机制,增加了优化挑战和BOCB的程度。作为演化的巅峰,MetaFormer架构将阶段化和Block-wise异构性融入其设计中。这种创新的宏观设计通过与优化器的协调,优化了优化景观,从而减少了BOCB并提升了性能。

以上主干网的演变强调了宏观设计在塑造优化环境中的关键作用,以及在主干网架构中持续创新的必要性。它强调了在提高表示能力和保持优化效率之间必须达到的微妙平衡。详情请参阅论文附录C。

接下来,我们举例说明了三个案例,展示了表征能力与BOCB效应的权衡。

Case 1 (Transformer): ViTs由于其自注意力机制和阶段性各向同性设计,缺乏CNNs中的局部连接和位移不变性等归纳偏好。这需要精心的调整以确保在视觉任务中有效泛化并减少BOCB。MLP-Mixer通过用MLP替换基于注意力的Token Mixers来简化模型,从而简化了Token间的交互,使得训练过程更加稳定。然而,这种简化牺牲了模型捕捉长距离依赖的能力,这对于特定的视觉任务是必不可少的,因此体现了“模型简洁”与表征能力之间的权衡。AttenFormer由于其MetaFormer框架,整合了平衡的设计和跨阶段的残差缩放,有效地减轻了BOCB。Swin-T与DeiT-S类似,基于Vallina Transformer,但引入了层次化阶段和局部注意力块。这些设计增强了模型捕捉细粒度特征的能力,与DeiT-S相比,实现了更好的性能和更弱的BOCB。关键收获:针对减少异质性或增强同质性的块状宏观设计,结合层次化阶段和Token Mixers内整合的归纳偏好,对于ViTs在计算机视觉任务中减轻BOCB至关重要。

Case 2 (CNNs): 

同样,VGG系列因其简单和同质化的架构表现出良好的训练动态,RepVGG引入的训练阶段残差连接增强了性能,同时保持了稳定性并避免了BOCB。相比之下,ConvNeXt.V1和Moganet由于其复杂操作和异构块,更容易受到BOCB的影响。UniRepLKNet通过更同质化的设计规避了这一问题,突显了架构同构性在减少BOCB中的重要性。对于现代CNNs,促进同质化构建块结构的设计,并结合精心设计的策略来减轻模型故障,更有可能实现稳定的FFN训练并降低BOCB风险。

Case 3 (MetaFormer): MetaFormer架构以其分层次的阶段性和块状设计而著称,特点是ResScale,这有助于灵活集成各种Token Mixers。这种宏观设计对于在最小化BOCB风险的同时实现竞争力性能至关重要。IdentityFormer,凭借其基本的Token Mixer,为MetaFormer设定了一个稳健的baseline,但在需要Token Mixer表示的复杂任务中可能会有所不足,潜在地增加了BOCB风险。PoolFormerV2(将池化作为Token Mixer)的表现超过了IdentityFormer,但由于缺乏自注意力的细微差别,可能会忽略关键细节,导致更高的BOCB敏感性。为了增强MetaFormer并减轻这些风险,选择适当的Token Mixer是必不可少的。ConvFormer将CNN层集成到Transformer框架中,平衡了局部归纳偏好和全局感受野,以防止数据受限场景中的注意力崩溃,确保更好的收敛并减少BOCB。AttenFormer和CAFormer进一步探索了注意力机制,旨在通过改进的Token交互来增强MetaFormer的表征能力。总体而言,MetaFormer架构的成功取决于其层次化设计与Token Mixers选择之间的平衡,确保在多样化任务中提供稳健的性能,同时减轻BOCB的风险。

4.2 预训练和迁移学习中不同优化器的使用

51c视觉~合集35_视觉_27

51c视觉~合集35_视觉_28

扩展到ImageNet-1K分类: ImageNet-1K是一个基础性的基准测试,用于衡量视觉模型的分类能力。我们进一步研究了我们在ImageNet-1K上的观察结果是否仍然成立。具体的实现细节,请参见论文附录A.1。正如表所示,DeiT-S显示出比ResNet-50更强的BOCB,而图2中的类别(b)优化器(例如,AdamW)在预训练阶段在不同的骨干网络上显示出可靠的性能高原。这些优化器的一致性效用与ImageNet-1K所需的广泛特征学习非常吻合,使它们成为初始模型训练阶段的最佳选择。这些优化器在预训练阶段的效用会传递到迁移学习过程中。当模型从ImageNet-1K预训练过渡到在COCO上进行目标检测(使用RetinaNet)或姿态估计等任务时,优化器的选择至关重要。

迁移学习在COCO上: 对于使用ImageNet-1K预训练模型进行迁移学习的分析,我们确定了两个关于迁移后COCO任务性能的关键发现。首先,从骨干网络的角度来看,具有明显BOCB(ConvNeXt-T)的骨干网络在迁移学习场景中继续表现出BOCB特征。这表明这类模型的固有结构属性可能不容易仅通过迁移学习来缓解。其次,当我们使用对BOCB不太敏感的ResNet-50来控制变量观察优化器是如何影响骨干网络架构中的BOCB时,我们观察到类别(b)和(c)的优化器可能在预训练阶段引入显著的BOCB效应,尽管它们在预训练中是有效的。这表明预训练优化器的选择可能深刻影响模型的泛化和迁移能力,从而影响其在新任务上的可迁移性和性能。此外,与不限制微调阶段使用特定优化器的一阶优化器不同,类别(b)和(c)的优化器需要在预训练和微调阶段都使用。预训练中优化器的选择可以显著影响模型的可迁移性,尽管类别(b)和(c)的优化器表现出卓越的性能,但它们可能会向预训练的骨干网络引入BOCB。我们已经讨论了这一点,并在上面总结了实际推荐的优化器。

5. 结论与思考

本文探讨了计算机视觉中骨干网络设计和优化器选择之间的相互作用。我们揭示了骨干-优化器耦合偏差(BOCB)现象及其对视觉骨干网络潜在的限制,例如在下游任务中额外的微调时间和努力。我们还发现了不同网络设计和BOCB背后的基本原理,从而为未来的视觉骨干网络设计提供了指导。同时,基准测试结果和发布的代码为用户友好的部署和评估提供了参考。总体而言,我们旨在激励计算机视觉社区重新思考骨干网络和优化器之间的关系,在未来的研究中考虑BOCB,从而为更系统性的未来进步做出贡献。

同时这项工作有几个局限性:(1)尽管我们对ImageNet和COCO进行了迁移学习实验,但基准测试主要关注CIFAR-100,这可能导致对更广泛下游任务的发现存在疑问。然而,我们所有的迁移学习结果与CIFAR-100的发现一致。此外,我们发布的代码可以轻松扩展到其他任务。用户可以轻松地用它进行验证。(2)BOCB比当前的参数和FLOPs等指标更复杂,这可能导致实践中的不便。我们建议研究人员使用我们的代码,选择代表性的优化器,如SGD、Adam和AdamW,进行ridge plot验证和CIFAR-100基准测试,这些都是实用且资源高效的。我们也呼吁社区进一步探索BOCB,共同推进视觉系统的进展。

其他平台








#揭秘视觉表征学习中的骨干网络-优化器耦合偏好

本篇分享论文Unveiling the Backbone-Optimizer Coupling Bias in Visual Representation Learning,研究深入探讨了视觉领域中骨干网络与优化器之间的偏好关系,揭示了“骨干网络-优化器耦合偏好”(Backbone-Optimizer Coupling Bias, BOCB)的现象。

实验观察表明,VGG和ResNet等传统卷积神经网络(CNNs)较偏好SGD系列优化器;而以Vision Transformers(ViTs)和ConvNeXt为代表的现代化深度网络(Modern DNNs),更偏好AdamW为代表的自适应学习率优化器,且表现出很强的耦合性。

本研究构建了20个代表性骨干网络和20个优化器的BOCB基准,发现特定网络设计或优化器会导致BOCB现象,且可能显著影响视觉模型的预训练性能和下游任务泛化性。结合分析工具和具体案例分析,本研究总结了如何设计高性能且低优化器耦合的视觉骨干网络,并评估、推荐了几个通用优化器。

期望本研究能够激发社区对网络架构和优化器的默认配置和耦合性的质疑,兼顾网络架构的性能和通用性,以构建高效且鲁棒的视觉深度学习系统。

  • arXiv:https://arxiv.org/abs/2410.06373
  • HuggingFace: https://huggingface.co/papers/2410.06373
  • X: https://x.com/ZedongWangAI/status/1844221948508918207
  • Github: https://github.com/Black-Box-Optimization-Coupling-Bias/BOCB

1.引言

过去十年中,深度学习在各类计算机视觉任务上取得了显著突破,这主要归功于网络架构和优化器的快速发展。

尽管如此,现有研究往往默认使用固定优化器和超参数配置,很大程度上忽视了选用优化器所带来的影响,缺乏系统性的分析和论证。

本文旨在探索骨干网络结构和优化器之间的耦合关系,评估并探索这种关系对模型性能、模型参数特征和迁移性的影响和规律。

2.视觉骨干和优化器的发展路线

2.1 视觉骨干架构的分类

本文将近十年以来的视觉网络架构发展时间线和代表性宏观设计(Macro design)概括为下图:

51c视觉~合集35_视觉_29

阶段化宏观设计:现有视觉骨干可分为层次结构化架构(如VGG、ResNet)和各向同性架构(如ViTs和MLP-Mixer)。

块内宏观设计:网络块内结构(Block-wise)包含无残差的平网络块、带残差跳连的瓶颈模块、令牌混合(Token Mixer)与通道混合(Channel Mixer)拆分的元网络模块(MetaFormer block)等。早期CNNs采用的平网络块和瓶颈模块属于同质化块结构,内部不细分空间和通道的建模操作,而Transfomer为代表的现代化深度网络属于异质化块结构,结合残差和前归一化(Pre-normalization)结构分别做空间和通道建模。

2.2 主流梯度基优化器

51c视觉~合集35_视觉_30

本文将常见优化器归纳为包含4步的通用优化算法(如上图),并将常见的20种优化器归类如下:

51c视觉~合集35_视觉_31

固定学习率与动量:以SGD为代表,该类别的优化器对所有参数使用固定学习率,通过动量梯度作为优化方向。

自适应学习率与动量:以AdamW为代表,该类优化器结合了梯度的动量(Momentum)和逐参数自适应学习率的优势,采用估计的梯度二阶矩调节学习率。

估计学习率与动量:以AdaBelief为代表,该类优化器在第二类优化器基础上,通过额外的约束或估计来改进第二类优化器的收敛速度和性能,通常应用于具体任务(例如图像生成或NLP任务)。

自适应学习率与原梯度:以RMSProp为代表,该类优化器基于历史统计数据为每个参数估计适应学习率,但采用每个循环的原始梯度作为优化方向。

3.骨干网络-优化器耦合偏好(BOCB)

3.1 骨干网络和优化器的联合评估

通常认为,骨干网络和优化器应当具有通用性和独立性。若一个骨干网络非常依赖某种优化器,它会在使用该优化器时取得优异的性能,但根据没有免费午餐定律(No-Free Lunch Theroy),它大概率会在某些优化器上出现明显的性能退化,此时可认为该骨干网络与优化器存在强耦合偏好。

性能指标:考虑图像分类任务,以验证集上top-1准确率评估每种骨干网络-优化器组合的性能。给定一个骨干网络   在一组优化器  上的实验结果,BOCB强的骨干网络通常存在少数比正常结果差很多的结果,可用以下方式筛选出此类结果:

其中  为人为给定的阈值,基准数据集上模型性能的方差有关。如果某个结果到最优性能的差距比第一第三分位点的差距还大,说明该结果比该骨干网络的正常性能要差,说明骨干网络与优化器不适配。

超参数鲁棒性:记录每个骨干网络-优化器组合的最优超参数。对于单个优化器而言,在某个数据集上应该存在一组默认超参数配置,通常为该数据集上各类模型超参数的众数。通过计算骨干网络-优化器组合的最优超参数与默认超参数配置的距离(距离越大则需要花费更多调参代价),可衡量该骨干网络-优化器组合的超参数鲁棒性。

参数模式和收敛质量:选用四个指标来衡量所学到的参数空间质量和特征。分别对每层参数矩阵计算PL指数alpha、熵、L2范数和top-k PCA能量比率,对各层进行统计为全局直方图或逐层可视化的山脊图。

3.2 基准测试和观察

基准设置:在CIFAR-100上对20个代表性视觉骨干和20个流行优化器进行主要基准测试。

观察:发现某些流行模型(例如DeiT-S和ConvNeXt-T)与某些优化器(即SGD和LARS)的组合效果不佳,从而总结了BOCB现象。

51c视觉~合集35_视觉_32

4.BOCB的来源4.1 骨干宏观设计和Token Mixers的起源

早期CNNs:这些架构以简单的卷积层和池化层叠加设计为特点,最终通过全连接层完成特征的提取与分类。这种范式虽然有效,但为后续的优化景观变革奠定了基础。这些早期的CNNs通过直接的方法进行特征提取,但其优化潜力有限,需要更复杂的设计来进一步提升性能。

经典CNNs:ResNet的引入标志着向分阶段的层次结构设计的转变,显著增强了特征提取和表征学习能力。特别是ResNet-50,它展示了一种平衡的BOCB处理方式,与SGD优化器展现出强烈的兼容性,并相对于同期的其他架构有较低的BOCB。ResNet通过引入残差连接解决了深度网络训练中的梯度消失问题,这一创新不仅提升了网络的优化效率,也为深度学习模型的设计提供了新的思路。

现代架构:向现代骨干网络的转变引入了简化的块状设计(例如,MetaNeXt和ConvNeXt变体)或复杂的Blo ck-wise异构结构(例如,MogaNet和UniRepLKNet),由于其复杂的特征提取机制,增加了优化挑战和BOCB的程度。作为演化的巅峰,MetaFormer架构将阶段化和Block-wise异构性融入其设计中。这种创新的宏观设计通过与优化器的协调,优化了优化景观,从而减少了BOCB并提升了性能。

以上主干网的演变强调了宏观设计在塑造优化环境中的关键作用,以及在主干网架构中持续创新的必要性。它强调了在提高表示能力和保持优化效率之间必须达到的微妙平衡。详情请参阅论文附录C。

接下来,我们举例说明了三个案例,展示了表征能力与BOCB效应的权衡。

Case 1 (Transformer): ViTs由于其自注意力机制和阶段性各向同性设计,缺乏CNNs中的局部连接和位移不变性等归纳偏好。

这需要精心的调整以确保在视觉任务中有效泛化并减少BOCB。MLP-Mixer通过用MLP替换基于注意力的Token Mixers来简化模型,从而简化了Token间的交互,使得训练过程更加稳定。

然而,这种简化牺牲了模型捕捉长距离依赖的能力,这对于特定的视觉任务是必不可少的,因此体现了“模型简洁”与表征能力之间的权衡。AttenFormer由于其MetaFormer框架,整合了平衡的设计和跨阶段的残差缩放,有效地减轻了BOCB。Swin-T与DeiT-S类似,基于Vallina Transformer,但引入了层次化阶段和局部注意力块。

这些设计增强了模型捕捉细粒度特征的能力,与DeiT-S相比,实现了更好的性能和更弱的BOCB。关键收获:针对减少异质性或增强同质性的块状宏观设计,结合层次化阶段和Token Mixers内整合的归纳偏好,对于ViTs在计算机视觉任务中减轻BOCB至关重要。

Case 2 (CNNs): 受ViTs成功的启发,ConvNeXt引入了一种同质化块设计,在残差连接中整合了两种类型的混合器,可能增强了在各种任务和数据尺度上的优化。

这种架构的有效性强调了需要在优化和现实世界挑战的背景下,超越常见指标来评估网络设计的必要性。网络骨干与优化器之间的相互作用对于预训练和微调都至关重要,不同的架构影响着优化景观。

CNNs中的BOCB通常与FFN设计相关,这在ConvNeXt等模型中至关重要。这些块作为点卷积或倒置瓶颈层实现,如果没有适当的正则化,容易过拟合。

ConvNeXt.V2在FFN块中引入了全局响应归一化(GRN),类似于RMSNorm,以稳定训练并防止模型崩溃,从而减少BOCB。基于MetaFormer框架的ConvFormer使用带有深度卷积和点卷积的同质化块,提高了训练的鲁棒性并降低了BOCB风险。

同样,VGG系列因其简单和同质化的架构表现出良好的训练动态,RepVGG引入的训练阶段残差连接增强了性能,同时保持了稳定性并避免了BOCB。

相比之下,ConvNeXt.V1和Moganet由于其复杂操作和异构块,更容易受到BOCB的影响。UniRepLKNet通过更同质化的设计规避了这一问题,突显了架构同构性在减少BOCB中的重要性。对于现代CNNs,促进同质化构建块结构的设计,并结合精心设计的策略来减轻模型故障,更有可能实现稳定的FFN训练并降低BOCB风险。

Case 3 (MetaFormer): MetaFormer架构以其分层次的阶段性和块状设计而著称,特点是ResScale,这有助于灵活集成各种Token Mixers。

这种宏观设计对于在最小化BOCB风险的同时实现竞争力性能至关重要。IdentityFormer,凭借其基本的Token Mixer,为MetaFormer设定了一个稳健的baseline,但在需要Token Mixer表示的复杂任务中可能会有所不足,潜在地增加了BOCB风险。

PoolFormerV2(将池化作为Token Mixer)的表现超过了IdentityFormer,但由于缺乏自注意力的细微差别,可能会忽略关键细节,导致更高的BOCB敏感性。为了增强MetaFormer并减轻这些风险,选择适当的Token Mixer是必不可少的。

ConvFormer将CNN层集成到Transformer框架中,平衡了局部归纳偏好和全局感受野,以防止数据受限场景中的注意力崩溃,确保更好的收敛并减少BOCB。AttenFormer和CAFormer进一步探索了注意力机制,旨在通过改进的Token交互来增强MetaFormer的表征能力。

总体而言,MetaFormer架构的成功取决于其层次化设计与Token Mixers选择之间的平衡,确保在多样化任务中提供稳健的性能,同时减轻BOCB的风险。

4.2 预训练和迁移学习中不同优化器的使用

51c视觉~合集35_视觉_33

51c视觉~合集35_视觉_34

扩展到ImageNet-1K分类:ImageNet-1K是一个基础性的基准测试,用于衡量视觉模型的分类能力。我们进一步研究了我们在ImageNet-1K上的观察结果是否仍然成立。

具体的实现细节,请参见论文附录A.1。正如表所示,DeiT-S显示出比ResNet-50更强的BOCB,而图2中的类别(b)优化器(例如,AdamW)在预训练阶段在不同的骨干网络上显示出可靠的性能高原。

这些优化器的一致性效用与ImageNet-1K所需的广泛特征学习非常吻合,使它们成为初始模型训练阶段的最佳选择。这些优化器在预训练阶段的效用会传递到迁移学习过程中。

当模型从ImageNet-1K预训练过渡到在COCO上进行目标检测(使用RetinaNet)或姿态估计等任务时,优化器的选择至关重要。

迁移学习在COCO上:对于使用ImageNet-1K预训练模型进行迁移学习的分析,我们确定了两个关于迁移后COCO任务性能的关键发现。

首先,从骨干网络的角度来看,具有明显BOCB(ConvNeXt-T)的骨干网络在迁移学习场景中继续表现出BOCB特征。这表明这类模型的固有结构属性可能不容易仅通过迁移学习来缓解。

其次,当我们使用对BOCB不太敏感的ResNet-50来控制变量观察优化器是如何影响骨干网络架构中的BOCB时,我们观察到类别(b)和(c)的优化器可能在预训练阶段引入显著的BOCB效应,尽管它们在预训练中是有效的。

这表明预训练优化器的选择可能深刻影响模型的泛化和迁移能力,从而影响其在新任务上的可迁移性和性能。此外,与不限制微调阶段使用特定优化器的一阶优化器不同,类别(b)和(c)的优化器需要在预训练和微调阶段都使用。

预训练中优化器的选择可以显著影响模型的可迁移性,尽管类别(b)和(c)的优化器表现出卓越的性能,但它们可能会向预训练的骨干网络引入BOCB。

我们已经讨论了这一点,并在上面总结了实际推荐的优化器。

5.结论与思考

本文探讨了计算机视觉中骨干网络设计和优化器选择之间的相互作用。我们揭示了骨干-优化器耦合偏差(BOCB)现象及其对视觉骨干网络潜在的限制,例如在下游任务中额外的微调时间和努力。

我们还发现了不同网络设计和BOCB背后的基本原理,从而为未来的视觉骨干网络设计提供了指导。同时,基准测试结果和发布的代码为用户友好的部署和评估提供了参考。

总体而言,我们旨在激励计算机视觉社区重新思考骨干网络和优化器之间的关系,在未来的研究中考虑BOCB,从而为更系统性的未来进步做出贡献。

同时这项工作有几个局限性:

  1. 尽管我们对ImageNet和COCO进行了迁移学习实验,但基准测试主要关注CIFAR-100,这可能导致对更广泛下游任务的发现存在疑问。然而,我们所有的迁移学习结果与CIFAR-100的发现一致。此外,我们发布的代码可以轻松扩展到其他任务。用户可以轻松地用它进行验证。
  2. BOCB比当前的参数和FLOPs等指标更复杂,这可能导致实践中的不便。我们建议研究人员使用我们的代码,选择代表性的优化器,如SGD、Adam和AdamW,进行ridge plot验证和CIFAR-100基准测试,这些都是实用且资源高效的。我们也呼吁社区进一步探索BOCB,共同推进视觉系统的进展。








#Depth Any Video

视频深度估计大幅升级!开启视频深度估计新纪元

本篇分享论文Depth Any Video with Scalable Synthetic Data,基于多样的仿真数据集和强大的视频生成模型,Depth Any Video在真实视频数据上展现了超强的泛化能力,并且在视频深度一致性和精度上超越了之前所有生成式的深度估计方法! 

论文链接:https://arxiv.org/abs/2410.10815

主页链接:https://depthanyvideo.github.io

代码链接:https://github.com/Nightmare-n/DepthAnyVideo

摘要

我们提出了一种新颖的视频深度估计模型:Depth Any Video,它主要包含两大关键创新:

  1. 我们开发了一套可扩展的合成数据采集流程,从多样化的虚拟环境中实时捕获视频深度数据,采集了约4万段5秒长的视频片段,每段都具有精准的深度标注。
  2. 我们利用强大的视频生成模型的先验来高效处理真实世界视频,并集成了旋转位置编码和流匹配等先进技术,进一步增强灵活性和效率。此外,我们引入了一种新颖的混合时长训练策略,能够在不同长度、不同帧率的视频下表现出色。在推理阶段,我们提出了一种深度插值方法,使模型能够同时处理长达150帧的高分辨率视频。我们的模型在深度一致性和精度方面均超越了之前所有的生成式深度估计方法。

动机

视频深度估计是理解三维世界的基础问题,在自主导航、增强现实和视频编辑等具有广泛的应用。现有的方法面临的主要瓶颈在于缺乏多样且大规模的视频深度数据,导致模型在不同场景下难以有效泛化。为了解决这个问题,本文提出了两大关键创新:

• 我们构建了一个大规模的合成视频深度数据集,利用现代虚拟环境的高逼真视觉效果,从虚拟环境中提取大规模且精确的视频深度数据,既具可扩展性又低成本。

• 我们设计了一个全新的视频深度估计框架,借助视频生成模型的强大视觉先验,提升对真实视频的泛化能力。该框架引入混合时长训练策略和深度插值模块,确保模型能在不同视频长度下保证深度估计的精确性和一致性。

我们的模型在生成式的深度估计方法中实现了最先进的性能,树立了视频深度估计的准确性和鲁棒性的新标杆。

方法

Game Data Workflow

实时数据收集: 为解决深度数据的挑战,我们收集了由40,000个视频片段组成的大规模合成数据集DA-V。该数据集主要通过先进的虚拟环境引擎生成逼真的环境,并提供准确的深度信息。我们在多款热门虚拟环境中提取深度数据,并精心选择以涵盖广泛的场景和环境条件,如:广阔的城市景观、细致的室内场景、丰富的动作场面,以及科幻的建筑设计。它不仅为我们提供精准的深度信息,还让模型接触多样的光照条件、天气效果和复杂的几何结构,使得模型能够泛化到真实环境中。在表1中,我们将DA-V与以往的公开合成数据集进行了比较。据我们所知,这是目前覆盖真实场景范围最广的合成视频深度数据集。

51c视觉~合集35_视觉_35

表1:与先前仿真数据的对比

数据过滤: 在收集初始仿真视频后,我们发现图像与深度信息之间偶尔会出现不一致现象,例如:切换到菜单界面时。为过滤这些帧,首先使用场景切割方法检测场景转换。然后,利用在人工挑选的仿真数据子集上训练过的深度估计模型过滤掉得分较低的视频序列。然而,这种方法可能导致未见数据的过度过滤。因此,我们借助CLIP模型计算实际和预测深度之间的语义相似度,均匀抽取每个视频片段的10帧。如果语义和深度得分的中位数均低于设定阈值,则移除该片段。

Generative Video Depth Model

模型设计:我们基于视频生成模型Stable Video Diffusion (SVD),将深度估计框架转化为条件去噪过程。整体框架如图1所示,训练流程包括一个前向过程,通过添加高斯噪声逐步扰乱真实深度数据,然后将视频作为条件输入去噪模型进行反向去噪。一旦模型完成训练,推理流程就从纯噪声开始,逐步去噪,逐步得到深度预测结果。与之前的扩散模型类似,该生成过程在变分自编码器的潜空间中进行,使模型能处理高分辨率输入而不牺牲计算效率。为了让去噪器以输入视频为条件,我们也将视频转换到潜空间中,然后将其与潜空间下的深度逐帧连接,作为去噪模型的输入。

51c视觉~合集35_视觉_36

图1:Depth Any Video整体架构图

条件流匹配: 为了加速去噪过程,我们将SVD中的去噪方法替换为条件流匹配。相比于原本的25步,新方法只需1步即可获得满意的深度预测结果。具体来说,我们通过高斯噪声与数据之间的线性插值来建模数据加噪过程,然后通过预测速度矢量场和常微分方程来进行去噪求解。

混合时长训练: 为了增强模型在不同视频长度下深度估计的泛化能力,我们采用了一种混合时长训练策略,以确保对各种输入的鲁棒性。这一策略包括:帧丢弃数据增强(图1a):提升长视频序列的训练效率,并通过旋转位置编码增强模型在长视频下的泛化能力。视频打包技术(图1b):将相同长度、分辨率的视频打包在同一个训练批次中,优化变长视频训练过程中的内存使用。

长视频推理: 上述经过训练的模型,在单个80GB A100 GPU上可同时处理分辨率为960 x 540的32帧视频。为处理更长的高分辨率视频序列,我们首先预测全局一致的关键帧,然后使用帧插值网络生成关键帧之间的中间帧,以确保深度分布的尺度和偏移对齐。如图2所示,我们将关键帧的预测结果与视频序列同时作为帧插值网络的条件输入。

51c视觉~合集35_视觉_37

图2:帧插值网络架构图

实验结果

表2展示了我们的模型与当前最先进的单帧输入的深度估计模型的性能比较。我们的模型在各个数据集上显著超越了先前所有的生成模型,同时在某些情况下,其表现甚至优于之前的判别模型。

51c视觉~合集35_视觉_38

表2:单帧下的深度估计对比结果

51c视觉~合集35_视觉_39

图3 单帧下的可视化对比

图3展示了我们的模型在不同数据集下的可视化结果,我们的方法能够捕捉细致的细节,并在自然环境数据上实现有效的泛化性。

表3展示了我们的模型与之前的视频深度估计模型的性能比较。我们的模型在ScanNet++数据集上展示了更好的时间一致性和预测精度,突显其在视频深度估计中的有效性。

表4展示了与之前生成方法的性能和效率比较。我们的模型参数少于先前的视频深度估计方法。此外,与所有的生成式深度估计方法相比,我们实现了更低的推理时间和更少的去噪步骤,同时获得了更好的预测精度。

51c视觉~合集35_视觉_40

表3:多帧下的深度估计对比结果

51c视觉~合集35_视觉_41

表4:单帧下的性能和效率对比

51c视觉~合集35_视觉_42

表5:各模块的消融实验结果

表5展示了所提模块对模型测试时间、训练时间、显存利用率和平均精度的影响。可以看到,这些模块均对各项指标产生了积极影响。









#BrushEdit

图像修复和编辑大一统!腾讯&北大等联合提出BrushEdit:BrushNet进阶版来了

腾讯和北京大学等机构联合提出了BrushEdit,通过结合多模态大语言模型和双分支图像修复模型,实现了指令引导的图像编辑和修复,提供了用户友好的交互编辑体验,并能适应任意形状的mask,统一处理各种图像编辑和修复任务。 

文章链接:https://arxiv.org/pdf/2412.10316

项目链接:https://liyaowei-stu.github.io/project/BrushEdit

亮点直击

  • 提出了BrushEdit,这是先前BrushNet模型的高级迭代版本。BrushEdit通过开创基于修复(inpainting)的图像编辑方法,扩展了可控图像生成的能力。该统一模型支持指令引导的图像编辑和修复,提供了用户友好的、自由形式的、多轮交互编辑体验。
  • 通过集成现有的预训练多模态大语言模型和视觉理解模型,BrushEdit显著提高了语言理解能力和可控图像生成能力,而无需额外的训练过程。
  • 将BrushNet扩展为一个通用的图像修复框架,能够适应任意形状的mask。这消除了为不同类型的mask配置使用单独模型的需求,并增强了其对现实世界用户mask的适应性。

总结速览解决的问题

当前基于扩散模型的图像编辑方法存在两大问题:

  • 基于反演(inversion)的方法在进行大幅度修改(如添加或移除物体)时效果较差,原因在于反演噪声的结构性限制了编辑的灵活性。
  • 基于指令(instruction)的方法通常采用黑箱操作,限制了用户直接指定编辑区域和强度的能力。

提出的方案

提出了一种新的图像编辑范式BrushEdit,基于图像修复(inpainting)和指令引导,结合多模态大语言模型(MLLMs)和双分支图像修复模型,构建了一个代理协作框架,实现:

  • 编辑类别分类。
  • 主体对象识别。
  • mask区域获取。
  • 编辑区域的修复与生成。

应用的技术

  • 多模态大语言模型(MLLMs)用于解析用户自由形式的编辑指令并指导编辑流程。
  • 双分支图像修复模型,用于在mask区域内生成符合用户指令的编辑内容。
  • 代理协作框架,通过分类、识别、mask生成和修复的多步流程协同完成图像编辑。

达到的效果

通过大量实验验证,BrushEdit 框架能够高效结合 MLLMs 和图像修复模型,在七个关键指标上实现性能优越,包括:

  • mask区域的精准性保持。
  • 编辑效果的连贯性和自然性。
  • 更高的用户交互自由度与操作便捷性。

demo展示方法

BrushEdit的概述如下图2所示。框架通过代理协作,将MLLM与双分支图像修复模型集成在一起,从而实现自由形式的、多轮交互的指令编辑。具体而言,一个预训练的MLLM作为编辑指导者(Editing Instructor),解析用户的指令以识别编辑类型、定位目标对象、获取编辑区域的检测结果并生成编辑后的图像文本描述。在此信息的引导下,修复模型作为编辑指挥者(Editing Conductor),根据目标文本说明填充被遮掩的区域。这个迭代过程允许用户在任何阶段修改或优化中间控制输入,支持灵活和交互式的基于指令的编辑。

编辑指导者

在BrushEdit中,我们使用MLLM作为编辑指导者来解析用户的自由形式编辑指令,将其分类为预定义类型(添加、删除、局部编辑、背景编辑),识别目标对象,并利用预训练的检测模型找到相关的编辑mask。最后,生成编辑后的图像说明。在下一阶段,这些信息将被打包并发送到编辑系统,以图像修复方法完成任务。

正式过程如下: 给定编辑指令  和源图像 , 我们首先使用预训练的MLLM  识别用户的编辑类型  和相应的目标对象  。然后, MLLM调用预训练的检测模型 , 基于  搜索目标对象mask  。获得mask后, MLLM将  、  和  结合起来生成最终的编辑图像说明。源图像  、目标mask  和说明被传递到下一阶段, 编辑指挥者, 进行基于图像修复的编辑。

编辑指挥者

编辑指挥者基于之前的BrushNet,采用混合微调策略,使用随机mask和分割mask相结合。这种方法使修复模型能够处理多种mask基础的修复任务,而不受mask类型的限制,达到相当或更优的性能。具体而言,通过额外的控制分支将mask图像特征注入到预训练的扩散网络(例如Stable Diffusion 1.5)中。这些特征包括噪声隐空间,以增强语义一致性,通过VAE提取的mask图像隐空间,以引导前景提示和背景之间的语义一致性,以及通过立方插值下采样的mask,用于明确指示前景填充区域的位置和边界。

为了保持mask图像特征,BrushEdit使用了预训练扩散模型的副本,去除了所有注意力层。预训练的卷积权重作为提取mask图像特征的强大先验,而排除跨注意力层确保该分支专注于纯背景信息。BrushEdit的特征逐层集成到冻结的扩散模型中,实现分层、密集的每像素控制。根据ControlNet,使用零卷积层将冻结模型与可训练的BrushEdit连接,减轻早期训练阶段的噪声。特征插入操作定义为公式5。

51c视觉~合集35_视觉_43

其中,  表示网络  中第  层的特征, 其中  表示层的总数。相同的符号也适用于。

网络  处理连接的噪声隐空间  、mask图像隐空间  和下采样的maskm , 其中连接用  表示。 表示零卷积操作,  是保留尺度,调节BrushEdit对预训练扩散模型的影响。

先前的研究强调,在隐空间融合过程中,下采样可能引入不准确性,且VAE编码解码过程具有固有的局限性,影响图像的完整重建。为了确保未遮掩区域的一致重建,先前的方法探索了多种策略。一些方法[29],[31]依赖于复制粘贴技术,直接转移未遮掩区域,但这些方法通常导致输出缺乏语义一致性。受BLD启发的隐空间融合方法也难以有效保留未遮掩区域中的所需信息。

在这项工作中,提出了一种简单的像素空间方法,在使用模糊mask进行复制粘贴之前先进行mask模糊处理。虽然这可能会稍微影响mask边界附近的精确度,但这种误差几乎不可察觉,并显著改善了边界一致性。

BrushEdit的架构本质上设计为能够无缝地与各种预训练的扩散模型进行即插即用集成,从而实现灵活的保留控制。具体而言,BrushEdit的灵活功能包括:

  • 即插即用集成:由于BrushEdit不修改预训练扩散模型的权重,因此可以轻松地与任何社区微调的模型集成,便于采用和实验。
  • 保留尺度调整:可以通过将BrushEdit特征与冻结的扩散模型中的权重结合,控制未遮掩区域的保留尺度,从而调整BrushEdit对保留级别的影响。
  • 模糊和融合自定义:可以通过调整模糊尺度并根据需要应用融合操作,进一步细化保留尺度。这些功能为编辑过程提供了细粒度和灵活的控制。

实验

评估基准和指标

基准

为了全面评估BrushEdit的性能,在图像编辑和图像修复基准上进行了实验:

  • 图像编辑:使用了PIE-Bench(基于提示的图像编辑基准)来评估BrushEdit和所有基准方法在图像编辑任务上的表现。PIE-Bench包含700张图像,涵盖10种编辑类型,均匀分布在自然和人工场景(例如画作)之间,分为四个类别:动物、人类、室内和室外。每张图像包含五个标注:源图像提示、目标图像提示、编辑指令、主要编辑内容和编辑mask。
  • 图像修复:在之前工作的基础上,用BrushBench替代了传统基准[81]–[86],用于基于分割的mask和EditBench用于随机刷子mask。这些基准涵盖了人体、动物以及室内和室外场景的真实和生成图像。EditBench包含240张图像,其中自然和生成内容各占一半,每张图像都带有mask和说明。BrushBench,如图3所示,包含600张带有人工标注mask和说明的图像,均匀分布在自然和人工场景(例如画作)之间,并涵盖人类、动物以及室内/室外环境等多种类别。

将任务细化为两种基于分割mask的修复场景:内部修复和外部修复,从而实现对不同图像区域的详细性能评估。

值得注意的是,BrushEdit通过利用统一的高质量修复mask图像进行训练,超越了BrushNet,能够处理所有mask类型。这使得BrushEdit成为一个统一的模型,能够执行所有修复和编辑基准任务,而BrushNet则需要为每种mask类型进行单独的微调。

数据集

在之前版本中提出的BrushData的基础上,整合了两种子集:分割mask和随机mask,并进一步扩展了来自Laion-Aesthetic 数据集的数据,形成了BrushData-v2。一个关键的区别是,我们选择背景干净的图像,并随机与分割mask或随机mask配对,实际上创建了模拟基于删除的编辑的配对,显著增强了我们框架在图像编辑中的删除能力。数据扩展过程如下:使用Grounded-SAM标注开放世界mask,然后根据置信度分数进行过滤,仅保留高置信度的mask。同时,在过滤过程中考虑了mask的大小和连续性。

指标

评估了五个指标,重点关注未编辑/未修复区域的保留和已编辑/已修复区域的文本对齐。此外,我们还进行了广泛的用户研究,以验证BrushEdit在编辑指令对齐和背景保真度方面的优越性能。

  • 背景保真度:我们采用标准指标,包括峰值信噪比(PSNR)、学习的感知图像块相似性(LPIPS)、均方误差(MSE)和结构相似性指数测量(SSIM),来评估生成图像与原始图像之间未mask区域的一致性。
  • 文本对齐:使用CLIP相似度(CLIP Sim)来评估文本与图像的一致性,通过将两者投影到CLIP模型的共享嵌入空间中,并测量它们表示之间的相似性。

实现细节

除非另有说明,否则在一致的设置下评估各种修复方法,即使用NVIDIA Tesla V100 GPU及其开源代码,以Stable Diffusion v1.5作为基础模型,50步,指导比例为7.5。每种方法在所有图像上使用其推荐的超参数,以确保公平性。BrushEdit和所有消融模型在8台NVIDIA Tesla V100 GPU上训练430k步,约需要3天时间。值得注意的是,对于所有图像编辑(PnPBench)和图像修复(BrushBench和EditBench)任务,BrushEdit使用在BrushData-v2上训练的单一模型,达成了统一的图像编辑和修复。相比之下,我们之前的BrushNet需要为不同的mask类型进行单独的训练和测试。更多细节请参见提供的代码。

定量比较(图像编辑)

表II和表III比较了在PnPBench上的定量图像编辑性能。评估了先前基于反演的方法的编辑结果,包括四种反演技术——DDIM反演、Null-Text反演、Negative-Prompt反演和StyleDiffusion——以及四种编辑方法:Prompt-to-Prompt、MasaCtrl、pix2pix-zero和Plug-and-Play。

表II中的结果确认了BrushEdit在保留未编辑区域和确保编辑区域文本对齐方面的优越性。尽管基于反演的方法,如DDIM反演(DDIM)和PnP反演(PnP),能够实现高质量的背景保留,但它们本质上受到重建误差的限制,影响了背景的保持。相比之下,BrushEdit通过一个专门的分支单独建模未编辑的背景信息,而主网络则基于文本提示生成编辑区域。结合预定义的用户mask和混合操作,它确保了几乎无损的背景保留和语义一致的编辑。

更重要的是,方法能够在不受反演方法中不可恢复的结构噪声影响的情况下,保持高保真度的背景信息。这使得像添加或移除物体这样的操作成为可能,这在基于反演的编辑方法中通常是无法实现的。此外,由于不需要反演,BrushEdit只需要单次前向传递即可执行编辑操作。如表III所示,BrushEdit的编辑时间显著较短,极大提高了图像编辑的效率。

定性比较(图像编辑)

图4展示了与先前图像编辑方法的定性比较。呈现了在多种编辑任务上的结果,包括删除物体(I)、添加物体(II)、修改物体(III)和交换物体(IV),任务涉及人工图像和自然图像。BrushEdit在编辑区域和未编辑区域之间始终保持卓越的一致性,在遵循编辑指令、编辑mask边界的平滑度以及整体内容一致性方面表现出色。特别地,图4中的I和II任务包括删除花朵或笔记本电脑,添加领子或耳环等。

定量比较(图像修复)

表IV和表V展示了在BrushBench和EditBench上的定量比较。评估了几种图像修复方法,包括采样策略修改方法Blended Latent Diffusion、专门的修复模型Stable Diffusion Inpainting、HD-Painter、PowerPaint,以及基于Plug-and-Play方法的ControlNet,这些方法都在修复数据上进行过训练。此外,还包括之前的BrushNet。

结果证实了BrushEdit在保持未修复区域的完整性和确保修复区域的文本对齐方面的优越性。Blended Latent Diffusion表现最差,主要原因是由于它忽视了mask边界,并且在mask区域与未mask区域之间的过渡不一致,导致了混合引发的隐空间损失。HD-Painter和PowerPaint,都基于Stable Diffusion Inpainting,在内部修复任务中与其基础模型取得了相似的结果。然而,在外部修复任务中,它们的性能急剧下降,因为它们仅设计用于内部修复。ControlNet,明确为修复任务而训练,具有与我们相似的实验设置,但其与修复任务的设计不匹配,限制了其保持mask区域完整性和文本对齐的能力,因此需要与Blended Latent Diffusion结合才能取得合理的结果。即使使用了这种组合,它仍然无法超越专门的修复模型和BrushEdit。

在EditBench上的表现与BrushBench上的结果相一致,均显示出BrushEdit的优越性。这表明我们方法在各种修复任务中,包括分割、随机、内修复和外修复mask方面都表现稳定优异。

值得注意的是,与BrushNet相比,BrushEdit现在通过一个模型超越了BrushNet,在基于分割mask和随机mask的基准测试中取得了更强大且通用的修复能力。这一进步主要归功于统一的mask类型和BrushData-v2中更丰富的数据分布。

定性比较(图像修复)

图5展示了与以往图像修复方法的定性比较。评估了在人工和自然图像上的修复结果,涵盖了多种修复任务,包括随机mask修复和分割mask修复。BrushEdit在生成区域与未mask区域之间的内容和颜色一致性方面表现始终优越(I,II)。特别是在图5 II(左侧)中,任务要求生成一只猫和一条金鱼。尽管所有先前的方法未能识别出mask图像中已有的金鱼,并错误地生成了另一条鱼,但BrushEdit通过其双分支解耦设计准确地将背景上下文融入修复中。此外,BrushEdit在整体修复性能上超越了我们之前的BrushNet,且无需针对特定mask类型进行微调,在随机mask和分割mask的修复结果上均能取得相当甚至更优的表现。

灵活控制能力

图6和图7展示了BrushEdit在两个关键领域提供的灵活控制:基础扩散模型选择和尺度调整。这种灵活性不仅限于图像修复,也扩展到图像编辑,主要通过改变主干网络的生成先验和分支信息注入强度来实现。在图6中,我们展示了BrushEdit如何与各种社区微调的扩散模型结合使用,使用户能够选择最适合其特定编辑或修复需求的模型。这大大增强了BrushEdit的实用价值。图7则展示了对BrushEdit的尺度参数的控制,允许用户在编辑或修复过程中调整未mask区域的保护程度,从而提供精细的控制,确保结果精准且可定制。

消融研究

进行了消融研究,以考察不同模型设计对图像修复任务的影响。由于BrushEdit基于图像修复模型,编辑任务是通过推理过程完成的,链式连接MLLMs、BrushEdit和图像检测模型作为代理。修复能力直接反映了我们模型的训练结果。表VI比较了双分支和单分支设计,表VII则重点展示了附加分支架构的消融研究。

在BrushBench上进行的消融研究对内修复和外修复的性能进行了平均。表VI中的结果表明,双分支设计显著优于单分支设计。此外,在双分支设置中微调基础扩散模型的结果优于冻结模型。然而,微调可能会限制模型的灵活性和控制能力。考虑到性能与灵活性之间的权衡,我们选择采用冻结的双分支设计。表VII解释了关键设计选择的理由:(1)使用VAE编码器而非随机初始化的卷积层处理mask图像,(2)将完整的UNet特征逐层集成到预训练UNet中,以及(3)移除BrushEdit中的文本交叉注意力,以防止mask图像特征受到文本的影响。

讨论

结论: 本文介绍了一种新颖的基于修复的指令引导图像编辑范式(IIIE),该范式结合了大型语言模型(LLMs)和即插即用的全能图像修复模型,实现了自主、用户友好和交互式的自由形式指令编辑。我们在PnPBench、我们提出的基准、BrushBench和EditBench上的定量和定性结果展示了BrushEdit在图像编辑和修复任务中,在mask背景保留和图像-文本对齐方面的优越性能。

局限性与未来工作: 然而,BrushEdit仍存在一些局限性:(1)我们模型生成的质量和内容在很大程度上依赖于所选择的基础模型;(2)即使使用BrushEdit,当mask形状不规则或提供的文本与mask图像不对齐时,仍然可能出现生成质量差的情况。在未来的工作中,我们计划解决这些挑战。

消极社会影响:图像修复模型为内容创作提供了令人兴奋的机会,但也带来了隐的风险,尤其是对个人和社会的影响。它们对互联网收集的训练数据的依赖可能会加剧社会偏见,并且存在通过操纵人类图像生成误导性内容的风险。为了减轻这些担忧,负责任的使用和建立伦理指南至关重要,这也将是我们未来发布模型时的重点。







#基于视觉的传送带物体计数

介 绍

    在许多制造环境中,传送带用于在生产的各个阶段运输物体,特别是螺栓、螺母或其他紧固件等小部件。能够实时可靠地统计这些物品可以改善库存管理、质量保证和整体效率。

    本文中我们将介绍一种使用计算机视觉检测和计数传送带上物体的端到端方法。我们将关注的场景是计算沿输送线移动的螺栓和螺母,但这种方法也适用于其他物体和环境。该项目涉及:

  • 收集并注释螺栓和螺母数据集。
  • 训练自定义对象检测模型。
  • 构建一个工作流应用程序来统计穿过定义区域的对象。
  • 在本地部署解决方案以处理实时视频流或视频文件。

    通过遵循这些步骤,您将拥有一个可以扩展为强大的生产级解决方案的系统。

51c视觉~合集35_视觉_44

数据集准备与标注

    准确的目标检测始于注释良好的数据。你的第一步是收集代表现实世界条件的图像或视频帧。

    数据收集

    录制短视频:从不同角度和不同光照条件下拍摄螺栓和螺母(或您选择的物体)的1-2分钟片段。

51c视觉~合集35_视觉_45

    提取帧:使用Roboflow或opencv,自动将视频转换为帧。每秒大约1-2个图像帧就足够了,可以平衡全面覆盖和可管理的数据集大小。

    自动数据标注

    带有自动标签的自动注释:Roboflow的内置自动标签功能利用了先进的短语接地模型——Grounding DINO,根据简单的文本提示为对象建议边界框。例如,输入提示如“螺栓”和“六角螺母”(仅使用“螺母”对其他类型的螺母来说是模糊的)。

51c视觉~合集35_视觉_46

    数据集拆分:将带标注的数据集拆分为训练集(70%)、验证集(20%)和测试集(10%)。

    预处理:应用数据增强,如水平翻转、亮度调整或随机裁剪,以提高模型对现实世界变化的鲁棒性。

模型训练过程

    一旦你的数据集被标注和整理,是时候训练你的模型了。Roboflow简化了这一过程,消除了设置训练管道通常带来的大部分复杂性。

 训练流程:

    选择模型:选择以MS COCO检查点为起点的Roboflow 3.0模型。这个预训练的主干利用了从数万个日常物品中学习到的丰富功能,让你的模型领先一步。

    启动训练:直接从浏览器开始培训。Roboflow处理基于云的训练基础设施,使您能够专注于模型的性能。

    监控指标:在大约20分钟内,您将看到平均精度(mAP)、损失曲线甚至混淆矩阵等性能指标。评估模型是否能够可靠地区分螺栓和螺母,并在需要时使用这些见解进行迭代。

    快速验证:训练后,使用Roboflow的实时推理工具——使用智能手机扫描二维码或上传图像——测试模型的检测能力。

    当然上面的步骤都可以使用YOLOv8或者YOLOv11来完成。

构建跟踪和计数逻辑

    单独的检测模型输出可能不足以进行准确计数。对象可能出现在多个帧中,从而导致重复计数。这就是Roboflow工作流的用武之地,您可以将后处理步骤链接在一起,将原始检测转换为有用的可部署应用程序。

    创建工作流

    添加对象检测:从训练好的检测模型开始,作为工作流中的第一个块。

    集成ByteTrack进行跟踪:添加一个跟踪块(我们将使用ByteTrack),为跨帧的对象分配一致的ID。这可以防止在同一物体沿传送带移动时对其进行多次计数。

    基于行的计数:添加行计数器定义传送带框架上的一条或多条虚拟线。当一个对象穿过一条线时,它会递增计数。

    可视化块:包括可视化块,以便您可以实时查看边界框、对象ID和计数覆盖。

本地部署 

    在Roboflow中定义并测试了您的工作流程后,是时候将其应用于现实世界了。对于视频推断,您可以使用专用部署(连接到分配给您使用的Roboflow云服务器)或本地主机。在本项目中,我们将重点介绍Localhost,以便您可以在本地计算机上运行工作流。

    本地部署步骤

    安装环境:按照Roboflow推理文档的指导,安装Python、Docker,并运行pip安装推理cli&&推理服务器启动。

    拉取推理服务器:使用Roboflow inference拉取推理服务。

    运行python应用程序:您可以复制并运行下面的python代码,其中包括将输出另存为.mp4。别忘了更改workspace_name、workflow_id和video_reference。

# Import the InferencePipeline object
from inference import InferencePipeline
import cv2


# Define the output video parameters
output_filename = "output_conveyor_count.mp4"  # Name of the output video file
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # Codec for the MP4 format
fps = 30  # Frames per second of the output video
frame_size = None  # Will be determined dynamically based on the first frame


# Initialize the video writer object
video_writer = None


def my_sink(result, video_frame):
    global video_writer, frame_size
    if result.get("output_image"):
        # Extract the output image as a numpy array
        output_image = result["output_image"].numpy_image
        
        # Dynamically set the frame size and initialize the video writer on the first frame
        if video_writer is None:
            frame_size = (output_image.shape[1], output_image.shape[0])  # (width, height)
            video_writer = cv2.VideoWriter(output_filename, fourcc, fps, frame_size)
        
        # Write the frame to the video file
        video_writer.write(output_image)
        
        # Optionally display the frame
        cv2.imshow("Workflow Image", output_image)
        cv2.waitKey(1)


# Initialize a pipeline object
pipeline = InferencePipeline.init_with_workflow(
    api_key="*******************",
    workspace_name="[workspace_name]",
    workflow_id="[workflow_id]",
    video_reference="[video_reference]",  # Path to video, device id (int, usually 0 for built-in webcams), or RTSP stream URL
    max_fps=30,
    on_predictinotallow=my_sink
)


# Start the pipeline
pipeline.start()
pipeline.join()  # Wait for the pipeline thread to finish


# Release resources
if video_writer:
    video_writer.release()
cv2.destroyAllWindows()


    现在,您可以开始实时处理视频帧。当对象通过行计数器时,观察计数会自动更新。

51c视觉~合集35_视觉_47