「硬核实操」如何拥有一个自己的数字人模型

作者:京东健康 陈刚

一、前言

近年来,随着人工智能技术,VR,元宇宙等技术的发展(可以阅读 从Chat-GPT看🔥技术概念及医疗领域科技与应用场景 ),数字人(Digital Human)逐渐成为研究的热点之一,数字人是指通过计算机技术模拟出的具有人类外表,动作和语言能力的虚拟人物,具体可以应用到电影、游戏、虚拟现实、智能客服带货主播等多个领域。

本文大致分为三个章节:

  1. 第一部分会介绍常用技术以及简介,以及自己用到构建一个自己虚拟数字人用到的3D引擎和三维软件

  2. 第二部分会详细描述生成细节,通过照片建模,创建模型,添加细节,添加表情,优化效果,接入场景,最终效果

  3. 第三部分总结本篇内容

从预见未来到遇见未来,让我们开始,向上吧技术人!!!

二、虚拟数字人技术

要聊需要那些技术,先聊需要那些步骤?

收集数据:首先需要收集自己的数据,包括照片、视频、声音等,这些数据将成为数字人的基础。

• 人脸检测:利用计算机视觉技术对照片进行处理,检测出其中的人脸。可以使用已有的人脸检测算法,例如OpenCV、Dlib等。

人脸识别:对于检测出来的人脸,需要利用人脸识别技术对其进行识别和分析,从而获取人脸的各种特征和信息。可以使用已有的人脸识别算法,例如FaceNet、VGGFace等。

3D建模技术:数字人是一种三维模型,因此需要掌握3D建模技术。这包括了掌握3D建模软件的使用,如Blender、Maya、ZBrush等。

• 优化细节:优化数字人的各种细节,包括皮肤纹理、发型、服装等,让数字人更加真实、生动。

• 材质和纹理制作技术:数字人需要具有逼真的材质和纹理,因此需要掌握材质和纹理制作技术。这包括了掌握材质和纹理制作软件的使用,如Substance Painter、Photoshop等。

动画制作技术:数字人需要具有动态的动作和表情,因此需要掌握动画制作技术。这包括了掌握动画制作软件的使用,如Unity、Unreal Engine等。

以下文字内容较多,先放一个自己建好的模型

1、收集数据或者生成图片

• Photoshop、相机:这部分忽略一下,哈哈哈

Stable DiffusionAI图像生成工具,一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型,生成图片的原理是通过模拟稳定扩散过程并生成相应的数据,然后将数据可视化展示为图片,以帮助用户更好地理解实验结果和数据特征

ChatGPT:OpenAI团队ChatGPT-4O开发了一种新的技术,使ChatGPT也可以生成图片。这种技术被称为DALL·E(即“Drawing Artificially with a Learned Language Model and a Encoder”),它结合了语言模型和图像编码器的能力,能够根据给定的文本描述生成对应的图片。

2、人脸检测和识别

OpenCV:是一个用于计算机视觉的开源库,它提供了许多常用的计算机视觉算法和工具,如图像处理、特征提取、物体检测、人脸识别、跟踪等。OpenCV支持多种编程语言,包括C++、Python等。

Dlib:是一个C++库,它提供了用于机器学习、图像处理、计算机视觉等领域的算法和工具。其中最知名的功能是人脸识别,它基于深度学习和传统的计算机视觉技术,并提供了人脸对齐、人脸特征提取等功能。

FaceNet:是由Google开发的一个深度学习算法,用于将人脸图像转换为高维向量表示,从而实现人脸识别。FaceNet使用了三个主要组件:卷积神经网络、三元组损失函数和在线学习方法,这些组件使得FaceNet能够在大规模人脸识别任务中达到很高的准确率。

VGGFace:是由牛津大学的研究团队开发的人脸识别算法,它基于深度卷积神经网络,并使用了许多卷积层和池化层来提取人脸图像的特征。VGGFace包含了两个模型:VGGFace和VGGFace2,其中VGGFace是一个较早的模型,而VGGFace2是一个新的模型,它在大规模人脸识别任务中具有更好的性能。

3、3D建模技术

Blender:是一个用于三维建模、动画、渲染和交互式应用程序开发的开源软件。它支持多种三维对象的创建和编辑,包括多边形网格、NURBS曲线、体积网格等,并提供了丰富的材质和纹理编辑器,可以帮助用户创建出逼真的场景和角色。

Metashape:前身为PhotoScan)是一个用于三维重建和地形建模的商业软件。它可以根据照片生成高精度的数字模型,并提供了多种渲染选项和工具,如纹理映射、贴图、相机校准等。Metashape还可以将生成的模型导出到其他软件中进行后续处理和应用。

