阿里达摩院刚刚开源了AnyDoor!零样本物体编辑!可实现物体移动、物体交换、虚拟试穿等...

本文主要是介绍阿里达摩院刚刚开源了AnyDoor!零样本物体编辑!可实现物体移动、物体交换、虚拟试穿等...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是阿潘,今天给大家分享一个阿里达摩院开源了 AnyDoor 的代码,不得不说,到年底了有点猛,疯狂的晒工作,感觉像是在冲业绩,这不得多拿好几个月的年终。

527869739aa829eedab634a59b8be4b0.png

项目相关的链接整理在下面了:

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

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

https://arxiv.org/abs/2307.09481

标题:Anydoor: zero-shot object-level image customization

从标题可以大概知道这个工作主要实现的效果是零样本对物体级别的图片进行编辑

AnyDoor 介绍

摘要:

这项工作提出了 AnyDoor,一种基于扩散的图像生成器,能够以“和谐”的方式(图片整体和谐)将目标对象传送到用户指定位置的新场景。模型无需调整每个对象的参数,只需训练一次,即可在推理阶段轻松推广到不同的对象场景组合。这种具有挑战性的零样本设置需要对某个对象进行充分的表征。为此,我们用细节特征来补充常用的身份特征,这些细节特征经过精心设计,以保持纹理细节,同时允许多种局部变化(例如,照明、方向、姿势等),支持对象与不同环境的良好融合 。我们进一步建议借用视频数据集中的知识,我们可以观察单个对象的各种形式(即沿时间轴),从而获得更强的模型通用性和鲁棒性。大量的实验证明了我们的方法相对于现有替代方案的优越性,以及它在现实应用中的巨大潜力,例如虚拟试穿和物体移动。

部分展示效果:

49c2b2381b67894710673d934df6a73f.gif

将电视替换成狗狗书包

d3210bc54165a0b2aa243e582332bbc0.gif

将床上的公仔替换成另一个公仔

cd9c1e5e929e4b3cfd6fd3ceefdb16ec.gif

将对上衣进行替换替换

具体能够实现的功能:

1、物体移动

AnyDoor 可以应用于诸如物体移动之类的奇特任务。‍

例如下面的图片中,实现对花瓶和木板的移动

b440dff554d92fa0e80f7d1524bea622.gif

2、物体交换

AnyDoor 还可以扩展来进行对象交换。

下面图片将两辆车的位置进行交换

24b9e9536c0b062b35f0ce12671630de.gif

3、Multi-subject Composition

由于 AnyDoor 对于将对象放置在给定场景的特定位置具有高度可控性,因此很容易扩展到多主体构图。

下面图片将不同的狗狗放在预设的图片位置,并且让生成的图片效果没有违和感。

06fd5f0b60136d76d7e26293dbc7f3ec.gif

‍4、虚拟试穿

AnyDoor 还可以作为虚拟试穿的简单但强大的基准。它可以保留不同衣服的颜色、图案和纹理,而不需要复杂的人工解析。

91dec39d17b3c0f2a670200cff4fed6c.png

1597de20b4622a3b31609012a575537f.png

项目代码

具体的本地的环境搭建,作者已经公布了,并且权重和训练代码都已经提供,太赞了,小伙伴们,赶紧冲!

779523c81383c1f906bea40977923e7c.png

项目相关的链接整理在下面了:

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

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

https://arxiv.org/abs/2307.09481

最后,如果对大家有帮助,欢迎关注,点赞和分享!最近天气变冷了好多,大家要多注意身体哈029fd1531bd1174113554912a5b5100f.png

推荐阅读

为了突破深度学习瓶颈,去学习CUDA及TensorRT加速工具,真的管用吗?

人人都会铁山靠!Dreamoving:一种基于扩散模型的可控人体舞蹈视频生成框架

这篇关于阿里达摩院刚刚开源了AnyDoor!零样本物体编辑!可实现物体移动、物体交换、虚拟试穿等...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/507892

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr