再也不怕合照缺人,Anydoor为图片编辑开了一道「任意门」

news2025/2/1 9:08:56

原文:再也不怕合照缺人,Anydoor为图片编辑开了一道「任意门」

「能不能把这张图里的产品,都放到另一张图的桌子上?」

图片

面对这样的要求,设计师肯定会脑瓜嗡嗡的。

把指定物品放进另一张图片不像贴张贴纸一样简单,想要做到无缝接入,贴图的形状、材质、光影等等都需要在编辑软件里细致地调整。

如果有一种能让贴图穿进背景图里,它们根据你的指令自动摆好姿势、站位的「魔法」呢?

图片

来自香港大学、阿里巴巴和蚂蚁集团的新成果 Anydoor 为图片编辑打开了一扇「任意门」。任何物品,只需要一张照片,就能被传送到另一张图片的世界中。

图片

  • 论文链接:https://arxiv.org/pdf/2307.09481.pdf

  • 项目链接:https://damo-vilab.github.io/AnyDoor-Page/

例如,想让这只柯基按照涂鸦的姿势,在墙角站卧坐躺,没有问题。

图片

让哆啦 A 梦从背着手换成向你打招呼的姿势,分分钟搞定,还保留了原本的毛毡材质质感。

图片

交换位置,移动物品,也是小 case。

图片

图片

不需要实物的多角度照片,也不需要 3D 建模,就可以看到这只鞋子的正面和侧面。

图片

把野餐布上的另一只小熊换成这只鞋,再给它做个镜像效果,画个框,就可以静待魔法生成了。重新合成后,餐布的褶皱没有产生明显的形变。

图片

试穿衣服也能玩成贴画游戏版本,给照片贴上想要的衣服,立体的上身效果立即可见。

图片

随着扩散模型的发展,图像编辑界卷出了不少新成果。此前的模型已经可以根据文本提示或给定图像重新生成局部的图像区域。但是这些方法对于不在训练数据内的新图象,泛化性较差,或者需要输入多个图像,在近一个小时后,才能等到生成结果。

Anydoor 做到的是「对象传送」,这意味着将目标对象准确无缝地放置在场景图像的期望位置。具体来说,Anydoor 以目标对象为模板,重新生成场景图像被框中的局部区域,在图像合成、效果图像渲染、海报制作、虚拟试穿等应用场景都很实用。

方法简介

对于给定目标对象、场景和位置,Anydoor 实现了高保真度和多样化的零样本对象 - 场景合成。为了做到这一点,作者的核心思想是用身份和细节高度相关的特征来表示目标对象,然后将它们组合到与背景场景的交互之中。作者用一个 ID 提取器来生产有区分度的 ID token,并设计了一个以频率感知的细节提取器来获取细节图作为补充。再将 ID token 和提取器获得的细节图注入一个预训练好的文本到图像扩散模型中,指导生成所需的图像。

为了使定制对象生成泛化性更强,作者从视频中收集了同一对象的图像对,方便模型学习生成对象的外观变化。在保证场景多样性方面,他们运用了大规模统计图像。为了提高视频和图像学习效率,作者们还设计了一个自适应时间步长采样器,对不同的训练数据源采取不同的去噪步骤。

图片

身份提取特征

作者采用了预训练的视觉编码器来提取目标对象的身份信息。由于 CLIP 的训练数据是粗略描述的文本图像对,只能嵌入语义级别的信息,而难以保留有区分度的对象身份表示。为了克服这一挑战,作者在目标图像输入 ID 提取器之前,使用了分割器以去除背景,并将对象对齐到图像中心。此操作有助于提取更简洁和更有辨别性的特征。

在保留高辨别度特征方面,自监督模型展现了更强大的能力。因此,作者选择了 DINO-V2 作为 ID 提取器的底座,使用单个线性层将 ID 提取器的 token 对齐到预训练的文本到图像的 UNet 中。

细节特征提取

