当前位置: 首页 > news >正文

51c视觉~合集34

我自己的原文哦~    https://blog.51cto.com/whaosoft/12207162

#图像数据增强库综述

10个强大图像增强工具对比与分析

在深度学习和计算机视觉领域,数据增强已成为提高模型性能和泛化能力的关键技术。本文旨在全面介绍当前广泛使用的图像数据增强库,分析其特点和适用场景,以辅助研究人员和开发者选择最适合其需求的工具。

数据增强的重要性

数据增强在深度学习模型训练中扮演着至关重要的角色,其重要性主要体现在以下几个方面:

  1. 增加数据多样性:通过对现有数据集进行变换,可以创造出更多样化的训练样本,使模型能够学习到更广泛的特征表示。
  2. 提高模型泛化能力:接触到更多样的数据变体,模型能够更好地应对实际应用中可能遇到的各种情况,从而提高其在未见数据上的表现。
  3. 缓解过拟合:增强后的数据集相当于增加了训练样本的数量,有助于减少模型对特定训练数据的过度拟合。
  4. 平衡数据集:对于类别不平衡的数据集,可以通过对少数类进行更多的增强来平衡各类别的样本数量。
  5. 模拟真实世界的变化:某些增强技术(如添加噪声、改变亮度等)可以模拟实际应用中可能遇到的各种情况,提高模型的鲁棒性。

在某些情况下,数据增强甚至可以成为训练流程中不可或缺的一部分。例如,在自监督学习方法中,如DinoV2视觉基础模型,数据增强被用作生成不同视角的正样本对,这是模型学习视觉表示的关键。

本文将详细介绍10个强大的图像数据增强库。这些库在不同的深度学习框架中被广泛使用,各具特色和优势。我们将逐一分析它们的功能、特点和适用场景,以帮助读者更好地理解和选择适合自己需求的工具。

1、Albumentations

Albumentations是一个高效的图像增强库,专为计算机视觉任务设计。它的主要特点包括:

  • 高性能:经过优化的实现,保证了快速的图像处理速度。
  • 丰富的转换选项:提供了大量的图像变换方法,包括几何变换、像素级操作和高级技术如弹性变换。
  • 灵活性:支持自定义增强流程,可以根据具体需求组合不同的转换。
  • 广泛的兼容性:可以与PyTorch、TensorFlow、Keras等主流深度学习框架无缝集成。
  • 多任务支持:适用于图像分类、语义分割、目标检测等多种计算机视觉任务。

Albumentations的这些特性使其成为研究和生产环境中的理想选择。它能够有效地增加数据集的多样性,同时保持高效的处理速度,这对于大规模数据集的处理尤为重要。

这个库我是极力推荐的,因为它非常方便,并且对于目标检测的目标框和分割掩码也可以同时进行增强处理。

2. Imgaug

Imgaug是另一个功能强大的图像增强库,特别适合用于研究环境。它的主要特点如下:

  • 多样化的转换:提供了广泛的图像变换方法,包括几何变换、颜色空间变换、天气效果模拟等。
  • 多类型标签支持:不仅支持图像增强,还能同时处理关键点(landmarks)、边界框和热图等多种类型的标注数据。
  • 随机化和确定性:支持随机增强和可重现的确定性增强,便于实验对比和调试。
  • 可视化工具:提供了便捷的可视化功能,有助于直观理解增强效果。

Imgaug的这些特性使其特别适合多任务学习和辅助学习场景,在这些场景中需要同时处理图像和多种类型的标注数据。它的灵活性使研究人员能够轻松尝试各种增强策略,从而找到最适合特定问题的方法。

3、Augmentor

Augmentor是一个设计用于提供基于管道的数据增强方法的库。其主要特点包括:

  • 管道式处理:允许用户创建一系列顺序的增强操作,形成一个完整的处理管道。
  • 磁盘操作:能够直接在磁盘上生成增强后的图像,适合处理大型数据集。
  • 简单API:提供了直观易用的接口,降低了使用门槛。
  • 基础转换:支持常见的图像变换,如旋转、翻转、缩放等。

Augmentor的设计理念使其特别适合那些需要快速设置简单增强流程的用户。然而,相比于一些更高级的库,它在可用的增强种类上相对有限。

4、 Kornia

Kornia是一个专为PyTorch设计的计算机视觉库,其在数据增强方面有以下特点:

  • GPU加速:直接与PyTorch张量集成,支持GPU加速的增强操作。
  • 可微分操作:所有操作都是可微分的,可以作为模型的一部分参与反向传播。
  • 广泛的功能:除了基本的图像增强,还包括几何变换、滤波器等高级计算机视觉操作。
  • PyTorch原生:完全集成到PyTorch生态系统中,使用方便。

Kornia的这些特性使其在需要高性能和可微分增强操作的场景中特别有用,例如在对抗训练或需要端到端优化的任务中。

5、Torchvision Transforms

Torchvision Transforms是PyTorch官方提供的图像处理和增强模块,具有以下特点:

  • PyTorch集成:作为PyTorch生态系统的一部分,与其他PyTorch组件无缝协作。
  • 基础功能:提供了常见的图像增强操作,如随机裁剪、翻转、颜色抖动等。
  • 易用性:API简单直观,易于在PyTorch项目中快速实现。
  • 实时增强:支持在数据加载过程中动态应用增强。

尽管Torchvision Transforms的功能相对基础,但它的简单性和与PyTorch的紧密集成使其成为许多PyTorch用户的首选工具。随着版本更新,其功能也在不断扩展。

6、AugLy

AugLy是由Meta(原Facebook)开发的多模态数据增强库,其特点包括:

  • 多模态支持:不仅支持图像,还包括音频、视频和文本的增强。
  • 社交媒体模拟:提供了模拟社交媒体常见效果的独特转换,如添加表情符号、应用滤镜等。
  • 可定制性:允许用户自定义增强操作和参数。
  • 跨平台:支持多种编程语言和环境。

AugLy的这些特性使其特别适合于处理社交媒体数据或需要多模态数据增强的项目。它能够帮助模型更好地适应真实世界的数据变化。

7、OpenCV

OpenCV虽然不是专门的数据增强库,但作为一个综合性的计算机视觉库,它提供了丰富的图像处理功能:

  • 全面的图像处理:支持广泛的图像处理操作,包括几何变换、滤波、色彩空间转换等。
  • 高度可定制:允许用户精确控制每个操作的参数。
  • 跨平台支持:可在多种操作系统和编程环境中使用。
  • 高性能:C++核心保证了高效的处理速度。

OpenCV的优势在于其灵活性和强大的功能集。对于需要精细控制图像处理过程或有特殊增强需求的项目,OpenCV是一个理想的选择。然而,相比于专门的增强库,使用OpenCV构建高效的数据增强管道可能需要更多的编程工作。

8、Nvidia DALI (Data Loading Library)

Nvidia DALI是一个专为GPU加速设计的数据加载和增强库,其主要特点包括:

  • GPU加速:能够在GPU上执行整个数据处理管道,大幅提高处理速度。
  • 大规模数据处理:针对大型数据集和高性能计算环境进行了优化。
  • 多模态支持:除图像外,还支持视频数据处理。
  • 深度学习框架集成:与PyTorch、TensorFlow等主流框架无缝集成。

DALI的设计理念是最大化GPU利用率,显著减少数据加载和预处理时间。对于处理大规模数据集的高性能计算任务,DALI可以提供显著的性能提升。

9、Clodsa

Clodsa是一个开源的图像增强库,具有以下特点:

  • 多任务支持:适用于图像分类、目标检测、语义分割和实例分割等多种计算机视觉任务。
  • 多种数据格式:支持处理各种常见的图像和标注数据格式。
  • 灵活的增强策略:允许用户自定义增强策略和操作。
  • 批量处理:支持对整个文件夹的图像进行批量增强。

Clodsa的设计使其特别适合需要在不同计算机视觉任务间切换的项目。它的灵活性使研究人员和开发者能够轻松应对各种数据格式和增强需求。

10、DataAugmentation

DataAugmentation是一个轻量级的Python图像增强库,其特点包括:

  • 简单易用:提供了直观的API,易于集成和使用。
  • 基础功能:支持常见的图像增强操作,如旋转、翻转、亮度和对比度调整等。
  • 轻量级:代码结构简单,适合快速原型开发和小型项目。

尽管DataAugmentation的功能相对基础,但它的简单性使其成为快速实验和小规模项目的理想选择。对于那些只需要基本增强操作的项目,DataAugmentation提供了一个无需复杂配置的解决方案。

总结

本文详细介绍了10个广泛使用的图像数据增强库,每个库都有其独特的优势和适用场景。从高性能的GPU加速解决方案如Nvidia DALI,到灵活多功能的Albumentations和Imgaug,再到专注于特定框架的Kornia和Torchvision Transforms,这些工具为不同需求的用户提供了丰富的选择。

选择合适的数据增强库对项目的成功至关重要。在选择时可以考虑以下因素:

  1. 性能需求:对于大规模数据集,可能需要考虑如Nvidia DALI这样的高性能解决方案。
  2. 任务类型:不同的计算机视觉任务可能需要不同的增强策略,如Clodsa这样支持多任务的库可能更适合。
  3. 框架兼容性:确保选择的库与你使用的深度学习框架兼容。
  4. 易用性vs灵活性:根据项目需求和团队经验,在简单易用(如DataAugmentation)和高度可定制(如OpenCV)之间做出权衡。
  5. 特殊需求:如AugLy适合处理社交媒体数据,Kornia适合需要可微分操作的场景。

数据增强作为提高模型性能的关键技术,选择合适的工具将为你的深度学习项目带来显著的效果提升。

#行人重识别与人群计数数据集大盘点

推动智能监控研究的利器

行人重识别(Person re-identification)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合,可广泛应用于智能视频监控、智能安保等领域。

本文将分享一些行人重识别、人群计数相关的开源数据集,希望能够帮助该领域的研究人员推进研究和应用。

行人重识别

DukeMTMC-reID

DukeMTMC-reID 是 DukeMTMC 数据集的一个子集,一个基于图片的行人重识别数据集。

DukeMTMC 数据集采集自杜克大学的 8 个摄像头,数据集以视频形式存储,具有手动标注的行人边界框。DukeMTMC-reID 数据集从 DukeMTMC 数据集的视频中,每 120 帧采集一张图像构成 DukeMTMC-reID 数据集,共 36,411 张图片。并提供了行人属性(性别/长短袖/是否背包等)的标注。

图片

  • 下载地址:https://github.com/sxzrt/DukeMTMC-reID_evaluation
  • 论文地址:https://arxiv.org/abs/1701.07717

另外,DukeMTMC-attribute 数据集基于 DukeMTMC-reID 数据集,加入了行人属性(如性别gender/是否背包bag等23种属性),提升了 DukeMTMC 行人重识别的效果。

图片

  • 下载地址:https://github.com/vana77/DukeMTMC-attribute

SYSU-30k

SYSU-30k 是弱监督行人重识别数据集,包含 30,000 个行人身份类别,大约是 CUHK03 数据集(1,300 个行人身份)和 Market-1501 数据集(1,500)的 20 倍,是 ImageNet(1,000 个类别)的 30 倍。SYSU-30k 包含 29,606,918 张图像。

SYSU-30k 数据集的特点:

  • 首个弱监督行人重识别数据集;
  • 行人身份数量和图像数量都是同期行人重识别数据集中最大的;
  • 更具挑战性,包括摄像机数量、真实的室内环境和室外场景和不精准的袋级别标注;
  • 其测试集不仅适用弱监督行人重识别问题,也是一个评估真实场景中全监督行人重识别的标准平台。

图片

  • 下载地址:https://github.com/wanggrun/SYSU-30k
  • 论文地址:https://arxiv.org/abs/1904.03845

PETA

PETA (PEdesTrian Attribute)是远距离行人识别数据集,包含了 8705 个行人,共 19000 张图像(分辨率跨度范围大,从 17x39 到 169x365 的大小都有)。每个行人标注了 61 个二值的和 4 个多类别的属性。

图片

  • 下载地址:https://mmlab.ie.cuhk.edu.hk/projects/PETA.html

Market-1501

Market-1501 数据集采集自清华大学校园的 6 个摄像头,一共标注了 1501 个行人。其中,751 个行人标注用于训练集,12936 张图片,750 个行人标注用于测试集,19732 张图片,共计 32668 张图片。

