多模态人像编辑:PortraitGen将2D肖像视频提升到4D 高斯场

news2024/9/30 7:32:03

在这里插入图片描述这篇文章《Portrait Video Editing Empowered by Multimodal Generative Priors》,作者是来自中国科学技术大学。文章介绍了一种名为PortraitGen的肖像视频编辑方法,它使用多模态生成先验来实现一致性和富有表现力的风格化编辑。

文章地址:Portrait Video Editing Empowered by Multimodal Generative Priors
github:https://github.com/USTC3DV/PortraitGen-code
项目主页:https://ustc3dv.github.io/PortraitGen/

关键点

  • PortraitGen是一种强大的肖像视频编辑方法,能够处理单目RGB视频,并执行高质量的文本驱动编辑、图像驱动编辑和重新照明。
  • 该方法将肖像视频帧提升到一个统一的动态3D高斯场,以确保跨帧的结构和时间连贯性。
  • 设计了一种新颖的神经高斯纹理机制,不仅支持复杂的风格编辑,还实现了超过100FPS的渲染速度。
  • 该系统通过从大规模2D生成模型中提取的知识,通过多模态输入进行操作。
  • 通过表情相似性指导和面部感知肖像编辑模块,有效减轻了与迭代数据集更新相关的降级问题。
  • 通过各种应用,包括文本驱动编辑、图像驱动编辑和重新照明,展示了所提出方法的广泛适用性。

在这里插入图片描述
首先跟踪给定单目视频的 SMPL-X 系数,然后使用神经高斯纹理机制来获得 3D 高斯特征场。这些神经高斯被进一步分散以渲染肖像图像。采用迭代数据集更新策略进行肖像编辑,并提出了多模态面部感知编辑模块来提高表情质量并保留个性化的面部结构。

技术原理

多模态输入

多模态输入是指结合了文本、图像等多种类型的输入数据。PortraitGen通过结合这些输入,使得编辑过程不仅仅局限于视觉信息,还包括了语义理解,从而实现更加丰富和精准的编辑效果。

3D 高斯溅射(3DGS)

3DGS是一种用于三维场景表示的技术,它通过在三维空间中“溅射”高斯分布来构建模型。PortraitGen利用3DGS将视频帧提升到一个统一的动态3D高斯场,从而确保帧与帧之间的结构和时间连贯性。

神经高斯纹理(Neural Gaussian Texture)

为了提高渲染质量和编辑的表达性,受延迟神经渲染 提出的神经纹理的启发,研究团队提出了一种新颖的神经高斯纹理机制。它存储每个高斯的可学习特征,而不是存储球谐系数。然后,使用 2D 神经渲染器将 splatted 特征图转换为 RGB 信号。这种方法提供了比 SH 系数更具信息量的特征,并允许更好地融合 splatted 特征,从而便于编辑更复杂的风格,如乐高和像素艺术。

神经高斯纹理机制通过学习每个高斯分布的特征,而非存储传统的球谐系数,使得渲染速度超过100FPS,同时支持更复杂的风格编辑。
在这里插入图片描述

实现方法

系统流程

3D 肖像表示: 首先,利用SMPL-X模型跟踪视频中的头部和身体姿态,然后在其表面上嵌入3D高斯场。
特征融合与渲染: 通过2D神经渲染器将高斯特征图转换为RGB信号,实现高质量的渲染效果。
在这里插入图片描述
神经渲染器可以有效地结合splatted Gaussian信息,进一步提高3D高斯肖像表示的能力。借助我们的神经高斯纹理机制,编辑后的肖像可以更好地遵循提示并呈现出更高的质量。 (给出的指令:把他变成乐高风格)

迭代数据集更新: 交替编辑视频帧和更新底层3D肖像,确保3D和时间上的一致性。
表情相似性引导和人脸感知编辑模块: 解决迭代数据集更新过程中的表情退化问题,同时增强面部结构的保持。

关键技术

3D 肖像重建: 使用多种损失函数来优化模型,包括重建损失、遮罩损失、感知损失和稳定损失。
多模态编辑: 利用预训练的2D生成模型,如风格迁移和虚拟试穿,实现文本驱动和图像驱动的编辑。
表情相似性引导: 通过EMOCA模型的潜在表情空间,确保编辑后的表情与原始视频保持一致。
人脸感知编辑: 特别关注面部区域的编辑,以增强面部结构的准确性。

应用场景

PortraitGen的应用场景非常广泛,包括但不限于:

文本驱动编辑: 根据文本提示改变视频中人物的服装、发型或表情。
使用InstructPix2Pix作为 2D 编辑模型。其 UNet 需要三个输入:输入 RGB 图像、文本指令和噪声潜伏。我们向渲染图像添加部分噪声,并根据输入源图像和指令对其进行编辑。
在这里插入图片描述

