读论文《OmniGen: Unified Image Generation》

news2024/9/25 14:51:38
OmniGen演示了在单一框架内执行各种图像生成任务的能力。此外,它还具有推理能力和语境学习能力。

论文地址:2409.11340v1 (arxiv.org)

项目地址:GitHub - VectorSpaceLab/OmniGen

项目目前还不完整,论文展现的通用性十分强大,就是不知道稳定性怎么样。

摘要

        大型语言模型 (LLM) 的出现统一了语言生成任务,并彻底改变了人机交互。然而,在图像生成领域,能够在单个框架内处理各种任务的统一模型在很大程度上仍未得到探索。在这项工作中,我们介绍了 OmniGen,这是一种用于统一图像生成的新扩散模型。与流行的扩散模型(例如 Stable Diffusion)不同,OmniGen 不再需要 ControlNet 或 IP 适配器等额外模块来处理各种控制条件。OmniGen 具有以下特点:1) 统一:OmniGen 不仅展示了文本到图像的生成功能,而且本身也支持各种下游任务,例如图像编辑、主题驱动生成和视觉条件生成。此外,OmniGen 可以通过将经典的计算机视觉任务转换为图像生成任务(例如边缘检测和人体姿势识别)来处理这些任务。2) 简单性:OmniGen 的架构高度简化,无需额外的文本编码器。此外,与现有的扩散模型相比,它更加用户友好,能够通过指令完成复杂的任务,而无需额外的预处理步骤(例如,人体姿态估计)并花费大量成本,从而显著简化了图像生成的工作流程。3) 知识转移:受益于统一格式的学习,OmniGen 可以有效地在不同任务之间传递知识,管理看不见的任务和领域,并展示出新颖的能力。我们还探讨了该模型的推理能力和思维链机制的潜在应用。

  1. 统一:不仅可以文本生成图像,还支持多种下游任务,如图像编辑、主题驱动生成和视觉条件生成。(这个准确率真的可以保证吗)
  2. 简单:架构简化,不需要额外的文本编码器。
  3. 知识迁移:通过统一格式学习,有效跨任务迁移知识,处理未见任务和领域。

 OmniGen

原则:1)通用性:接受任何形式的图像和文本输入以完成各种任务;2)简洁,避免过于复杂的结构设计和众多的附加组件。

网络架构:如图 2 所示,OmniGen 框架采用由变分自动编码器 (VAE)和预训练的大型转换器模型组成的架构。具体来说,VAE 从图像中提取连续的视觉特征,而 transformer 模型根据输入条件生成图像。在本文中,我们使用 SDXL的 VAE 并在训练期间将其冻结。我们使用 Phi-3 [1] 来初始化 transformer 模型,继承了它出色的文本处理能力。与需要额外编码器来预处理条件信息(例如剪辑文本编码器和图像编码器)的最先进的扩散模型不同,OmniGen 本身就对条件信息进行编码,从而大大简化了管道。此外,OmniGen 在单个模型中联合建模文本和图像,而不是像现有工作 [67; 68; 70; 63; 9] 那样使用单独的编码器独立建模不同的输入条件,这缺乏不同模态条件之间的交互。

OmniGen 的框架。文本被标记化为标记,而输入图像通过 VAE 转换为嵌入。OmniGen 可以接受自由格式的多模态提示,并通过整流方法生成图像。

输入格式:模型的输入可以是自由形式的多模态交错文本和图像。我们使用 Phi-3 的分词器来处理文本,无需任何修改。对于图像,我们首先使用具有简单线性层的 VAE 来提取潜在表示。通过将每个补丁线性嵌入潜在空间中,将其转换为视觉标记序列。按照 [50],我们将基于标准频率的位置嵌入应用于输入视觉标记,并使用与 SD3 [13] 相同的方法来处理具有不同纵横比的图像。此外,我们在将每个图像序列插入 t 之前,用两个特殊标记封装每个图像序列:“<img>”和“</img>”

注意力机制:修改了 LLM 中常见的因果注意力机制,将其与双向注意力集成,如图 2 所示。具体来说,我们对序列中的每个元素应用因果注意力,但在每个图像序列中应用双向注意力。这允许每个 patch 注意同一图像中的其他 patch,同时确保每个图像只能关注以前出现的其他图像或文本序列。