图片

  • 下载地址:http://www.liangzheng.com.cn/
  • 论文地址:https://openaccess.thecvf.com/content_iccv_2015/papers/Zheng_Scalable_Person_Re-Identification_ICCV_2015_paper.pdf

另外,Market1501-attribute 数据集基于 Market-1501 数据集,加入了行人属性(如性别/是否背包等27种属性)。

图片

  • GitHub:https://github.com/vana77/Market-1501_Attribute

拥挤人群计数UCF-CC-50

UCF-CC-50 是拥挤人群计数数据集,包含 63075 人,由50 个不同分辨率的图像组成。每个图像中的个体数在 94 - 4543 之间,有些图像包含非常密集的人群,平均包含 1280 人(极度密集)。

该数据集还包含了音乐厅、示威集会、体育馆等多种多样的场景。

图片

  • 下载地址:https://www.crcv.ucf.edu/data/ucf-cc-50/
  • 论文地址:https://www.crcv.ucf.edu/papers/cvpr2013/Counting_V3o.pdf

UCF-QNRF

UCF-QNRF 是同期最大的拥挤人群计数数据集(就标注数量而言),用于训练和评估人群计数和定位方法。包含 1535 张高清图像(分辨率高达2013x2902像素),分别分为 1201 张和 334 张图像的训练集和测试集。

与同类数据集相比,UCF-QNRF 包含多种场景、多个视角、多种光线及密度变化的大规模已标注人体,适用于训练深度卷积神经网络。此外它还包含了建筑、植被、天空和道路等世界各地的户外真实场景,对于研究不同地区人群密度具有重要意义。

图片

  • 下载地址:https://www.crcv.ucf.edu/data/ucf-qnrf/
  • 论文地址:https://www.crcv.ucf.edu/papers/eccv2018/2324.pdf

auDiovISual Crowd cOunting (DISCO)

auDiovISual Crowd cOunting (DISCO) 是视听人群计数数据集,由 1935 张图像和相应的音频片段以及 170270 个标注实例组成,每张图像都有一秒钟的音频和一张密度图。

图片

  • 下载地址:https://zenodo.org/records/3828468
  • 论文地址:https://arxiv.org/abs/2005.07097

#CD-FSOD

跨域小样本物体检测CDFSOD benchmark及CD-ViTO方法

本文主要是针对目前大多数跨域小样本学习方法均集中于研究分类任务而忽略了目标检测,因而提出了研究跨域小样本物体检测任务,文章中提出了一个用于算法评测的CD-FSOD数据集及用于衡量领域差异的style、ICV、IB数据集指标,对现有目标检测算法进行了广泛实验评估,以及基于优化一个在经典FSOD上达到SOTA的开放域物体检测器得到的CD-ViTO新方法。

1

论文解读系列断更很久了,感觉自己还是挺喜欢文字的,这次先从介绍我们自己发表在ECCV24工作开始恢复一下~

主要信息

- 文章:​​https://arxiv.org/pdf/2402.03094​​

- 任务:跨域小样本物体检测(Cross-Domain Few-Shot Object Detection,简称CD-FSOD)

- 标题:Cross-Domain Few-Shot Object Detection via Enhanced Open-Set Object Detector​

2 Motivation

首先介绍一个跨域小样本学习任务(Cross-Domain Few-Shot Learning,CD-FSL), CD-FSL解决的是源域与目标域存在领域差异情况下的小样本学习任务,即集合了小样本学习与跨域两个任务的难点问题:1)源域S与目标域T类别集合完全不同,且目标域T中的类别仅存在少量标注样本,例如1shot,5shot;2)S与T属于两个不同领域,例如从自然图像迁移到医疗图像。

大多数的现有方法均集中于研究分类问题,即Cross-Domain Few-Shot Classification, 但是同样很重要的物体检测任务(Object Detection,OD)却很少被研究,这促使了我们想要探究OD问题在跨域小样本的情况下是否也会遭遇挑战,以及是否会存在跟分类任务表现出不同的特性

与CD-FSL是FSL在跨域下的分支类似,跨域小样本物体检测(Cross-Domain Few-Shot Object Detection,CD-FSOD)同样也可以堪称是FSOD在跨域下的分支任务,所以我们先从经典的FSOD开始分析:大多数的FSOD方法都可以被粗略地划分为1)meta-learning based,典型方法包括Meta-RCNN;2)finetuning based,例如TFA,FSCE,DeFRCN,然而近期一个名为DE-ViT的开放域方法通过基于DINOv2构建物体检测器同时在FSOD以及开放域物体检测(OVD)上都达到了SOTA的效果,性能明显高于其他的FSOD方法,因此这引发了我们思考:

1. 现有的FSOD方法,尤其是SOTA的DE-ViT open-set detector能不能在跨域的情况下仍表现优异?

2. 如果不能,什么是难点问题,以及我们是否有办法能够提升open-set detector的性能?

我们先用以下的图来揭示一下两个问题的答案:

1. 左图: 哪怕是SOTA的open-set detector DE-ViT (绿色星形) 在跨域泛化的情况下性能也会出现急剧下降;

2. 左图: 我们基于DE-ViT搭建的CD-ViTO方法 (橙色星形) 能够使原本性能下降的模型得以进一步提升。

3. 右图: 相比于in-domain的小样本物体检测,跨域小样本物体检测通常会面临三个问题:1)目标域T的类间距离(ICV)通常较少;2)目标域的图像可能会出现前景与背景边界模糊(Indifinable Boundary,IB);3)目标域T得图像相交于源域S而言视觉风格(style)发生变化。

ICV、IB、Style也成为了我们用于衡量不同数据集在跨域下的特性。​

3 Contribution

首先总结一下我们在解答两个问题的过程中的主要工作及贡献:

3.1 benchmark, metrics, and extensive study:

为了回答问题1,即研究现有的物体检测器能不能泛化至跨域小样本物体检测任务中,

- 我们研究了CD-FSOD任务下的三个影响跨域的数据集特性:Style, ICV, IB

- 我们提出了一个CD-FSOD算法评测数据集,该数据集包含多样的style,ICV,IB;

- 我们对现有物体检测器进行了广泛研究,揭示了 CD-FSOD 带来的挑战。

3.2 new CD-ViTO method:

为了回答问题2,即进一步提升基础DE-ViT在CD-FSOD下的性能,我们提出了一个新的CD-ViTO方法,该方法提出三个新的模块以解决跨域下的small ICV, indefinable boundary, 以及changing styles问题。

Learnable Instance Features: 通过将初始固定的图像特征与目标类别之间进行对齐,通过增强特征可分辨程度来解决目标域ICV距离小的问题 。

Instance Reweighting Module: 通过给不同的图像设置不同的权重,使得严具有轻微 IB 的高质量实例分配更高的重要性,从而缓解显著的 IB 问题;

Domain Prompter: 通过合成虚拟领域而不改变语义内容来鼓励模型提升对不同style的鲁棒性。​

4 CD-FSOD数据集 & Extensive Study

4.1 CD-FSOD数据集

如下图所示为我们构建的CD-FSOD数据集,该数据集以MS-COCO作为源域S,以ArTaxOr、Clipart1K,DIOR,DeepFish,NEU-DET,UODD作为六个不同的目标域T;

我们也分析并在图中标注了每个数据集的Style,ICV,IB特征,每个数据与数据之间也展现了不同的数据集特性。

所有的数据集都整理成了统一的格式,并提供1shot、5shot、10shot用于模型测评。

数据集更多的介绍,比如数据类别数,样本数等可以在论文中找到细节。

4.2 Extensive Study

我们对现有的四类目标检测器进行了实验,包括:

1)典型的FSOD方法: Meta-RCNN、TFA、FSCE、DeFRCN

2)现有的CD-FSOD方法: Distill-cdfsod

3)基于ViT的方法: ViTDeT-FT

4)开放域检测方法: Detic(-FT), DE-ViT(-FT) (其中DE-ViT是仅依靠视觉信息,Deti则依赖视觉-文本相似性)

其中“-FT”表示我们用目标域T的少量样本对方法进行了微调。

我们结合实验结果对这个任务以及相关方方法展开了详细的分析,主要有以下这几点结论:

1. 现有FSOD方法可以泛化到跨域问题吗?A:不能

2. 基于ViT的方法会比基于ResNet的方法好吗?A:看情况

3. 开放域方法能够直接用于应对CD-FSOD问题?A:不能

4. 开放域方法的性能可以进一步得到提升吗?A:可以

5. 不同的开放域方法是否呈现不同的特性?A:是的

6. Style,ICV,IB是如何影响domain gap的?A:在分类里影响巨大的style对于OD任务而言影响相对较少;ICV有较大影响但是可以被有效缓解;IB是这三者中最具挑战的。

(详细的分析就不在这里展开了,感兴趣的朋友可以去看看文章​

5 CD-ViTO 方法 & 主要实验

我们方法的整体框架结构图如下所示:

整体来看,我们的方法是基于DE-ViT搭建的(图中蓝色块), 我们首先将DE-ViT方法简化为图中所示的几个模块主要包括Pretrained DINOv2 ViT, RPN,ROI Align, Instance Features, Dection Head,One-vs-Rest Classification Head。DE-ViT的核心想法是利用DINOv2提取出来的视觉特征对query image boxes与support images中所构建出来的类别prototypes进行比较,从来进行分类和定位。

基于DE-ViT方法,我们提出了三个新的模块(图中黄色块) 以及finetune(图中火苗) 以搭建我们的CD-ViTO。如contribution章节所描述,每个模块都各自对应解决CD-FSOD下存在的一个挑战。

5.1 Learnable Instance Features

原本的DE-ViT首先利用DINOv2获取instance features,然后简单对同类特征求和的方式得到support的class prototypes。然而在面对目标域类别之间可能很相似的情况,直接使用这种预训练的模型所提取出的特征会导致难以区分不同类别。

因此我们提出将原本固定的特征设置为可学习参数,并通过结合finetune方法将其显式地映射到目标域类别中,以此增加不同类之间的特征差异程度,缓解ICV问题

我们对比了使用该模块前后的类间cosine相似性,结果说明我们的模块可以降低类间相似度,从而提升ICV。

5.2 Instance Reweighting Module

图像模糊边界的问题本身很难得到解决,这个模块的主要想法是通过学习可调整的权重给不同质量的样本赋不同的权重,使得严重IB的图像被抑制,没有或者轻微IB地图像被鼓励

模块的设计如框架图右上所示,主要包含一个可学习的MLP。同样的,我们也对该模块做了可视化分析,我们按照所分配到的权重从高到低给图像排序,得到如下结果。快到开~发~板~商~城找测试设备,从图中可见,前后景边缘模糊的图像得到的权重要低于边缘清晰的图像。

5.3 Domain Prompter

Domain Prompter的设计主要是希望方法能够对不同的domain鲁棒,如框架图右下所示,在原有object prototype的基础上,我们额外引入数量为维度为D(等于prototype维度)的虚拟domains变量作为可学习参数。通过学习和利用这些domains,我们希望最终达到:

1) 不同domain之间相互远离,增加多样性 (domain diversity loss)

2) 添加不同domain至同一类别prototype所生成得到的两个变种仍为正样本,添加不同domain至不同类别prototype生成得到的两个变种为负样本 (prototype consistency loss)

两个loss与finetuning所产生的loss叠加使用进行网络的整体训练。

Finetuning:

作为简单但有效的迁移学习方法,我们也采用了在目标域T上对模型进行微调的思路,文章附录部分有提供不同finetune策略的不同性能表现,我们主方法里采用的是仅微调两个头部。

5.4 主要实验

我们在1/5/10shot上与其他方法进行了对比实验,实验说明经过优化后的CD-ViTO方法在大多数情况下都优于其他的对比方法,达到了对基本DE-ViT的有效提升,构建了这个任务的新SOTA。​

这篇文章里的所有数据集、代码、以及相关资源都已开源:

- code:​​https://github.com/lovelyqian/CDFSOD-benchmark​​

- project page:​​https://yuqianfu.com/CDFSOD-benchmark/​​

- 中文讲解视频:​​https://www.bilibili.com/video/BV11etbenET7​​

- 英文讲解视频:​​https://www.bilibili.com/video/BV17v4UetEdF​​

#AM-RADIO = CLIP + DINOv2 + SAM

英伟达发布新一代视觉基础模型