Maya:是一款专业级的三维建模和动画软件,广泛用于电影、电视、游戏等领域。它提供了丰富的建模和动画工具,包括多边形网格、NURBS曲线、动力学仿真、粒子系统等,并支持多种渲染引擎,如Arnold、V-Ray等。

ZBrush:是一款专业级的数字雕刻软件,用于创建高精度的三维模型和角色。它提供了多种绘画和雕刻工具,包括多边形建模、纹理映射、雕刻笔刷等,并支持实时预览和交互式渲染。

LayaAir:是一个用于Web、移动和小游戏开发的HTML5引擎。它提供了多种功能和工具,如3D渲染、物理引擎、GUI编辑器等,可以帮助用户创建出高效、高质量的Web应用和游戏。LayaAir还支持多种开发语言,包括JavaScript、TypeScript等。

4、动画制作技术

Unity3D:Unity3D是一款实时3D互动内容创作和运营平台,支持多种平台和设备,包括PC、移动设备、虚拟现实和增强现实等。Unity3D提供了强大的编辑器和工具,支持C#和UnityScript等多种编程语言,可用于游戏开发、AR/VR应用开发等。

Unreal Engine: Unreal Engine是一款由Epic Games开发的3D游戏引擎,同样支持多种平台和设备,包括PC、主机、移动设备、VR和AR等。Unreal Engine提供了强大的编辑器和工具,支持C++和蓝图等多种编程方式,可用于游戏开发、建筑可视化、虚拟展览等。

CryEngine:CryEngine是一款由Crytek开发的3D游戏引擎,同样支持多种平台和设备,包括PC、主机、移动设备、VR和AR等。CryEngine提供了强大的编辑器和工具,支持C++和Lua等多种编程方式,可用于游戏开发、建筑可视化、虚拟展览等。

Godot:Godot是一款免费、开源的3D游戏引擎,支持多种平台和设备,包括PC、移动设备、Web和VR等。Godot提供了强大的编辑器和工具,支持GDScript和C#等多种编程语言,可用于游戏开发、AR/VR应用开发等。

部分软件图标

除了以上技术应该还有很多技术,欢迎大家热烈讨论和在评论区补充😏

三、构建一个自己的数字人—小陈

第一步 用自己的照片生成自己的头像模型

有以下三种办法

1、使用 https://avatarsdk.com/ 在线制作,这个H5是基于WebGL的OpenCV技术构建,可以传一张照片(高p的)生成头的模型,也可以生成头和身体模型。

为了不影响建模,一般选择秃头,导出数字人头部模型

2、使用Polycam软件应用上传生成导出

拍照时自己站着不要动,我们做数字人需要头就可以,拍照的仰角和俯角倾斜,拍40张左右即可

导入Blender进行对点云部分删除部分,分析建模,然后导出数字人头部模型

3、通过照片,格式工厂,在Metashape构建模型 对点云进行处理 导出数字人头部模型,原理是一样的

以上方式根据具体的需求来,第二三种方式更逼真。

第二步 导入模型到UE5中,并安装插件

安装 MetaHuman插件(数字人)、 Bridge插件(建模)、LiveLink插件(交互动作)。插件都装好后,重启虚幻引擎

1、导入我们第一步的模型,创建MetaHuman实体,并给实体命名,注意这个名字就是你数字人的名字

图1

2、双击进入,面部选择网格体也就是我们第一步生成的头像模型,并给小人选择合适身体

继续点击提升帧,追踪活动帧,效果如下图

继续点击MetaHuman本体解算、网格体转MetaHuman。

3、在UE5中打开Bridge,登陆一下账号,只有logo的就是我们的小人了。忽略我设计的秃顶和爆炸头小陈

选中logo模型,点击START MHC进入MetaHuman Creator网页, https://metahuman.unrealengine.com/ 进一步加工我们的MetaHuman吧

第三步 调整你的数字人

对骨骼,肤色,头发,牙齿,身体,表情动作等进行调整,内容太丰富,建议自己尝试,放一个眼影小陈,和大胡子小陈

第四步 下载数字人并加载到虚幻引擎中

1、打开Bridge点击Down

2、添加小人到项目中后项目中多了一个MetaHuman的文件夹,移动到你的场景吧

3、最终效果图,只下载好了(网速不好)秃头小陈实在不好放大,下次做个好看的在更新下文章吧。

四、总结和畅想