推理:在推理过程中,我们随机采样一个高斯噪声,然后应用流匹配方法来预测目标速度,迭代多个步骤以获得最终的潜在表示。最后,我们使用 VAE 将潜在表示解码为预测图像。默认推理步骤设置为 50。得益于注意力机制,OmniGen 可以像使用 kv-cache 一样加速推理,就像 LLMsby:存储前一个和当前的 key 和 va

训练策略
  • 训练目标:使用修正的流(rectified flow)来优化模型参数。模型被训练以直接回归给定噪声数据、时间步和条件信息的目标速度。
  • 训练管道:逐渐增加图像分辨率,使用 AdamW 作为优化器。

X2IDataset

在论文中,X2I数据集是为了训练和评估 OmniGen 模型而构建的大规模统一图像生成数据集。X2I 的含义是 "anything to image",即任何内容到图像,这个数据集涵盖了多种图像生成任务,并且将它们统一成一个格式以供模型学习。

1. 数据集构建目的

X2I 数据集旨在提供多样化的任务和数据类型,以支持 OmniGen 模型的训练,使其能够处理各种图像生成任务。这包括但不限于文本到图像的生成、图像编辑、主题驱动的图像生成以及视觉条件生成。

2. 数据集组成

X2I 数据集由以下几个部分组成:

2.1 文本到图像(Text to Image)
  • 数据来源:包括 Recap-DataComp、SAM-LLaVA、ShareGPT4V、LAION-Aesthetic、ALLaVA-4V、DOCCI、DenseFusion 和 JourneyDB 等。
  • 数据使用:早期训练阶段使用这些数据集来学习广泛的图像-文本匹配关系和多样化的知识。
2.2 多模态到图像(Multi-modal to Image)

这一部分的数据输入是任意交错的文本和图像。

  • 混合模态提示:例如图像编辑、人类动作、虚拟试穿和风格迁移等任务。
  • 视觉条件:使用 MultiGen 数据集学习更细粒度的空间控制功能,包括边缘检测、深度图、骨架、包围盒和分割等六种代表性视觉条件。
2.3 主题驱动图像生成(Subject-Driven Image Generation)
  • 基础数据集:GRIT-Entity 数据集,通过使用 GRIT 数据集的标注,结合 Grounding DINO 模型和 SAM 进行对象检测和分割,然后使用 MS-Diffusion 模型进行图像重绘。
  • 高级数据集:Web Images 数据集,使用自然图像中的知名个体,通过交叉验证策略筛选和标注图像。
2.4 计算机视觉任务(Computer Vision Tasks)

将经典的计算机视觉任务整合进数据集中,以增强模型的图像生成能力。

  • 低级视觉任务:例如去雨、去模糊、修复、着色等。
  • 高级任务:例如人体姿态估计、深度估计等。
2.5 少量样本到图像(Few-shot to Image)

构建了一个少量样本到图像的数据集,以激发模型的上下文学习能力。

3. 数据集规模和多样性

X2I 数据集包含了大约10亿张图像,覆盖了广泛的任务和条件,使其成为一个非常适合训练通用图像生成模型的大规模数据集。

4. 数据集对模型训练的影响

通过在 X2I 数据集上进行训练,OmniGen 模型能够学习到丰富的视觉和语言知识,这使得它能够在多种图像生成任务中表现出色,并且能够处理以前未见过的领域和任务。

X2I 数据集是 OmniGen 模型成功的关键因素之一,它为模型提供了大量的多样化数据来训练其多任务学习能力。

OmniGen 模型的训练数据示例。我们将所有任务的输入标准化为任意交错的图像文本序列格式,用作模型的提示符。占位符 image_i|表示提示中第 i 个图像的位置
(a) GRIT-Entity 数据集的构建过程图示。我们使用实例分割和重绘方法来获取大量数据。(b) 构建我们的 Web 图像数据集时使用的交叉验证策略的图示。对于人物 A 和人物 B 的合影,我们从人物 A 和人物 B 的单张照片中抽取了几张图像,并询问 MLLM 他们是否出现在合影中。仅当人员 A 和人员 B 的“是”比率都达到特定阈值时,才会保留组照片。然后,标记为 “Yes” 的单个图像用于构建具有相应组图像的数据对。

 

