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

在这里插入图片描述这篇文章《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.mfbz.cn/a/885144.html

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

相关文章

匿名管道 Linux

管道 首先自己要用用户层缓冲区,还得把用户层缓冲区拷贝到管道里,(从键盘里输入数据到用户层缓冲区里面),然后用户层缓冲区通过系统调用(write)写到管道里,然后再通过read系统调用&…

[Docker学习笔记]利用Dockerfile创建镜像

Dockerfile 指令 指令作用from继承基础镜像maintainer镜像制作者信息(可缺省)run用来执行shell命令expose暴露端口号cmd启动容器默认执行的命令entrypoint启动容器真正执行的命令volume创建挂载点env配置环境变量add复制文件到容器copy复制文件到容器workdir设置容器的工作目录…

APISIX 联动雷池 WAF 实现 Web 安全防护

Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。 雷池是由长亭科技开发的 WAF 系统,提供对 HTTP 请求的安全请求,提供完整的 API 管理和…

VUE 整合 ECharts

一、vue 引入 ECharts依赖 npm install echarts --save 二、创建盒子 <div ref"chars" style"height: 500px;width:800px;"></div> 解释说明 ref"chars" 是 Vue.js 中一个非常有用的特性&#xff0c;用于给 DOM 元素或组件实例…

二值图像的面积求取的两种方法及MATLAB实现

一、引言 面积在数字图像处理中经常用到&#xff0c;在MATLAB中&#xff0c;计算二值图像的面积通常可以通过两种主要方法实现&#xff1a;遍历法和直接利用bwarea函数。下面将分别介绍这两种方法的原理和相应的MATLAB代码示例。 二、遍历法计算二值图像面积的原理和MATLAB代码…

一条sql在MySQL中是怎么执行的

目录 一、MySQL总体架构二、各层的作用1、连接层2、应用层3、存储引擎层 一、MySQL总体架构 作为常问八股文&#xff0c;相信不少小伙伴当年都被问到过这个问题&#xff0c;回答这个问题我们首先得知道MySQL服务器基本架构&#xff0c;主要分为连接层&#xff0c;应用层和存储…

YOLOv7改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU

💡💡💡现有IoU问题点:IoU (Intersection over Union)作为模型训练的关键,极大地显示了当前预测框与Ground Truth框之间的差异。后续研究者不断在IoU中加入更多的考虑因素,如中心距离、纵横比等。然而,仅仅提炼几何差异是有上限的;而且新的对价指数与借据本身存在潜在…

微软 Win11 RP 226x1.4247(KB5043145)预览版发布!

系统之家于9月25日发出最新报道&#xff0c;微软面向Release Preview频道的用户发布了Win11的KB5043145更新。系统更新后版本号提升为22621.4247和22631.4247。此次更新新增多项功能&#xff0c;例如用户播放媒体时&#xff0c;媒体控件会显示在锁屏中央的下部。以下跟随小编看…

easyExcel使用模版填充excel,合并单元格

一、最终效果 二、制作模版 1、制作填充模版 模版在代码中保存的位置 2、Controller /*** 下载模板*/ RequestMapping(value "exportData") public void exportData(KqKqb kqKqb,HttpServletResponse response, HttpServletRequest request) throws IOExceptio…

美团2024年秋招第一场笔试算法题题解【技术】

写一下2024年美团秋招第一场笔试算法题解&#xff0c;先贴个测评和题目链接美团2024秋招第一场笔试&#xff0c;还是比较简单的&#xff0c;前两题都是模拟&#xff0c;其中第二题涉及点思维&#xff0c;第三题笔者看到有牛友用持久化线段树和dp做的&#xff0c;但是我还不咋会…

目前最好用的爬虫软件是那个?

