我自己的原文哦~ https://blog.51cto.com/whaosoft/12715639
#视频AIGC~论文
1、Pix2Video: Video Editing using Image Diffusion
基于大规模图像库训练的图像扩散模型已成为质量和多样性方面最为通用的图像生成模型。它们支持反转真实图像和条件生成(例如,文本生成),使其在高质量图像编辑应用中具有吸引力。本文研究如何利用这些预训练的图像模型进行文本引导的视频编辑。
关键挑战在于在保留源视频内容的同时实现目标编辑。方法分为两个简单的步骤:首先,用预训练的结构引导(例如,深度)图像扩散模型对锚点帧进行文本引导编辑;然后,在关键步骤中,通过将变化逐步传播到未来帧来适应扩散模型的核心去噪步骤,使用自注意力特征注入。然后,在继续处理之前,通过调整帧的潜在编码来巩固这些变化。
方法无需训练,可以推广到各种编辑。通过广泛的实验证明了该方法的有效性,并将其与四种不同的先前和并行努力(在ArXiv上)进行比较。证明实现逼真的文本引导视频编辑是可行的,无需进行任何计算密集的预处理或特定于视频的微调。开源在:https://duyguceylan.github.io/pix2video.github.io/
2、StableVideo: Text-driven Consistency-aware Diffusion Video Editing
扩散方法可生成逼真的图像和视频,但在保持现有对象外观的同时编辑视频中的对象时遇到困难。这阻碍了将扩散模型应用于实际场景中的自然视频编辑。本文通过为现有的文本驱动扩散模型引入时序依赖性来解决这个问题,这使它们能够为编辑后的对象生成一致的外观。
具体来说,开发一种新的帧间传播机制,用于视频编辑,利用分层表示的概念将外观信息从一个帧传播到下一个帧。然后,基于此机制构建了一个基于文本驱动的视频编辑框架,即StableVideo,它可以实现具有一致性意识的视频编辑。大量实验证明方法的强大编辑能力。与最先进的视频编辑方法相比,展示了更好的定性和定量结果。开源在:https://github.com/rese1f/StableVideo
3、Structure and Content-Guided Video Synthesis with Diffusion Models
文本引导的生成扩散模型,为图像的创作和编辑提供了强大的工具。最近一些方法可编辑镜头内容并保留结构,但每次输入都需要昂贵的重新训练,或者依赖于易出错的图像编辑在帧之间的传播。
这项工作提出一种基于结构和内容引导的视频扩散模型,根据所期望输出的描述来编辑视频。由于结构与内容之间的解耦不足,用户提供的内容编辑与结构表示之间会发生冲突。作为解决方案,展示了使用具有不同详细级别的单眼深度估计进行训练可以提供对结构和内容准确性的控制。通过联合视频和图像训练而启用的一种新颖的引导方法,可以对时间一致性进行明确控制。
实验展示了各种成功案例;对输出特征的细粒度控制,基于少量参考图像的定制,以及用户对模型结果的强烈偏好。https://research.runwayml.com/gen1
4、The Power of Sound (TPoS):Audio Reactive Video Generation with Stable Diffusion
视频生成已成为一种重要生成工具,受到极大关注。然而,对于音频到视频生成,很少有考虑,尽管音频具有时间语义和幅度等独特性质。
提出The Power of Sound(TPoS)模型,将包含可变时间语义和幅度的音频输入纳入其中。为生成视频帧,TPoS利用了具有文本语义信息的潜在稳定扩散模型,然后通过预训练的音频编码器产生的顺序音频嵌入进行引导。结果,该方法生成与音频相关的视频内容。
通过各种任务展示了TPoS的有效性,并将其结果与当前音频到视频生成领域的最先进技术进行了比较。开源在:https://ku-vai.github.io/TPoS/
5、Preserve Your Own Correlation: A Noise Prior for Video Diffusion Models
提出PYoCo,一种大规模文本到视频扩散模型,该模型是从现有的图像生成模型eDiff-I进行微调的,并引入了一种新的视频噪声先验。结合之前的设计选择,包括使用时间注意力、联合图像-视频微调、级联生成架构和专家去噪器的集成,PYoCo在几个基准数据集上建立了新的最先进,优于其他竞争方法的视频生成水平。
PYoCo能够以卓越的照片真实感和时间一致性实现高质量的零样视频综合能力。项目在:https://research.nvidia.com/labs/dir/pyoco/
6、Text2Video-Zero:Text-to-Image Diffusion Models are Zero-Shot Video Generators
文本到视频生成方法依赖于计算密集型训练,并需要大规模的视频数据集。本文介绍一个新的任务,零样本文本到视频生成,并提出一种低成本的方法(无需任何训练或优化),通过利用现有的文本到图像合成方法,使其适用于视频领域。
关键修改包括:(i)通过动态运动丰富生成帧的潜在编码,以保持全局场景和背景时间的一致性;(ii)重新编程帧级自注意力,使用每一帧对第一帧的新的跨帧注意力,以保留前景对象的上下文、外观和身份。达到了低开销但高质量和非常一致的视频生成。
此外,方法不仅限于文本到视频合成,还适用于其他任务,例如条件和内容专项的视频生成,以及视频指导像素到像素,即指令引导的视频编辑。实验证明,尽管没有在额外的视频数据上训练,方法与最近方法相比具有可比或更好的性能。开源在:https://github.com/Picsart-AI-Research/Text2Video-Zero
7、Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation
为复制文本到图像生成的成功,最近工作采用大规模视频数据集来训练文本到视频生成器。尽管这些方法有着很好的结果,但这种方法计算上是昂贵的。
这项工作提出一种新的文本到视频生成设置——One-Shot Video Tuning,在这种设置下只呈现一个文本到视频对。模型是基于最先进的文本到图像扩散模型,在大规模图像数据上进行预训练的。做出了两个关键观察:1)文本到图像模型可以生成表示动词概念的静态图像;2)扩展文本到图像模型以同时生成多个图像表现出惊人的内容一致性。
为进一步学习连续的运动,引入了调整视频的Tune-A-Video方法,包括一个定制的时空注意机制和一个高效的One-Shot Video Tuning。在推理过程中,用DDIM逆变换来提供采样的结构指导。广泛的定性和定量实验证明了方法在各种应用中的显著能力。开源在:https://tuneavideo.github.io/
#Depth-Anything
一种用于单目深度估计(Monocular Depth Estimation, MDE)的高度实用方案Depth Anything「致敬Segment Anything」,它旨在构建一种可以处理任务环境下任意图像的简单且强力的基础深度模型。
这是一种用于鲁棒单目深度估计的解决方案。目标是建立一个简单而强大的基础模型,在任何情况下处理任何图像。为此,设计一个数据引擎来收集和自动注释大规模未标记数据(~62M),从而大大扩大了数据覆盖范围,这样能够减少泛化误差,从而扩大数据集的规模。作者研究了两种简单而有效的策略,这两种策略使数据增强更有希望。首先,利用数据增强工具创建了一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得稳健的表示。其次,开发了一种辅助监督,强制该模型从预训练的编码器继承丰富的语义先验。作者对其零样本功能进行了广泛评估,包括六个公共数据集和随机拍摄的照片。它展示了很好的泛化能力。此外,利用来自NYUv2和KITTI的深度信息对其进行微调,设置新的SOTA。更好的深度模型也产生了更好的以深度为条件模型ControlNet。
单目深度估计(MDE)是一个在机器人[65]、自主驾驶[63,79]、虚拟现实[47]等领域有广泛应用的基本问题,它还需要一个基础模型来估计单个图像的深度信息。然而,由于难以构建具有数千万深度标签的数据集,这一点一直没有得到充分的探索。MiDaS[45]通过在混合标记数据集上训练MDE模型,沿着这一方向进行了开创性的研究。尽管表现出一定水平的零样本能力,但MiDaS受其数据覆盖范围的限制,因此在某些情况下表现不佳。
传统上,深度数据集主要通过从传感器[18,54]、立体匹配[15]或SfM[33]获取深度数据来创建,这在特定情况下是昂贵、耗时甚至难以处理的。相反,本文关注大规模的未标记数据。与立体图像或深度传感器的标记图像相比,单目未标记图像具有三个优点:(i)(获取简单且便宜)单目图像几乎无处不在,因此易于收集,无需专门的设备。(ii)(多样性)单目图像可以覆盖更广泛的场景,这对模型的泛化能力和可扩展性至关重要。(iii)(易于注释)简单地使用预训练的MDE模型为未标记的图像分配深度标签,这只需要前馈推理步骤。更高效的是,这还产生了比激光雷达[18]更密集的深度图,并省略了计算密集的立体匹配过程。
人类有两只眼睛来估计视觉环境的深度信息,但机器人和 VR 头社等设备却往往没有这样的「配置」,往往只能靠单个摄像头或单张图像来估计深度。这个任务也被称为单目深度估计(MDE)。
近日,一种可有效利用大规模无标注图像的新 MDE 模型 Depth Anything 凭借强大的性能在社交网络上引起了广泛讨论,试用者无不称奇。
作者的工作利用标记和未标记的图像来促进更好的单目深度估计(MDE)。形式上,标记集和未标记集分别表示为Dl和Du。工作目标是从Dl学习教师模型T。然后,利用T为Du分配伪深度标签。最后,在标记集和伪标记集的组合上训练了一个学生模型S。如图提供了一个简短的说明,流水线包括如下。实线:标记的图像流,虚线:未标记的图像,特别强调大规模未标记图像的价值,S表示添加强扰动。为了使深度估计模型具有丰富的语义先验,在在线的学生模型和冻结的编码器之间强制执行辅助约束,保持语义能力。
从三个维度进行探索:
- 数据集维度,设计了一种数据引擎用于数据收集与自动标注,构建了~62M的大规模无标注数据,这极大程度提升了数据覆盖率、降低泛化误差;
- 通过利用数据增广工具构建了一种更具挑战性的优化目标,促使模型主动探索额外的视觉知识,进而提升特征鲁棒性;
- 设计了一种辅助监督信息以迫使模型从预训练Encoder中继承丰富语义先验信息。
甚至有试用者发现它还能正确处理埃舍尔(M.C.Escher)那充满错觉的绘画艺术(启发了《纪念碑谷》等游戏和艺术):
从水上到水下,丝滑切换:
更好的深度模型也得到了效果更好的以深度为条件的 ControlNet,可用于图像生成和视频编辑。如下图所示,生成的内容质量得到了显著增强:
理论上说,基础模型可用于解决单目深度估计(MDE)问题,即基于单张图像估计深度信息。这类技术在机器人、自动驾驶、虚拟现实等领域都有广阔的应用前景。但由于难以构建带有数千万深度标签的数据集,这一问题还少有研究者探索。
此前的 MiDaS 算得上是这个方向上的一项开创性研究,其基于一个混合标注的数据集训练了一个 MDE 模型。尽管 MiDaS 展现出了一定程度的零样本能力,但受限于其数据覆盖范围,其在某些场景中的表现非常差。
来自香港大学、TikTok 等机构的研究者提出的 Depth Anything ,则是一个更为实用的解决方案。
- 论文标题:Depth Anything Unleashing the Power of Large-Scale Unlabeled Data
- 论文地址:https://arxiv.org/pdf/2401.10891.pdf
- 项目主页:https://depth-anything.github.io/ 和 https://github.com/LiheYoung/Depth-Anything
- 演示地址:https://huggingface.co/spaces/LiheYoung/Depth-Anything
该研究的目标是构建一种能在任何情况下处理任何图像的简单却又强大的基础模型。为了做到这一点,该团队采用了一种方法扩大数据集的规模:设计了一种数据引擎来收集和自动标注大规模无标注数据(约 6200 万)。这能显著扩大数据覆盖范围,并由此可以降低泛化错误。
为了保证数据扩展的质量,研究者探索了两种简单却有效的策略。
第一,利用数据增强工具创建一个难度更高的优化目标。这会迫使模型主动寻找额外的视觉知识并获取鲁棒的表征。
第二,开发一种辅助监督机制,可强制模型从预训练编码器继承丰富的语义先验知识。
团队使用 6 个公共数据集和随机拍摄的照片评估了新方法的零样本能力,其泛化能力非常出色。更进一步,使用来自 NYUv2 和 KITTI 的度量深度信息对模型进行微调后,新模型获得了新的 SOTA 结果。
这篇论文的主要贡献包括:
- 强调了大规模、低成本和多样化无标注图像的数据扩展对 MDE 的价值。
- 指出了在联合训练大规模有标注和无标注图像方面的一个重要实践方法:不是直接学习原始无标注图像,而是为模型提供更困难的优化目标,让其学会使用额外的知识。
- 提出从预训练编码器继承丰富的语义先验,从而实现更好的场景理解,而不是使用辅助性语义分割任务。
- 新模型的零样本能力超过 MiDaS-BEiT_L-512。不仅如此,使用度量深度进行微调后,新模型的表现更是显著超过 ZoeDepth。
Depth Anything
TikTok 的这项研究使用了有标注和无标注图像来实现更好的单目深度估计(MDE)。用数学形式表示,可以将有标注和无标注集分别表示成:
这里的目标是根据 D^l 学习得到一个教师模型 T。然后,使用 T 给 D^u 分配伪深度标签。最后,使用有标注集和伪标注集的组合数据集训练一个学生模型 S。图 2 是一个简单图示。
学习有标注图像
这个过程与 MiDaS 的训练过程类似。具体来说,深度值首先会通过 d = 1/t 被转换到视差空间(disparity space)中,然后再把每张深度映射图归一化到 0~1 范围内。为了实现多数据集联合训练,该团队采用了仿射不变损失。
这样一来就可以忽略每个样本的未知尺度和偏移。
为了得到稳健的单目深度估计模型,他们从 6 个公共数据集收集了 150 万张有标注图像。表 1 列出了这些数据集的详情。
不仅如此,为了增强从这些有标注图像学习到的教师模型 T,他们还采用了 DINOv2 预训练权重对编码器进行初始化。在实践操作中,该团队的做法是使用一个经过预训练的语义分割模型来检测天空区域并将其视差值设置为 0(即最远)。
解放无标注图像的力量
这正是这项研究的主要目标。至于无标注图像源,该团队选择了 8 个大规模公共数据集,保证了多样性。这些数据集总共包含 6200 多万张图像。详情见表 1 下半部分。
在处理无标注图像时,该团队设定使用 CutMix 的概率为 50%。输入给 CutMix 的无标注图像已经在颜色上经历过强扭变,但给教师模型 T 进行伪标注的无标注图像却是干净的,没有任何扭变。
语义辅助型感知
这项研究首次尝试了组合使用 RAM + GroundingDINO + HQ-SAM 来为无标注图像分配语义分割标签。经过后处理之后,这得到了一个包含 4000 个类别的类别空间。
在联合训练阶段,该模型的任务使用一个共享的编码器和两个单独的解码器得到深度预测结果和分割预测结果。不幸的是,一番试错之后,该团队没能提升原始 MDE 模型的性能。
因此,他们的目标就变成了训练更多能提供信息的语义信号,以作为辅助监督信号助力深度估计任务。
该团队表示:「DINOv2 模型在语义相关任务的强大表现让我们大受震撼。」
因此,他们提出通过一个辅助特征对齐损失将其强大的语义能力迁移到新的深度模型。其特征空间是高维且连续的,因此包含的语义信息比离散掩码更丰富。该特征对齐损失的数学形式为:
实验及结果
研究者使用了 DINOv2 编码器进行特征提取。所有标注的数据集都简单地合并在一起,无需重新采样。无标注的图像由使用 ViT-L 编码器的最佳教师模型标注,每批标注和无标注图像的比例设定为 1:2。
零样本相对深度估计
研究者在六个具有代表性的不可见数据集 KITTI、NYUv2、Sintel、DDAD、ETH3D 和 DIODE 上全面验证了 Depth Anything 模型的零样本深度估计能力 ,并将其与最新 MiDaS v3.1 中的最佳 DPT-BEiT_L-512 模型进行了比较,后者使用的标注图像比前者多。
如表 2 所示,在均使用 ViT-L 编码器的前提下,在广泛的场景中,Depth Anything 在 AbsRel 和 δ_1 度量上都大大超过了 MiDaS 的最强模型。
面向度量深度估计的微调
研究者进一步研究了 Depth Anything 模型,将其作为下游度量深度估计的一种有潜力的权重初始化方法。
两种有代表性的情况如下:
1) 域内度量深度估计,即在同一域内对模型进行训练和评估。如 NYUv2 表 3 所示,Depth Anything 模型明显优于之前的最佳方法 VPD,δ_1 (↑) 从 0.964 → 0.984,AbsRel (↓) 从 0.069 提高到 0.056。表 4 中的 KITTI 数据集也有类似的改进。
2) 零样本度量深度估计,即模型在一个域(如 NYUv2)上进行训练,但在不同域(如 SUN RGB-D)上进行评估。如表 5 所示,在大量未见过的室内和室外场景数据集中,Depth Anything 比基于 MiDaS 的原始 ZoeDepth 得出了更好的度量深度估计模型。
面向语义分割进行微调
在本文方法中,研究者设计了 MDE 模型,通过简单的特征对齐约束,从预训练编码器中继承丰富的语义先验。随后,研究者检验了 MDE 编码器的语义能力。
如 Cityscapes 数据集的表 7 所示,研究者从大规模 MDE 训练中获得的编码器(86.2 mIoU)优于从大规模 ImageNet-21K 预训练中获得的现有编码器,例如 Swin-L (84.3) 和 ConvNeXt-XL (84.6)。表 8 中的 ADE20K 数据集也有类似的观察结果。
消融实验
在消融实验中,研究者使用了 ViT-L 编码器。表 6 展示了每个训练集的零样本迁移性能。
如表 9 所示,简单地添加带有伪标签的无标注图像不一定为模型带来增益,大规模的无标注图像能够显著增强模型的泛化能力。
#DocTr++
论文“Deep Unrestricted Document Image Rectification”。这篇文章提出了一种新型的通用文档图像校正算法,即DocTr++。DocTr++解决了现有文档图像校正算法的短板,可以有效地对日常生活中拍摄的文档边界任意分布的图像进行几何校正。一种新型的通用文档图像校正模型
一、研究背景
近年来,随着文档数字化的需求日益增加,文档图像矫正领域取得了显著进展。图1展示了三类常见的形变文档图像:(a) 包含完整文档边界,(b) 包含部分文档边界,(c) 不包含文档边界。然而,现有的基于深度学习的解决方案均仅限于处理限定场景下的文档图像,即输入图像须包含完整的文档(图1(a))。当输入的文档图像仅包含局部区域(图1(b))或不包含完整的文档边界(图1(c))时,矫正质量会出现坍塌。
图1 常见的三类文档图像
二、方法原理简述
DocTr++采用了多尺度的编码器-解码器结构进行有效的特征编解码,并且重新定义了各类形变文档图像与无形变文档图像之间的逐像素映射关系。方法框架图如图2所示。
图2 DocTr++网络框架
首先, 在畸变特征编码器中,DocTr++采用自注意力机制捕获形变文档的结构特征,并构建多尺度编码器,进行特征提取和融合。其中,编码器由三个子模块组成,每个子模块包含两个标准的 Transformer 编码层。这使得本方法既能编码具有高分辨率纹理细节的特征,又能获得低分辨率具有高层语义信息的特征。
接下来,矫正解码器接收编码器输出的多尺度特征以及可学习的矫正提示向量序列(Learnable Queries),输出解码后的表征用于后续坐标映射矩阵的预测。其中,可学习的矫正提示向量序列零初始化,并加上固定的位置编码。实验发现,每一个矫正提示向量会关注输入形变文档图像中的某一特定区域 (如图3所示),这些区域组合起来便覆盖整张输入图像。同样,解码器由三个子模块组成,每个子模块包含两个标准的 Transformer 解码层。
图3 DocTr++中encoder和decoder的attention机制可视化实例
图4 畸变文档图像到无畸变文档图像的光流映射
论文提出了两种新的评价指标 MSSIM-M 和 LD-M,用于通用形变文档图像矫正质量的评估。因为边界不完整的形变文档图像在矫正后可能会出现像素缺失,如图5所示,本文将有效像素区域的掩膜矩阵与目标图像进行矩阵乘法,得到更适宜进行评价的目标图像。
图5 现有评价指标和本文评价指标的区别
三、主要实验结果及可视化结果
论文在公开的有边界形变文档图像测试基准和本文新提出的通用形变文档图像测试基准上都进行了性能评估,在两种数据集上都展现了优异的性能。
下图展示了各类形变文档图像的矫正结果,包括试卷、文本段落、书页、手写文档等。
图6 DocTr++校正结果可视化
下图展示了DocTr++的文档校正能力对于多模态大模型的提升。这里测试所用的多模态大模型为Qwen-VL。左图为形变文档图的问答结果,右图为校正图的问答结果。
图7 DocTr++的文档校正能力对于多模态大模型的提升示例
四、总结
本文介绍了一种全新的通用形变文档图像矫正框架DocTr++,DocTr++突破了现有多数矫正方法的场景局限性,能够恢复日常生活中常见的各种形变文档图像。为了实现优秀的矫正效果,DocTr++采用了一种多尺度编解码器结构,构建各类形变文档图像与无形变文档图像之间的逐像素映射关系。此外,该团队还贡献了一个真实场景的测试基准和新的评估指标,以评估各类真实文档图像的矫正质量。通过在公开的测试基准和本工作提出的测试基准上进行大量实验,验证了该方法的有效性和鲁棒性。作者团队希望能为未来本领域研究提供一个强有力的基准方法,为进一步研究和发展通用形变文档图像矫正方法提供基础。
五、相关资源
论文地址:
https://arxiv.org/pdf/2304.08796.pdf
代码:https://github.com/fh2019ustc/DocTr-Plus
Demo:https://doctrp.docscanner.top/
#InstantID
只需一张照片,无需模型训练,短短几十秒内,生成多种风格强烈的写真,还能保持面貌特征不变!
一张照片,为深度学习巨头们定制人像图片,主题驱动的文本到图像生成,通常需要在多张包含该主题(如人物、风格)的数据集上进行训练,这类方法中的代表工作包括 DreamBooth、Textual Inversion、LoRAs 等,但这类方案因为需要更新整个网络或较长时间的定制化训练,往往无法很有效地兼容社区已有的模型,并无法在真实场景中快速且低成本应用。而目前基于单张图片特征进行嵌入的方法(FaceStudio、PhotoMaker、IP-Adapter),要么需要对文生图模型的全参数训练或 PEFT 微调,影响原本模型的泛化性能,缺乏与社区预训练模型的兼容性,要么无法保持高保真度。
为了解决这些问题,来自 InstantX 团队的研究人员提出了 InstantID,该模型不训练文生图模型的 UNet 部分,仅训练可插拔模块,在推理过程中无需 test-time tuning,在几乎不影响文本控制能力的情况下,实现高保真 ID 保持。
- 论文标题:InstantID: Zero-shot Identity-Preserving Generation in Seconds
- 论文地址:https://arxiv.org/abs/2401.07519
- 代码地址:https://github.com/InstantID/InstantID
- 项目地址:https://instantid.github.io
InstantID 是一个高效的、轻量级、可插拔的适配器,赋予预训练的文本到图像扩散模型以 ID 保存的能力。作者通过(1)将弱对齐的 CLIP 特征替换为强语义的人脸特征;(2)人脸图像的特征在 Cross-Attention 中作为 Image Prompt 嵌入;(3)提出 IdentityNet 来对人脸施加强语义和弱空间的条件控制,从而增强 ID 的保真度以及文本的控制力。
下图为利用 InstantID 进行风格化的结果,输入仅为最左侧的人物图像。
文章的主要贡献如下:
(1) InstantID 作为一种全新的 ID 保留方法,有效弥补了训练效率与 ID 保真度之间的差距。
(2)InstantID 是可插拔的,与目前社区内文生图基础模型、LoRAs、ControlNets 等完全兼容,可以零成本地在推理过程中保持人物 ID 属性。此外,InstantID 保持了良好的文本编辑能力,使 ID 能够丝滑地嵌入到各种风格当中。
(3)实验结果表明,InstantID 不仅超越目前基于单张图片特征进行嵌入的方法(IP-Adapter-FaceID),还与 ROOP、LoRAs 等方法在特定场景下不分伯仲。它卓越的性能和效率激发了其在一系列实际应用中的巨大潜力,例如新颖的视图合成、ID 插值、多 ID 和多风格合成等。
在个性化图像生成领域,传统如 DreamBooth、Textual Inversion 和 LoRAs,通常依赖于在特定主题(例如人物或风格)的数据集上进行训练。这些方法虽然在生成特定主题图像方面表现出色,但由于需要对整个网络进行更新或进行长时间的定制化训练,它们在实际应用中往往难以与社区现有的预训练模型兼容,且难以实现快速和低成本的部署。与此同时,基于单张图片特征的嵌入方法,例如 FaceStudio、PhotoMaker 和 IP-Adapter,虽然避免了全面训练的需求,但它们要么需要对文生图模型进行全参数训练或PEFT微调,这可能会损害模型的泛化能力,要么在保持图像高保真度方面存在不足。
为了解决这些技术挑战,小红书 InstantX 团队提出 InstantID,该模型不训练文生图模型的 UNet 部分,仅训练可插拔模块,在推理过程中无需 test-time tuning,在几乎不影响文本控制能力的情况下,实现高保真 ID 保持。
InstantID 是一个高效的、轻量级、可插拔的适配器,赋予预训练的文本到图像扩散模型以 ID 保存的能力。重点工作分为以下几步:
Step 1: 将弱对齐的 CLIP 特征替换为强语义的人脸特征;
Step 2: 人脸图像的特征在 Cross-Attention 中作为 Image Prompt 嵌入;
Step 3: 提出 IdentityNet 来对人脸施加强语义和弱空间的条件控制,从而增强 ID 的保真度以及文本的控制力。
方法介绍
仅给定一张参考 ID 图像,InstantID 的目标是从单个参考 ID 图像生成具有各种姿势或风格的定制图像,同时保证高保真度。上图概述了我们的方法。它包含三个关键组成部分:(1) 鲁棒的人脸表征;(2) 具有解耦功能的交叉注意力,支持 Image Prompt;(3) IdentityNet,引入额外的弱空间控制对参考面部图像的复杂特征进行编码。
1. 由于 CLIP 只提供了弱语义表征,无法在人脸等强语义场景下直接应用,考虑了人脸识别领域已经相当成熟,所以我们采用预训练的人脸编码器来提取人脸特征。在本文中,我们使用来自 insightface 提供的 antelopev2 模型来提取人脸特征。
2. 如先前方法所述,预训练的文本到图像扩散模型中的图像提示功能能够增强了文本提示,特别是对于难以用文字描述的内容,因此,我们采用和 IP-Adapter 一致的具有解耦功能的交叉注意力机制,但差别在于我们使用人脸特征,而非 CLIP 表征。
3. 引入 IdentityNet 来对人脸图像进行编码。在实现中,IdentityNet 采用与 ControlNet 一致的残差结构,从而保持原始模型的兼容性。在 IdentityNet 中,主要有两个对于原版 ControlNet 的修改:1)只使用五个面部关键点,而不是细粒度的 OpenPose 面部关键点 (两个用于眼睛,一个用于鼻子,两个用于嘴巴)用于条件输入。2)我们消除文本提示并使用 ID 嵌入作为条件加入到 ControlNet 中的交叉注意力层。
- 只使用五个面部关键点,而不是细粒度的 OpenPose 面部关键点 (两个用于眼睛,一个用于鼻子,两个用于嘴巴)用于条件输入。
- 消除文本提示并使用 ID 嵌入作为条件加入到 ControlNet 中的交叉注意力层。从实验结果上来看,作者首先展示了方法的稳健性、可编辑性和兼容性,分别对应在空文本、编辑文本、额外使用 ControlNets 下的生成效果。可以看到,InstantID 仍然保持了较好的文本控制能力,同时与开源的 ControlNet 模型兼容。
同时该方法也支持多张图注入,来进一步提升效果。
实验结果
作者首先展示了方法的稳健性、可编辑性和兼容性,分别对应在空文本、编辑文本、额外使用 ControlNets 下的生成效果。可以看到,InstantID 仍然保持了较好的文本控制能力,同时与开源的 ControlNet 模型兼容。
同时该方法也支持多张图注入,来进一步提升效果。
InstantID 与目前社区内主流的三类方法进行对比。
(1)基于单图特征注入(IP-Adapter 与 PhotoMaker)。相比之下,IP-Adapter 具有可插拔性,兼容社区模型,且其 FaceID 版本的人脸保真度有明显提升,但是对于文本的控制能力出现明显退化;而近期新推出的 PhotoMaker,需要训练整个模型(虽然采用了 LoRA 的方式),风格退化问题减弱,但其人脸保真度未见明显提升,甚至不如 IP-Adapter-FaceID。而我们提出的 InstantID 兼顾了人脸保真度和文本控制能力。
(2)基于微调的人物 LoRAs
(3)非扩散模型的换脸模型 inswapper
此外,InstantID 还支持了多视角生成、ID 插值、多 ID 生成,作为潜在应用场景。
(1)多视角生成
(2)ID 插值
(3)多 ID + 多风格的生成
衍生应用玩法
基于高性能的人像注入和编辑能力,InstantID可以支持很多衍生应用玩法
(1)快速低门槛的真人写真
(2)夸张五官人像定制
(3)非人像混合定制
#Deformable Convolution v4 (DCNv4)
Deformable Convolution v4 (DCNv4),这是一个创新性的优化稀疏DCN操作符以提高实际效率的进步。DCNv4具有更快实现的实现和改进的操作符设计,以提高其性能。
论文: arxiv.org/pdf/2401.06197.pdf
开源链接: https://github.com/OpenGVLab/DCNv4
这是一个用于广泛视觉应用的高效且有效的操作符。DCNv4解决了其前驱DCNv3的局限性,通过两个关键的改进:
- 在空间聚合中移除softmax归一化,以增强其动态特性和表达能力
- 优化内存访问,以最小化冗余操作以提高速度
这些改进导致DCNv4相对于DCNv3的收敛速度显著加快,处理速度大幅提升,DCNv4实现了超过三倍的正向速度。DCNv4在各种任务上表现出卓越的性能,包括图像分类、实例分割和显著的图像生成。当集成到潜在扩散模型中的生成模型(如U-Net)时,DCNv4超过了其 Baseline ,证实了其提高生成模型的可能性。在实际应用中,将DCNv3替换为DCNv4在IntermImage模型中创建FlashhturerInImage,实现了高达80%的速度提升,且无需进一步修改即可获得进一步的性能提升。DCNv4在速度和效率方面的改进,以及其在各种视觉任务上的强大性能,表明其作为未来视觉模型基础构建块的潜力。
1 Introduction
在计算机视觉领域,人们一直在讨论卷积网络 (ConvNets) 和Transformer模型哪个具有更好的性能。近年来,Transformer模型在大视觉模型中通过注意力机制取得了显著的成果,显示出超越ConvNets的潜力。然而,最近的工作如Intermlmage和ConvNeXt表明,基于 ConvNet的视觉模型在各种下游任务上保持了健壮的性能、效率、简单性和适合的归纳偏差。值得注意的是,在图像生成的领域,卷积仍然是首选方法。这种情况突显了基于卷积方法的价值。
- 首先,作者对现有实现进行了指令级 Kernel 分析,并发现DCNv3已经非常轻量。计算成本不到1%,而内存访问成本为99%。这激励作者重新检查操作符实现,并发现DCN向前过程中许多内存访问都是冗余的,因此可以进行优化,从而导致DCNv4实现速度大大提高。
- 第二,受到卷积无限权重范围启发,作者发现空间聚合中的softmax归一化在密集注意力中是标准操作,但在DCNv3中是不必要的,因为每个位置都有专用的聚合窗口,不是所有聚合运算都需要softmax归一化。直观上,softmax将权重限制在0~1的范围内,将限制聚合权的表达能力。这一洞察力使作者删除了DCNv4中的softmax,增强了其动态特性和性能。因此,DCNv4不仅比DCNv3收敛得更快,而且前向速度提高了超过3倍。这种改进使DCNv4能够充分利用其稀疏特性,成为最快的基本核心视觉运算符之一。
- 进一步将DCNv3替换为DCNv4,创建了FlashInternImage。值得注意的是,FlashInternImage与InternImage相比,在没有任何额外修改的情况下,实现了50%~80%的速度提升。这种改进使FlashInternImage成为最快的现代视觉 Backbone 网络之一,同时保持了优越的性能。借助于DCNv4,FlashInternImage在ImageNet分类和迁移学习设置中的收敛速度显著提高,进一步在下游任务中展示了改进的性能。
- 此外,DCNv4在各种架构和任务中显示出作为通用视觉运算符的潜力。作者将DCNv4集成到其他现代 Backbone 架构中,包括ConvNeXt和ViT,用深度卷积和密集自注意力层替换。令人惊讶的是,在没有任何超参数调整的情况下,这些精心设计的网络在DCNv4下表现得一样好,而且更快,展示了动态稀疏DCNv4的有效性和效率。此外,作者在生成模型作为新的应用领域中探索了DCNv4的潜力。
- 具体来说,在潜在扩散模型中使用U-Net架构,用DCNv4替换常规卷积。作者的实验结果显示,DCNv4在图像生成方面可以比 Baseline 表现更好,显示了使用DCN改进生成模型的巨大潜力。
2 Related Work
视觉模型中的核心运算符: 标准卷积是最普遍和最具影响力的运算符,构成了大多数计算机视觉架构的基础。然而,许多具有独特特性的运算符共同发挥重要作用,在计算机视觉的发展中起着关键作用。深度可分卷积 (DWConv) 将空间和通道操作分离,在开发轻量和高效模型中发挥了关键作用。Re-pLKNeti兑明,利用大核深度可分卷积的纯卷积网络可以在效率和有效性方面达到竞争性能。变形卷积 (DCN) 系列通过向卷积核中添加可学习偏移量,显著提高了卷积的适应性。
与卷积相反,注意力机制具有建模长程依赖的能力,并在各种计算机视觉任务中成功应用。窗口注意力通过限制注意力操作到固定大小的窗口,减少了纯注意力固有的计算复杂性。为了减轻纯注意力的高计算复杂性,变形注意力使每个 Query 可以集中于一组选择的关键采样点,这些位置和权重是动态确定的。这种有效的方法广泛应用于以下艺术感知方法。动态卷积和动态-DWNet通过引入动态权重,增强深度可分卷积(DWConv),从而允许使用实例特定的权重,这些权重可以动态地适应。对于非网格结构的数据,稀疏运算符利用通过双线性插值或参数方式获得的动态权重。
视觉 Backbone 模型中的内存访问成本 (MAC) : 正如以前的研究所强调的那样,FLOPs虽然是一个常用的度量模型复杂性的指标,但并不能准确地反映模型的速度或延迟。在实际场景中,模型的运行速度受到多个因素的影响,而不仅仅是FLOPs。内存访问成本 (MAC) 在这种背景下起着特别重要的作用。Flash-Attention通过减少对高带宽内存 (HBM) 的访问次数,在具有比纯注意力更高的FLOPs 的情况下,实现了显著更快地速度。
3 Method
Rethinking the Dynamic Property in Deformable Convolution
增强动态性质: 受此观察启发,作者在DCNv3中移除了softmax归一化,将介于0和1之间的调制标量转换为类似于卷积的无界动态权重。如图2所示,这种改变进一步增强了DCN的动态性质,其中其他运算符具有一定的限制,例如有界值范围(注意/DCNv3)或具有输入无关聚合权的固定聚合窗口(卷积)。
图1(b)显示,通过进行这种改变,DCNv4的收敛速度显著快于DCNv3和其他常见运算符,包括卷积和注意。第4节的结果进一步展示了DCNv4在预训练和迁移学习设置中表现良好。
Speeding up DCN
GPU效率的理论分析
此外,现代半精度数据格式 (float16/bfloat16) 将需要加载的字节减半,这意味着在相同内存带宽下使用半精度格式时,内存效率可以提高一倍。然而,在作者的原始DCNv3实现中,使用半精度数据并未看到速度提升,这可能是由于数据访问和计算上的开销太大,而在作者的新实现中,速度提升显著。值得注意的是,上述优化技术也可以应用于DCNv1/v2和变形注意力,因为它们共享类似的性能瓶颈和问题。
DCN 模块的微观设计: DCNv3模块引入了多个微观设计;作为核心 Kernel 被优化后,它们对速度的影响变得非可忽略。作者确定了DCNv3设计中可以进一步优化的两个点:
- 首先,在去除softmax并将其调制标量转换为动态聚合权重(如前所述)之后。计算偏移量和动态权重的线性层实际上可以合并为一个线性层。这减少了网络碎片化并消除了额外的开销,例如 Kernel 启动和同步,从而提高了GPU上的运行效率;
- 其次,在原始DCNv3模块设计中,使用了一个复杂的子网络,包括深度卷积3x3卷积、层规范化(LN)、GELU和线性层来计算偏移量和动态权重。遵循Xception的设计,删除了额外的LN-GELU层并使用原始的可分卷积结构,进一步减少了运行时间。实际发现,如果延迟是首要考虑的因素,深度卷积也可以删除,但仅会牺牲少量性能。
4 Experiments
在本节中从速度和性能的角度验证了所提出的DCNv4模块的有效性。首先在运算符 Level 进行速度基准测试,并将DCNv4集成到 Backbone 模型中以测试系统级性能。所有速度测试结果都是在NVIDIA A100 80G SXM GPU上获得的。由于空间限制,作者将其他超参数设置和硬件/软件环境等实验结果和实现细节包括在附录中。
Speed Benchmark for Operators
然而,它并没有改变注意力的二次复杂度;当输入分辨率较高时,它仍然落后于局部/稀疏运算符,如窗口注意力和卷积。虽然DCNv3在简单实现上可以比DWConv更快,但在优化的cuDNN版本中仍然较慢。相反,DCNv4可以比DCNv3快3倍以上,大大节省运行时间。
此外,DCNv4可以成功地利用使用3×3稀疏窗口的优势,在不同的设置下比其他 Baseline 快得多。
Image Classification
Downstream Tasks with High-Resolution Input
作者进一步评估DCNv4在高分辨率输入下的代表性下游感知任务性能,包括实例分割、语义分割和3D目标检测。作者保持所有实现细节与InternImage相同,仅将 Backbone 模型更改为FlashInternImage进行公平比较。在训练下游模型时, Backbone 模型从ImageNet预训练权重初始化。
实例分割: 在COCO数据集上使用两个代表性的实例分割框架,Mask R-CNN和Cascade Mask-RCNN,以1(12个epoch)和3(36个epoch)的训练schedule训练FlashInternImage。
结果如Tab. 5所示还报告了批处理大小为16的FP32/FP16数据格式下的FPS。FlashInternImage在所有模型规模和训练schedule上都表现出优越的结果,实现了更高的速度-准确性权衡。例如,FlashInternImage-T/S在相同规模下超越了所有其他模型,与较大的InternImage-S/B相当,同时快80%-90%。
语义分割: 在ADE20K数据集上使用UperNet训练FlashInternImage,进行了160K次迭代。从Tab. 6的结果中可以得出与实例分割类似的结论,其中FPS以批处理大小16的FP32/FP16报告。配备DCNv4的FlashInternImage可以实现显著更快的速度,并进一步提高了InternImage在不同模型规模上的性能,从而实现了新的最先进状态。
3D检测: 进一步在基于相机的3D目标检测任务上测试DCNv4,该任务是自动驾驶场景中的一个重要应用。在nuScenes数据集上使用BEVFormer v2,这是一个最先进的基于多摄像头的3D目标检测器,使用Flashlnternlmage-Small和Base Backbone 模型进行24个epoch的训练。
作者可以看到,DCNv4在生成建模方面也表现良好,与U-Net中的常规卷积相比,在FID/吞吐量方面取得了更好的结果,而参数更少。请注意,DCNv4的架构/超参数可能不是最优的,可能重新设计模型或为DCNv4寻找新的超参数会得到更好的结果。
Ablation Study
在Sec. 3.2描述的优化选择中进行了ablation study。结果如下所示:Tab. 10。
5 Conclusion
作者提出了Deformable Convolution v4 (DCNv4),这是一个高效且稀疏的动态运算符。通过对变形卷积的动态性质进行重新思考,并优化内存访问,DCNv4比其前驱DCNv3更快、更有效。
配备了DCNv4的FlashInternImage Backbone 不仅提高了速度,还改善了各种视觉任务上的性能。作者还展示了DCNv4的通用性和有效性,将其集成到最先进的架构(如ConvNeXt和ViT)中,提高了吞吐量并提高了准确性;同时,它在潜在扩散模型中也表现出色,展示了其增强生成模型的潜力。
Appendix A Implementation Details
环境: 在所有实验中使用NVIDIA A100 80GB SXM GPU来衡量吞吐量。软件环境是PyTorch 1.13,CUDA 11.7,cuDNN 8.5。在测试Flash Attention时,使用Flash Attention 2.3.1。当在Swin Transformer中测试窗口注意力时,作者使用timm 0.9.7的PyTorch实现。
在COCO数据集上进行2D目标检测以验证DCNv4的有效性。采用了两种目标检测方法:Mask R-CNN和Cascade Mask R-CNN,主要参考Interimange的设置。作者使用两个调度:1x(12个epochs)和3x(36个epochs),以分别评估模型的收敛速度和最终性能。对于1xschedule,将图像重新缩放到较短的一侧为800像素,较长的一侧不超过1333像素。
在评估阶段,输入图像的较短一侧始终设置为800像素。对于3xschedule,将较短的一侧重新缩放到480到800像素之间,而较长的一侧保持为1333像素。基本学习率设置为1e-4,批处理大小为16。使用AdamW优化器,并包含0.05的重量衰减。Backbone 网络的初始化是预训练的分类权重。
在ADE20K数据集上进行2D语义分割以验证DCNv4的有效性。作者的实验设置主要基于InternImage。对于FlashInternImage-T/S/B和FlashInternImage-L,分别使用AdamW优化器,学习率分别为6e-5和2e-5。FlashInternimage T/S/B的裁剪大小设置为512,而FlashInternImage-L的裁剪大小设置为640。使用16的批处理大小在160k迭代下训练所有模型,以确保与以前方法进行公平比较。Backbone 网络的初始化也是预训练的分类权重。
在nuScenes数据集上进行3D目标检测以验证DCNv4的有效性。作者采用了BEVFormerV2来验证在nuScenes数据集上进行3D目标检测的方法。遵循BEVFormerV2的设置, Backbone 网络在COCO数据集上进行预训练。与BEVFormerV2一致,使用了总共8秒的数据,涵盖过去和未来的信息。使用AdamW优化器,批处理大小为16,学习率为4e-4。训练模型24个epoch。
Appendix B Additional Experimental Results
带有高级标题的下游结果:使用更先进的DINO和Mask2Former来进一步验证FlashInternImage的有效性,如Tab. 1和Tab. 3所示。
对于COCO上的2D目标检测,使用DINO头,在12个epoch下训练作者的模型。在训练期间,采用与上述多尺度训练策略相同的策略。其他设置,包括优化器、权重衰减和学习率,也与Mask-RCNN中使用的设置相同。
对于ADE20K上的2D语义分割,将学习率设置为1e-4,批处理大小为16。对于Base和Large规模,使用640的裁剪大小。其他设置与UperNet中使用的设置相同。
观察表明,用DCNv4替换之前使用的DWConv或Attention可以提高推理速度。对于ConvNext,使用DCNv4而不是DWConv也可以实现更高的性能。
#UPDP~
AMD提出视觉剪枝新方法,一种新颖的高效模型按深度剪枝方法。作者的方法提出了一种新颖的块剪枝策略和渐进训练方法UPDP用于子网。此外,作者将他的剪枝方法扩展到视觉转换模型。作者的方法在视觉Transformer模型上也达到了最先进的剪枝性能。
一种统一的深度剪枝器,用于对高效的卷积神经网络(CNN)和视觉 Transformer (VT)模型进行剪枝,以减少模型的深度。作者的深度剪枝器包括4个步骤:超网络训练、子网络搜索、子网络训练和子网络合并。
传统按通道逐一削减的方法难以有效削减深度卷积神经网络模型(如具有深度卷积层和某些高效模块的流行反向残差模块)以及某些高效模型(如某些正则化层存在的情况下)。先前的深度削减方法(通过减少网络深度)不适合削减某些高效模型。此外,直接通过直接删除激活层微调子网会破坏原始模型权重,从而阻碍了修剪后的模型实现高性能。
为解决这些问题,作者提出了一种新颖的深度削减方法。UPDP提出了子网的新的模块削减策略和渐进训练方法。此外,作者还扩展了作者的削减方法到视觉 Transformer 模型。
实验结果表明,UPDP在各种修剪配置下始终优于现有的深度削减方法。作者使用UPDP在ConvNeXtV1上获得三个修剪的ConvNeXtV1模型,这些模型在可比的推理性能下超过了大多数最先进的有效模型。UPDP还在视觉 Transformer 模型上实现了最先进的修剪性能。
论文链接:https://arxiv.org/pdf/2401.06426
深度神经网络(DNNs)在各种任务上取得了显著进展,在工业应用中取得了令人瞩目的成功。在这些应用中,模型优化的追求凸显出作为一个普遍需求的需求,提供了提高模型推理速度的潜力,同时最大限度地减少准确性的权衡。这个追求涵盖了一系列技术,尤其是模型修剪,量化和高效模型设计。
传统的按通道剪枝方法,通过减少网络通道的数量,在剪枝深度卷积层和某些高效模块(例如流行的倒置残差块)的卷积神经网络模型中往往无法有效剪枝。之前的按深度剪枝方法,通过减少网络的深度,对某些高效模型的剪枝不适用,因为这些模型存在一些归一化层。此外,通过直接移除激活层来微调子网会破坏原始模型的权重,从而阻碍剪枝模型达到高性能。
这个过程通常涉及三个连续步骤:
- 初始基准模型训练
- 后续削减不太重要的权重或层通道
- 最后对修剪后的模型进行微调阶段
值得注意的是,模型削减可以分为非结构削减和结构削减。结构削减是工业应用中模型部署的首选方法,主要是因为硬件限制。与非结构方法不同,结构削减在卷积核层中的不太重要权重以稀疏方式在每个核通道中零化,而结构削减包括通道削减和模块削减等技术。通道削减关注于在核内消除整个通道滤波器,而模块削减则涉及更大的规模,通常针对完整的模块。由于模块削减通常导致模型深度减少,因此也称为深度削减器。
卷积神经网络(CNN)模型的设计演变导致了更高效模型的开发。例如,MobileNetV2 采用许多深度卷积层和反转残差模块堆叠,实现了高性能,同时最小化了参数和浮点运算。ConvNeXtV1 利用大核技巧并堆叠反转残差模块,实现了显著的效率。传统的按通道削减方法面临深度卷积层的挑战,因为稀疏计算和更少的参数。此外,现在模型平台更喜欢更高的并行计算,如GPU,按通道削减方法会使高效模型更薄、更稀疏,导致低硬件利用率,从而降低可实现的硬件效率。
为了解决这些问题,DepthShrinker 和 Layer-Folding 提出了通过重参化技术对MobileNetV2 进行优化以降低模型深度的方法。然而,这些方法存在一定的局限性。
- 首先,直接通过移除激活层微调子网可能会损害基准模型权重的完整性,从而阻碍获得高性能。
- 其次,这些方法的使用受到限制,它们无法剪枝具有某些规范化层(如LayerNorm 或 GroupNorm 层)的模型,因为重参化技术无法将不是BatchNorm层的规范化层合并到相邻卷积层或全连接层。
- 最后,这些方法无法应用于视觉 Transformer 模型进行优化,因为存在LayerNorm层。
为了缓解这些问题,作者提出了一个渐进训练策略和一种新的模块削减方法,该方法可以剪枝CNN和视觉 Transformer 模型。渐进训练策略可以在充分利用基准模型权重的子网结构上平滑地转移基准模型结构,从而实现更高的准确性。
作者提出的模块削减方法可以处理现有的规范化层问题,理论上可以处理所有激活和规范化层。因此,UPDP可以剪枝视觉 Transformer 模型,这是现有深度削减方法不适用的。实验评估涵盖了ResNet34、MobileNetV2和ConvNeXtV1,展示了优越的剪枝能力。
如图1所示,UPDP修剪的ConvNeXtV1模型超过了大多数最先进的有效模型,具有可比的推理性能。值得注意的是,作者将探索延伸到视觉 Transformer 模型,与其他视觉 Transformer 剪枝方法相比,取得了领先的剪枝结果。
主要贡献可以总结如下:
- 提出了一种统一的、高效的深度剪枝方法,用于优化CNN和视觉 Transformer 模型
- 提出了一种用于子网优化的渐进训练策略,并与使用重参化技术的新的模块削减策略相结合
- 在CNN和视觉 Transformer 模型上进行了全面的实验,以展示深度剪枝方法的优秀剪枝性能。
简介
为解决这些问题,我们提出了一种新颖的高效模型按深度剪枝方法。我们的方法提出了一种新颖的块剪枝策略和渐进训练方法UPDP用于子网。此外,我们将我们的剪枝方法扩展到视觉转换模型。实验结果表明,在不同的剪枝配置下,我们的方法始终优于现有的按深度剪枝方法。我们使用我们的方法在ConvNeXtV1上得到了三个剪枝后的ConvNeXtV1模型,超过了大多数具有可比较推理性能的SOTA高效模型。我们的方法在视觉Transformer模型上也达到了最先进的剪枝性能。
方法与模型
如图2所示,作者的模块剪枝策略将一个复杂的慢速模块转换为简单快速的模块,通过模块合并实现。对于一个模块,作者用恒等层替换激活层,用BatchNorm层替换LayerNorm或GroupNorm(GN)层,并在模块末尾插入一个带有BatchNorm层的激活层,以创建参数重参化的条件。然后,重参化技术可以合并BatchNorm层、相邻的卷积或全连接层以及跳过连接,如图2所示。
在本文中,我们提出了一种统一的深度修剪方法,适用于高效的CNN和视觉Transformer模型,采用渐进式训练策略、新颖的块修剪方法和重新参数化技术。与DepthShrinker和Layer-Folding通过直接激活层删除微子网进行微调不同,我们的方法在微子网训练过程中逐步删除修剪块中的激活层。此外,我们的方法解决了DepthShrinker和Layer-Folding无法修剪具有LayerNorm或GroupNorm层的模型的归一化层问题。此外,它们也无法修剪视觉Transformer模型。尽管我们的工作与VanillaNet具有类似的训练过程,但VanillaNet是用来设计全新的网络结构,而我们的方法是一个通用的深度修剪框架,适用于CNN和视觉Transformer模型。
我们的块剪枝策略将复杂而缓慢的块转化为块合并中简单而快速的块。对于一个块,我们将激活层替换为恒等层,并将LayerNorm(LN)或GroupNorm(GN)层替换为 BatchNorm(BN)层,并在块末尾插入一个带有BatchNorm层的激活层,以便为参数重组创建条件。然后,参数重组技术可以合并BatchNorm 层、相邻的卷积层或全连接层以及跳跃连接。
我们的方法主要包括四个主要步骤,分别是超网络训练、子网络搜索、子网络训练和子网络合并。首先,我们基于基线模型构建一个超网络,在此超网络中进行块修改。超网络训练后,使用搜索算法来搜索最优的子网络。然后,我们采用一种提出的渐进式训练策略来优化最优子网络,以减少准确度损失。最后,通过参数重组技术,将子网络合并为一个较小的模型。
1 超网络训练
高效的CNN和视觉变换器模型通常由几个基本块组成,如图2所示的一些高效模型结构。首先,我们基于基线模型构建一个超网络,然后采用三明治规则的方法训练一个强大的超网络模型,以确保每个子网络具有有意义的准确性。我们将基线块和相应的剪枝块组合成一个超网络块,该块同时具有基线块和剪枝块的流。对于超网络块,选择基线块流表示不进行剪枝,选择剪枝块流表示对该块进行剪枝。然后,子网络选择是一系列选择,选择的次数等于基线模型的块数。选择更多剪枝块的子网络将更快。
2 子网络搜索
我们的深度修剪器的主要目标是基于指定的修剪准则(如要修剪的块数)来识别一个最佳子网络。如方程1所示,我们将这个问题公式化为一个最优化问题。对于所有样本X及其标签Y,子网络搜索的目标是找到准确率最高的子网络Sp。p∈RNblock是一个二进制向量,表示子网络的修剪设置。如果第i个块被修剪,pi被设置为1。我们使用遗传算法来解决这个问题。
在搜索过程中,我们获得了一个具有指定数量剪枝块的子网络,而其他块则与基线模型保持相同。
3 子网络训练
我们需要训练前一步中获得的最佳子网络以恢复其准确性。与直接训练子网络不同,我们的方法采用渐进训练策略,通过微调子网络平滑地从基线模型权重进行转移。子网络训练分为两个阶段。在第一阶段的训练过程中,我们采用渐进训练策略,通过一个控制因子λ逐渐从基线模型结构转移到剪枝子网络结构。在第二阶段,我们继续对剪枝子网络进行微调以获得更高的准确性。
4 子网合并
在子网训练完成后,我们得到一个部分激活层被替换为Identity层,一些LayerNorm层被替换为BatchNorm层和一些激活层,并且在修剪块末尾插入了BatchNorm层的子网。在这个阶段,我们采用重新参数化技术使子网变得更浅。
5 Depth Pruner on CNN
将我们的方法应用于CNN模型,首先我们应该找到基本块,并根据剪枝块设计相应的剪枝块。对于块中的激活层,我们将其替换为一个恒等层。对于归一化层,在块中不是BatchNorm层的情况下,我们将其替换为一个BatchNorm层,否则不需要进行任何操作。最后,我们在块的末尾插入一个带有BatchNorm层的激活层。如果在像ResNet34块这样的位置已经存在一个激活层,则只需要在块的末尾的激活层之后插入一个BatchNorm层。完成剪枝块后,进行超网训练、子网搜索、子网训练和子网合并过程的审查。我们将得到剪枝后的CNN模型。对于普通的CNN模型,我们可以定义一个包含两个或更多顺序卷积层的块。
6 Depth Pruner on Vision Transformer
我们还将我们提出的深度修剪器应用于Vision Transformer模型。Vision Transformer块通常具有多头自注意(MHSA)模块和包含两个全连接层的MLP模块。具体来说,我们以DeiT作为案例展示修剪流程。为了构建超网络,我们在原始模型的LN和激活(GELU)层旁添加了BN旁路,并在残差相加操作后插入了一个GELU&BN块。在子网络搜索和子网络训练之后,我们获得了子网络,其中修剪块的原始LN和GELU操作都被BN替代。在残差相加之后附加了一个GELU&BN块。然后,我们合并子网络以获得快速修剪模型。
实验与结果
我们展示了我们的深度修剪器的效果。首先,我们阐明了实验配置,并概述了将深度修剪器应用于CNN模型和视觉Transformer的过程。随后,我们将我们的结果与最先进的修剪方法进行了比较,以凸显我们方法的优越性。最后,我们进行消融研究,阐述了子网搜索和渐进训练策略对我们方法的影响。
我们对一系列CNN模型应用了深度修剪器,包括ResNet34 , MobileNetV2,ConvNeXtV1和Vision Transformer,以验证我们的方法的效率。我们使用四个GPU来训练我们的模型,总批量大小为256。在训练过程中,我们花费10个epochs来训练supernet,除了MobileNetV2和搜索最佳子网络。然后我们使用提出的渐进训练策略来训练这些子网络,并完成子网络合并以获得更高效的浅层模型。
ConvNeXtV1深度裁剪结果在ImgeNet上的性能
我们在AMD平台上测试了所有网络的加速比,以表中最慢的网络EfficientFormerV2-S2作为基准。我们将模型按准确度划分为不同的级别,并且我们的深度修剪方法在不同级别上实现了更高的准确度和相当的速度。
我们的方法在准确度和加速比方面均优于其他最先进的方法。我们提出的深度修剪器在只有1.9%的top-1准确度下降情况下,实现了1.26×的加速比。通过替换可合并模块并应用重新参数化技术,我们的方法可以缩小网络并带来真正的推理加速。
在本文中提出了一种统一的深度剪枝器,用于对高效的卷积神经网络(CNN)和视觉 Transformer (VT)模型进行剪枝,以减少模型的深度。作者的深度剪枝器包括4个步骤:超网络训练、子网络搜索、子网络训练和子网络合并。作者提出了一种新的模块剪枝方法和一种渐进训练策略,以更好地利用 Baseline 模型权重。在子网络合并时,使用重参化技术使子网络变得更浅并更快。作者对几种CNN模型和VT模型进行了UPDP。最先进的剪枝性能证明了UPDP的优势。在未来,作者将探索在更多VT模型和任务上应用UPDP。
#DreamDistribution
最近,来自南加州大学、哈佛大学等机构的研究团队提出了一种全新的基于提示学习的方法——DreamDistribution。多变!根据 参照物 无限生成!
这种方法可以让任何基于文字提示的生成模型(比如文生图、文生3D等),通过一组参照图片来学习对应的视觉属性共性和变化的文本提示分布。
论文地址:https://arxiv.org/abs/2312.14216
项目主页:https://briannlongzhao.github.io/DreamDistribution/
代码链接:https://github.com/briannlongzhao/DreamDistribution
不仅如此,学习到的提示分布可以用来生成近似于参照图片但更具多样性的图片,同时也支持调整分布的方差来控制多样性,结合多个提示分布生成混合概念图片等操作。
简单来说就是,仅用几张到十几张参照图片就能无限生成符合参照图片视觉效果并具有显著多样性的图片,轻松生成高达玩具模型多样新设计!
在3D生成模型上即插即用,还可以生成不同样式的跑车,建筑等:
同样支持类似于Textual Inversion,DreamBooth的文本引导编辑能力:
在3D生成上同样具有编辑能力:
在训练后支持控制生成的多样性的操作(第二行向下多样性增加):
支持多种概念的混合:
如下图所示,用户只需提供一组参照图片,比如不同的高达玩具图像,DreamDistribution就可以学习到一个对应于这一组图片的文本提示分布D*。
然后,在推理时通过从D*中采样,生成有足够变化和多样性的分布内输出图像。
此外,D*同样支持由文本引导的编辑来生成图像的变化,比如从Jumping D*的提示分布中采样即可生成跳跃姿势的高达玩具图片等等。
由于方法相对独立于下游的生成模型,学习到的提示分布同样适用于其他基于文本提示的生成任务。
除了展示中基于MVDream文本到3D生成作为例子,通过类似的提示修改也可生成具有适当变化的符合文本提示的3D模型渲染。
研究动机
在扩散生成模型日益蓬勃发展的今天,视觉生成的质量随之提高。
最先进的图片生成模型,如DALL·E,Imagen,Stable Diffusion,MidJourney等系列的文本生成图像模型,已经可以生成非常高质量的图片。
但同时,由于文本提示很难概括视觉概念上的细节,一些研究如Textual Inversion,DreamBooth等通过图片引导的方法追求模型生成的可控性以及个性化(personalization/customization)能力,即根据参照图片使生成模型理解一个个性化概念,如特定的一条宠物狗,一个特定的玩具,等等,再通过文字引导的提示编辑来生成基于个性化概念变化的图片。
然而,这些方法都着重于个性化一个具体的实例,但在很多情况下用户可能需要个性化一个更抽象的视觉特征并生成新的实例,比如生成设计风格一致的新高达玩具,或者相似画风的新卡通角色、新画作、等等。
如果使用已有的实例层面的个性化方法则很难生成不同于参照图片中给定的实例的图片,并且如果参考图片表述的并非同一个实例时,现有的实例层面的个性化方法则无法捕捉到参考图片中的变化,并在生成过程中导致有限的多样性。
方法概述
DreamDistribution训练方法主要分为三部分。
1. 基于类似Textual Inversion的提示学习的方法,只更新固定长度的提示嵌入,冻结其余下游文本编码器以及扩散模型的参数。
2. 在提示学习的基础上,引入了提示分布学习,即保存多个长度相同的文本提示嵌入,并在语义空间内用这些提示的语义特征去拟合一个提示的高斯分布。
同时为保证不同的提示在语义空间内的特征不同,引入了正交损失项(Orthogonal Loss)去最小化不同提示之间在语义空间内的的余弦相似度。
3. 为了优化整体分布,使用了重参数的方法进行多次可导采样,最后的损失函数为与训练下游生成模型相同的图片重建损失或噪声预测的均方损失函数,以及由超参数控制的正交损失函数。
推理时即可直接从学习到的文本提示分布中采样,作为下游生成模型的提示输入来输出图片。
如果需要进行文本引导的提示修改,则对所有提示在嵌入空间加同样的文本前缀或后缀,并重新在语义特征空间拟合高斯分布并采样作为下游生成模型的输入。
实验和结果
多样个性化生成
我们首先展示方法生成多样的个性化图像的能力。通过DreamDistribution生成的图像保留了训练图片中的共有视觉特征,同时与训练图片不同并且具有高多样性。
给定一组不容易用文本描述,但同时具有一些相似的视觉属性的训练图像(通常为5-20张),可以通过简单地从学习的分布中采样作为输入提示生成多样化的分布内图像。
因此,学习到的提示分布可以被视为与训练图像集相对应的描述的分布。
对比基线
我们与流行的实例级个性化方法进行比较,包括Textual Inversion、DreamBooth、Custom Diffusion。
我们还对比了使用简短描述作为文本提示的方法,以及使用详细描述的长文本作为提示的方法。这些比较强调了我们的方法在处理训练图像的相似性和多样性方面的能力。
使用相同的预训练Stable Diffusion版本2.1,并且使用基线工作中提供的默认超参数。
对比结果
下图显示了与基线方法的可视化比较。无论是短文本提示方法还是长文本提示方法,在视觉上都无法生成与参照图片相符的结果,因为预训练的生成模型所理解的名词很可能与参照图像有偏差,而且参照图像的细节很难用语言描述。
使用基线个性化方法生成的图像通常在所有示例中显示有限的变化或与参照图片不一致的视觉属性。这些方法都尝试将图片中的概念与单个固定的提示嵌入关联起来,所以在语义上固定的嵌入缺少变化。
尽管去噪的过程能够引入一些随机性,但由于训练目标是将各种不同的概念与同一个固定的嵌入建立联系,这将导致1)提示嵌入欠拟合并且仅学习到一个过于广泛的概念,比如物体类别的名词本身,从而导致生成出的图片与参照图片不符(如下图中间一列倒数第2,4行),或者2)拟合于训练图像的某一个特定的视觉上的组合,从而导致生成图像缺乏多样性(如下图左列倒数第2,3,4行)。
通过使用多个提示模型和优化提示分布来建模多个概念,我们提出的方法能够产生更多样的外观,视角等实质性变化,例如左列最后一行。我们的方法还可以建模材质和背景信息,并生成颜色和姿态方面具有显著变化的新实例,如中间列示例中最后一行所示。
以及线条、整体风格等变化,并生成像右列中最后一行展示的新涂鸦创作。总体而言,DreamDistribution能够生成在颜色,视角、姿态、布局,细节设计等方面产生实质性的变化的图像,同时保持与参照图像相符的适当视觉属性。
质量和多样性评估
我们在多样性和质量方面进行了定量评估,在包括真实物体照片(大尺度和小尺度)、著名艺术家的作品,具有显著风格的卡通人物插画以及在线社区插画师的作品等12种多样化图像场景上训练了DreamBooth、Textual Inversion、Custom Diffusion和DreamDistribution。
自动评估指标
我们使用既定的自动评估指标对生成图像进行评估,这些指标衡量了合成图像的多样性和真实图像之间的相似性。
在下表中,使用FID、CLIP-I和DINO等流行指标来评估图像质量。我们的方法在所有三个质量度量中均达到最佳质量,表明我们的方法能够创建更多满足提示要求的高质量图像。
此外,在表1中报告了Density和Coverage指标。Density衡量真实样本密集聚集的区域,而Coverage计算真实样本邻域中包含至少一个生成样本的比例,反映图片的多样程度。我们的方法在整体上实现了最佳的覆盖率和多样性。
人类评估
我们进行了基于12组参考图像的人工评估。对于每个参考图像集,我们分别使用基线方法和我们的方法生成图像,每种方法生成40张图像,总计1,920张图像。我们指派了10位独立的注释者。
对于这12个参考集中的每一个,注释者被要求根据他们对生成图像与参考集的相似性以及生成集内的多样性的感知,选择最倾向的生成图像集。
这些方法是匿名的,因此注释者不知道哪个生成集对应于哪种方法。我们收集了总共120个样本并统计了偏好的频率。与三个基线模型相比,我们生成的图像在多样性方面表现整体更好。
提示分布的可控性
下图展示了更多文本引导的提示编辑生成结果。
除了文本引导的提示编辑,学习到的提示分布还可以通过缩放方差来控制生成的多样性。如下图所示,当缩放系数γ变大时,生成的图像更具随机性,而缩放系数等于0时则生成图片的多样性和随机性显著下降。
不同的提示分布还可以通过按权重相加来得到生成具有混合概念的图片的效果,如下图所示,按不同比例混合中国山水画和梵高画作所对应的提示分布,可以生成多样的混合两种特征的图片。
应用于3D生成
由于方法独立于下游生成模型,学习到的提示分布可以即插即用于其他文字提示驱动的生成任务,譬如文字生成3D。
我们实验使用MVDream作为3D生成模型,结果显示在3D生成任务上同样可以体现多样性生成,以及文本提示编辑等功能。
总结
这项工作注重于不同于实例层面而时更广泛的图片集层面的个性化生成任务,从而使得生成的图像更具多样性、创新性,但同时符合参照图片的一些视觉属性。
工作还有一些不足,比如生成效果高度依赖于训练图片的质量和多样性,并且在3D生成上的结果还有提高空间。
研究人员希望未来能有办法将方法优化得更鲁棒,同时提升在类似3D生成任务上的效果。更多细节请参考原文章。
参考资料:
https://briannlongzhao.github.io/DreamDistribution/
#Vision Mamba
在Transformer如日中天时,一个称之为“Mamba”的架构横冲出世,在语言建模上与Transformers不相上下,具有线性复杂度,同时具有5倍的推理吞吐量!一时之间,被给予厚望“下一代架构”~
华中科技大学王兴刚团队首次将“Mamda”里面引入到CV领域而得到Vim公开了,比DeiT精度更高、速度更快,还节省GPU显存
Vision Mamba 不是个普通模型。速度提升2.8倍,内存能省87%,号称「全面包围 Transformer」的 Mamba,推出不到两个月就有了高性能的视觉版。
本周四,来自华中科技大学、地平线、智源人工智能研究院等机构的研究者提出了 Vision Mamba(Vim)。
- 论文地址:https://arxiv.org/pdf/2401.09417.pdf
- 项目地址:https://github.com/hustvl/Vim
- 论文标题:Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model
最近,具有高效硬件感知设计的状态空间模型(State Space Models, SSM)曼巴,已显示出在长序列建模方面的巨大潜力。虽然基于SSM构建高效和通用的视觉骨干是一个有吸引力的方向。但是,由于视觉数据的位置敏感性、视觉理解所需要的全局上下文依赖性,表示视觉数据对于SSM而言是一项具有挑战性的任务。因此,我们提出了一个新的基于双向曼巴块(Vim)的通用视觉骨干,该模型通过位置嵌入标记图像序列并通过双向状态空间模型压缩视觉表示。在ImageNet分类、COCO检测和ADE20K语义分割任务上,Vim实现了与成熟ViT(如DeiT)相比更高的性能,同时显著提高了计算和内存效率。例如,与DeiT相比,在对分辨率为1248×1248的图像进行批量推理时,Vim快了2.8倍同时可节省86.8%的GPU内存。这些结果表明,Vim具有克服ViT处理高分辨率图像时的计算和内存限制的潜力,并有可能成为下一代视觉基础模型。
效果如何呢?在 ImageNet 分类任务、COCO 对象检测任务和 ADE20k 语义分割任务上,与 DeiT 等成熟的视觉 Transformers 相比,Vim 实现了更高的性能,同时还显著提高了计算和内存效率。例如,在对分辨率为 1248×1248 的图像进行批量推理提取特征时,Vim 比 DeiT 快 2.8 倍,并节省 86.8% 的 GPU 内存。结果表明,Vim 能够克服对高分辨率图像执行 Transformer 式理解时的计算和内存限制,并且具有成为视觉基础模型的下一代骨干的巨大潜力。
Mamba 的提出带动了研究者对状态空间模型(state space model,SSM)兴趣的增加,不同于 Transformer 中自注意力机制的计算量会随着上下文长度的增加呈平方级增长,由于 SSM 擅长捕捉远程依赖关系,因而开始受到大家追捧。
在此期间,一些基于 SSM 的方法如线性状态空间层(LSSL)、结构化状态空间序列模型(S4)、对角状态空间(DSS)和 S4D 都被研究者提出来,用于处理各种序列数据,特别是在建模远程依赖关系方面。
Mamba 将时变参数纳入 SSM 中,并提出了一种硬件感知算法来实现高效的训练和推理。Mamba 卓越的扩展性能表明它在语言建模方面是 Transformer 有前途的替代品。
然而,到目前为止,研究者还尚未在视觉任务中探索出通用的基于纯 SSM 的骨干网络。
受 Mamba 在语言建模方面成功的激励,研究者开始设想能否将这种成功从语言转移到视觉,即用先进的 SSM 方法设计通用且高效的视觉主干。然而,由于 Mamba 特有的架构,需要解决两个挑战,即单向建模和缺乏位置感知。
为了应对这些问题,研究者提出了 Vision Mamba (Vim) 块,它结合了用于数据依赖的全局视觉上下文建模的双向 SSM 和用于位置感知视觉识别的位置嵌入。
与其他基于 SSM 的视觉任务模型相比,Vim 是一种基于纯 SSM 的方法,并以序列方式对图像进行建模。与基于 Transformer 的 DeiT 相比,Vim 在 ImageNet 分类上取得了优越的性能。此外,Vim 在 GPU 内存和高分辨率图像的推理时间方面更加高效。
方法介绍
Vision Mamba (Vim) 的目标是将先进的状态空间模型 (SSM),即 Mamba 引入到计算机视觉。
Vim 块
原始的 Mamba 块是为一维序列设计的,不适合需要空间感知理解的视觉任务。Vim 块集成了用于视觉任务的双向序列建模,Vim 块如上图 2 所示。
Vim 块的操作算法如下所示。
架构细节
架构的超参数如下:
- L:块数
- D:隐藏状态维度
- E:扩展状态维度
- N:SSM 维度
遵循 ViT 和 DeiT,该研究首先采用 16×16 内核大小的投影层来获得非重叠 patch 嵌入的一维序列。随后直接堆叠 L 个 Vim 块。默认情况下块数 L 设置为 24,SSM 维度 N 设置为 16。为了与 DeiT 系列模型大小保持一致,该研究将小( tiny)尺寸变体的隐藏状态维度 D 设置为 192,将扩展状态维度 E 设置为 384。对于小(small)尺寸变体,该研究将 D 设置为 384,将 E 设置为 768。
实验
该研究在 ImageNet-1K 数据集上对 Vim 进行了基准测试。
图像分类
表 1 将 Vim 与基于 ConvNet、基于 Transformer 和基于 SSM 的骨干网络进行了比较。与基于 ConvNet 的 ResNet 相比,Vim 表现出更优越的性能。例如,当参数大致相似时,Vim-Small 的 top-1 准确率达到 80.3,比 ResNet50 高 4.1 个百分点。与传统的基于自注意力的 ViT 相比,Vim 在参数数量和分类准确率方面都有相当大的优势。与高度优化的 ViT 变体(即 DeiT )相比,VimTiny 比 DeiT-Tiny 高 0.9 个点,Vim-Small 比 DeiT 高 0.5 个点。与基于 SSM 的 S4ND-ViTB 相比,Vim 以减少 3 倍的参数实现了类似的 top-1 准确率。
图 1 (b) 和 (c) 比较了小型 Vim 和 DeiT 的 FPS 和 GPU 内存。随着图像分辨率的提高,Vim 在速度和内存方面表现出更好的效率。具体来说,当图像大小为 512 时,Vim 实现了与 DeiT 相似的 FPS 和内存。当图像大小增长到 1248 时,Vim 比 DeiT 快 2.8 倍,并节省 86.8% 的 GPU 内存。Vim 在序列长度上的线性扩展的显著优势使其为高分辨率下游视觉应用和长序列多模态应用做好了准备。
语义分割
如表 2 所示,Vim 在不同尺度上始终优于 DeiT:Vim-Ti 比 DeiT-Ti 高 1.0 mIoU,Vim-S 比 DeiT-S 高 0.9 mIoU。与 ResNet-101 主干网络相比,Vim-S 以减少近 2 倍的参数实现了相同的分割性能。
为了进一步评估研究方法在下游任务上(即分割、检测和实例分割)的效率,本文将骨干网与常用的特征金字塔网络(FPN)模块结合起来,并对其 FPS 和 GPU 内存进行基准测试。
如图 3 和图 4 所示,尽管该研究在主干网上附加了一个 heavy FPN,但效率曲线与纯主干网(图 1)的比较结果相似。
目标检测和实例分割
表 3 使用 Cascade Mask R-CNN 框架对 Vim-Ti 和 DeiT-Ti 进行了比较。Vim-Ti 超过 DeiT-Ti 1.3 box AP 和 1.1 mask AP。
下图为可视化结果:本文方法可以捕获图像中非常大的物体,这是 DeiT-Ti 等无法做到的。