图像驱动编辑: 将一种风格或对象应用到视频中,例如将人物转换为像素艺术风格或试穿棕色皮衣。
重点关注两种基于图像提示的编辑工作。一种是提取参考图的全局风格,另一种是通过将对象放置在特定位置来定制图像。这些方法在我们的实验中用于风格迁移和虚拟试穿。我们使用神经风格迁移算法将参考图的风格迁移到数据集帧,并使用AnyDoor更改主体的衣服。
在这里插入图片描述

重新照明: 根据文本描述调整视频的光照条件,如“将场景变为黄昏光照”。
利用IC-Light来操控视频帧的光照。给定一个文本描述作为光照条件,我们的方法可以和谐地调整肖像视频的光照。
在这里插入图片描述

实验结果

通过与现有的视频编辑方法进行比较,PortraitGen在保持提示一致性、身份一致性、时间一致性以及人物动作保持方面均表现出色。用户研究也表明,PortraitGen在所有测试问题中都获得了最高的评分,显示出其在视频编辑领域的潜力。

结论

PortraitGen通过将2D肖像视频编辑问题提升到3D,并引入3D人类先验知识,有效地确保了编辑视频的3D一致性和时间一致性。此外,神经高斯纹理机制不仅增强了3D信息的丰富性,还提高了编辑肖像的渲染质量。尽管该方法在质量和效率上相较于现有工作有了显著提升,但仍有一些限制,比如对SMPL-X跟踪的依赖以及预训练2D编辑模型的限制。

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

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

相关文章

electron教程(三)窗口设置

在main.js文件中,创建窗口时会设置窗口的大小,其实还有很多其他属性,可以根据实际需求选择设置,但部分属性存在局限性,官网也有明确告知:自定义窗口 | Electron (electronjs.org) 项目文件目录如下&#x…

6.1 微服务 服务发现 架构模式分类 应用实践

微服务 服务发现 架构模式分类 应用实践 目录概述需求: 设计思路实现思路分析1.类型-客户端发现2.类型-服务端服务发现3.工具-Eureka4.工具-Consul5.工具-zookper服务发现的挑战服务发现的最佳实践 参考资料和推荐阅读 Survive by day and develop by night. talk …

【三步 完全离线搭建 openwebui 】

完全离线linux 版open webui 的搭建 1.在具有网络连接的环境中下载whl 在有网络的环境&#xff0c;使用pip download可以保存所有的依赖包,可以使用-i 指定清华的镜像源加速下载速度。 # 命令&#xff1a; pip download <package_name> --only-binary:all: --wheel --…

CANoe_DBC能够打开但是无法使用“BusType”

解决DBC文件在CAPL中调用问题&#xff1a;从CANdb到CAPL的顺畅过渡 在汽车电子和嵌入式系统开发中&#xff0c;DBC&#xff08;Database CAN&#xff09;文件作为描述CAN&#xff08;Controller Area Network&#xff09;通信协议的重要工具&#xff0c;广泛应用于网络设计、测…

前端考核总结

目录 JavaScript的基本数据类型有哪些&#xff1f;JavaScript中数据类型的检测方法JavaScript如何判断对象中的属性存在自身还是原型链上flex布局HTML5新标签Vue的基本概念Vue生命周期JavaScript中闭包的基本概念防抖节流双等号与三等号的区别显式转换 JavaScript的基本数据类型…

Flume实战--Flume中的选择器、自动容灾(故障转移)、负载均衡的详解与操作

本文详细介绍了Apache Flume的关键特性&#xff0c;包括选择器、拦截器、故障转移和负载均衡。选择器负责将数据分发到多个Channel&#xff0c;拦截器用于修改或丢弃Event。故障转移机制能够在Sink故障时自动切换&#xff0c;而负载均衡则在多个Sink间分配负载。文章还提供了自…

【零基础入门产品经理】学习准备篇 | 需要学一些什么呢?

前言&#xff1a; 零实习转行产品经理经验分享01-学习准备篇_哔哩哔哩_bilibili 该篇内容主要是对bilibili这个视频的观后笔记~谢谢美丽滴up主友情分享。 全文摘要&#xff1a;如何在0实习且没有任何产品相关经验下&#xff0c;如何上岸产品经理~ 目录 一、想清楚为什么…

Redis 基础数据改造

优质博文&#xff1a;IT-BLOG-CN 一、服务背景 基础数据查询服务&#xff1a;提供航司、机场、票台、城市等基础数据信息。 痛点一&#xff1a;因为基础数据不属于频繁更新的数据&#xff0c;所以每个应用都有自己和缓存&#xff0c;当基础数据更新后&#xff0c;各个应用缓存…