本文介绍了英伟达发布的新一代视觉基础模型AM-RADIO,该模型通过多教师蒸馏的方式融合了CLIP、DINOv2和SAM等视觉基础模型的能力,以获得强大的表征能力,并在零样本分类和开集实例分割等任务上实现了SOTA性能。

论文:https://arxiv.org/pdf/2312.06709

源码:https://github.com/NVlabs/RADIO

导读

AM-RADIO是什么?一张图先来感受它的魅力:

图片

简单来说,AM-RADIO 是一个由英伟达提出的一个视觉基础模型框架,其集成了多个预训练的视觉基础模型如 CLIP、DINOv2及SAM 的能力,以获得强大的表征能力,同时也以几乎可以忽略不计的额外成本实现了SOTA级别的零样本分类或开集实例分割性能。

如上图左边所示的PCA特征可视化结果,RADIO 模型可以处理任何分辨率和宽高比,并产生语义丰富的稠密编码;上图中间则展示了 RADIO 的框架图;右侧显示了在分类、分割和视觉语言建模任务上的基准测试。

背景

Visual Foundation Models,VFMs,即视觉基础模型是一个非常重要的概念,诸如 CLIP、DINOv2、SAM 这样的 VFMs 通过不同的目标进行训练,已逐渐成为许多下游任务的核心。

例如,CLIP 这样的预训练视觉语言模型在不同的下游视觉任务上展现了强大的零样本泛化性能。这些模型通常使用从网络收集的数百上千万图像-文本对进行训练,并提供具有泛化和迁移能力的表示。因此,只需通过简单的自然语言描述和提示,这些预训练的基础模型完全被应用到下游任务,例如使用精心设计的提示进行零样本分类。

图片

除了此类大型视觉语言基础模型外,一些研究工作也致力于开发可以通过视觉输入提示的大型基础模型。例如,最近 meta 推出的 SAM 能够执行与类别无关的分割,给定图像和视觉提示(如框、点或蒙版),指定要在图像中分割的内容。这样的模型可以轻松适应特定的下游任务,如医学图像分割、视频对象分割、机器人技术和遥感等。

图片

最后,像 DINOv2,这种用于在大型图像数据集上预训练图像编码器,以获得具有语义的视觉特征。这些特征可用于广泛的视觉任务,无需微调即可获得与有监督模型相当的性能。

图片

本文发现,尽管它们在概念上存在差异,但这些模型可以通过多教师蒸馏有效地合并成一个统一模型,称为Agglomerative Model – Reduce All Domains Into One,AM-RADIO,即聚合模型,旨在将所有领域缩减为一个。

这种整合方法不仅超越了单个教师模型的性能,而且融合了它们的独特特征,如零样本视觉-语言理解、详细的像素级理解以及开放词汇分割能力。

此外,为了追求最硬件效率高的主干网络,本文在多教师蒸馏流程中评估了多种架构,使用相同的训练策略;最终得到的新框架其性能超过了此前的SOTA模型,并且至少比教师模型在相同分辨率下快6倍,同时也在各大视觉任务取得了非常不错的性能表现。

方法

如上所述,本文提出一个框架,旨在通过多教师蒸馏从零开始训练视觉基础模型。这种方法的核心思想是利用多个已经在不同领域或任务上表现优异的教师模型来共同训练一个新的模型,这个新模型将集成所有教师模型的独特属性。

在选择的教师模型方面,作者选定了 CLIP、DINOv2 和 SAM 这三个主流的视觉基础模型,因为它们在各自的领域(如图像-文本匹配任务上,自监督学习任务上,开集分割任务)上都展现出了SOTA性能。

在训练过程中,本文没有使用额外的标签信息,而是将ImageNet、LAION-400M和DataComp1B等数据集中的图像作为训练数据。这样的做法使得模型能够在没有明确标签指导的情况下学习到图像的丰富表征。

为了评估模型的性能,作者采用了一系列度量标准,涵盖了图像级推理、像素级视觉任务、大型视觉-语言模型以及SAM-COCO实例分割等多个方面。

图片

AM-RADIO: 多教师统一蒸馏框架

Adaptor Heads

在这一步中,作者选择了简单的设计方案,使用了一个简单的2层多层感知机(MLP),中间夹杂着 LayerNorm 和 GELU 激活函数。Head 部分的输入维度是学生模型嵌入的维度,中间维度是所有教师模型中最大的嵌入维度,输出维度与特定教师模型相匹配。对于每个教师,作者使用了两个 head,一个用于提取整体特征向量,另一个则用于保留空间特征。

Distillation Dataset

图片

本文研究了不同数据集对下游指标的影响。虽然使用ImageNet-1K作为训练数据集可以获得最高的图像分类指标,但作者认为这并不能公平地衡量“零样本”性能,因为学生在评估域中直接学习到了教师的特征。因此,最终选择了 DataComp-1B 数据集。

Loss Formulation

图片

上面我们提到,这里训练的时候不使用原有的GT,因此是通过选择匹配来自每个教师视觉编码器的特征。特别是,AM-RADIO 区分了每个教师的 Summary 特征向量和 Spatial 特征向量。

需要注意的是,对于CLIP和DINOv2,这里 Summary 特征向量使用的是“类 token”;而对于SAM,则不匹配此部分特征。

实验发现,与 L1、MSE、Smooth-L1 相比,余弦距离损失能够产生更好的结果。此外,通过匹配教师的空间特征来监督模型的 spatial features 不仅对下游密集任务重要,而且提高了模型的总体质量。

图片

为此,对于匹配空间特征,作者采用了余弦相似性和Smooth L1的组合。

实验细节

本文架构本质上没有创新,只是对现有能力的充分利用,因此实验的细节部分算是比较有价值的,下面简单的总结罗列下,感兴趣的可以看下原文。

训练设置:

  • 使用AdamW优化器、1024的批量大小、余弦退火学习率计划和学习率基数为0.001。
  • 训练600k步,共查看614M个样本。
  • 最好的学生模型使用DFN CLIP ViT-H/14 378px、OpenAI CLIP ViT-L/14 336px、DINOv2 ViT-g/14 224px和SAM ViTDet-H 1024px作为教师。
  • 对学生和教师的输入应用随机缩放+裁剪。
  • 选择DataComp-1B数据集,因为它在作者可访问的网页规模数据集中质量最高。
  • 分两个阶段训练:首先用CLIP+DINOv2在256px训练300k步,然后用CLIP+DINOv2在432px加上SAM在1024px训练300k步。
  1. 学生模型架构:
  • 研究了两种学生模型架构设置:标准ViT架构以匹配教师架构,以及高效架构变体优先考虑GPU上的高吞吐量。
  1. 多尺度教师:
  • 学生模型选择ViT-H/16架构。
  • 为了匹配SAM特征的分辨率,学生模型输入预期分辨率为1024^2。
  • 由于CLIP和DINOv2教师是patch-14模型,学生输入选择432^2,这是patch-14模型378^2分辨率的有效分辨率。
  • 发现插值DINOv2特征不会降低结果,因此教师以224px运行,并上采样输出以匹配学生。
  1. 排名/教师分区:
  • 按照批次大小和输入分辨率将教师模型分组,然后将这些组分配给不同的GPU,以便每个GPU处理一致的批次大小和输入分辨率。
  • 对于包含SAM的训练设置,使用64个GPU,其中一半处理CLIP+DINOv2组,每个GPU的批次大小为32,输入分辨率为432,另一半处理SAM,每个GPU的批次大小为2,输入分辨率为1024,有效批次大小为1,152。对于CLIP+DINOv2训练,使用32个GPU,批次大小为1024。
  1. 多分辨率ViTs:
  • 许多学生模型使用ViT作为基础视觉架构。
  • 使用Cropped Position Embedding (CPE)增强,位置数等于128^2。
  • 即使在224分辨率下训练CLIP+DINOv2,也发现这种技术对摘要指标的影响可以忽略不计,但提高了语义分割线性探测的mIOU。
  1. 高分辨率ViT学生模型:
  • 在SAM中,使用ViTDet架构减少高分辨率下ViT模型的计算和内存负担。
  • 将这种架构改写为训练增强,从中采样窗口大小。
  • 发现高分辨率训练不稳定,因此应用谱重参数化和0.02的权重衰减以防止注意力熵崩溃。
  1. 学生/教师分辨率不匹配:
  • 当学生和教师通过处理堆栈以不同速率下采样图像时,输出特征向量的分辨率会不同。
  • 对于Lfeatures,使用双线性插值输出以匹配学生和教师特征之间的较大分辨率。

实验

图片

如上图所示,E-RADIO是一个高效的RADIO架构,通过融合卷积块和Transformer,以及局部和全局注意力机制,实现了对密集型预测任务的高性能和快速推理,相比全ViT架构效率显著提高。

图片

从表1的结果可以明显的看出基于 MetaCLIP 比 OpenCLIP 效果更好,DFN CLIP 则能取得最佳的零样本分类性能。DINOv2 则有助于语义分割这种任务。

此外,所设计的 ERADIO-L 模型比所有ViT模型都要快得多。同时,它在匹配吞吐量的情况下,在大多数指标上都明显优于 MetaCLIP,并且还实现了 DINOv2 和 SAM 中缺失的零样本能力。最终,完整模型 ViT-H/16 可以表现得与教师模型一样快,但在9项任务中有6项超过了它们,这足以证明所提出的蒸馏框架是高效的。

图片

上图展示了 RADIO 在分辨率增加时的“模式切换”。在图表中,显示了来自RADIO的DINOv2头在不同分辨率下的特征之间的均方误差(MSE),以及DINOv2在518px分辨率下实际产生的特征。通过将RADIO特征进行双线性插值以匹配DINOv2特征的分辨率。在720px时,可以看出误差突然增加,这对应于图像中完全的颜色空间变化。

总结

大多数视觉基础模型具有各自的优势,例如语言定位(CLIP)、表征(DINOv2)和细粒度分割(SAM),但也存在各自的局限性。通过蒸馏,可以将所有这些优势整合到一个模型中,该模型通常优于任何教师模型。

我们从实验中还观察到,更好的教师会产生更好的学生。此外,对于特征蒸馏损失。我们观察到完整的特征蒸馏对于提高教师在密集图像理解任务中的性能至关重要,例如在ADE20K上相对提高了18%。SAM与DINOv2的对比。

还有个有趣的结论,SAM 其实并不适合下游任务,而DINOv2在零样本和少样本任务中明显优于前者,这大概还是得益于其强大的表征能力。不过,u1s1,SAM 在检测边缘和分割对象方面的表现还是非常出色的,但在高层对象描述和结合多个对象语义方面表现不佳。

本文提出的 RADIO 能够产生高分辨率和低噪声的特征。然而,我们可以发现的一个问题是,RADIO 似乎具有潜在的“低分辨率”和“高分辨率”模式,这可能是由于CLIP+DINO和SAM目标之间的分阶段训练导致的,这算是一个缺陷。

#MIBench

 阿里通义实验室提出MLLM多图能力评估基准MIBench

本篇分享 EMNLP 2024 论文MIBench: Evaluating Multimodal Large Language Models over Multiple Images,阿里通义实验室提出MLLM多图能力评估基准MIBench。

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

数据链接:​​https://huggingface.co/datasets/StarBottle/MIBench​​

动机

近年来,多模态大模型 (MLLMs) 在视觉描述、问答、推理等多种视觉-语言任务上展现出卓越的性能,也涌现出一批基准数据集工作,如MME、MMBench、SEED-Bench等,用于评估MLLMs在不同细分场景的能力。

然而,大多数MLLMs工作仅关注模型在单张图像输入时的性能,相应的评估基准也局限在单图场景。少数面向多图的评估数据集,如Sparkles-Eval、Mantis-Eval等,所包含的评估维度和样本数量十分有限。

基于此,阿里通义实验室mPLUG团队提出一个新的大规模基准测试集MIBench,包含13K条高质量测试样本,以全面、细致地评估现有MLLMs在多图场景的能力。

图片

MIBench与现有MLLM评估基准对比

数据集设计

图片

MIBench多图场景及子任务概览

