数字人+AI换脸简单实现虚拟制片

概述

本文将从零开始介绍如何创造并驱动数字人,最后通过AI换脸实现虚拟制片。效果如下: 数字人驱动 换脸憨豆先生

数字人简介

数字人(Digital Human / Meta Human),是运用数字技术创造出来的、与人类形象接近的数字化人物形象。数字人可简单的分为 2D 数字人和 3D 数字人。本文使用的数字人是通过 MetaHuman Creator 制作工具生成的 3D 数字人。3D 数字人的驱动方式可简单的分为真人驱动和模型驱动。本文使用的驱动方式为真人驱动。

AI换脸简介

AI 换脸指的是通过 AI 人工智能技术把原视频或图片的人脸换成其他的人脸。本文使用目前最新的 roop 换脸工具,通过一张照片,把数字人的脸换成憨豆先生。现在比较主流的换脸技术还有 deep facelab 和 SimSwap。

实现

准备工作

首先需要下载虚幻引擎作为数字人的编辑器,下载地址为 www.unrealengine.com/zh-CN/downl...。其次要在虚幻引擎库中下载 MetaHuman 插件。对于数字人驱动还需要一台XR级别以上的苹果手机,下载 Live Link Face app。对于 AI 换脸,需要搭建 Python 环境,具体可按照如下地址搭建:github.com/s0md3v/roop

数字人创建

首先打开虚幻引擎创建一个项目。本文使用的版本的UE5.0。 项目创建

之后导入一个立方体模型,模型下载地址为 www.aliyundrive.com/s/bpHH5zCqu... (模型来自b站UP主修炼自我 space.bilibili.com/243808341)。然后选择一张想做为虚拟人基底的照片导入到UE。本文选择的是憨豆先生的照片。右键点击基地照片选择创建材质。 材质创建

然后双击立方体模型将生成好的材质拖到材质插槽中。 添加材质

点击上方编辑->插件,搜索 MetaHuman 插件并勾选。

添加 MetaHuman 插件

添加完插件之后在内容浏览器中右键->MetaHuman->MetaHuman 本体。 创建 MetaHuman 本体

进入 MetaHuman 本体插件之后,选择网格体中的组件,将之前的立方体导入。之后移动视角,把立方体的一面正对屏幕。接着依次点击提升帧->追踪活动帧。结果如下: 模型关键点确认

我们可以通过移动绿色的点矫正人脸关键点。确认关键点无误之后点击右侧身体选择一个合适的模版。最后选择网格体转 MetaHuman 上传模型到 MetaHuman Creator 进行下一步操作。 上传模型

上传完毕后,进入到 MetaHuman Creator (www.unrealengine.com/zh-CN/MetaH...)。 MetaHuman Creator

可以看到左侧有许多捏脸的设置,可以对我们的模型进行微调。 模型微调

我们的模型在头顶部分存在异常,原因可能是正面没有对好,所以我们在自定义网格体选中头顶调整区域影响,将头顶恢复正常。 自定义网格体微调

当模型调整完毕后重新返回虚幻引擎,点击上方快速添加到项目->打开Quixel Bridge->下载模型 模型导入

模型下载

模型下载完毕之后点击add添加到项目中,并重启项目。之后将人物模型拖到场景中,模型的位置在 ALL/内容/MetaHumans。

数字人驱动

驱动数字人的方式我们采用真人驱动的方式,使用苹果手机的摄像头获取脸部变形数据,通过 Live Link Face 连接虚幻引擎和手机。 首先我们打开 Live Link Face ,模式选择 Live Link(ARKit),进入后点击左上角设置,再点击流送添加目标,输入电脑的IP地址。电脑和手机需要在同一个局域网内。 之后打开我们的虚幻引擎项目,点击窗口 -> 虚拟制片 -> Live Link,添加我们的连接。 设置连接

勾选 Live Link

设置完 Live Link 以后,打开内容浏览器->MetaHumans->Common->Face->Face_AnimBP 动画蓝图。之后点击左下角的动画图表,然后在选中 LLink Face Subj,将默认值改为我们的 Live Link 连接。然后点击左边头像的小圆点录制我们的嘴形动画。录制完毕后保存动画。 Face_AnimBP 动画蓝图

返回我们的世界主页添加关卡序列。 添加关卡序列

