FlashFace:一种高保真身份保存的人类形象个性化方法

FlashFace技术是由香港大学、阿里巴巴集团、蚂蚁集团共同研发的一项实用工具,用户可以通过提供一张或几张参考面部图像和文本提示,就可以轻松地即时个性化自己的相片。

与现有的人像定制方法相比,FlashFace方法具有更高保真度的身份保留xi性。能够精确地保留参考人脸的特征,包括纹身、疤痕等。

这意味着,无论是真实人物还是虚拟角色,FlashFace都能够准确地捕捉到他们独特的面部特征,如罕见的脸型等。

下面展示一些FlashFace的效果:

人像个性化结果

FlashFace可以产生多样的人像个性化结果。

  • 在很大程度上保留参考面孔的身份(例如,纹身、疤痕,甚至是虚拟人物罕见的脸型)

  • 准确地遵循指示,特别是当文本提示与参考图像相矛盾时(例如,将成人定制为儿童或老人)。

改变年龄或性别

虚拟角色生成真人

真人生成艺术品

身份混合

语言控制面部交换

相关链接

  • 项目地址:https://jshilong.github.io/flashface-page/

  • 论文链接:https://arxiv.org/abs/2312.02928

  • Demo链接:https://github.com/XavierCHEN34/LivePhoto

  • Code地址:https://github.com/jshilong/FlashFace

论文阅读

高保真身份保存的人类形象个性化

摘要

这项工作展示了FlsahFace这是一个实用的工具,用户可以通过提供一个或几个参考面图像和一个文本提示,轻易地将自己的照片个性化。

我们的方法不同于人类现有的照片定制方法,从高忠诚身份保存和更好的指导从两个微妙的设计中获益。

首先,我们将面孔标识编码成一系列特征映射,而不是像以前的艺术中那样使用一个图像标记,这样模型就可以保留更多的参考面孔细节(例如疤痕,纹身,面部形状)。

其次,我们引入了一个解纠缠整合策略,在文本到图像生成过程中平衡文本和图像引导,缓解参考面和文本提示之间的冲突(例如:将成年人个性化为"儿童"或"老人")。

广泛的实验结果证明了该方法在各种应用中的有效性,包括人类形象的个性化、语言提示下的面部交换、虚拟人物的真实化等。

方法

FlashFace的整体pipeline:

在训练过程中,随机选择B ID聚类,从每个聚类中选择N+1张图像。从N幅图像中裁剪人脸区域作为参考,并留下一张作为目标图像。该目标图像用于计算损失。Face ReferenceNet的输入潜函数的形状为(B*N) × 4 × h × w。

将自注意层之后的参考人脸特征存储在中间块和解码器块中。将人脸位置掩码连接到目标潜影以指示所生成的人脸的位置。

在目标潜信号通过U-Net中相应位置转发的过程中,使用额外的参考注意层合并参考特征。在推理过程中,用户可以通过提供人脸位置(可选)、人物的参考图像和所需图像的描述来获得所需图像。

.面部参考项的输入潜藏有形状 (b*n)x4xHxW.在自我注意层之后,我们在中间块和解码块中存储参考面特征。一个面位掩码连接到目标潜伏,以指示生成的面的位置。在通过U网的相应位置转发目标的过程中,我们使用额外的参考注意层来整合参考特性。在推理过程中,用户可以通过提供一个面部位置(可选)、一个人的参考图像和一个对所需图像的描述来获得所需的图像。

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

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

相关文章

【spring】Spring Cloud Alibaba版本发布说明

Spring Cloud Alibaba版本发布说明 由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社…

Vue 组件化编程

Vue 组件化编程 非单文件组件 定义组件 使用Vue.extend(options)创建 不要写eldata要写成函数,避免组件被复用时,数据存在引用关系 注册组件 局部注册:new Vue()的时候,options传入components全局注册:V…

Linux 个人笔记之三剑客 grep sed awk

文章目录 零、预一、grep 文本过滤工具基础篇实战篇 二、sed 字符流编辑器基础篇实战篇 三、awk 文本处理工具基础篇实战篇 四、附xargsuniq & sort基础篇实战篇 cut 零、预 bash 的命令行展开 {} $ echo file_{1..4} file_1 file_2 file_3 file_4$ echo file_{a..d} file_…

高等数学基础篇(数二)之多元函数的基本概念

多元函数基本概念: 一、多元函数的极限 二、多元函数的连续性 三、偏导数 四、全微分 目录 一、多元函数的极限 二、多元函数的连续性 三、偏导数 1.偏导数的定义 2.二元函数偏导数的几何意义 3.高阶偏导数 四、全微分 补充: 一元函数极限连…

BIONIOAIO

通信技术整体解决的问题 1.局域网内的通信要求 2.多系统间的底层消息传递机制 3.高并发下,大数据量的通信场景需要 4.游戏行业。无论是手游服务端、还是大型网络游戏,java的应用越来越广 IO模型基本说明 就是用什么样的通道或者说是通信模式和架构…

数学逻辑专题

数学专题 分治篇LeetCode 263. 丑数解题思路代码实现总结 不要纠结,干就完事了,熟练度很重要!!!多练习,多总结!!! 分治篇 LeetCode 263. 丑数 解题思路 为判断 nnn 是否…

前端实现菜单搜索搜索(功能模版)