由于 ID token 会失去空间分辨率,很难保持目标对象的精细细节,作者尝试了将移除过背景的对象拼接到场景图像的给定位置。虽然生成保真度有了显著提高,但生成的结果与给定的目标过于相似,缺乏多样性。为此,作者设计了一个表示对象的高频图,它可以保持精细的细节,同时允许灵活的局部变体,如手势、照明、方向等。

图片

特征注入

在获得 ID token 和细节图后,需要将它们注入一个预先训练好的文本到图像扩散模型中来指导生成。作者选择了 Stable Diffusion 将图像投影到潜在空间中,并使用 UNet 进行概率采样。

训练策略

在这项工作中,本文利用视频数据集来捕获包含同一对象的不同帧,数据准备流程如图 4 所示:

图片

完整数据列在表 1 中,涵盖了自然场景、虚拟试穿、多视图对象等多种领域。

图片

实验

该研究选择 Stable Diffusion V2.1 作为基础生成器。图 5 展示了与基于参考的图像生成方法的对比结果。Paint-by-Example 和 Graphit 支持与本文相同的输入格式,它们以目标图像作为输入来编辑场景图像的局部区域,而无需参数调整。此外,本文还与 Stable Diffusion 进行了比较。

图片

图 6 表明,AnyDoor 兼具基于参考和基于调整的方法的优点,无需进行参数调整即可生成多主题合成的高保真结果。具体而言,Paint-by-Example 对于经过训练的类别(如狗和猫)(第 3 行)表现良好,但对于新概念(第 1-2 行)表现不佳。DreamBooth、Custom Diffusion 和 Cones 为新概念提供了更好的保真度,但仍然存在多主体混淆的问题。

图片

表 2 表明本文模型在保真度和数量上,尤其是保真度方面具有明显的优势。然而,由于其他方法只保持了语义一致性,而本文方法保留了实例身份,因此它们自然具有更大的多样性空间。在这种情况下,AnyDoor 仍然获得了比 Graphit 更高的速率,并且获得了与 Paint-by-Example 有竞争力的结果,这验证了本文方法的有效性。

图片

参考链接:

https://arxiv.org/pdf/2307.09481.pdf

https://github.com/damo-vilab/AnyDoor/tree/main

https://damo-vilab.github.io/AnyDoor-Page/

https://twitter.com/alexcarliera/status/1737244116189372895

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

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

相关文章

java 项目日记实现两种方式:拦截器方式实现日记与定义日记注解方式实现日记

通常只要是java web项目基本都离不开项目日记,项目日记存在的意义很多,例如:安全审计,问题追踪都离不开项目日记。下面我们说一下项目日记实现最常用的两种方式 。 一 拉截器实现项目日记 1 实现一个拦截器基类,用于事…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

Ubuntu环境下使用Livox mid 360

参考文章: Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO-CSDN博客 一:Livox mid 360驱动安装与测试 前言: Livox mid360需要使用Livox-SDK2,而非Livox-SDK,以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部…

【科学计算语言】实验三 Python复杂数据类型

【目的和要求】 (1)掌握Python语言中的组合数据类型 (2)掌握列表、元组、字典、集合及字符串的基本应用 (3)熟练运用有关序列操作的Python内置函数 【实验准备】 【实验内容】 1. 实验练习:掌握…

SpringIOC之MethodBasedEvaluationContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

三个月真的可以学会自动化测试吗?不是骗局把?

三个月可以学会,但是想要达到精通还需更多的时间。 目前行业内对于自动化测试的还是存在很多误区的,管理层为了自动化而去自动化,学习者学到最后只会用一些工具。 关于学习路线,我放在后面讲,在此之前必须先聊一下行…

【Python小知识 - 6】:QLabel设置图片

文章目录 QLabel设置图片 QLabel设置图片 from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sysapp QApplication(sys.argv)window QWidget()hbox QHBoxLayout(window)# 设置标签图片 lable QLabel() lable.setPixmap(QPixmap(./img/window.png).scaled(1…

算法基础之表达整数的奇怪方式

表达整数的奇怪方式 中国剩余定理: 求M 所有m之积 然后Mi M / mi x 如下图 满足要求 扩展中国剩余定理 找到x **使得x mod mi ai**成立 对于每两个式子 都可以推出①式 即 用扩展欧几里得算法 可以算出k1,-k2和m2–m1 判无解 : 若**(m2–m1) % d ! 0** 说明该等式无解 …

分子生成工具 - ResGen 评测

ResGen 模型是浙江大学药学院侯廷军老师课题组2023年发表在nature machine intelligence期刊上文章Nature Machine Intelligence | Volume 5 | September 2023 | 1020–1030,题目为:《ResGen is a pocket-aware 3D molecular generation model based on …

OpenFeign 万字教程详解

OpenFeign 万字教程详解 目录 一、概述 1.1.OpenFeign是什么?1.2.OpenFeign能干什么1.3.OpenFeign和Feign的区别1.4.FeignClient 二、OpenFeign使用 2.1.OpenFeign 常规远程调用2.2.OpenFeign 微服务使用步骤2.3.OpenFeign 超时控制2.4.OpenFeign 日志打印2.5.O…

垃圾回收器和内存分配

垃圾回收器和内存分配策略 概述 垃圾回收(Garbage Collection)简称GC,早在Lisp还在胚胎时期时,其作者John McCarthy就思考过垃圾回收需要完成的三件事情: 哪些内存需要回收 什么时候回收 如何回收 今天的内存动态…

PHP下载安装以及基本配置

目录 引言 官网 下载 配置 1. 鼠标右键“此电脑”>“属性” 2. 打开高级系统设置 3. 打开环境变量 4. 双击系统变量中的path 5. 新建新的path 6. 将刚刚安装的位置加入环境变量 7. 检查是否安装成功 引言 PHP("PHP: Hypertext Preprocessor"…

OCC:第一个程序,对话框中显示一个BOX

1. OCC库的获取 从github上获取 gitgithub.com:tpaviot/oce.git,自己编译官网获取二进制包(获取下来的只有release 版本的,而且VS版本不一定适合自己)官网源码,然后自己编译(稍微折腾点,建议按…

【Java】IO流相关操作

目录 常见的文件操作 创建文件 得到文件信息 目录操作 IO流 FileInputStream FileOutputStream FileReader FileWriter BufferedReader BufferedWriter ObjectOutputStream ObjectInputStream InputStreamReader OutputStreamReader PrintStream PrintWriter Properties prope…

【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 思路 1、继承关系 2、运行时类型检查 结语 我的其他博客 前言 在Java编程中,强制类型转换是一个常见的操作&#xf…

鸿蒙应用开发ArkTS容器组件的使用

线性布局——Column/Row 线性布局是应用中最常用的布局,通过线性容器 Row 和 Column 构建 线性布局是其他布局的基础,其子元素在水平方向和垂直方向依次排列 线性布局的排列方向由所选容器组件决定,Column 容器内子元素按照垂直方向排列&a…

CSS-计数器 counter-reset、counter-increment、counter-reset

计数器 CSS的计数器通过在 content 上应用 counter() 或 counters()函数来显示计数的。其中计数器是由counter-reset和counter-increment 来进行操作的。 counter-increment 语法 counter-increment参数1:计算器名称 该标识符由不区分大小写的字母 a 到 z&#xf…

服务熔断(Hystrix)

服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的…

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…

Open3D 入门教程

文章目录 1、概述2、安装3、点云读写4、点云可视化 4.1、可视化单个点云4.2、同一窗口可视化多个点云4.3、 可视化的属性设置 5、k-d tree 与 Octree 5.1、k-d tree5.2、Octree 5.2.1、从点云中构建Octree5.2.2、从体素栅格中构建 Octree 6、点云滤波 6.1、体素下采样6.2、统计…