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。同样的,我们也对该模块做了可视化分析,我们按照所分配到的权重从高到低给图像排序,得到如下结果。从图中可见,前后景边缘模糊的图像得到的权重要低于边缘清晰的图像。快到whaoの开发板商城找测试设备

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目标之间的分阶段训练导致的,这算是一个缺陷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值