作为一名数据工程师&#xff0c;三天两头要采集数据&#xff0c;用过十几种爬虫软件&#xff0c;也用过Python爬虫库&#xff0c;还是建议新手使用现成的软件比较方便。 这里推荐3款不错的自动化爬虫工具&#xff0c;八爪鱼、亮数据、Web Scraper 1. 八爪鱼爬虫 八爪鱼爬虫是一…

R语言非参数回归预测摩托车事故、收入数据:局部回归、核回归、LOESS可视化...

全文链接&#xff1a;https://tecdat.cn/?p37784 非参数回归为经典&#xff08;参数&#xff09;回归方法提供了一种灵活的替代方法。与假定回归关系具有依赖于有限数量的未知参数的已知形式的传统&#xff08;参数&#xff09;方法不同&#xff0c;非参数回归模型尝试从数据样…

java后端项目技术记录

后端使用技术记录 一、软件1. apifox&#xff0c;API管理软件问题 2. nginx前端服务器(1) 反向代理(2) 负载均衡 二、问题1. 使用spring全局异常处理器处理特定的异常2. 扩展springmvc的消息转换器&#xff08;对象和json数据的转换&#xff09;3. 路径参数的接收4. 实体构建器…

YOLOv8改进,YOLOv8改进损失函数采用Powerful-IoU(2024年最新IOU),助力涨点

摘要 边界框回归(BBR)是目标检测中的核心任务之一,BBR损失函数显著影响其性能。然而,观察到现有基于IoU的损失函数存在不合理的惩罚因子,导致回归过程中锚框扩展,并显著减缓收敛速度。为了解决这个问题,深入分析了锚框扩展的原因。针对这个问题,提出了一种新的Powerfu…

ant design vue中带勾选表格报Tree missing follow keys: ‘undefined‘解决方法

1、这里一定要给columns和data-source设置key即可。 <div><a-table:row-selection"rowSelection":dataSource"tableList":columns"columns":scroll"{ x: 100% }":pagination"false":loading"loading"&g…

IDEA插件:Maven Helper插件强势优化【某个依赖包被哪些maven项目模块引用,快速定位】体验真好!

背景&#xff1a; 开发的项目是maven多模块&#xff0c;子模块数量多&#xff0c;已经超过10个。 而且经常会被扫描漏洞&#xff0c;并进行依赖包升级。 在使用过程中&#xff0c;发现MavenHelper插件和IDEA自带的Analyze Dependencies都有个缺点&#xff1a;只能是单个模块…

解决Ubuntu无法找到python3.7的包的问题 E: Couldn‘t find any package by glob ‘python3.7‘

该问题可能是由于默认的 Ubuntu 存储库中没有 Python 3.7 相关的包或系统配置的问题。可以尝试以下方法解决问题&#xff1a; 1. 使用 deadsnakes PPA 添加 Python 3.7 支持 deadsnakes PPA 是一个第三方存储库&#xff0c;提供多版本的 Python 支持&#xff0c;包括 Python …

第十四周学习周报

目录 摘要Abstract1. LSTM的代码实现2. 序列到序列模型3. 梯度与方向导数总结 摘要 在上周的学习基础之上&#xff0c;本周学习的内容有LSTM的代码实现&#xff0c;通过对代码的学习进一步加深了对LSTM的理解。为了切入到transformer的学习&#xff0c;本文通过对一些应用例子…

【Docker】如何让docker容器正常使用nvidia显卡

首先确保宿主机正常安装了显卡驱动 nvidia-smi打印显卡信息如下&#xff1a; 安装nvidia-container-toolkit工具 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker运行如下命令测试显卡是否在容器内可用 …

如何去编写一个好的单元测试,通义灵码是如何快速生成单元测试?

本文首先讲述了什么是单元测试、单元测试的价值、一个好的单元测试所具备的原则&#xff0c;进而引入如何去编写一个好的单元测试&#xff0c;通义灵码是如何快速生成单元测试的。 通义灵码插件下载安装&#xff1a;通义灵码_智能编码助手_AI编程-阿里云 目录 什么是单元测试&…