实验

作者在多个基准上评估了OmniGen模型的性能,包括:

1. 图像生成任务

  • 文本到图像:在GenEval基准上评估模型的文本到图像生成能力。
  • 图像编辑:在EMU-Edit数据集上评估模型的图像编辑能力。
  • 主题驱动生成:在DreamBench上评估模型的单一实体主题驱动生成能力。
  • 视觉条件控制:评估模型基于图像提示生成图像的能力。

2. 计算机视觉任务

作者还展示了OmniGen在各种计算机视觉任务上的性能,包括去雨、去模糊、修复和人体姿态识别等。

3. 进一步分析

  • 新兴能力:通过在X2I数据集上进行统一训练,OmniGen能够跨不同场景和任务迁移知识,从而在未见任务和领域上生成图像。
  • 推理能力:OmniGen展示了推理能力,可以通过分析图像内容和文本指令来识别和编辑图像中的特定对象。
  • 逐步推理:作者探索了将逐步推理方法应用于图像生成的可能性,通过模拟人类绘画过程逐步细化图像。

结论

OmniGen是第一个尝试通用图像生成模型的工作,尽管存在一些未解决的问题,但作者计划开源相关资源以促进该领域的进步。这篇论文提出了一个创新的统一图像生成模型,通过简化的架构和多任务学习,展示了在多个图像生成任务上的潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163861.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】Java中接口与内部类详解

目录 引言 一、接口&#xff08;Interface&#xff09; 1.1 接口的定义 1.1.1 接口的特点 1.2 接口的实现 1.3 接口的继承 1.4 接口的注意事项 1.5 代码示例 二、内部类&#xff08;Inner Class&#xff09; 2.1 内部类特点 2.2 成员内部类 2.2.1 对象的创建 2.…

基于SpringBoot社区疫情信息管理系统的设计和实现

文未可获取一份本项目的java源码和数据库参考。 选题的意义 保护好人民群众的基本安全&#xff0c;贯彻党的领导下中国一盘棋的基本准则。将病毒隔绝在外&#xff0c;信息系统的存在显得至关重要&#xff0c;应对新型冠状病毒肺炎疫情治理的实践背景。实时关注更新疫情动态&a…

开放式耳机哪个牌子的质量好?2024开放式蓝牙耳机排行榜前5强推荐!

​开放式耳机因其舒适的佩戴感和较小的耳朵损伤而广受好评。曾经让人头疼的漏音问题&#xff0c;随着科技的进步&#xff0c;已经有了显著改善&#xff0c;不再是个大问题。在拥挤的环境中&#xff0c;耳机音量过大不仅会打扰他人&#xff0c;也会让自己感到不适。因此&#xf…

双十一买什么?高性价比数码好物来袭,不心动都难!

​每年的双十一都是一场购物的狂欢盛宴&#xff0c;众多数码好物纷纷推出诱人的折扣。在这琳琅满目的数码产品中&#xff0c;电容笔无疑是一颗格外耀眼的 “星”。无论是学生党用于记录课堂笔记、撰写论文&#xff0c;还是绘画爱好者进行艺术创作、灵感挥洒&#xff0c;电容笔都…

linux -L16-linux 查看应用占用的资源top

linux 查看应用占用的资源top Targetsteps启动 top 命令排序进程&#xff1a;查看特定进程&#xff1a;过滤进程其他常用选项交互式帮助 Target linux 查看应用占用的资源top steps 在 Linux 系统中&#xff0c;top 命令是一个非常有用的工具&#xff0c;它提供了一个实时更…

springframework Ordered接口学习

Ordered接口介绍 完整路径&#xff1a; org.springframework.core.Ordered Ordered 接口是 Spring 框架中的一个核心接口&#xff0c;用于定义对象的顺序。这个接口通常用于需要排序的组件&#xff0c;例如 Spring 中的 Bean、过滤器&#xff08;Filters&#xff09;、拦截器…

SUSCTF2024-Redroid-出题笔记与解题思路

SUSCTF2024-Redroid-出题笔记与解题思路 Step1Step2Step3Step4 描述&#xff1a;题目要求使用安卓13/14系统真机 Step1 Java层的逻辑比较简单&#xff0c;两个Activity MainActivity读并验证password&#xff0c;正确即进入CheckActivity&#xff0c;同时会传递password pass…