本文介绍了如何打造一个数字人,描述业内常用的一些软件和技术栈,并实战打造一个以自己为模型构建的虚拟数字人,并详细描述了全过程。总的来说数字人具备了逼真的人类外貌、身体动作和语言能力的虚拟人物,不同的制作方法和技术可以实现不同的效果和应用,选择合适的方法和技术需要根据具体需求和项目情况来确定。

大家将就看完了,模型还是丑丑的😭,下一步持续提升,让数字人拥有智慧,拥有交互,拥有颜值(毕竟颜值才是正义)。

关于数字人如何创建和相关技术就介绍到这里啦,我也是刚入门,有不对的地方和需要补充的,欢迎大家指正,希望对大家所有帮助,也欢迎多多点赞收藏😎

最后关于数字人的应用场景和结合实际的落地效果,大家有好的idea也可以一起讨论。

五、团队介绍

我们是互联网医疗服务团队,主要是在医药闭环流程中,承接医患两端服务平台,包括派单、问诊、处方等垂直领域业务,团队一直致力于在医疗行业中探索和应用各种新兴的科技手段。目前主要在医学对话,远程医疗、医学影像诊断等方面进行探索和尝试,相信可以为医生和患者带来更好的医疗服务体验。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fay数字人助理版是fay开源项目的重要分支,专注于构建智能数字助理的开源解决方案。它提供了灵活的模块化设计,使开发人员能够定制和组合各种功能模块,包括情绪分析、NLP处理、语音合成和语音输出等。

Fay数字人助理 Fay数字人助理版是fay开源项目的重要分支,专注于构建智能数字助理的开源解决方案。它提供了灵活的模块化设计,使开发人员能够定制和组合各种功能模块,包括情绪分析、NLP处理、语音合成和语音输出等。Fay数字人助理版为开发人员…

ChatGLM模型部署分享

ChatGPT云炬学长 ​关注 先看结果&#xff1a; 部署问题&#xff1a;显卡太小无法加载使用&#xff0c;期间也换了N个显卡&#xff0c;太穷了!>-< 模型描述&#xff1a; 清华开源项目ChatGLM-6B发布。这一项目可以直接部署在本地计算机上&#xff0c;无需联网即可让你…

UE5引擎入门,第一周总结:简单的旋转魔方小项目

基础知识总结 蓝图节点 1.蓝图中的节点是封装好的函数。这些函数功能强大&#xff0c;但由于数目繁多且内部实现不明&#xff08;注&#xff1a;可能是开发环境问题&#xff0c;转到C代码这一步永远无法执行&#xff09;&#xff0c;总会出现一些不明所以的bug&#xff08;比…

PS学习记录-矢量图和位图

目录 概念说明 矢量图 位图 常见的格式类型 矢量图文件格式举例&#xff1a; 位图&#xff08;标量图&#xff09;文件格式举例&#xff1a; 两种图片的适用范围 两种图片的核心差异 1、缩放保真 2、色彩不同 3、格式 4、常用绘图工具 5、占用空间 6、转化 概念说…

Unity中使用矢量图SVG

1.打开PackageManager 2.点击左上角的号&#xff0c;Add package from git URL 3.输入&#xff1a;com.unity.vectorgraphics 免费下SVG测试地址&#xff1a;https://undraw.co/illustrations

ArcMap将png图像矢量化

一、将png图像转成灰度图 图像为语义分割模型生成的二值索引图像&#xff0c;直接用cv2的灰度读取图像模式&#xff0c;然后再另存。 二、配准 首先在ArcGis中加载带有空间坐标的图像&#xff0c;这里选择的是测试图像对应的。&#xff08;加载图像可以直接拉着拖进来&#…

Android开发中使用矢量图

本文我们将介绍一些关于Android矢量图的相关知识点。最新的项目中要求以矢量图替代传统的.png资源文件&#xff0c;所以特意学习了一下Android中的矢量图相关概念&#xff0c;不得不说矢量图还是一个比较好的适配方案。Android从Android5.0开始引入了对矢量图的支持&#xff0c…

Android使用svg矢量图

可缩放矢量图形,SVG不会像位图一样因为缩放而让图片质量下降。 优点&#xff1a;节约空间与内存&#xff0c;常用于简单小图标 SVG 使用 XML 格式定义图形&#xff0c;标准svg根节点为<svg> 在Android中通过Vector实现对svg的支持&#xff0c;根节点为<vector>。 …

位图和矢量图转换工具推荐

相信做平面设计的大家&#xff0c;都遇到过素材是位图放大后不清晰的情况&#xff0c;十分影响设计的美观。而矢量图是根据几何特性来绘制图形&#xff0c;放大后图像不会失真。所以这篇文章教大家位图转矢量图。 一、使用CorelDRAW CorelDRAW是一款专业的平面设计软件,专注于…

