利用机器学习重构视频中的人脸
引言
中国与英国的研究团队携手合作,开创了一种创新的视频面孔重塑技术。这项技术能够以极高的一致性对视频中的面部结构进行逼真的放大和缩小,且避免了常见伪影的产生。
从研究人员选取的YouTube视频样例中可见,经过处理后,女演员詹妮弗·劳伦斯的面容显得更加瘦削(如图右方所示)。欲观看更高分辨率的示例,请参阅文章底部的嵌入式视频。该技术源自链接:[视频链接]
传统上,此类面部变换需要借助复杂的CGI方法实现,这不仅成本高昂,还涉及到繁琐的动作捕捉、绑定和纹理处理流程,以完整重建面部特征。
然而,这项新技术另辟蹊径,将CGI与神经网络管道相结合,作为参数化的3D面部信息处理的一部分。这种方法随后构成了机器学习工作流程的基础,为视频编辑和面部动画领域带来了革命性的变革。
概述
传统的参数化面孔技术越来越多地被用作利用人工智能(AI)而非计算机生成图像(CGI)的变革性过程的指导原则。在这项研究中,作者们提出了一个目标:
“我们的目标是根据现实世界中的自然面部变形编辑人像面部的整体形状,生成高质量的人像视频重塑结果。这可用于诸如用于美化的匀称脸部生成和用于视觉效果的脸部夸张等应用。”
自从Photoshop这类图像编辑软件普及以来,消费者已经能够对2D图像进行面部扭曲和变形的操作。然而,这些操作有时会导致不自然甚至令人难以接受的结果,特别是当涉及到身体畸形的图像处理时。作者指出,尽管在静态图像上的应用相对成熟,但在视频上实现类似的面部变形技术,如果不借助CGI,仍然是一个挑战。这项研究的成果,旨在通过AI技术,使得在视频内容中进行面部重塑变得更加容易和高效,同时保持高质量和连贯性。
形体重塑,或称为人体形态编辑,是计算机视觉领域中一个非常活跃的研究方向。它涉及到使用人工智能算法来修改和调整人体图像或视频中的形态特征,例如身高、体型或骨骼结构。这项技术在时尚电子商务中具有巨大的应用潜力,例如,允许顾客在购买前预览服装在不同体型上的效果。
然而,这项技术面临着一些挑战。例如,使某人看起来更高或改变其骨骼结构,需要在不扭曲背景或周围环境的情况下,对图像进行复杂的几何变换。这在技术上是非常困难的,因为需要考虑人体和服装的三维结构,以及它们与环境的交互。
关于使用人工智能技术重塑人体形态的研究。这项研究提出了一种新的方法,通过深度学习模型来改善人体形态的编辑,使得结果更加自然和逼真。
关于改变视频中头部形状的研究。这项工作尝试在视频序列中以一种连贯和令人信服的方式改变人物的头部形状,但可能会受到一些技术限制的影响。
关于新系统的训练环境和使用的技术的描述。这个系统在一台高性能的台式电脑上进行训练,使用了多种技术和工具,包括OpenCV库进行运动估计、结构流框架进行图像修复、面部对齐网络(FAN)进行面部特征点的检测,以及Ceres求解器进行优化问题求解。
这些技术结合起来,使得新系统能够处理更为复杂的任务,比如从静态图像编辑扩展到视频编辑,提高编辑结果的质量和真实感。随着技术的不断进步,我们可以期待在未来形体重塑技术将更加成熟,应用范围也会更加广泛。
关于人脸
在新系统下,视频被提取为图像序列,并且首先估计每张脸的刚性姿势。 然后,联合估计代表性数量的后续帧,以沿着整个图像运行(即视频的帧)构建一致的身份参数。
之后,对表达式进行求值,产生通过线性回归实现的重塑参数。接下来是一个新颖的有符号距离函数(自卫队)方法在重塑之前和之后构建了面部轮廓的密集二维映射。
最后,对输出视频执行内容感知的扭曲优化。
参数化面
该过程利用了 3D Morphable Face Model (3DMM),这是一种日益流行的技术。 流行的辅助语t 到基于神经和 GAN 的人脸合成系统,以及 相应 用于深度伪造检测系统。
不是来自新论文,而是 3D Morphable 脸部模型 (3DMM) 的示例 - 新项目中使用的参数化原型脸部。 左上角,3DMM 面上的地标应用。 右上方是等位图的 3D 网格顶点。 左下角显示地标拟合; 中下,提取的面部纹理的等位图; 右下角是最终的装配和形状。_ 资料来源:http://www.ee.surrey.ac.uk/CVSSP/Publications/papers/Huber-VISAPP-2016.pdf
新系统的工作流程必须考虑遮挡的情况,例如主体将视线移开的情况。 这是 Deepfake 软件面临的最大挑战之一,因为 FAN 地标几乎没有能力解释这些情况,并且随着面部避开或被遮挡,质量往往会下降。
新系统能够通过定义一个 轮廓能量 它能够匹配 3D 人脸 (3DMM) 和 2D 人脸(由 FAN 地标定义)之间的边界。
优化
这种系统的一个有用部署是实现实时变形,例如在视频聊天过滤器中。 当前的框架无法实现这一点,并且所需的计算资源将使“实时”变形成为一个显着的挑战。
根据该论文,假设视频目标为 24fps,管道中的每帧操作表示每秒镜头的延迟为 16.344 秒,另外还有用于身份估计和 3D 面部变形的一次性命中(分别为 321 毫秒和 160 毫秒) 。
因此,优化是降低延迟方面取得进展的关键。 由于跨所有帧的联合优化会给过程增加严重的开销,并且初始化式优化(假设第一帧中说话者的后续身份一致)可能会导致异常,因此作者采用了稀疏模式来计算系数以实际间隔采样的帧数。
然后对该帧子集执行联合优化,从而实现更精简的重建过程。
脸部变形
该项目中使用的变形技术改编自作者 2020 年的作品 深邃匀称的肖像 (数字信号处理器)。
Deep Shapely Portraits,2020 年提交给 ACM Multimedia 的作品。 该论文由浙江大学-腾讯游戏与智能图形创新技术联合实验室的研究人员领导。 来源:http://www.cad.zju.edu.cn/home/jin/mm2020/demo.mp4
作者观察到 “我们将这种方法从重塑一个单眼图像扩展到重塑整个图像序列。”
检测
该论文指出,没有可比的现有材料来评估新方法。 因此,作者将扭曲视频输出的帧与静态 DSP 输出进行了比较。
作者指出,由于 DSP 方法使用了稀疏映射,因此出现了伪影,而新框架通过密集映射解决了这个问题。 此外,该论文还指出,DSP 制作的视频, 演示 缺乏流畅度和视觉连贯性。
相关文章:

利用机器学习重构视频中的人脸
引言 中国与英国的研究团队携手合作,开创了一种创新的视频面孔重塑技术。这项技术能够以极高的一致性对视频中的面部结构进行逼真的放大和缩小,且避免了常见伪影的产生。 从研究人员选取的YouTube视频样例中可见,经过处理后,女演…...

2021数学建模C题目– 生产企业原材料的订购与运输
C 题——生产企业原材料的订购与运输 思路:该题主要是通过对供应商的供货能力和运送商的运货能力进行估计,给出合适的材料订购方案 程序获取 第一题问题思路与结果: 对 402 家供应商的供货特征进行量化分析,建立反映保障企业生…...
C# OpenCvSharp 图像复制-clone、copyTo
在C#中使用OpenCvSharp库处理图像时,clone和copyTo是两个非常常用的函数。理解和合理使用这些函数可以帮助你在图像处理项目中更高效地操作图像数据。本文将详细介绍这两个函数的使用方法,并通过具体的示例来说明它们的实际应用。 1. clone 函数 定义 …...
中国投入到终止遗传性疾病的战斗
中国投入到终止遗传性疾病的战斗 编译 李升伟 于2006年6月在澳大利亚的墨尔本会议上启动的人类变异组计划(Human Variome Project,简称HVP),旨在全球范围内广泛收集所有基因和蛋白质序列变异和多态性的数据,采用全基…...
PCL common中常见的基础功能函数
文章目录 一、common模块中的头文件二、common模块中的基本函数1、angles.h2、centroid.h1)计算给定一群点的3D中心点,并且返回一个三维向量2)计算给定的三维点云的协方差矩阵。3)计算正则化的3*3的协方差矩阵以及给定点云数据的中心点4)利用一组点的指数对其进行一般的、…...

力扣每日一题 6/22 字符串/贪心
博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2663.字典序最小的美丽字符串【困难】 题目: 如果一个字符串满…...