如图所示,MIBench涵盖多图指令、多模态外部知识及多模态上下文学习等3个典型多图场景的13个细分子任务:

  • 多图指令:包含对输入的多张图像进行比较、指代、推理等指令。按照指令具体的语义类型,划分为通用比较、细致差异、视觉指代、时序推理和逻辑推理等5个子任务。
  • 多模态外部知识:模拟多模态检索增强 (RAG) 场景,考察MLLMs从图文形式的外部知识中,获取与当前问题有关的信息的能力。按照外部知识的形式,划分为细粒度识别、富文本图片、视觉连接的文本知识和文本连接的视觉知识等4个子任务。
  • 多模态上下文学习:考察MLLMs基于若干演示 (demo) 回答视觉问题的能力。以往对多模态上下文学习 (ICL) 能力的评估,笼统地以模型在Caption/VQA等数据集上的性能随demo数量增加的变化来衡量。为了细致地评估多模态ICL对不同方面能力的影响,作者划分了封闭式VQA、开放式VQA、物体幻觉和任务学习等4个子任务。

数据集构建

数据集的构建包括图片来源、选项生成、知识采样、质量控制等方面。

  • 图片来源:为了获得高质量的评估样本,收集相关数据集作为图片来源,例如在多图指令场景使用MagicBrush、VrR-VG等数据集,在多模态外部知识场景使用SlideVQA、InfoSeek等数据集,在多模态上下文学习场景使用Mini-ImageNet、POPE等数据集。
  • 选项生成:采用多项选择的形式进行模型评估,为了使干扰项具有足够的挑战性,针对不同子任务,采用两种方案生成选项。第一种方案,根据任务特点设计相应的采样策略,从数据集的原始标注中采样与ground truth具有一定相似性和混淆性的其他标注作为干扰项;第二种方案,使用大语言模型如GPT-4,根据问题和ground truth生成一些错误的答案作为干扰项。
  • 知识采样:对于多模态外部知识场景,为了使题目具有挑战性,采用两个采样原则:一是设置的干扰项均在采样的外部知识中有对应信息;二是外部知识中的正确与错误信息之间存在关联性,避免因干扰信息与问题无关导致模型利用语言先验走捷径,从而对模型性能产生错误的评估。
  • 质量控制:设计两种自动化筛选策略,利用SOTA MLLMs,筛除去掉图像/外部知识后仍能正确回答的样本,以消除问题或选项本身存在的bias。进一步结合人工验证,以确保生成数据中没有重复或模棱两可的选项。
  • 评估策略:采用多项选择题形式,并循环设置正确选项,以消除LLM对选项位置偏好的影响。

图片

数据集子任务示例

模型评估与分析

图片

数据集设计和构建完成后,作者首先在多图指令和多模态外部知识场景,评估了多个开源的单图及多图MLLMs,以及GPT-4o等闭源模型的性能。通过对不同子任务测试结果的分析,可以看到:

  • 开/闭源性能差距:现有开源MLLMs相比GPT-4o,在多图指令和多模态外部知识场景的多数子任务上,仍然存在较大的性能差距。
  • 细粒度感知缺陷:开源模型在细致差异(SD)、富文本图片(TRI)等依赖细粒度感知能力的任务上,性能大幅落后于GPT-4o。
  • 多图训练的重要性:采用多图预训练的Idefics2模型,与采用多图指令微调的Mantis模型,在多数任务上的表现明显优于单图模型。
  • 多模态外部知识场景极具挑战:富文本图片(TRI)、视觉连接的文本知识(VTK)和文本连接的视觉知识(TVK)等任务对现有开源MLLMs提出了极大的挑战,即使对于GPT-4o也仍存在较大的提升空间。

图片

作者进一步分析了开源MLLMs在多模态外部知识场景的性能瓶颈,可以看到:

  • 对于富文本图片任务,即使去除外部知识中的干扰项,模型性能也仅取得了微弱的提升,而Idefics2模型采用图片切分进行高分辨率输入,能够获得显著的性能提升,说明低分辨率输入造成的信息损失是MLLMs在该任务上的性能瓶颈。
  • 比较视觉连接的文本知识(VTK)和文本连接的视觉知识(TVK)两个对称的子任务,可以发现去掉外部知识中的干扰项后,模型在VTK任务上取得了非常显著的性能提升,而在TVK任务上则提升较小。说明VTK任务的性能瓶颈,主要是模型无法很好地捕捉图片间的视觉关联。而TVK任务中,模型虽然能够较好地捕捉文本间关联,但对于视觉知识的理解和提取能力限制了模型的性能。

图片

此外,在多模态上下文学习场景,作者着重评估了OpenFlamingo、Idefics、MMICL等具备ICL能力的模型,从上图显示的实验结果可以看到:

  • 评估的MLLMs在封闭式VQA任务中,表现出较为显著的多模态上下文学习能力;
  • 在开放式VQA任务中,MLLMs的上下文学习主要由语言模态驱动;
  • 多模态上下文学习对缓解大模型的物体幻觉没有帮助,甚至呈现出副作用;
  • MLLMs基于示例学习任务的能力非常有限。

#VFIMamba

本文介绍了南京大学与腾讯合作的研究成果VFIMamba,这是一个应用于视频插帧任务的状态空间模型(SSMs),它通过交错排列首尾帧的token并进行多方向序列化建模,有效提升了视频插帧的全局动态时空建模效率和性能。VFIMamba在多个基准测试中取得了SOTA性能,尤其在高分辨率插帧方面表现出显著的性能提升,并减少了处理高分辨率视频时的运行时间和内存占用

本文介绍一下我们(南京大学媒体计算组)与腾讯PCG合作的,并在最近被NeurIPS 2024接收的视频插帧方向的工作:VFIMamba: Video Frame Interpolation with State Space Models (VFIMamba) 。本文为了实现高效的全局动态时空建模,VFIMamba结合视频插帧任务的特点,将状态空间模型(SSMs)第一次应用于视频插帧任务中。为了适应状态空间模型需要对输入序列化的特征,我们提出了将首尾帧的token交错排列的方式来让SSMs更好的建模两帧的时空信息。同时,为了更好地挖掘出SSMs模型在视频插帧任务的潜力,我们提出了基于课程学习思想的训练策略,通过逐渐增大训练集中的帧间运动幅度来增强SSMs对不同运动幅度下时空建模能力。在低分辨率插帧和高分辨率插帧的多个benchmark里,VFIMamba都取得了最好的性能。同时和之前的SOTA方法相比,VFIMamba在处理高分辨率插帧时的运行时间和占用内存都有明显的减少。

论文:​​https://arxiv.org/abs/2407.02315​​

  1. 引言
  2. 方法介绍

图1 模型结构图

整体结构

网络的整体结构如图1所示,我们首先通过一个轻量的特征提取器单独提取每一帧的信息。随后,利用本文提出的Mixed-SSM Block (MSB),将首尾帧拼接到一起并利用SSMs进行多方向的序列化的帧间时空建模。最后将得到的高质量的帧间特征用于中间帧的生成,其包含运动估计和外观修复两个部分。

如何将首尾帧融合为一个序列

因为SSMs仅限于处理一维序列,因此需要一种策略来扫描两个输入帧的特征图以进行帧间建模。在本文中,我们主要探索了不同的首尾帧融合方式,并给出了合理的解释。如图3,绿色表示首帧,红色表示尾帧。重新排列两个帧主要有两种方法:顺序排列(Sequential Rearrange),将帧串联成一个超图(Super Image);交错排列(Interleaved Rearrange),将两个帧的标记交错组合形成一个超图。无论采用哪种重新排列方法,按照之前的研究,我们可以在得到的超图的四个方向上进行扫描:水平、垂直以及它们各自的反向方向。然后,SSMs被用于独立建模每个方向,最后将得到的序列重新排列并合并。

图2 不同的首位帧融合方式

通过分析,我们可以将SSMs的序列化建模中任意两个token i, j之间的建模表示为:

图片

序列上不同token的相关系数

其中

图片

αi,j 表示序列中第 j 个标记 xj 对第 i 个标记 xi 的隐含注意力权重。与仅依据标记 xi (Qi) 和 xj (Kj) 的信息计算权重的注意力机制不同,SSMs 模型引入了 Hi,j,它包含了序列中第 i 个和第 j 个标记之间的上下文信息。基于这一结论,我们观察到在交错排列中,序列中任何一对标记的中间标记均来自它们的时空邻域。这意味着 Hi,j 结合了更多的局部建模,这对帧插值等低级任务是有利的。此外,在交错排列中,时空相邻标记之间的中间标记数量通常较少。相比之下,在顺序排列中,即使是时空相邻的标记,在序列中也会被许多不相关的标记分隔。这可能引入噪声,干扰这些标记之间关系的建模。在图2 中可以看到一个具体的例子,第一帧的第 6 个标记和第二帧的第 11 个标记之间的标记在两种排列方法中差异显著。总之,我们认为对于视频帧插值,交错排列方法更适合进行更好的局部空间敏感处理。我们的实验进一步验证了这一结论。​

基于课程学习思想的训练策略

尽管Mamba模型(S6)具有线性运算复杂度的全局感受野的优越特性,但通过适当的训练策略充分挖掘其潜力是更加至关重要的。目前,插帧算法主要采用两种训练策略:

  1. Vimeo90K Only: 大多数方法仅在 Vimeo90K 数据集上训练模型。尽管 Vimeo90K 提供了丰富多样的视频内容,但正如一些文章分析的那样,其数据集包含的运动幅度有限。这一限制妨碍了模型在大运动或高分辨率输入上的表现。

2. Sequential Learning: 为了缓解仅在 Vimeo90K 上训练的局限性,一些方法在 Vimeo90K 初步训练后,进一步在 X-TRAIN 数据集上训练模型,该数据集以大运动和高分辨率内容为特征。尽管这种方法成功增强了模型在高分辨率数据上的性能,但往往导致对从 Vimeo90K 获取的小幅运动建模能力的遗忘。

  1. 实验结果

关于低分辨率的性能比较如图3:

图3 低分辨率数据集性能比较

关于高分辨率下插帧的性能比较如图4:

图4 高分辨率下性能比较

可以从结果看出来我们提出的方法在不同分辨率的数据集中都取得了SOTA的性能,其中在高分辨率的性能提升更加明显。图5是和之前SOTA方法的FLOPs和占用内存的比较,我们的方法随着输入尺寸的增大,计算开销有了成倍的减少:

图5 FLOPs和占用内存的比较

图6是视觉对比,我们提出的方法能够更好地生成中间帧:

图6 可视化对比

关于SSMs的消融:作为本研究的核心贡献,SSMs模型在帧间建模中实现了计算效率与高性能的平衡。为了验证其有效性,如图7 所示,我们进行了实验,移除了 MSB 中的 SSM 模型(w/o SSM),将 MSB 替换为 RIFE 中的卷/ 使用EMA-VFI 中的局部帧间注意力/使用全局帧间注意力。我们观察到,仅移除 S6 模型导致参数减少了 0.7M,但在各个数据集上性能显著下降,凸显了 S6 的重要性。在与卷积和局部注意力的比较中,我们发现虽然由于多个扫描方向,S6 模型相对较慢,但其性能提升显著。与全局注意力相比,S6 不仅超越了其性能,还提供了更快的推理速度和更低的内存消耗。总之,与现有模型相比,S6 模型确实在计算效率与性能之间实现了良好的平衡。

图7 SSMs有效性的消融

关于首尾帧融合方式的消融:输入帧如何排列对于使用S6 模型进行帧间建模至关重要。正如在前面分析的那样, 我们认为交错排列更适合 VFI 任务,并在此提供实验验证。如图8 所示,我们在水平和垂直扫描中实验了两种不同的重新排列方法。结果表明,使用交错排列在所有数据集上始终能取得最佳性能,并且相对于其他方法有显著提升。这些发现进一步验证了我们的分析,即交错排列在 VFI 中提供了更优越的时空局部建模能力。

图8 token排列方式的消融

关于训练策略消融:我们提出了一种课程学习的训练策略,以充分利用S6 模型的全局建模能力。在图9 中,我们展示了不同学习策略在 Vimeo90K 和 X-TEST 数据集上随着训练轮次的性能表现。除了之前提到的 Vimeo90K Only 和 Sequential Learning 策略,我们还比较了一种基线方法,即将两个数据集直接混合进行训练(Mixed Learning)。结果表明,随着训练轮次的增加,Vimeo90K Only 策略在 Vimeo90K 上的性能持续提升,而在 X-TEST 上变化甚微。Sequential Learning 最终虽然提高了 X-TEST 的性能,但在 Vimeo90K 上的表现显著下降。Mixed Learning 在两个数据集上的性能逐渐提高,但未能达到竞争水平。然而,我们提出的课程学习策略在训练结束时在两个数据集上同时实现了最佳性能。

  1. 局限&未来展望

