欢迎光临散文网 会员登陆 & 注册

opencv+unity的面捕虚拟主播解决方案

2023-06-18 22:18 作者:撷星镌镜  | 我要投稿


直播姬里面的效果


现在网上基本所有的虚拟主播工具全都是要冲会员的,所以就想到自己搞一个虚拟主播软件。因为自己能力水平有限,所以功能还不是很完善。

主要是感觉自己留着太可惜了,发出来吧,意料之内肯定没人看,但说不定就有人正需要这个东西然后搜索了一下哈哈哈哈哈

整个工具分成两个部分,一个是python写的,里面使用opencv的68点人脸捕捉功能,并打开电脑的摄像机,获取图像后从图像里找到人脸的关键坐标,然后生成json格式的数据文件,存储在data.txt里面。

第二个部分是unity3d的程序,程序里面读取刚才的data.txt得到坐标数据然后分析人脸坐标然后还原头部动作与简单的表情。算法还不完善。。。求大佬别骂我。。。

如果想替换模型的话,目前只能从源码里面改。

链接:https://pan.baidu.com/s/1bigLcqtYKHPt92qXBfs3NQ?pwd=0204 提取码:0204 复制这段内容后打开百度网盘手机App,操作更方便哦


打包程序部分:

这里分享了两个文件,一个是打包好的,如图所示。双击Object_HDRP.exe程序打开unity的程序部分。

打包好的程序目录

打开上面的目录的“dist”文件夹,得到下图,双击打开捕捉工具开始读取电脑相机的图像。

python打包文件的目录

上面两张图里面都有config.json的文件,这是程序的配置文件。写完程序才发现json不支持注释。。。唉,凑活着看吧

配置文件说明,unity部分
配置文件说明,捕捉程序部分


简略的源码解释:

unity部分的程序的脚本有两个,可以看成是  1、面部动作分析部分 2、模型驱动部分

面部动作分析部分

这个脚本负责不断的从data.txt文件中读取json字符串并尝试去还原用户的动作。大致流程是把捕捉得到的动作先直接附着到一个临时的模型上,然后把这个临时模型的欧拉旋转信息传给模型驱动部分。

模型驱动脚本

这个脚本的作用是接收要旋转到的目标动作,然后做运动的平滑处理,同时要把旋转的强度按照比例分配给多个骨骼。(两个躯干骨骼,两个头部骨骼)

opencv+unity的面捕虚拟主播解决方案的评论 (共 条)

分享到微博请遵守国家法律