MCT Self-Refine:创新集成蒙特卡洛树搜索 (MCTS)提高复杂数学推理任务的性能,超GPT4,使用 LLaMa-3 8B 进行自我优化
📜 文献卡 题目: Accessing GPT-4 level Mathematical Olympiad Solutions via Monte Carlo Tree Self-refine with LLaMa-3 8B作者: Di Zhang; Xiaoshui Huang; Dongzhan Zhou; Yuqiang Li; Wanli OuyangDOI: 10.48550/arXiv.2406.07394摘要: This pape…...

自制HTML5游戏《开心消消乐》
1. 引言 游戏介绍 《开心消消乐》是一款基于HTML5技术开发的网页游戏,以其简单的操作方式、轻松的游戏体验和高度的互动性,迅速在社交平台上获得了广泛的关注和传播。玩家通过消除相同类型的元素来获得分数,游戏设计巧妙,易于上手…...

【C++】平衡二叉树(AVL树)的实现
目录 一、AVL树的概念二、AVL树的实现1、AVL树的定义2. 平衡二叉树的插入2.1 按照二叉排序树的方式插入并更新平衡因子2.2 AVL树的旋转2.2.1 新节点插入较高左子树的左侧(LL平衡旋转)2.2.2 新节点插入较高右子树的右侧(RR平衡旋转)…...
第一百一十八节 Java面向对象设计 - Java接口
Java面向对象设计 - Java接口 什么是接口? Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现。 在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。 接口通过抽象概念定义不相关类之间…...
Flink nc -l -p 监听端口测试
1、9999端口未占用 netstat -apn|grep 99992、消息发送端 nc -l -k -p 9999 {"user":"ming","url":"www.baidu1.com", "timestamp":1200L, "score":1} {"user":"xiaohu","url":…...
在IntelliJ IDEA中使用Spring Boot:快速配置
使用IntelliJ IDEA开发Spring Boot应用程序可以极大地提高开发效率,因为IDEA提供了许多便捷的功能,比如自动补全、代码分析、热部署等。以下是一篇可能的CSDN博客文章草稿,介绍如何在IntelliJ IDEA中使用Spring Boot: 在IntelliJ …...
django filter 批量修改
django filter 批量修改 在Django中,如果你想要批量修改记录,可以使用update()方法。这个方法允许你在一个查询集上执行批量更新,而不需要为每条记录生成单独的数据库事务。 以下是一个使用update()方法批量修改记录的例子: fro…...

maven:中央仓库验证方式改变:401 Content access is protected by token
前几天向maven中央仓库发布版本,执行上传命令mvn release:perform时报错了: [ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy (injected-nexus-deploy) on project xxxxx: Failed to deploy artifacts: …...
【面试】http
一、定义 HTTP(超文本传输协议),是一种用于分布式、协作式、超媒体信息系统的应用层协议,它是万维网数据通信的基础。主要特点是无状态(服务器不会保存之前请求的状态)、无连接(服务器处理完请…...

获取泛型,泛型擦除,TypeReference 原理分析
说明 author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 获取泛型,泛型擦除 下图中示例代码是一个工具类用于生成 csv 文件,需要拿到数据的类型,使用反射感知数据类型的字段,来填充表字段名。可以看到泛型…...

springboot 3.x 之 集成rabbitmq实现动态发送消息给不同的队列
背景 实际项目中遇到针对不同类型的消息,发送消息到不同的队列,而且队列可能还不存在,需要动态创建,于是写了如下代码,实践发现没啥问题,这里分享下。 环境 springboot 3.2 JDK 17 rabbitMQ模型介绍 图片…...
C++ 代码实现鼠标右键注册菜单,一级目录和二级目录方法
最近做的一个项目, 在使用windows的时候,我希望在右键菜单中添加一个自定义的选项, 该选项下有我经常使用的多个程序快捷方式, 直接上代码 头文件 #pragma once #include <Windows.h> #include <iostream> #include <string> using namespace std; …...

SQLite 3 优化批量数据存储操作---事务transaction机制
0、事务操作 事务的目的是为了保证数据的一致性和完整性。 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID: 原子性(Atomicity):确保工作单位内的所有操作都成功完成&…...
[程序员] 表达的能力
之前看CSDN的问答区,很多时候,感觉问题的描述所要表达的意思非常模糊,或者说描述不清。如果是想回答问题的人想回答问题,首先要搞清楚是什么问题,就需要再问问题主很多细节的东西。三来四去,才能搞清楚具体…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...