Recognize Anything:一个强大的图像标记模型

简介: Recognize Anything是一种新的图像标记基础模型,与传统模型不同,它不依赖于手动注释进行训练

Recognize Anything是一种新的图像标记基础模型,与传统模型不同,它不依赖于手动注释进行训练;相反,它利用大规模的图像-文本对。RAM的开发过程包括四个关键阶段:

  • 通过自动文本语义解析获得大规模的无标注图像标签。
  • 结合标题和标注任务,训练一个自动标注的初步模型。该模型由原始文本和解析后的标签进行监督。
  • 利用数据引擎创建额外的注释并纠正不正确的注释。
  • 用处理过的数据重新训练模型,并使用更小但质量更高的数据集对其进行微调。

RAM在多个基准测试中表现出令人印象深刻的零样本性能,并且优于CLIP和BLIP。它的性能甚至超过了完全监督的方法。

Recognize Anything Model

Recognize Anything Model使用文本语义解析来提取图像标记,提供大量标记,而不需要昂贵的手动注释。RAM的整体架构类似于Tag2Text,包括三个关键模块:用于特征提取的图像编码器,用于标记的图像标签识别解码器和用于文本生成的文本编码器-解码器。

在训练阶段,识别头学习预测从文本解析的标签,而在推理阶段,它通过预测标签为图像标题提供更明确的语义指导,作为从图像到标签的桥梁。

RAM相对于Tag2Text的一个关键进步是引入了开放词汇识别。与Tag2Text只能识别训练中遇到的类别不同,RAM可以识别任何类别,从而扩大了它的实用性。

Open-Vocabulary

RAM的一个显著增强在于它将语义信息整合到识别解码器的标签查询中。这种方法可以让模型泛化到在训练阶段未见过的类别。RAM通过使用现成的文本编码器对标签列表中的单个标签进行编码,这样可以让文本标签查询具有语义丰富的上下文。而Tag2Text中的标签查询是随机可学习的嵌入,缺乏与未见类别的语义关系,因此仅限于预定义的可见类别。

在实现细节方面,RAM使用swing - Transformer作为图像编码器,因为它在视觉语言和标记领域的性能优于标准Vision Transformer (ViT)。文本生成编解码器由12层Transformer组成,标签识别解码器由2层Transformer组成。

RAM还利用CLIP现成的文本编码器通过提示集成生成文本标签查询。采用CLIP图像编码器提取图像特征,通过对图像-文本特征对齐,增强了模型对未见类别的识别能力。

模型的效率

在其训练阶段,RAM在分辨率为224的大规模数据集上进行预训练,然后使用较小的高质量数据集在分辨率为384的情况下进行微调。RAM的收敛速度很快,通常在不到5个epoch的时间内就可以收敛,这增强了有限计算资源下的可重复性。例如,对400万张图像进行预训练的RAM版本只需要1天的计算,而对1400万张图像进行预训练的最强版本只需要在8个A100 gpu上进行3天的计算。

在推理阶段,轻量级的图像标签识别解码器提高了RAM对图像标签的推理效率。从识别解码器中去除了自注意力层,不仅提高了效率还避免了标签查询之间的潜在干扰。所以RAM可以自动识别的任何类别和数量定制标签查询,增强其在各种视觉任务和数据集中的实用性。

数据和处理

RAM的标签系统遵循三个原则:

  • 经常出现在图像-文本对中的标签由于其在图像描述中的重要作用而被赋予了更多的价值。
  • 各种领域和上下文应该在标签中表示,包括对象、场景、属性和操作,这有助于将模型推广到复杂的、看不见的场景。
  • 标签的数量需要适度,以避免大量的注释成本。

RAM使用SceneGraphParser将其预训练数据集中的1400万个句子解析为标签,并进行了少量修改。然后手动选择出现频率最高的1万个标签。选择的标记涵盖了用于分类、检测和分割的许多流行数据集,除了ImageNet和OpenImages V6等少数数据集,为了标记不常见的类别,RAM还部分涵盖了通过使用公共api获得开源图像产生的标签。

