diffusion model (十) anydoor技术小结

paperAnyDoor: Zero-shot Object-level Image Customization
codehttps://github.com/damo-vilab/AnyDoor
Org香港大学,Alibaba Group
date2023-07

1 Motivation

过去我们用dreambooth,LORA,textual inversion等方法做定制目标生成。但这个方法每次定制新的目标都需要重新训练模型。这篇文章的核心目的是用一种zero-shot的方法做定制目标的定制场景图片生成。简单来说就是:给定目标图片和场景图片就能生成在该目标在该场景不同姿态(角度、光照)的图片。

2 Method

2.1 模型架构

架构组成功能是否更新参数
Segmentor用于去背景❄️
Detail Extractor类似ControlNet,用于特征注入🔥
Unetstable diffusion❄️
ID Extractor提取图片特征,注入unet❄️DINOV2 + 🔥投影层

在这里插入图片描述

pipeline如下:

输入:

  • 给定场景图片+生成位置
  • 需要定制的目标图片

STEP1:目标图片送入到segmentor中进行去背景。然后兵分两路,记作分枝1和分枝2

  • STEP2-分枝1:
    • STEP2-1-1: 提取去除背景的图片的高频信号HF_MAP (下节有实现细节)
    • STEP2-1-2: 将提取的高频信号和场景图片在生成位置进行融合
    • STEP2-1-3: 将融合的结果送入到Detail Extractor 中提取Detail map。(此处的网络结构类似controlnet
  • STEP2-分枝2:
    • STEP2-2-1: 将去除背景的图片送入到ID Extractor中提取ID-Token。

STEP3: 将ID-Token和Detail map一起送入到Unet中,用diffusion model的生成方式进行图片生成。

2.2 实现细节

2.2.1 图中的HF-MAP是什么,有什么用

HF-MAP的计算公式如下

I h = ( I ⊗ K h + I ⊗ K v ) ⊙ I ⊙ M e r o d e , \mathbf {I} _ { h } = ( \mathbf {I} \otimes \mathbf {K} _ { h } + \mathbf {I} \otimes \mathbf {K} _ { v } ) \odot \mathbf {I} \odot \mathbf{M} _ { e r o d e } , Ih=(IKh+IKv)IMerode,

其中:

  • I h \mathbf {I} _ { h } Ih为HF-MAP
  • I \mathbf {I} I为输入的原图
  • K h \mathbf {K} _ { h } Kh为水平方向的Sobel kernel
  • ⊗ \otimes 表示卷积操作
  • K v \mathbf {K} _ { v } Kv表示垂直方向的Sobel kernel
  • M e r o d e \mathbf{M} _ { e r o d e } Merode为经过腐蚀后的物体mask
  • ⊙ \odot 为逐元素相乘。即Hadamard product

该公式的核心就是,提取图片中object的高频信息,随后将其与scene图片拼接。

作者之所以用高频信号进行拼接是因为:直接将物体 I ⊙ M e r o d e \mathbf {I} \odot \mathbf{M} _ { e r o d e } IMerode和scene拼接训练后生成的结果都非常单一,缺乏多样性。

作者也对HF-MAP的必要性进行了消融实验

在这里插入图片描述

2.2.2 如何构建训练的图片pair

从上面的描述中我们知道anydoor的训练目标是给定目标图片和场景生成该目标在该场景下不同姿态的图片。因此容易知道训练集是三元组组成的集合,即(输入目标图片,场景图片+位置,输出图片)。如何用一种cheap的方法得到同个目标在同场景不同姿态(视角、光照等)的图片对是一难点。

作者利用video数据集来构造图片对。整体的pipeline如下,简而言之就是利用同一个object在不同帧的图片来构造图片对。

在这里插入图片描述

训练的数据集如下:

在这里插入图片描述

2.2.3 各组件必要性消融实验

ATS为自适应时间步采样策略(adaptive timestep sampling)

在这里插入图片描述

ID extractor的消融实验。

在这里插入图片描述

3 Result

从论文给出的结果看,生成的效果都很不错。

在这里插入图片描述
在这里插入图片描述

Thinking

作者给出了该技术的两个使用场景。感觉用来合成数据也很不错,后续尝试一下。

  • 虚拟试衣(virtual try-on)

在这里插入图片描述

  • 交互式图像编辑

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

liunx系统突然不能启动jar

启动命令 nohup java -jar /date/gd_ly/jar/mssda-platform-backend-0.0.1-SNAPSHOT.jar -Dspring.config.location/date/gd_ly/jar/application-dev.yml 报错信息 Error: A JNI error has occurred, please check your installation and try again Exception in thread &q…

2022年全球软件质量效能大会(QECon北京站2022)-核心PPT资料下载

一、峰会简介 当前,新一轮科技革命和产业变革正在重塑全球经济格局,以云计算为代表的新一代信息技术创新活跃,与实体经济深度融合,推动泛在连接、数据驱动、智能引领的数字经济新形式孕育而生。 新兴技术的出现给测试乃至整个软…

CSS 纵向扩展动画

上干货 <template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container&q…

HCIA-Datacom题库(自己整理分类的)——OSPF协议判断

1.路由表中某条路由信息的Proto为OSPF则此路由的优先级一定为10。√ 2.如果网络管理员没有配置骨干区域,则路由器会自动创建骨干区域&#xff1f; 路由表中某条路由信息的Proto为OSPF&#xff0c;则此路由的优先级一定为10。 当两台OSPF路由器形成2-WAY邻居关系时&#xff0…

Arduino串口发送接收和串口中断事件

目录 一、硬件介绍 1、控制器 2、TTL转USB串口 二、软件程序 1、单片机发送字符串 &#xff08;1&#xff09;每个串口对应的类名称介绍 &#xff08;2&#xff09;发送功能 &#xff08;3&#xff09;代码 &#xff08;4&#xff09;测试 2、单片机接收字符串 &…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(3)-训练yolov5模型(本地)

训练yolov5模型&#xff08;本地&#xff09; 训练文件 train.py训练如下图 一些参数的设置weights:对于weight参数&#xff0c;可以往Default参数中填入的参数有 cfg&#xff1a;&#xff08;缩写&#xff09;cfg参数可以选择的网络模型 data对于data hyp 超参数epochs 训练多…

全新ui自动化测试框架教学——Cypress

前言 在现阶段自动化测试领域大规模普及的是selenium及appium等常规自动化测试工具&#xff0c;但在其中会有遇到很多影响因素导致测试结果不理想和不准确的情况发生。在经过Darren洋对自动化测试工具调研后&#xff0c;发现了Cypress这一款针对端到端的自动化测试工具&#xf…

【Python基础】字符串

文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…

【银行测试】金融银行-理财项目面试/分析总结(二)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 银行理财相关的项…

在Adobe Acrobat上如何做PDF文档签名

Adobe Acrobat如何做PDF文档签名&#xff1f;PDF文档签名是指对PDF文档进行基于证书的数字签名&#xff0c;类似于传统的手写签名&#xff0c;可标识签名文档的人员。与手写签名不同&#xff0c;数字签名难以伪造&#xff0c;因为其包含签名者唯一的加密信息。为PDF文档进行基于…

Starling-LM-7B与GPT-4:开源AI的新纪录

引言 在人工智能的前沿领域&#xff0c;Starling-LM-7B的出现标志着开源大型语言模型&#xff08;LLM&#xff09;的一大突破。与GPT-4的近距离竞争不仅展示了Starling-LM-7B的技术实力&#xff0c;也突显了开源社区在推动AI发展方面的重要作用。 模型特点 Starling-LM-7B&a…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具&#xff0c;它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件&#xff0c;该软件采用先进的Vue、Uniapp、Layui等技术框架&#xff0c;涵盖了项目策划决策、规划设计、施工建设到竣工交付…

通过Python将PDF转为文本,快速提取PDF中的文字

快速高效地从PDF文档中提取信息对于专业人士来说非常重要。处理大量PDF文件时&#xff0c;将PDF转换为可编辑的文本格式可以节省时间和精力。而强大的Python语言正是在这些方面发挥其作用。利用Python中丰富的API&#xff0c;我们可以轻松在Python程序中将PDF转换为文本&#x…

im6ull学习总结(三)文字显示

文字显示 字符编码方式 编码与字体 一个字符以不同编码形式会保存为不同的二进制数。 ASCII American Standard Code for Information Interchange”的缩写&#xff0c;美国信息交换标准代码。 一个字节的 7 位就可以表示 128 个数值&#xff0c;在 ASCII 码中最高位永远是…

天津医科大学临床医学院专升本药学专业有机化学考试大纲

天津医科大学临床医学院高职升本科专业课考试大纲药学专业《有机化学》科目考试大纲 一、考试基本要求 本考试大纲主要要求考生对《有机化学》基本概念有较深入的了解&#xff0c;能够系统地掌握各类化合物的命名、结构特点及立体异构、主要性质、反应、来源和合成制备方法等…

将正规文法转化为正规式

将正规文法转化为正规式有以下几个规则&#xff1a; 通过一道例题来讲解&#xff1a; ①A-->aC|bA ②C-->bD ③D-->aC|bD| (1)首先将②带入③&#xff08;不能将自身带入自身例如D-->aC|bD|,文法中带D&#xff0c;不能带入D&#xff09; DabD|bD|&#xff08;…

用电脑将图片转为excel表格有几种方法?怎么操作?

将图片转为Excel表格&#xff0c;一般需要借助OCR(光学字符识别)技术。OCR技术可以将图片中的文字提取出来&#xff0c;并转换成Excel表格中的数据。以下是几种常用的方法&#xff1a; 一、.使用在线OCR工具 1、打开金鸣表格文字识别&#xff08;简称金鸣识别&#xff09;网站…

第十一章 Stream消息驱动

Stream消息驱动 gitee:springcloud_study: springcloud&#xff1a;服务集群、注册中心、配置中心&#xff08;热更新&#xff09;、服务网关&#xff08;校验、路由、负载均衡&#xff09;、分布式缓存、分布式搜索、消息队列&#xff08;异步通信&#xff09;、数据库集群、…

32阵元 MVDR和DREC DOA估计波束方向图对比

32阵元 MVDR和DREC DOA估计波束方向图对比 一、原理 MVDR原理&#xff1a;https://zhuanlan.zhihu.com/p/457528114 DREC原理&#xff08;无失真响应特征干扰相消器&#xff09;&#xff1a;http://radarst.ijournal.cn/html/2019/3/201903018.html 主要参数&#xff1a; 阵…

Idea如何从磁盘中应用 下载好的插件流程,安装zip压缩包。

1、将下载的插件文件&#xff08;通常是一个ZIP文件&#xff09;复制到IntelliJ IDEA的“plugins”文件夹中。 IDEA版本 2、重启IntelliJ IDEA。 3、在设置窗口中&#xff0c;选择左侧的“Plugins”。 4、选择之前复制到“plugins”文件夹中的插件文件&#xff0c;点击“OK”按…