作为首个探讨在插帧任务中应用状态空间模型(SSMs)的研究,我们已取得非常高的性能,但仍然存在一些局限性。首先,尽管我们的方法比基于注意力的方法快得多,但仍未达到实时要求。因此,未来设计更高效的 SSM 将非常有价值。其次,在本研究中,我们主要关注 SSMs 在帧间建模中的作用,并未探讨其在帧生成模块中的应用。未来,直接使用 SSMs 生成中间帧也可能是一个值得探索的方向。

#FakeShield

北京大学提出基于多模态大语言模型的可解释图像篡改检测定位

本文提出北京大学提出的FakeShield框架,这是一个基于多模态大语言模型的可解释图像篡改检测定位系统,它能够检测图像的真实性、生成篡改区域的掩膜,并提供基于像素伪影和图像语义错误的合理解释。

随着生成式AI技术的快速发展,图像伪造和篡改变得越来越普遍,在真实性与安全性方面带来挑战。传统的图像伪造检测与定位(IFDL)方法存在检测原理未知和泛化性较差等问题。为了应对这些问题,本文提出了一种全新的任务:可解释的图像伪造检测与定位(e-IFDL),并设计了一个新颖的多模态伪造检测定位框架:FakeShield。如图1所示,与传统IFDL方法相比,FakeShield不仅能检测图像的真实性并生成篡改区域的掩膜,还可以基于像素伪影和图像语义错误等伪造线索提供合理的解释。此外,我们创建了多模态篡改描述数据集MMTD-Set,并结合数据域标签(domain tag)引导的可解释的伪造检测模块DTE-FDM与多模态伪造定位模块MFLM,以实现细粒度伪造检测与定位。实验结果显示,FakeShield在包含多种伪造方法的测试集上,展现了优越的性能以及出色的鲁棒性,泛化性。

图片

图1:(a)传统IFDL方法,(b)可解释的IFDL方法

MMTD-Set数据集构建:如图2所示,我们根据篡改方法,将篡改图片分为PhotoShop、DeepFake、AIGC-Editing三个数据域。基于现有的IFDL数据集,我们利用GPT-4o生成对于篡改图像的分析与描述,构建“图像-掩膜-描述”三元组,以支持模型的多模态训练。另外,针对不同篡改类型,我们设计了特定的描述提示,引导GPT关注不同的像素伪影和语义错误。

图片

图2:MMTD-Set数据集构建过程

FakeShield框架:如图3所示,该框架包括域标签引导的可解释伪造检测模块(Domain Tag-guided Explainable Forgery Detection Module,DTE-FDM)和多模态伪造定位模块(Multi-modal Forgery Localization Module,MFLM)两个关键部分。DTE-FDM负责图像伪造检测与检测结果分析,利用数据域标签(domain tag)弥合不同伪造类型数据之间的数据域冲突,引导多模态大语言模型生成检测结果及判定依据。MFLM则使用DTE-FDM输出的对于篡改区域的描述作为视觉分割模型的Prompt,引导其精确定位篡改区域。

图片

图3:FakeShield框架图

在实验结果方面,我们从检测,定位,解释三个方面来评价FakeShield的效果,其在多个IFDL测试集中表现出优越性能,定量结果如表1,表2,表3所示,定位性能的定性结果如图4所示。

表1:FakeShield与主流IFDL方法的定位性能比较

图片

表2:FakeShield与主流通用MLLM方法的解释性能比较

图片

表3:FakeShield与主流IFDL方法的定位性能比较

图片

图片

图4:FakeShield与主流IFDL方法的定位性能的定性比较

论文信息:

Zhipei Xu, Xuanyu Zhang, Runyi Li, Zecheng Tang, Qing Huang, Jian Zhang*. FakeShield: Explainable Image Forgery Detection and Localization via Multi-modal Large Language Models. arxiv preprint arxiv:2410.02761, 2024. (*张健为通讯作者)

arxiv链接:​​https://arxiv.org/abs/2410.02761​​

论文网站:​​https://zhipeixu.github.io/projects/FakeShield/​​

项目网址:​​https://github.com/zhipeixu/FakeShield​​

#StableAnimator

请问你能跟我一起跳舞吗?复旦&微软提出StableAnimator: 首个端到端的高质量ID一致性人类视频生成新框架!

扩散模型近年来在图像和视频生成方面取得了显著成功,极大地激发了图像动画领域的研究。尤其是人像图像动画利用生成模型根据一系列姿态序列动画化参考图像,从而合成可控的人体动画视频,这在娱乐内容创作和虚拟现实体验等应用中具有广泛前景,具体应用场景包括:

  1. 娱乐与影视:帮助动画师轻松制作高质量虚拟角色动画,显著提升工作效率。
  2. 游戏与元宇宙:为游戏角色和虚拟形象提供逼真的动作生成,让玩家体验更沉浸。
  3. 个性化内容创作:为短视频创作者、数字艺术家提供新的创意工具,实现精准的动态形象设计,例如StableAnimator依据当前流行舞蹈APT的动作生成了特定人物的APT跳舞视频,视频效果可以在Bilibili中查看

人像动画生成的核心在于:在参考图像的基础上,根据输入的动作序列生成动态视频,同时保持人物的身份信息(尤其是面部特征)。然而,现有方法在复杂动作变化场景下,常出现以下问题:

  1. 身份(ID)一致性差,面部区域容易因动作变化出现失真。
  2. 视频质量下降,最新的人像图像动画生成模型(MimicMotion和ControlneXt)依赖于第三方换脸工具(FaceFusion)对生成的视频进行后处理,导致视频整体质量下降。
  3. 空间与时序建模冲突,即使当前有很多针对ID一致性的图片生成模型,但是将这些来自图像生成的模型直接插入到视频生成模型中容易导致空间与时序建模冲突,根本原因是现有视频扩散模型在加入时间建模层后,空间特征的分布发生变化,而这些ID一致性的图片生成模型依赖于稳定的空间特征分布,时序建模导致的空间特征分布扰动会影响图片生成模型的性能急剧下降,从而造成ID保留与视频保真度之间的冲突。

为了解决上述问题,来自复旦、微软、虎牙、CMU的研究团队提出StableAnimator框架,以实现高质量和高保真的ID一致性人类视频生成。

  • 论文地址:https://arxiv.org/abs/2411.17697
  • 项目主页:https://francis-rings.github.io/StableAnimator/
  • 项目代码:https://github.com/Francis-Rings/StableAnimator
  • 项目Demo: https://www.bilibili.com/video/BV1X5zyYUEuD

方法简介

如下图所示,StableAnimator 基于先前工作的常用骨干模型 Stable Video Diffusion (SVD) 构建。用户输入的参考图像通过扩散模型经过三条路径处理:

  1. 通过冻结的 VAE 编码器转换为潜变量特征,潜变量特征被复制以匹配视频帧数,并与主要潜变量进行拼接。
  2. 通过 CLIP 图像编码器编码以获得图像嵌入,这些嵌入分别输入到去噪 U-Net 的每个交叉注意力块和StableAnimator的面部编码器中,用于调控生成的外观。
  3. 输入到 ArcFace以获得面部嵌入,ArcFace是一种人脸特征提取模型,这些嵌入随后通过StableAnimator的面部编码器进一步优化以实现更高的对齐度。优化后的面部嵌入随后被输入到去噪 U-Net 中。PoseNet 类似于AnimateAnyone中的结构,负责提取姿态序列的特征,这些特征随后被添加到噪声潜变量特征中。

在推理阶段,StableAnimator将原始输入视频帧替换为随机噪声,同时保持其他输入不变。StableAnimator引入了一种新颖的基于 Hamilton-Jacobi-Bellman(HJB)方程的面部优化方法,用于提升身份一致性并彻底摆脱对第三方后处理工具的依赖。该方法将 HJB 方程的求解过程整合到去噪过程中,HJB 方程的最优解会更新U-Net中的潜变量特征,迫使它在去噪过程中往能实现更高的ID一致性的方向进行分布移动。

StableAnimator具有三个核心技术点:

  1. 全局内容感知面部编码器(Global Content-aware Face Encoder):引入一种新型的面部编码器,使面部嵌入特征与图像整体布局进行深度交互,面部特征通过多层交叉注意力模块,与参考图像的全局上下文特征对齐,有效减少与身份无关的背景噪声,提升面部建模质量。
  2. 分布感知的身份适配器(Distribution-aware ID Adapter):针对扩散模型时序层对空间特征分布的扰动,提出一种分布对齐策略。通过计算面部特征和图像特征的均值与方差,确保两者在每个去噪步骤中逐步对齐,从而避免特征失真,适配器的设计允许面部特征与时序层的无缝结合,同时不损失视频的整体保真度。
  3. 基于Hamilton-Jacobi-Bellman (HJB) 方程的面部优化:该优化过程只在模型推理阶段触发,并且不会训练更新U-Net的任何模块,StableAnimator将HJB优化方程引入扩散模型的推理过程中,以增强面部质量,HJB方程通过动态系统中的最优变量选择原则,将面部特征优化与去噪过程并行进行,优化后的变量能够约束去噪路径,引导模型生成与参考图像一致的身份特征,显著减少细节失真。

图片