RAM可以识别多达6449个固定标签,这已经远远超过Tag2Text。为了减少冗余,它还通过各种方法收集同义词,包括人工检查、参考WordNet、翻译和合并标签等。同一同义词组中的标签被分配相同的标签ID,这样标签系统中的标签ID为4585。

为了处理开源训练数据集中缺失和错误的标签,RAM还设计了一个自动数据引擎来生成额外的标签并纠正错误的标签。

在生成阶段,使用从这些标题中解析的标题和标记来训练基线模型,类似于Tag2Text中使用的方法。然后使用该模型来补充标题和标签,将400万图像数据集中的标签数量从1200万扩展到3980万。

在清洗阶段,ground - dino用于识别和裁剪所有图像中对应于特定类别的区域。然后基于k - means++对这些区域进行聚类,并删除与异常值10%相关的标签。没有使用基线模型预测特定类别的标签也被淘汰。这样可以通过预测区域而不是整个图像,可以提高标记模型的精度。

结果

在多标签分类、检测、分割和视觉语言模型方面,RAM与最先进的模型进行了比较。

多标签分类模型:虽然监督模型在特定领域表现出色,但它们很难推广到其他领域和未知类别。通才模型在所有领域都不能达到令人满意的准确性。RAM展示了广泛的覆盖范围和令人印象深刻的准确性,甚至在某些数据集上超过了监督模型,训练数据更少,但标签更多。它利用其开放词汇表的能力来识别任何常见的类别。

检测和分割模型:这些模型在具有有限类别的特定领域中表现出色,但由于计算开销高和泛化性能差,它们在较大的类别表现并不好。而RAM展示了令人印象深刻的开集能力,超越了现有的检测和分割模型,可以泛化更广泛的类别。

视觉语言模型:尽管它们具有开放集识别能力,但像CLIP和BLIP这样的模型的准确性低于标准,可解释性有限

RAM在几乎所有数据集中都明显超过这些模型,显示出卓越的性能。但是RAM页在罕见类的情况下表现不佳,这是由于它的训练数据集较小,并且在训练期间对这些类的强调较少。

消融研究

模型消融研究:主要发现如下:

  • 在训练中整合字幕和标注可以提高标注能力。
  • 开放集识别可以通过文本查询实现,但对训练中看到的类别影响不大。
  • 由于增加了模型训练的难度,扩展标签系统会对现有类别产生轻微影响。但是这样增强了模型对未见类别的覆盖和开放集能力。

研究表明

  • 添加更多的标签可以显著提高所有测试集的模型性能,突出了原始数据集中缺少标签的问题。
  • 清除某些类别的标记会略微提高OPPO-common和OpenImages-common测试集上的性能。
  • 将训练图像从4M扩展到14M,可以显著提高所有测试集的性能。
  • 使用更大的骨干网络只略微提高了openimages的性能(很少),甚至略微降低了常见类别的性能,作者将其归因于进行超参数搜索的资源有限。
  • 对从COCO Caption数据集解析的标签进行微调,显著提高了OPPO-common和OpenImages-common测试集上的性能。该数据集提供了全面的描述,近似于一套完整的标签系统。

限制

与CLIP一样,当前版本的RAM可以有效地识别常见的对象和场景,但在处理抽象任务(如对象计数)时遇到困难。它在细粒度分类(如区分汽车模型或识别特定的花卉或鸟类)中的性能也落后于零样本的特定任务模型。另外由于RAM是在开源数据集上训练的,因此它可能潜在地反映了这些数据集中存在的偏见。

论文项目地址:

https://avoid.overfit.cn/post/a8e9304fa5be47f7867aa10e267e0afb

作者:Andrew Lukyanenko

