利用机器学习重构视频中的人脸
引言
中国与英国的研究团队携手合作,开创了一种创新的视频面孔重塑技术。这项技术能够以极高的一致性对视频中的面部结构进行逼真的放大和缩小,且避免了常见伪影的产生。
从研究人员选取的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的问答区,很多时候,感觉问题的描述所要表达的意思非常模糊,或者说描述不清。如果是想回答问题的人想回答问题,首先要搞清楚是什么问题,就需要再问问题主很多细节的东西。三来四去,才能搞清楚具体…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
