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

现在网上基本所有的虚拟主播工具全都是要冲会员的,所以就想到自己搞一个虚拟主播软件。因为自己能力水平有限,所以功能还不是很完善。
主要是感觉自己留着太可惜了,发出来吧,意料之内肯定没人看,但说不定就有人正需要这个东西然后搜索了一下哈哈哈哈哈
整个工具分成两个部分,一个是python写的,里面使用opencv的68点人脸捕捉功能,并打开电脑的摄像机,获取图像后从图像里找到人脸的关键坐标,然后生成json格式的数据文件,存储在data.txt里面。
第二个部分是unity3d的程序,程序里面读取刚才的data.txt得到坐标数据然后分析人脸坐标然后还原头部动作与简单的表情。算法还不完善。。。求大佬别骂我。。。
如果想替换模型的话,目前只能从源码里面改。
链接:https://pan.baidu.com/s/1bigLcqtYKHPt92qXBfs3NQ?pwd=0204 提取码:0204 复制这段内容后打开百度网盘手机App,操作更方便哦

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

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

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



简略的源码解释:
unity部分的程序的脚本有两个,可以看成是 1、面部动作分析部分 2、模型驱动部分

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

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