目录
相关文章
|
Unix Linux 文件存储
文件传输、文件挂载MOUNT:NFS、CIFS、ADB、SAMBA
文件传输、文件挂载MOUNT:NFS、CIFS、ADB、SAMBA
990 0
|
Shell 网络安全 虚拟化
XPipe:一款新型开源终端管理神器
XPipe 是一款创新的 Shell 连接中心和远程文件管理器,它能够让你从本地机器轻松访问整个服务器基础设施。这款工具运行在你已安装的命令行程序之上,无需在远程系统上进行任何额外配置。因此,如果你通常使用 CLI 工具(如 ssh、docker、kubectl 等)来连接服务器,你可以直接在 XPipe 上使用这些工具,极大地简化了操作流程。
677 15
XPipe:一款新型开源终端管理神器
|
人工智能 文字识别 算法
打造全场景、跨领域、多模态的AI工作流 | 开源图像标注工具 X-AnyLabeling v2.4.0 正式发布!
X-AnyLabeling是一款强大的辅助标注工具,集成了AI推理引擎和丰富功能,为图像数据工程师提供一站式解决方案。它支持图像和视频文件的自动标注,提供了包括矩形框、多边形在内的七种标注样式,适应多样化的训练场景需求。X-AnyLabeling内置了多种SOTA级AI模型,如YOLO、SAM系列等,并支持GPU加速和多种数据集格式的导入导出,确保高效的数据处理。此外,它还具备良好的跨平台兼容性,可在多种操作系统上运行,并提供详尽的帮助文档和社区支持,帮助用户轻松上手并解决使用过程中遇到的问题。
3178 2
打造全场景、跨领域、多模态的AI工作流 | 开源图像标注工具 X-AnyLabeling v2.4.0 正式发布!
|
人工智能 文字识别 测试技术
Florence-VL:微软和马里兰大学共同开源的多模态大语言模型
Florence-VL是由微软和马里兰大学共同开源的多模态大语言模型,结合生成式视觉基础模型Florence-2和深度-广度融合技术,实现视觉与语言理解的深度融合,适用于多种下游任务。
467 29
Florence-VL:微软和马里兰大学共同开源的多模态大语言模型
|
机器学习/深度学习 人工智能 自然语言处理
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
VideoWorld 是由字节跳动、北京交通大学和中国科学技术大学联合推出的自回归视频生成模型,能够从未标注的视频数据中学习复杂知识,支持长期推理和规划任务。
1443 8
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
|
人工智能 Linux iOS开发
AI超强语音转文本SenseVoice,本地化部署教程!
【9月更文挑战第7天】以下是AI超强语音转文本工具SenseVoice的本地化部署教程:首先确保服务器或计算机满足硬件和软件要求,包括处理器性能、内存及操作系统等。接着从官网下载适合的安装包,并按操作系统进行安装。配置音频输入设备和语言模型后,启动SenseVoice并测试其语音转文本功能。最后根据实际使用情况进行优化调整,并定期更新以获取最新功能。详细步骤需参照官方文档。
5867 1
|
负载均衡 算法 网络虚拟化
ensp中链路聚合配置命令
链路聚合(Link Aggregation)是结合多条物理链路形成逻辑链路的技术,提升网络带宽、增强冗余性和优化负载均衡。在高带宽、高可靠性及负载均衡需求的场景如服务器集群、数据中心等中广泛应用。配置包括手动和自动模式,手动模式下,如LSW1和LSW2,通过`int eth-trunk`、`trunkport`等命令配置接口和成员链路。自动模式下,如SW3和LSW4,使用LACP协议动态聚合,通过`mode lacp-static`和`load-balance dst-mac`命令设置。配置后,使用`dis eth-trunk`检查聚合状态。
2882 1
ensp中链路聚合配置命令
|
存储 Python
【Python】已解决:Python读取字典查询键报错“KeyError: ‘d‘”
【Python】已解决:Python读取字典查询键报错“KeyError: ‘d‘”
730 1