铝壳电阻与普通电阻有什么区别?

铝壳电阻和普通电阻是电子元件中常见的两种电阻类型&#xff0c;它们在结构和性能上有一定的区别。铝壳电阻是具有金属外壳的电阻器&#xff0c;其外壳通常由铝合金制成&#xff0c;具有良好的散热性能。而普通电阻则没有金属外壳&#xff0c;只有一层绝缘材料包裹着电阻丝。 …

软件设计之JavaWeb(8)

软件设计之JavaWeb(8) 此篇应在MySQL之后进行学习: 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷全新JavaWeb教程&#xff0c;企业主流javaweb技术栈 资料可以去尚硅谷官网免费领取 此章节最好学完JDBC观看 学习内容&#xff1a; promiseA…

力扣面试经典150题——合并两个有序数组

目录 题目链接&#xff1a; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;合并数组排序 Java写法&#xff1a; 运行时间 C写法&#xff1a; 运行时间 时间复杂度和空间复杂度 解法二&#xff1a;双指针 Java写法&#xff1a; 运行时间 C写法&#xff1a; 运…

新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面

一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言&#xff0c;首先收集了10种中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;然…

024.PL-SQL进阶—游标

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

STM32 Modbus主从站实例程序-FreeRTOS

资料下载地址&#xff1a;STM32 Modbus主从站实例程序-FreeRTOS​​​​​​​ 基本设置 启用Freertos,添加任务 设置中断优先级 设置长生成MDK工程 工程里面添加Modbus库 修改main.c 修改freertos.c 编译下载到单片机,完美运行

黄奕前夫勇夺“全球金融圈奥斯卡”!与她离婚后,姜凯身价涨30倍

黄奕前夫勇夺“全球金融圈奥斯卡”&#xff01;与她离婚后&#xff0c;姜凯身价涨30倍 近日&#xff0c;小编被一则经济类新闻吸引。姜凯主理的凯资本Kai Capital荣获“2024年度全球最佳多策略对冲基金”。 这不是演员黄奕的第一任丈夫姜凯吗&#xff1f; 这个奖项可不一般。…

Ubuntu LLaMA-Factory实战

一、Ubuntu LLaMA-Factory实战安装&#xff1a; CUDA 安装 CUDA 是由 NVIDIA 创建的一个并行计算平台和编程模型&#xff0c;它让开发者可以使用 NVIDIA 的 GPU 进行高性能的并行计算。 首先&#xff0c;在 https://developer.nvidia.com/cuda-gpus 查看您的 GPU 是否支持CU…

html TAB切换按钮变色、自动生成table--使用函数优化结构

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

【专题】2024年中国白酒行业数字化转型研究报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37755 消费人群趋于年轻化&#xff0c;消费需求迈向健康化&#xff0c;消费场景与渠道走向多元化&#xff0c;这些因素共同驱动企业凭借数据能力来适应市场的变化。从消费市场来看&#xff0c;消费群体、需求、场景及渠道皆展现出与…

怎么制作线上报名表_解锁报名新体验

在这个数字化飞速发展的时代&#xff0c;每一次活动的举办都力求高效、便捷与个性化。线上报名表&#xff0c;作为连接主办方与参与者的桥梁&#xff0c;其重要性不言而喻。它不仅是信息收集的工具&#xff0c;更是品牌形象的展示窗口&#xff0c;能够直接影响参与者对活动的第…

用最新的C++技术,如何实现一个序列化工具库?

在现代C的发展中&#xff0c;新引入的语言特性为高效且易用的序列化和反序列化库的开发提供了强大的支持。我们今天一起来探索如何在现代C特性下写出更简洁、更易维护的序列化工具代码。 现有序列化库的挑战 传统的C序列化库&#xff0c;如Boost.Serialization和Cereal&#…

神经网络(四):UNet语义分割网络

文章目录 一、简介二、网络结构2.1编码器部分2.2解码器部分2.3完整代码 三、实战案例 一、简介 UNet网络是一种用于图像分割的卷积神经网络&#xff0c;其特点是采用了U型网络结构&#xff0c;因此称为UNet。该网络具有编码器和解码器结构&#xff0c;两种结构的功能如下&#…