KOSMOS-G-图像文本结合控制生成

文章目录

  • 摘要
  • 引言
  • 算法
    • 多模态语言建模
    • 图像解码器对齐
    • 微调instruction
  • 实验
  • 结论

论文: 《Kosmos-G: Generating Images in Context with Multimodal Large Language Models》
github: https://github.com/microsoft/unilm/tree/master/kosmos-g

摘要

当前text-to-image、vision-language-to-image已经取得不错进展,但对于多张图输入仍有待探索。本文提出KOSMOS-G,使用多模态大语言模型(MLLM)能力处理上述挑战。通过文本模态作为anchor,将MLLM与CLIP输出空间对齐,通过组合引导指令进行调优模型。KOSMOS-G证明一种独特zero-shot多群体目标驱动生成能力;instruction微调不需要更改图像解码器,因此可无缝替换CLIP,容易与UNET技术相结合。KOSMOS-G尝试在图像生成中将图像看做一种语言输入。

引言

MLLM优势:
1、内在的视觉-语言对齐;
2、其结构支持视觉-语言交错输入,容纳多张图像;
本文贡献如下
1、使用文本模态作为anchor,将MLLM输出空间与CLIP对齐;
2、提出一种组合指令微调任务;
3、得分蒸馏技术使得KOSMOS-G可与UNet技术结合;

算法

KOSMOS-G结构如图2,训练过程分为三步:
1、多模态语言模型。在多模态语料库上,从头开始预训练MLLM。包括单模态数据,跨模态成对数据,交错的多模态数据;
2、图像解码对齐。在文本数据上训练AlignerNet,通过CLIP监督对齐KOSMOS-G输出空间与U-Net的输入空间;
3、Instruction微调。基于图文组合生成任务微调KOSMOS-G。
在这里插入图片描述

多模态语言建模

作者使用 < s >及< /s >表示序列的开始和结束,< image >及< /image >表示图像表征的开始和结束,使用vision Transformer处理输入图像,获得输入序列embedding后送入Transformer-based decoder,通过自回归方式从左到右处理序列,通过softmax输出每个token的可能性;

图像解码器对齐

通过KOSMOS-G替换SD中CLIP文本编码器,主要关注点在于解决KOSMOS-G与图像解码器之间不对齐问题,作者发现如果直接fientune 会导致轻微不对齐以及图像质量受损。
作者通过AlignerNet,包括编码器M,解码器N,学习对齐KOSMOS-G的源空间S及CLIP目标空间T,使用仅包含文本的caption C进行训练,该过程如图3a,损失函数如式5,6,
在这里插入图片描述
在这里插入图片描述
AlignerNet结构如图3b
在这里插入图片描述

微调instruction

图像作为一个外部语言用于图像生成,使用等式3中扩散损失进一步微调KOSMOS-G。
在这里插入图片描述
为了重构所需数据,首先对图像进行caption,然后从caption提取实体,从图像获得分割结果,如图4所示,
在这里插入图片描述

实验

如图5,KOSMOS-G展示惊艳的零样本生成结果;
在这里插入图片描述
表1左为与DreamBench量化比较结果,右为与MS-COCO结果比较;
在这里插入图片描述
表2表明end-to-end微调导致没能生成合理图片
在这里插入图片描述
图7为一些应用案例
在这里插入图片描述

结论

KOSMOS-G,使用视觉+语言作为输入用于生成高保真度图像。使用在instruction之前先进行对齐的预训练策略。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原型设计模式

1、实现 原型模式的克隆分为浅克隆和深克隆。 浅克隆&#xff1a;创建一个新对象&#xff0c;新对象的属性和原来对象完全相同&#xff0c;对于非基本类型属性&#xff0c;仍指向原有属性所指向的对象的内存地址。 深克隆&#xff1a;创建一个新对象&#xff0c;属性中引用…

蓝桥杯算法竞赛第一周题型总结