webGL入门(五)绘制多边形

代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scri…

ARM 服务器上安装 OpenEuler (欧拉)

系统介绍 在 2019 年 7 月 19 日&#xff0c;华为宣布要在年底正式开源 openEuler 操作系统&#xff1b;在半年后的 12 月 31 日&#xff0c;华为正式开源了 openEuler 操作系统&#xff0c;邀请社区开发者共同来贡献。 一年后&#xff0c;截止到 2020 年12 月 25日&#xff…

计算机毕业设计 Java教务管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

[Cocoa]_[初级]_[使用NSNotificationCenter作为目标观察者实现时需要注意的事项]

场景 在开发Cocoa程序时&#xff0c;由于界面是用Objective-C写的。无法使用C的目标观察者[1]类。如果是使用第二种方案2[2],那么也需要增加一个代理类。那么有没有更省事的办法&#xff1f; 说明 开发界面的时候&#xff0c;经常是需要在子界面里传递数据给主界面&#xff0…

PIKACHU | PIKACHU 靶场 XSS 后台配置

关注这个靶场的其他相关笔记&#xff1a;PIKACHU —— 靶场笔记合集-CSDN博客 PIKACHU 自带了一个 XSS 平台&#xff0c;可以辅助我们完成 XSS 攻击&#xff0c;但是该后台需要配置数据库以后才能使用。本教程&#xff0c;就是教大家如何配置 PIKACHU XSS 平台的。 PIKACHU XS…

vulhub weblogic 靶场攻略

一&#xff1a;WebLogic 后台弱⼝令GetShell&#xff08;weak_password &#xff09; 漏洞描述 通过弱⼝令进⼊后台界⾯ , 上传部署war包 , getshell 影响范围 全版本&#xff08;前提后台存在弱⼝令&#xff09; 环境搭建 cd vulhub-master/weblogic/weak_password doc…

【STM32开发环境搭建】-4-在STM32CubeMX中新增Keil(MDK-ARM) 5的工程目录(包含指定路径的C和H文件)

案例背景&#xff1a; 由于Keil(MDK-ARM)5工程&#xff1a;DEMO_STM32F030C8T6.uvprojx是由STM32CubeMX工具生成的&#xff0c;如果我们在Keil工程中手动添加了一些c文件和h文件的Include Path包含路径&#xff0c;会在STM32CubeMX下一次生成uvprojx文件时&#xff0c;被删除&…

纯软件小白 学习DDR5

问题 1.你知道当你打开游戏加载存档时候计算机是在做什么吗&#xff1f; 由于你的CPU只有在数据被加载到DRAM的时候才可以工作&#xff0c;所以当你需要用数据的时候&#xff0c;数据会从SSD复制到DRAM这一过程需要时间&#xff0c;所以会有加载&#xff08;所有3D模型、纹理…

【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】

目录 stm32电路磁编码器电路电机驱动电路电流采样电路电机选择本文示例硬件说明 为了承载和验证本文的FOC代码工程&#xff0c;本节设计了一个简易的三相无刷电机 硬件套件&#xff0c;主控采用非常常用的stm32f103c8t6单片机&#xff0c;电机编码器采用MT6701&#xff0c;电机…

电源的带载能力怎么判断?Namisoft为您介绍测试方法

确保电源在各种负载条件下都能稳定工作&#xff0c;是电源设计者面临的重要挑战。本文将详细介绍如何通过带载测试来评估电源的负载能力。 电源带载测试介绍 带载能力指电源在其规定条件下&#xff0c;所能承受的最大负载能力。电源带载测试就是对电源模块的负载能力进行测试&a…

调试分析:[跳数度量]更改为[距离度量]后的 routing_bellmanford 算法

回顾复习2023年8月的《★修改Exata6.2源码&#xff1a;〔修改Bellmanford最短路径路由的衡量标准从【路由跳数】改为【“路由器节点间的物理距离”】&#xff0c;并动画演示〕》&#xff0c;VS2015调试Exata&#xff0c;跟踪调试修改后的[ routing_bellmanford.cpp ]源码&#…

AgentScope : 与CodeAct智能体对话

参考&#xff1a; 非一般程序猿第六季Agent入门实战篇(三)–CodeActAgent篇 Conversation with CodeAct Agent 0&#xff0c;简介 CodeAct Agent是一个Agent,它不仅可以聊天,还可以为你编写和执行Python代码。在本示例中,将介绍另一种赋予Agent调用工具能力的方法,特别是通过…