点击轨道->Actor到Sequencer->你的虚拟人。把虚拟人添加到关卡序列,然后删除 Face 中的 Face_ControlBoard_CtrlRig。 关卡序列

然后点击 Face 的+轨道->动画->录制好的动画。添加完毕后,选择将此影片渲染为视频或图像帧序列。我们选择 JPG 格式图像导出,如果使用 AVI 格式导出视频会在 AI 换脸部分出现问题。 添加动画

数字人虚拟制片导出

至此我们的数字人虚拟制片已经完成。完成之后,发现自己捏的数字人太丑了,因此我决定再加一步换脸,让我们的虚拟人变得更加生动。

AI换脸

我们在命令行中打开下载好的 roop 的位置,通过命令 python run.py --execution-provider cuda 启动 roop 的换脸界面。添加目标选择憨豆先生的一张照片,再选 target 添加我们生成的 JPG 文件夹,然后关闭 Keep audio,点击 Start 生成换脸视频。 roop 界面

憨豆先生换脸 最后我们就获得了一个逼真的数字人虚拟制片。

参考文献

github.com/s0md3v/roop www.bilibili.com/video/BV1vW...

推荐阅读

Redis内存淘汰和过期删除策略原理分析

浅析MySQL之MVCC机制

被忽略的缓存 -bfcache

新一代vue状态管理工具Pinia

Cola-StateMachine状态机的实战使用

招贤纳士

政采云技术团队(Zero),Base 杭州,一个富有激情和技术匠心精神的成长型团队。规模 500 人左右,在日常业务开发之外,还分别在云原生、区块链、人工智能、低代码平台、中间件、大数据、物料体系、工程平台、性能体验、可视化等领域进行技术探索和实践,推动并落地了一系列的内部技术产品,持续探索技术的新边界。此外,团队还纷纷投身社区建设,目前已经是 google flutter、scikit-learn、Apache Dubbo、Apache Rocketmq、Apache Pulsar、CNCF Dapr、Apache DolphinScheduler、alibaba Seata 等众多优秀开源社区的贡献者。

如果你想改变一直被事折腾,希望开始折腾事;如果你想改变一直被告诫需要多些想法,却无从破局;如果你想改变你有能力去做成那个结果,却不需要你;如果你想改变你想做成的事需要一个团队去支撑,但没你带人的位置;如果你想改变本来悟性不错,但总是有那一层窗户纸的模糊......如果你相信相信的力量,相信平凡人能成就非凡事,相信能遇到更好的自己。如果你希望参与到随着业务腾飞的过程,亲手推动一个有着深入的业务理解、完善的技术体系、技术创造价值、影响力外溢的技术团队的成长过程,我觉得我们该聊聊。任何时间,等着你写点什么,发给 zcy-tc@cai-inc.com

微信公众号

文章同步发布,政采云技术团队公众号,欢迎关注

相关推荐
萤萤七悬21 分钟前
基于本地模型yolov11识别广告关闭按钮
人工智能·airtest·poco
醒李22 分钟前
盲人出行辅助系统原型
人工智能·python·目标检测
惊鸿一博22 分钟前
Transformer模型图解(简单易懂版)
人工智能·深度学习·transformer
黎阳之光36 分钟前
视听融合新范式!黎阳之光打破视觉边界,声影协同赋能全域智慧管控
大数据·人工智能·物联网·算法·数字孪生
Ian在掘金40 分钟前
SSE 还是 WebSocket?从 AI 流式输出聊到实时通信选型
前端·人工智能
雨雨雨雨雨别下啦41 分钟前
心理健康AI助手 - 项目总结
前端·javascript·vue.js·人工智能·信息可视化
PILIPALAPENG42 分钟前
第4周 Day 3:多 Agent 协作——让 Agent 们"组队干活"
前端·人工智能·python
AI绘画哇哒哒43 分钟前
Agent三种思考模式深度解析:CoT/ReAct/Plan-and-Execute,小白程序员必看,助你轻松掌握大模型精髓(收藏版)
人工智能·学习·ai·程序员·大模型·产品经理·转行
塔能物联运维1 小时前
存量机房降本增效:两相液冷技术解锁全生命周期成本优化密码
大数据·人工智能
黎阳之光1 小时前
黎阳之光:视频孪生智慧厂网一体化解决方案|污水处理全场景智能化升级
大数据·人工智能·物联网·安全·数字孪生