目录 前言正文 前言 总体界面如下所示&#xff1a; 正文 <template><div class"avue-searchs"click.self"handleEsc"><div class"avue-searchs__title">菜单搜索</div><div class"avue-searchs__content"…

以XX医院为例的医疗建筑能效管理系统【建筑能耗 供电可靠 】

一、行业背景 二、行业特点 1.供电可靠性要求高&#xff1a;医院配电系统复杂&#xff0c;门诊、急救、手术室、ICU/CCU、血液透析等场合特一级和一级负荷比较多&#xff0c;一旦发生故障会造成严重影响&#xff0c;对配电可靠性要求极高。 2.能耗水平高&#xff1a;医院能耗…

Vue.js基础指令

&#xff08;在讲指令之前&#xff0c;可以先了解插值表达式&#xff0c;如果已经知道&#xff0c;当我没说&#xff09; 一.插值表达式 1.数据绑定最常见的形式就是双大括号的文本插值&#xff0c;Mustache上属性的值替代。只要绑定的数据对象上属性发生了改变&#xff0c;插…

10_MVC

文章目录 JSON常用的JSON解析Jackson的常规使用指定日期格式 MVC设计模式MVC介绍前后端分离案例&#xff08;开发与Json相关接口&#xff09; 三层架构三层架构介绍 JSON JSON&#xff08;JavaScript Object Notation&#xff09; 是一种轻量级的数据交换格式&#xff0c;是存…

【教学类-09-03】20240401细线迷宫图02(A4横版一页-2份竖版)

作品展示&#xff1a; 背景需求&#xff1a; 【教学类-09-02】20240331细线迷宫图01&#xff08;A4横版一页1份横版&#xff09;-CSDN博客文章浏览阅读779次&#xff0c;点赞28次&#xff0c;收藏6次。【教学类-09-02】20240331细线迷宫图01&#xff08;A4横版一页1份横版&…

【2012 统考真题/完整代码】找单词共同后缀的起始位置

题目 假定采用带头结点的单链表保存单词&#xff0c;当两个单词有相同的后缀时&#xff0c;则可共享相同的后缀存储空间&#xff0c;例如&#xff0c;“loading”和“being”的存储映像如下图所示。 设str1和str2分别指向两个单词所在单链表的头结点&#xff0c;链表结点结构为…

PTA L2-043 龙龙送外卖

龙龙是“饱了呀”外卖软件的注册骑手&#xff0c;负责送帕特小区的外卖。帕特小区的构造非常特别&#xff0c;都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树&#xff0c;根结点是外卖站&#xff0c;树上的结点就是要送餐的地址。 每到中午 12 点&#…

【Linux】权限理解

权限理解 1. shell命令以及运行原理2. Linux权限的概念3. Linux权限管理3.1 文件访问者的分类&#xff08;人&#xff09;3.2 文件类型和访问权限&#xff08;事物属性&#xff09;3.2.1 文件类型3.2.2 基本权限 3.3 文件权限值的表示方法3.4 文件访问权限的相关设置方法3.4.1 …

Taskflow应用:波前并行(Wavefront Parallelism)

2D的Wavefront如下图所示&#xff1a; #include <taskflow/taskflow.hpp>std::mutex cout_mutex; void format_str(std::string const& str) {std::lock_guard<std::mutex> lock(cout_mutex); std::cout << str << std::endl; }std::string crea…

算法编程:计算斐波那契数列

实现代码&#xff1a;C 实现方法&#xff1a;通过递推法、递归法、矩阵快速幂方法 适用&#xff1a; 范围小且单次查询时&#xff0c;可以不用记忆化处理。 范围大或多次查询时&#xff0c;应使用记忆化处理。 时间复杂度&#xff1a; 递归法&#xff1a;O(n^2)-->递推法(…

三台电机的顺启逆停

1&#xff0c;开启按钮输入信号是 电机一开始启动&#xff0c;5秒回电机2启动 &#xff0c;在5秒电机三启动 关闭按钮输入时电机3关闭 &#xff0c;5秒后电机2关闭 最后电机一关闭 2&#xff0c;思路开启按钮按下接通电机1 并且接通定时器T0 定时器T0 到时候接通电机2 并且开…

YOLOV8逐步分解(3)_trainer训练之模型加载

yolov8逐步分解(1)--默认参数&超参配置文件加载 yolov8逐步分解(2)_DetectionTrainer类初始化过程 接上2篇文章&#xff0c;继续讲解yolov8训练过程中的模型加载过程。 使用默认参数完成训练器trainer的初始化后&#xff0c;执行训练函数train()开始YOLOV8的训练。 1. t…

windows下安装iteliij Idea2023.3

首先从官网下载 双击打开进行安装&#xff1a; 安装完成后&#xff0c;需要对Idea进行稍微处理下。使用我分享给大家的文件&#xff0c;操作以下步骤&#xff1a; 注意&#xff1a;不能打开IDEA软件。 进入到scripts中点击uninstall-all-users.vbs,最后点击确定。 接下来运行in…

如何成功找到理想的工作,java不行了吗?我靠这个方法成功拿到大厂10个offer

第一段&#xff1a;引言 作为一名即将毕业的大学生&#xff0c;步入职场是每个毕业生都要面对的现实挑战。随着社会竞争的日益激烈&#xff0c;如何成功找到一份理想的工作成为许多毕业生所关注的焦点。本文将分享一些关于毕业生求职的经验和建议&#xff0c;希望能够帮助毕业生…