本专栏内容为&#xff1a;蓝桥杯学习专栏&#xff0c;用于记录蓝桥杯的学习经验分享与总结。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&#x1f69a; &#x1f339;&#x1f33…

2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)

2023.11.12使用flask对图片进行黑白处理&#xff08;base64编码方式传输&#xff09; 由前端输入图片并预览&#xff0c;在后端处理图片后返回前端显示&#xff0c;可以作为图片处理的模板。 关键点在于对图片进行base64编码的转化。 使用Base64编码可以更方便地将图片数据嵌入…

初阶JavaEE(17)Linux 基本使用和 web 程序部署

接上次博客&#xff1a;初阶JavaEE&#xff08;16&#xff09;博客系统&#xff08;Markdown编辑器介绍、博客系统功能、博客系统编写&#xff1a;博客列表页 、博客详情页、实现登录、实现强制登录、显示用户信息、退出登录、发布博客&#xff09;-CSDN博客 目录 Linux 基本…

Zigbee智能家居方案设计

背景 目前智能家居物联网中最流行的三种通信协议&#xff0c;Zigbee、WiFi以及BLE&#xff08;蓝牙&#xff09;。这三种协议各有各的优势和劣势。本方案基于CC2530芯片来设计&#xff0c;CC2530是TI的Zigbee芯片。 网关使用了ESP8266CC2530。 硬件实物 节点板子上带有继电器…

Git企业开发级讲解(二)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、添加⽂件--场景⼀1、操作2、演示 二、查看 .git ⽂件1、tree .git命令2、内容讲解3、总结…

数据结构哈希表(散列)Hash,手写实现(图文推导)

目录 一、介绍 二、哈希数据结构 三、✍️实现哈希散列 1. 哈希碰撞&#x1f4a5; 2. 拉链寻址⛓️ 3. 开放寻址⏩ 4. 合并散列 一、介绍 哈希表&#xff0c;也被称为散列表&#xff0c;是一种重要的数据结构。它通过将关键字映射到一个表中的位置来直接访问记录&#…

Day10—SQL那些事(特殊场景的查询)

文章目录 1、只想查一个字段却不得不左连接好多张表2、左连接的时候只想取最后一条数据 1、只想查一个字段却不得不左连接好多张表 只想查一个字段却不得不左连接好多张表&#xff0c;而且因为左连接的表太多还导致查出来的数据重复 原先的sql SELECTsph.po_num,chh.visa_ex…

java网络编程之UDP协议

文章目录 UDP简介一发一收客户端&#xff1a;服务端&#xff1a; 多发多收实现多开客户端&#xff1a;服务端 UDP简介 UDP&#xff08;User Datagram Protocol&#xff09; DatagramSocket 用于创建客户端、服务端DatagramSocket() :创建客户端的Socket对象&#xff0c;系统随…

【React】Redux基本使用

什么情况使用 Redux &#xff1f; Redux 适用于多交互、多数据源的场景。简单理解就是复杂 从组件角度去考虑的话&#xff0c;当我们有以下的应用场景时&#xff0c;我们可以尝试采用 Redux 来实现 某个组件的状态需要共享时 一个组件需要改变其他组件的状态时 一个组件需要…

SARAS多步TD目标算法

SARAS多步TD目标算法 代码仓库:https://github.com/daiyizheng/DL/tree/master/09-rl SARSA算法是on-policy 时序差分 在迭代的时候&#xff0c;我们基于 ϵ \epsilon ϵ-贪婪法在当前状态 S t S_t St​ 选择一个动作 A t A_t At​ &#xff0c;然后会进入到下一个状态 S…

Vue基础必备掌握知识点-Vue的指令系统讲解

什么是Vue&#xff1f; Vue的概念 Vue是一个用于构建用户界面的渐进式框架(通过数据渲染出用户所能够看到的界面) Vue的两种使用方式 1&#xff1a;Vue核心包开发 场景&#xff1a;局部模块的改造 2&#xff1a;Vue核心包&Vue工程化的开发 场景&#xff1a;整站开发 Vue开发…