生成结果示例

  • 请点击访问项目主页(https://francis-rings.github.io/StableAnimator/)获取以上示例的高清原视频。

实验对比分析1.与SOTA方法的定性对比实验

,时长00:02

Disco、MagicAnimate、AnimateAnyone和Champ在面部/身体变形以及服装变化方面存在明显问题,而Unianimate准确地修改了参考图像的动作,MimicMotion和ControlNeXt有效保留了服装细节。然而,所有对比的模型均难以保持参考图像的身份一致性。

相比之下,我们的StableAnimator能够基于给定的姿势序列精确地动画化图像,同时保持参考身份信息的完整性,突显了我们模型在身份保持和生成精确、生动动画方面的优势。​

2.与SOTA方法的定量对比实验

图片

StableAnimator与当前的SOTA人像图像动画模型在TikTok数据集和Unseen100数据集进行定量对比,其中Unseen100数据集是作者额外在主流视频网站收集的100个视频,相比于以前的主流数据集TikTok数据集,Unseen100数据集含相对复杂的动作信息以及精细的主体外观。

此外,Unseen100 数据集中的一些视频中,位置和面部表情动态变化,例如摇头动作,使得保持身份一致性更具挑战性。值得注意的是所有模型均在StableAnimator的训练集上训练后再对Unseen100进行评估,以确保公平性。

对比实验结果如上表所示,CSIM衡量两个图像的面部嵌入的余弦相似度,可以发现StableAnimator在面部质量(CSIM)和视频保真度(FVD)方面均超过了所有对比模型,同时保持了较高的单帧质量。

具体而言,StableAnimator相比于最领先的对比模型Unianimate,在两个数据集上的CSIM分别提高了36.9%和45.8%,而未牺牲视频保真度和单帧质量。

3.与SOTA方法在长视频生成的对比实验:17

更多的对比实验可以参考原论文。

基于上述对比实验结果,StableAnimator相比于以前的SOTA方法可以生成更加高质量逼真的ID一致视频,StableAnimator在娱乐内容创作和虚拟现实体验方面可以给用户带来全新的高保真的人类形象动画体验。

#OuteTTS-0.2-500M

一键部署【OuteTTS-0.2-500M】开源语音合成模型

OuteTTS 是一个创新的开源文本到语音(TTS)项目,采用尖端的语言建模技术进行高质量的语音合成。该项目基于先进的 LLaMa 架构,使用 Oute3-350M-DEV 基础模型,拥有高达 3.5 亿参数。OuteTTS 引入了音频标记化、CTC 强制对齐技术和结构化提示创建等前沿音频处理方法,具备语音克隆功能,并支持用户自定义说话人的声音。它与 llama.cpp 和 GGUF 格式无缝兼容,广泛应用于有声读物、智能客服、语音导航等多种场景。

OuteTTS-0.2-500M 是对 v0.1 版本的改进版,相对于 OuteTTS-0.1 的主要改进:

  • 准确性提升:与之前的版本相比,提示跟随和输出一致性大幅提升
  • 自然语音:生成的语音更加自然流畅
  • 词汇扩展:基于超过50亿个音频提示令牌进行训练
  • 音色克隆:改进了语音克隆能力,具有更高的多样性和准确性
  • 多语言支持:新增对中文、日语和韩语的实验性支持

OuteTTS-0.2-500M模型已经在『社区项目』上线,无需自己创建环境、下载模型,一键即可快速部署,快来体验OuteTTS-0.2-500M带来的精彩体验吧!

  • Github:https://github.com/edwko/OuteTTS
  • Huggingface:https://huggingface.co/OuteAI/OuteTTS-0.2-500M
  • 项目入口:https://open.virtaicloud.com/web/project/detail/519096292362711040

视频教程:

,时长06:39

启动开发环境

进入​​OuteTTS-0.2-500M​​​项目主页中,点击​​运行一下​​​,将项目一键克隆至工作空间,『社区项目』推荐适用的算力规格,可以直接​​立即运行​​,省去个人下载数据、模型和计算算力的大量准备时间。

图片

配置完成,点击​​进入开发环境​​,根据主页项目介绍进行部署。

图片

使用方法

找到项目介绍&部署.ipynb,选中WebUI快速体验单元格,点击运行,等待生成local URL,右侧添加端口7860,浏览器访问外部访问链接,

图片

教程图1

项目使用方法:

图片

教程图2

图片

教程图3

示例展示

这还是湘宁尔第一次听丁岚唱曲,她觉得很奇妙

大语言模型是一种通过深度学习技术训练的神经网络模型,旨在理解、生成和操作自然语言。

➫温馨提示: 完成项目后,记得及时关闭开发环境,以免继续产生费用!

图片

#Florence-VL

Florence-VL来了!使用生成式视觉编码器,重新定义多模态大语言模型视觉信息

本文由马里兰大学,微软研究院联合完成。作者包括马里兰大学博士生陈玖海,主要研究方向为语言模型,多模态模型。通讯作者为 Bin Xiao, 主要研究方向为计算机视觉,深度学习和多模态模型。其他作者包括马里兰大学助理教授Tianyi Zhou , 微软研究院研究员 Jianwei Yang , Haiping Wu, Jianfeng Gao 。

  • 论文:https://arxiv.org/pdf/2412.04424
  • 开源代码:https://github.com/JiuhaiChen/Florence-VL
  • 项目主页:https://jiuhaichen.github.io/florence-vl.github.io/
  • 在线 Demo:https://huggingface.co/spaces/jiuhai/Florence-VL-8B
  • 模型下载:https://huggingface.co/jiuhai/florence-vl-8b-sft

Florence-VL 提出了使用生成式视觉编码器 Florence-2 作为多模态模型的视觉信息输入,克服了传统视觉编码器(如 CLIP)仅提供单一视觉表征而往往忽略图片中关键的局部信息。 然而 Florence-2 通过生成式预训练,将多种视觉任务(如图像描述、目标检测、文字识别和对象定位)统一为 sequence-to-sequence 结构,并通过 prompt 来完成多样化的视觉任务。在 Florence- VL 中,我们仅使用一个视觉编码器 Florence-2,但采用多个不同的 prompt,分别注重 caption,OCR 和 grounding,来获得不同层次的视觉表征。通过融合这些不同深度的特征,Florence-VL 实现了更全面的视觉理解。

图片

图片

引言

随着大规模语言模型(LLM)的快速发展,多模态大语言模型(MLLMs)成为视觉与语言任务的主流解决方案。然而,现有的视觉编码器(如 CLIP 和 SigLIP)虽然在整体语义提取方面表现出色,但存在明显不足:

  1. 缺乏细粒度理解:仅捕获图像的整体语义,忽略像素级和局部区域的细节。
  2. 任务泛化能力有限:难以适配 OCR、物体定位等需要特定视觉特征的任务。

Florence-VL 正是针对这一问题提出的解决方案。通过引入生成式视觉基础模型 Florence-2,Florence-VL 在保持高效训练的同时,能够灵活适配不同任务,弥补传统视觉编码器的缺陷。

在接下来的部分,我们将详细介绍 Florence-2 背后的技术原,Florence-VL 如何利用多任务视觉特征,以及我们提出的深度 - 广度融合策略如何实现视觉信息的高效整合。

背景介绍:Florence-2

传统视觉编码器如 CLIP 和 SigLIP 主要依赖对比学习来预训练,虽然能在跨模态任务中取得不错效果,但其输出的图像特征通常是单一的全局语义表示,难以捕获细粒度信息。这一缺陷使得这些模型在 OCR 文本提取、对象定位等任务上表现不佳。

Florence-2 则采用了生成式预训练的方式,将多种视觉任务统一到一个编码 - 解码框架中,能够根据不同任务提示生成多样化的视觉特征。

Florence-2 的主要流程包括:

  1. 视觉编码器 DaViT:将输入图像转换为基础视觉特征。
  2. 任务提示机制:通过不同的文本提示调整生成目标,从而提取任务特定的视觉信息。
  3. 编码 - 解码框架:结合视觉和文本特征,输出满足不同任务需求的结果。

通过这一架构,Florence-2 实现了全局语义到局部细节的视觉特征生成,为多模态任务提供了更全面的视觉表示。接下来我们将介绍如何使用 Florence-2 来构建 Florence-VL。

方法:深度与广度融合 (DBFusion)

Florence-VL 的核心创新在于我们提出的深度 - 广度融合(Depth-Breadth Fusion)策略,它充分挖掘 Florence-2 的生成式特性,将多任务提示和多层级特征有效结合,形成更丰富的视觉表征。

1. 广度:通过任务提示扩展视觉表征

不同的视觉任务需要不同的视觉信息。例如:

  • Captioning:用于理解图像整体语义,生成描述性文本。
  • OCR:提取图像中的文本内容,尤其适用于带有文字的图像。
  • Grounding:用于定位物体,捕捉物体之间的关系。

Florence-2 通过不同的任务提示,生成针对性强的视觉特征,从而实现视觉特征的 “广度” 扩展。

2. 深度:整合多层级的视觉特征

Florence-2 的不同深度层能够捕获从 low- level 到 high-level 的视觉特征,这种多层级特征的结合,保证了视觉编码器既能关注细节,又能捕获整体信息。

3. 融合策略:通道拼接实现高效整合

为了将多任务和多层级的特征高效融合,我们设计了通道拼接(Channel Integration)策略。具体做法是将不同特征按通道维度拼接,并通过 MLP 映射到语言模型的输入空间。这一策略的优势在于:避免了增加训练与推理时的序列长度以及最大程度保留了视觉特征的多样性与完整性。

图片

分析:多种视觉编码器的对比

为探讨不同视觉编码器(如 CLIP、SigLIP、DINOv2 和 Florence-2)和大语言模型的对齐能力,我们采用了实验来定量评估不同视觉编码器与语言模型的跨模态对齐质量。具体方法如下:对于每组图文配对 (image- caption pair),视觉编码器生成视觉特征,语言模型生成文本特征,我们通过可训练投影对视觉特征和文本特征进行维度对齐,并且通过对齐损失函数来评估视觉编码器和语言模型的对齐能力。实验结果表明,Florence-2 相较于其他视觉编码器显示出更优的跨模态对齐能力。

图片

实验验证

为了全面评估 Florence-VL 的性能,我们设计了一系列实验,涵盖通用视觉问答、OCR、知识理解等多模态任务。

1. 实验任务与数据

  • 通用视觉问答:如 VQAv2、GQA 等。
  • OCR 与图表任务:如 TextVQA 和 ChartQA,侧重文本提取与图表分析。
  • 视觉主导任务:如 CV-bench 和 MMVP, 侧重视觉信息理解。
  • 知识密集型任务:如 AI2D、MathVista 等,测试模型对基本知识的理解能力。

我们使用了经过筛选的 15M 图像描述数据 (detailed caption)与 10M 高质量指令微调数据进行训练,以确保数据的多样性和高质量。

图片

2. 实验结果

在实验结果中,Florence-VL 在多个多模态基准任务上展现出卓越的性能优势。特别是在 TextVQA 和 OCR-Bench 等文本提取任务上,得益于 Florence-2 生成式视觉编码器提供的细粒度 OCR 特征。此外,在通用视觉问答任务,视觉主导任务,知识密集型任务中,Florence-VL 通过深度 - 广度融合策略有效结合了多层级、多任务视觉特征,使得整体准确率相比传统 CLIP-based 方法有所提升。

3. 消融实验

为了证明采用 Florence-2 作为视觉编码器的优越性,我们使用 llava 1.5 的预训练和指令微调数据,并且采用和 llava 1.5 相同的训练策略。我们发现 florence-VL 显著优于 llava 1.5,  Florence-VL 在 TextVQA 和 OCR-Bench 等任务中表现突出,显示出生成式视觉特征在提取图像文字信息中的优势。

图片

总结

在本文中,我们提出了 Florence-VL,一种基于生成式视觉编码器 Florence-2 的多模态大语言模型。与传统依赖对比学习的视觉编码器(如 CLIP)相比,Florence-2 通过生成式预训练能够捕捉更丰富的视觉特征,提供多层次、多角度的图像表征。我们设计了创新的深广融合(Depth-Breadth Fusion)策略,通过整合不同深度层次和任务提示生成的视觉特征,将视觉信息全面映射到语言模型输入空间。通过广泛的实验,我们验证了 Florence-VL 在多种任务中的卓越表现,包括通用视觉问答、OCR、图表理解和知识密集型任务等。在未来,我们将进一步探索:例如自适应融合策略:根据任务动态调整深度与广度特征的平衡等。

[1]. https://arxiv.org/abs/2311.06242

#MV-Adapter

让多视角图像生成更轻松!北航和VAST推出MV-Adapter

本文的主要作者来自北京航空航天大学、VAST 和上海交通大学。本文的第一作者为北京航空航天大学硕士生黄泽桓,主要研究方向为生成式人工智能和三维视觉。本文的通讯作者为 VAST 首席科学家曹炎培和北京航空航天大学副教授盛律。

最近,2D/3D 内容创作、世界模型(World Models)似乎成为 AI 领域的热门关键词。作为计算机视觉的基础任务之一,多视角图像生成是上述热点方向的技术基础,在 3D 场景生成、虚拟现实、具身感知与仿真、自动驾驶等领域展现了广泛的应用潜力。

近期多视角图像生成工作大多在 3D 数据集上微调文生图模型或视频生成模型,但这些方法在兼容大规模基础模型和生成高分辨率图像方面面临诸多挑战,表现在难以支持更大基础模型(如 SDXL),难以生成超过 512 分辨率的多视角图像,以及高质量 3D 训练数据稀缺而导致的出图质量下降。总的来说,这些方法的局限性主要源自对基础模型的侵入性修改和全模型微调的复杂性。

因此,北航、VAST、上海交通大学团队推出面向通用多视图生成任务的第一个基于 Adapter 的解决方案(MV-Adapter)。通过高效的新型注意力架构和统一的条件编码器,MV-Adapter 在避免训练图像基础模型的前提下,实现了对多视图一致性和参考图像主体相关性的高效建模,并同时支持对视角条件和几何条件的编码。

总结来说,MV-Adapter 的功能如下:

  • 支持生成 768 分辨率的多视角图像(目前最高)
  • 完美适配定制的文生图模型、潜在一致性模型(LCM)、ControlNet 插件等,实现多视图可控生成
  • 支持文生和图生多视图(而后重建 3D 模型),或以已知几何引导来生成高质量 3D 贴图
  • 实现任意视角生成

图片

  • 论文题目:MV-Adapter: Multi-view Consistent Image Generation Made Easy
  • 论文链接:https://arxiv.org/abs/2412.03632
  • 项目主页:https://huanngzh.github.io/MV-Adapter-Page/
  • 代码仓库:https://github.com/huanngzh/MV-Adapter
  • 在线 Demo:
  • 单图生成多视图:https://huggingface.co/spaces/VAST-AI/MV-Adapter-I2MV-SDXL
  • 文字生成二次元风格的多视图:https://huggingface.co/spaces/huanngzh/MV-Adapter-T2MV-Anime
  • 贴图 Demo 敬请期待

MV-Adapter 效果演示

在了解 MV-Adapter 技术细节前,先来看看它的实际表现。

首先是文字生成多视角图像的能力。MV-Adapter 不仅支持训练时所采用的 SDXL 基础模型,还能适配经过定制训练后的文生图模型(例如二次元等风格模型)、潜在一致性模型(LCM)、ControlNet 插件等,大大提升了多视图生成的可控性和定制化程度,这是以往多视图生成模型难以做到的。

图片

MV-Adapter 还能支持单张图像到多视角图像的生成,其生成的结果与输入图像具有高度的 ID 一致性。

图片

下面是使用 MV-Adapter 从文字生成的多视角图像重建 3D 物体的结果,可以看到,因为 MV-Adapter 生成图像的多视角一致性高,其重建的几何结果也都较为出色。

图片

下面是使用 MV-Adapter 从单张图像生成多视角图像后,重建 3D 物体的结果。

图片

此外,MV-Adapter 还支持给已知 mesh 几何生成对应贴图,下面是从文字条件和单张图像条件生成的 3D 贴图结果,可以看到,其生成的贴图结果质量很高,且和输入的条件匹配程度高。

图片

MV-Adapter 还能轻易扩展至任意视角生成,下面是生成 40 个俯仰角从低到高的结果,可以看到,尽管视角数量提升,MV-Adapter 仍能生成多视角一致的图像。

图片

整体而言,MV-Adapter 做出了以下贡献:

  • 提出了面向通用多视图生成的第一个适配器解决方案,大大提高效率,且支持更大尺度的基础模型以获得更高的性能。
  • 引入了一个创新的注意力架构和通用的条件编码器,可以有效地对 3D 几何知识进行建模,并支持 3D 生成和纹理生成等多种应用。
  • MV-Adapter 可以扩展至从任意视点生成图像,从而促进更广泛的下游任务。 
  • MV-Adapter 提供了一个解耦学习框架,为建模新类型的知识(例如物理或时序知识)提供了见解。

多视图适配器 MV-Adapter

MV-Adapter 是一种即插即用的适配器,它可学习多视图先验,无需进行特定调整即可将其迁移到文生图模型及其衍生模型中,使其在各种条件下生成多视图一致的图像。在推理时,我们的 MV-Adapter 包含条件引导器和解耦的注意层,可以直接插入定制化的基础模型中,以构成多视图生成器。

图片

通用的条件引导器

为了支持多视角图像生成任务,我们设计了一个通用的条件引导器,能够同时编码相机和几何信息,从而为文生图模型提供不同类型的引导。相机条件化采用 “光线图”(raymap)表示,相机的位置和方向信息被精确编码,以便与预训练模型的潜在表示相匹配。几何条件化则通过全局的几何表示来引导生成,结合三维位置图和法线图的细节信息,捕捉物体的几何特征,有助于提高图像的纹理细节与真实感。条件引导器采用轻量级的卷积网络设计,有效整合不同尺度的多视角信息,确保模型能够在多个层级上无缝结合条件输入,进一步提升生成效果和适应性。

解耦的注意力层

我们提出了一种解耦的注意力机制,通过复制现有的空间自注意力层来引入新的多视角注意力层和图像交叉注意力层。这一设计保留了原始网络结构和特征空间,避免了传统方法对基础模型进行侵入式修改。在过去的研究中,为了建模多视角一致性,通常会直接修改自注意力层,这会干扰到模型的学习先验并需要进行全模型微调。而我们通过复制原有自注意力层的结构与权重,并将新层的输出投影初始化为零,从而确保新层可以独立学习几何信息,而不会影响原有模型的特征空间。这样一来,模型能够在不破坏原有预训练特征的前提下,充分利用几何信息,提升多视角生成的效果。

图片

为了更高效地整合不同类型的注意力层,我们设计了一种并行的注意力架构。在传统的 T2I 模型中,空间自注意力层与文本交叉注意力层通过残差连接串联在一起,而我们的设计则将多视角注意力层与图像交叉注意力层并行添加。这种并行架构确保了新引入的注意力层能够与预训练的自注意力层共享输入特征,从而充分继承原始模型的图像先验信息。具体来说,输入特征在经过自注意力层后,还会同时传递给多视角注意力和图像交叉注意力层,允许这些新层与原始自注意力层并行工作,并在学习多视角一致性和图像条件生成时,无需从零开始学习。通过这种方式,我们能够在不破坏基础模型特征空间的前提下,高效地扩展模型的能力,提升生成质量和多视角一致性。

多视角注意力机制的具体实现。为了满足不同应用需求,我们设计了多种多视角注意力策略。针对 3D 物体生成,我们使模型能够生成位于 0° 仰角的多视角图像,并采用行级自注意力。对于 3D 纹理生成,考虑到视角覆盖要求,除了在 0° 仰角生成四个均匀分布的视角外,我们还加入了来自上下方向的两个视角。通过行级和列级自注意力相结合,实现了视角之间信息的高效交换。而在任意视角生成任务中,我们则采用全自注意力,进一步提升了多视角注意力层的灵活性和表现力。这样的设计使得生成效果更加精细、丰富,适应了各种复杂的多视角生成需求。

图像交叉注意力机制的具体实现。为了在生成过程中更精确地引导参考图像信息,我们提出了一种创新的图像交叉注意力机制,在不改变原始 T2I 模型特征空间的情况下,充分利用参考图像的细节信息。具体而言,我们采用预训练且被冻结的文生图 U-Net 模型作为图像编码器,将清晰的参考图像输入该 U-Net,并设置时间步 t=0,提取来自空间自注意力层的多尺度特征。这些细粒度的特征包含了丰富的主题信息,通过解耦的图像交叉注意力层注入到去噪 U-Net 中,从而利用预训练模型学到的深层表示,实现对生成内容的精准控制。这一方法有效提升了生成质量,并使得模型在细节控制上更加灵活和精确。

实验结果

文章首先评估了多视图生成的性能,与现有方法进行对比。具体来说,文章评估了由文字生成多视图、由单张图像生成的多视图的质量和一致性,可以看到,MV-Adapter 的结果都优于现存方法。

图片

文章还评估了使用 MV-Adapter 生成 3D 贴图的表现。从下面的结果可以看出,MV-Adapter 不管是生成的质量,还是推理的速度,都达到 SOTA 水平。

图片

文章还对所提出的方法进行了消融实验,如下表所示,其验证了 MV-Adapter 训练的高效,以及其提出的并行注意力架构的有效性。

图片

此外,文章还在附录部分探讨了以下内容:

  • MV-Adapter 与 LoRA 的讨论和分析
  • MV-Adapter 原生的图像修复能力
  • MV-Adapter 的应用价值
  • 将 MV-Adapter 扩展至任意视角图像生成的实现细节

更多实验细节请参阅原论文。

相关文章:

51c视觉~合集34

我自己的原文哦~ https://blog.51cto.com/whaosoft/12207162 #图像数据增强库综述 10个强大图像增强工具对比与分析 在深度学习和计算机视觉领域,数据增强已成为提高模型性能和泛化能力的关键技术。本文旨在全面介绍当前广泛使用的图像数据增强库,…...

机动车油耗计算API集成指南

机动车油耗计算API集成指南 引言 在当今社会,随着机动车数量的持续增长和环保意识的不断增强,如何有效管理和降低车辆油耗成为了车主、车队管理者以及交通政策制定者共同关注的问题。为了帮助这些群体更好地理解和优化燃油消耗情况,本接口能…...

正也科技荣获“金石奖2024医药健康互联网优秀服务商奖”

近日,上海正也信息科技有限公司在赛柏蓝第五届医药金石奖颁奖典礼上荣获“金石奖2024医药健康互联网优秀服务商奖”。这一殊荣不仅体现了业内对正也科技在医药信息化领域卓越贡献的高度认可,更是对其持续创新与专业服务的充分肯定。 01 作为深耕医药行…...

Ubuntu搭建ES8集群+加密通讯+https访问

目录 写在前面 一、前期准备 1. 创建用户和用户组 2. 修改limits.conf文件 3. 关闭操作系统swap功能 4. 调整mmap上限 二、安装ES 1.下载ES 2.配置集群间安全访问证书密钥 3.配置elasticsearch.yml 4.修改jvm.options 5.启动ES服务 6.修改密码 7.启用外部ht…...

【2024/12最新】CF罗技鼠标宏分享教程与源码

使用效果: 支持的功能 M4 7发一个点HK417 连点瞬狙炼狱加特林一个圈 下载链接 点击下载...

jmeter 接口性能测试 学习笔记

目录 说明工具准备工具配置jmeter 界面汉化配置汉化步骤汉化结果图 案例1:测试接口接口准备线程组添加线程组配置线程组值线程数(Number of Threads)Ramp-Up 时间(Ramp-Up Period)循环次数(Loop Count&…...

SpringBoot3整合Knife4j

文章目录 1. 引入依赖2. yml配置文件3. 常用注解3.1 类级别注解3.2 方法级别注解3.3 参数级别注解3.4 模型类注解 4. 访问界面 1. 引入依赖 <!--swagger--> <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-j…...

Dhatim FastExcel 读写 Excel 文件

Dhatim FastExcel 读写 Excel 文件 一、说明1、主要特点2、应用场景 二、使用方法1、引入依赖2、Sheet 数据3、读取 Excel4、写入 Excel 一、说明 Github 地址&#xff1a;Dhatim FastExcel Dhatim FastExcel是一个高性能、轻量级的Java库&#xff0c;专门用于读取和写入Exce…...

精读 84页华为BLM战略规划方法论

这篇文档主要介绍了华为的BLM战略规划方法论&#xff0c;该方法论旨在帮助企业制定战略规划&#xff0c;并确保战略规划的可执行性和有效性。以下是该文档的核心知识点和重点需要关注的内容&#xff1a; 战略规划的定义&#xff1a;战略规划是企业依据企业外部环境和企业自身的…...

如何评估并持续优化AI呼入机器人的使用效果

如何评估并持续优化AI呼入机器人的使用效果 作者&#xff1a;开源呼叫中心FreeIPCC 随着人工智能技术的快速发展&#xff0c;AI呼入机器人在客户服务、技术支持等多个领域得到了广泛应用。这些智能系统不仅提高了工作效率&#xff0c;降低了运营成本&#xff0c;还显著改善了…...

基于.NetCore 的 AI 识别系统的设计与实现

目录 项目背景与概述 技术架构与选型 后端技术 前端技术 系统功能模块 登录注册 数据大屏 练题系统 AI模块 工具箱 个人中心 项目背景与概述 在当今数字化快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正逐渐渗透到各个领域&#xff0c;展现出…...

java list 和数组互相转换的一些方法

在Java中&#xff0c;List 和 数组&#xff08;Array&#xff09; 之间的转换是一个常见的操作。由于它们是不同的数据结构&#xff0c;Java提供了一些方法来在它们之间进行转换。我们会从List到数组和数组到List两种情况分别讨论。 1. List 转 数组 假设你有一个 List 类型的…...

【WiFi】WiFi6 5G 802.11ax 最大速率对应表

5GHz 频段 1x1 MIMO 速率 20MHz 信道宽度 MCS 0: 8.6 MbpsMCS 1: 17.2 MbpsMCS 2: 25.8 MbpsMCS 3: 34.4 MbpsMCS 4: 51.6 MbpsMCS 5: 68.8 MbpsMCS 6: 77.4 MbpsMCS 7: 86.0 MbpsMCS 8: 103.2 MbpsMCS 9: 114.7 MbpsMCS 10: 129.0 MbpsMCS 11: 143.4 Mbps 40MHz 信道宽度 …...

智能座舱进阶-应用框架层-Handler分析

首先明确&#xff0c; handler是为了解决单进程内的线程之间的通信问题的。我也需要理解Android系统中进程和线程的概念&#xff0c; APP启动后&#xff0c;会有三四个线程启动起来&#xff0c;其中&#xff0c;有一条mainUITread的线程&#xff0c;专门用来处理UI事件&#xf…...

颜色空间之RGB和HSV互转

参考文档&#xff1a; https://blog.csdn.net/shandianfengfan/article/details/120600453 定点化实现&#xff1a; #define FRAC_BIT 10 // 小数精度 #define MIN3(x,y,z)int min3(int a, int b, int c) {int ret_val a < b ? (a < c ? a : c) : (b < c ? b :…...

程序员之路:编程语言面向过程的特征

以下是面向过程编程语言所具有的一些典型特征&#xff1a; 一、以过程&#xff08;函数、子程序&#xff09;为核心组织代码 强调函数的作用&#xff1a; 在面向过程编程中&#xff0c;函数&#xff08;或子程序等不同语言中的类似概念&#xff09;是代码组织的关键单元。程序…...

matlab的一些时间函数【转】

看到就记下来&#xff0c;感觉挺好玩的。 原文&#xff1a;MATLAB-一些时间函数 - 简书 (jianshu.com) 注明出处了&#xff0c;原文是公开的&#xff0c;应该不算侵权。若有侵权请告知删除谢谢。...

OpenGL —— 2.6.1、绘制一个正方体并贴图渲染颜色(附源码,glfw+glad)

源码效果 C++源码 纹理图片 需下载stb_image.h这个解码图片的库,该库只有一个头文件。 具体代码: vertexShader.glsl #version...

【ETCD】【源码阅读】深入解析 EtcdServer.applyEntries方法

applyEntries方法的主要作用是接收待应用的 Raft 日志条目&#xff0c;并按顺序将其应用到系统中&#xff1b;确保条目的索引连续&#xff0c;避免丢失或重复应用条目。 一、函数完整代码 func (s *EtcdServer) applyEntries(ep *etcdProgress, apply *apply) {if len(apply.…...

【数据分析】数据分析流程优化:从数据采集到可视化的全面指南

目录 引言一、数据采集&#xff1a;高质量数据的起点1.1 数据采集的目标1.2 数据采集的常用方法1.3 数据采集的注意事项 二、数据清洗&#xff1a;确保数据质量2.1 数据清洗的重要性2.2 常见的数据清洗步骤 三、数据分析&#xff1a;从数据中挖掘有价值的洞察3.1 数据分析的目的…...

【华为OD-E卷-字符串重新排序 字符串重新排列 100分(python、java、c++、js、c)】

【华为OD-E卷-字符串重新排序 字符串重新排列 100分&#xff08;python、java、c、js、c&#xff09;】 题目 给定一个字符串s&#xff0c;s包括以空格分隔的若干个单词&#xff0c;请对s进行如下处理后输出&#xff1a; 1、单词内部调整&#xff1a;对每个单词字母重新按字典…...

Mybatis二级缓存

一、二级缓存的概念 MyBatis 的二级缓存是基于命名空间&#xff08;namespace&#xff09;的缓存&#xff0c;它可以被多个 SqlSession 共享。当开启二级缓存后&#xff0c;在一个 SqlSession 中执行的查询结果会被缓存起来&#xff0c;其他 SqlSession 在查询相同的语句&…...

C语言中的宏定义:无参宏与带参宏的详细解析

C语言中的宏定义&#xff1a;无参宏与带参宏的详细解析 在C语言中&#xff0c;宏定义是一种非常强大的预处理功能&#xff0c;通过#define指令可以定义一些常量或者代码片段&#xff0c;用来减少代码重复&#xff0c;提高可读性。本文将详细讲解无参宏与带参宏的使用方法&…...

unity 最小后监听键盘输入

当Untiy最小化后&#xff0c;游戏窗口不会立刻失去焦点&#xff0c;此时依然可以使用Input来获取按键&#xff0c;但是点击其他窗口后&#xff0c;就会失去焦点&#xff0c;此时系统会把按键输入分配到其他窗口里&#xff0c;此时要用windowsAPI获取按键输入&#xff0c;应对两…...

python使用Flask框架创建一个简单的动态日历

0. 运行效果 运行代码&#xff0c;然后在浏览器中访问 http://127.0.0.1:5000/&#xff0c;将看到一个动态日历&#xff0c;能够通过点击按钮切换月份。 1. 安装 Flask 首先&#xff0c;确保你已经安装了Flask。如果没有&#xff0c;可以使用以下命令安装&#xff1a; pip i…...

力扣438-找到字符串中所有字母异位词

力扣438-找到字符串中所有字母异位词 力扣438-找到字符串中所有字母异位词原题地址&#xff1a;https://leetcode.cn/problems/find-all-anagrams-in-a-string/description/ 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词的子串&#x…...

七、网络安全-企业数据脱敏

文章目录 前言一、数据脱敏方法二、企业脱敏方案1. 数据库脱敏方案2. 历史数据脱敏3. 具体实现 三、日志脱敏方案四、输出脱敏 前言 数据脱敏‌ 随着用户对个人隐私数据的重视和法律法规的完善&#xff0c;数据安全显得愈发重要。一方面可以加强权限管理&#xff0c;减少能够接…...

电子应用设计方案-62:智能鞋柜系统方案设计

智能鞋柜系统方案设计 一、引言 随着人们生活水平的提高&#xff0c;对家居用品的智能化需求也日益增加。智能鞋柜作为一种创新的家居产品&#xff0c;能够有效地解决鞋子的收纳、消毒、除臭和保养等问题&#xff0c;为用户提供更加便捷和健康的生活体验。 二、系统概述 1. 系…...

C++ 引用的基本用法

通过使用引用&#xff0c;可以创建该对象的另一个名字&#xff0c;而不会引入额外的内存开销。引用在函数参数传递、返回值以及避免拷贝大型对象时特别有用。 引用的基本用法 创建引用&#xff1a; 引用必须在创建时被初始化&#xff0c;且一旦被绑定到一个对象后&#xff0…...

全面解析 Golang Gin 框架

1. 引言 在现代 Web 开发中&#xff0c;随着需求日益增加&#xff0c;开发者需要选择合适的工具来高效地构建应用程序。对于 Go 语言&#xff08;Golang&#xff09;开发者来说&#xff0c;Gin 是一个备受青睐的 Web 框架。它轻量、性能高、易于使用&#xff0c;并且具备丰富的…...

element plus的table组件,点击table的数据是,会出现一个黑色边框

在使用 Element Plus 的 Table 组件时&#xff0c;如果你点击表格数据后出现了一个黑色边框&#xff0c;这通常是因为浏览器默认的焦点样式&#xff08;outline&#xff09;被触发了。如图&#xff1a; 你可以通过自定义 CSS 来隐藏这个黑色边框&#xff0c;代码如下&#xff1…...

三种国产大语言模型Python免费调用

基础三大模型&#xff0c;需要先去官方注册获得key&#xff1b;后续可以使用下列代码调用 1.腾讯 安装&#xff1a; pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python 实例&#xff1a; import jsonimport typesfrom tencentcl…...

Ansible playbook 详解与实战操作

一、概述 playbook 与 ad-hoc 相比,是一种完全不同的运用 ansible 的方式&#xff0c;类似与 saltstack 的 state 状态文件。ad-hoc 无法持久使用&#xff0c;playbook 可以持久使用。 playbook 是由一个或多个 play 组成的列表&#xff0c;play 的主要功能在于将事先归并为一…...

linux普通用户使用sudo不需要输密码

1.root用户如果没有密码&#xff0c;先给root用户设置密码 sudo passwd root #设置密码 2.修改visudo配置 su #切换到root用户下 sudo visudo #修改visudo配置文件 用户名 ALL(ALL) NOPASSWD: ALL #下图所示处新增一行配置 用户名需要输入自己当前主机的用户名...

linux-----数据库

Linux下数据库概述 数据库类型&#xff1a; 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;如MySQL、PostgreSQL、Oracle等。这些数据库以表格的形式存储数据&#xff0c;表格之间通过关系&#xff08;如主键 - 外键关系&#xff09;相互关联。关系型数据库支持复杂的…...

【Linux进程】进程间的通信

目录 1. 进程间通信 1.1 进程间通信的目的 2. 管道 2.1 什么是管道 2.2. 匿名管道 匿名管道的特性 管道的4种情况 联系shell中的管道 2.3. 命名管道 代码级建立命名管道 2.4. 小结 总结 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&…...

面试题整理4----lvs,nginx,haproxy区别和使用场景

LVS、Nginx、HAProxy&#xff1a;区别与使用场景 1. LVS&#xff08;Linux Virtual Server&#xff09;1.1 介绍1.2 特点1.3 使用场景 2. Nginx2.1 介绍2.2 特点2.3 使用场景 3. HAProxy3.1 介绍3.2 特点3.3 使用场景 4. 总结对比 在构建高可用、高性能的网络服务时&#xff0c…...

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义 开放词汇目标检测&#xff08;Open-Vocabulary Object Detection, OVOD&#xff09;是一种目标检测任务&#xff0c;旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别&#xff0c;而OVOD模型则具有识别“开放词汇…...

Python读写JSON文件

import jsondef writeJSONFile(self):with open(g_updateFilePath, "w" encodingutf-8) as fiel:json.dump(dictData, fiel, indent4, ensure_asciiFalse)fiel.close()def readJsonToDict(file):with open(file, r, encodingutf-8) as f: # 确保文件以 UTF-8 编码打…...

使用Python开发高级游戏:创建一个3D射击游戏

在这篇文章中,我们将深入介绍如何使用Python开发一个简单的3D射击游戏。我们将使用Pygame库来创建2D游戏界面,并结合PyOpenGL来进行3D渲染。这个项目的目标是帮助你理解如何将2D和3D图形结合起来,创建更复杂的游戏机制,包括玩家控制、敌人AI、碰撞检测和声音效果。 一、开…...

springboot 配置Kafka 关闭自启动连接

这里写自定义目录标题 springboot 配置Kafka 关闭自启动连接方法一&#xff1a;使用 ConditionalOnProperty方法二&#xff1a;手动管理Kafka监听器容器方法三&#xff1a;使用 autoStartupfalse结语 springboot 配置Kafka 关闭自启动连接 在Spring Boot应用程序中&#xff0c…...

Jenkins中添加节点实战

Jenkins是一个开源的自动化服务器,用于持续集成和持续交付(CI/CD)。为了提高构建和测试的效率,我们可以在Jenkins中添加节点(也称为代理或从属节点)。本文将详细介绍如何在Jenkins中添加节点,包括安装Java 11、Git、设置凭证、多种配置Jenkins Agent的方法以及验证。 &#…...

DL作业11 LSTM

习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 LSTM&#xff08;长短期记忆网络&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;旨在解决普通 RNN 在处理长序列时遇到的梯度消失和梯度爆炸问题。它通过设计多个门…...

用 Python 实现井字棋游戏

一、引言 井字棋&#xff08;Tic-Tac-Toe&#xff09;是一款经典的两人棋类游戏。在这个游戏中&#xff0c;玩家轮流在 3x3 的棋盘上放置自己的标记&#xff0c;通常是 “X” 和 “O”&#xff0c;第一个在棋盘上连成一线&#xff08;横、竖或斜&#xff09;的玩家即为获胜者。…...

构建MacOS应用小白教程(打包 签名 公证 上架)

打包 在package.json中&#xff0c;dependencies会被打进 Electron 应用的包里&#xff0c;而devDependencies则不会&#xff0c;所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …...

如何高效使用 Facebook Business Manager (商务管理平台)

在数字营销的浪潮中&#xff0c;Facebook Business Manager&#xff08;商务管理平台&#xff09;已成为众多企业管理社交广告活动、品牌资产和团队协作的核心工具。无论你是刚刚进入社交广告领域的小型企业主&#xff0c;还是经验丰富的大型品牌经理&#xff0c;掌握 Facebook…...

每天学习一个思维模型 - 损失规避

定义 损失规避&#xff08;Loss aversion&#xff09;&#xff0c;又称损失厌恶&#xff0c;指人们面对同样数量的利益和损失时&#xff0c;认为损失更加令他们难以忍受。损失带来的负效用为收益正效用的2至2.5倍。损失厌恶反映了人们的风险偏好并不是一致的&#xff0c;当涉及…...

Python知识分享第三十一天-Numpy和Pnadas入门

NumPy Numpy介绍 Numpy是Python中科学计算的基础包,它是一个Python库提供多维数组对象 各种派生对象(如掩码数组和矩阵),以及用于对数组进行快速的各种例程,包括数学 ,逻辑, 形状操作,排序,选择,I/O,离散傅里叶变换,基本线性代数,基本统计运算,随机模拟等等(Numpy的核心是nda…...

mlr3超参数Hyperparameter 自动寻找auto

底层还是根据你本来在R跑单独那一个机器学习的函数&#xff0c;例如randomForest::randomForest()&#xff0c;里面可以填入什么&#xff0c;然后跟你的实际数据取值范围去设个范围。然后用auto_tuner()函数对学习器的超参数自动调参 随机森林randomforest learner_rf <- …...

双臂机器人

目录 一、双臂机器人简介 二、双臂机器人系统的组成 三、双臂机器人面临的主要挑战 3.1 协调与协同控制问题 3.2 力控制与柔顺性问题 3.3 路径规划与轨迹优化问题 3.4 感知与环境交互 3.5 人机协作问题 3.6 能源与效率问题 3.7 稳定性与可靠性问题 四、双臂机器人…...