将图片快速转换为矢量地图-半自动地图矢量化工具raster_tracer的使用方法

最近需要根据一幅jpeg地图绘制矢量地图&#xff0c;如果一点一点绘制太麻烦&#xff0c;又不想装庞大的arcgis用arcscan处理&#xff0c;查了些资料&#xff0c;发现深度学习在这方面也没啥进展。最后查到了QGIS有一款半自动地图矢量化工具raster_tracer可以解决这个问题&#…

关于 draw.io 矢量图 SVG 导出的研究

draw.io 是一个简单易用的图表 (diagram) 绘制工具 1, 可以用作一个简单的矢量图绘制工具, 画一些简单的图标或者流程图等等都很适合. 虽然好用, 但是在导出 *.drawio 文件为其他格式时, 大多数时候都需要额外注意. 导出设计时会遇到的问题及原因 对于 PNG 导出, 默认的设置…

【GlobalMapper精品教程】043:图片自动矢量化

本文讲解Globalmapper自动矢量化教程,配套案例数据。 参考教程:ArcGIS实验教程——实验三十三:ArcScan自动矢量化完整案例教程 文章目录 一、加载实验数据二、启动矢量化工具三、矢量化栅格四、矢量化结果五、注意事项一、加载实验数据 打开配套实验数据包中的data043.rar…

C#代码实现矢量画图

要实现C#代码画矢量图&#xff0c;其基本原理是先创建一个容器作为画板&#xff0c;然后创建Line(直线)、PolyLine(多段线)、Rectangle(矩形)或者Ellipse(椭圆)基本绘图对象生成各种矢量图形&#xff0c;最后把这些图形对象添加到画板中即可&#xff0c;一般用Canvas容器作为画…

matplotlib绘图并导出eps矢量图和svg矢量图

matplotlib导出矢量图并解决中文无法正常显示问题 做仿真经常需要输出各种矢量图用于论文插图&#xff0c;下面展示了导出eps矢量图和svg矢量图的方法&#xff1a; import numpy as np import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [SimHei] # 用来正常显…

知识库AI机器人客服(基于ChatGPT3.5)对接-唯一客服系统文档中心

此功能是利用chatgpt训练企业知识开发个性化客服系统&#xff0c;可以上传自有数据&#xff0c;基于向量数据库与OpenAI Embedding&#xff0c;以及OpenAI chat/completions接口&#xff0c;实现的基于自建知识库的ChatGPT AI客服功能 管理员创建集合 向量数据库集合&#xff0…

Lazada跨境卖家必备的精细化运营工具Ushop BI的智能化选品功能

东南亚跨境电商市场的不断发展壮大&#xff0c;使得东南亚市场成为了许多跨境商家的掘金圣地&#xff0c;而Lazada作为东南亚市场的两大跨境电商平台之一&#xff0c;其发展潜力是不容小觑的&#xff0c;许多商家入驻Lazada平台是希望可以在这里将店铺做大做好&#xff0c;那俗…

跨境电商选品重要吗?

选品很重要&#xff01; 跨境电子商务选择的核心要求&#xff1a;优质商品&#xff0c;价格优势&#xff0c;符合跨境销售特点&#xff0c;满足目标海外市场需求&#xff0c;突出自身特色竞争优势。 跨境电商是如何选择产品的&#xff1f; 这个问题也很流行&#xff0c;应该考虑…

注册kaggle帐号及kaggle绑定手机收不到验证码的问题

由于自己在这上面折腾了不少时间&#xff0c;故写下这篇博客&#xff0c;希望对大家有用。 一、注册kaggle帐号 点击进入kaggle网站 kaggle网站 1.点击sign in 2.如果有雅虎、google、facebook账户的话&#xff0c;是可以直接登录的。如果没有这些账户&#xff0c;就点击Reg…

解决新用户注册Kaggle无法显示验证码的问题

解决新用户注册Kaggle无法显示验证码的问题 老板近期要求做一个比赛&#xff0c;需要注册Kaggle账户&#xff0c;但是在注册界面会无法出现人机验证&#xff0c;在这里记录一下解决的过程&#xff1a; 1.注册无法验证 2.尝试插件解决 为了解决这个问题&#xff0c;我参考了很…

手机验证码接收注册新账户

在写注册的时候想使用手机号进行验证&#xff0c;用来保证用户的安全性操作&#xff0c;因为以前使用的是邮箱验证&#xff0c;太麻烦了。所以在网上找到了一个比较好的第三方提供短信送达服务&#xff0c;有的还需要企业用户认证&#xff0c;这里我选择的是网易云的短信服务。…