opencv+unity的面捕虛擬主播解決方案

現(xiàn)在網(wǎng)上基本所有的虛擬主播工具全都是要沖會(huì)員的,所以就想到自己搞一個(gè)虛擬主播軟件。因?yàn)樽约耗芰λ接邢蓿怨δ苓€不是很完善。
主要是感覺自己留著太可惜了,發(fā)出來吧,意料之內(nèi)肯定沒人看,但說不定就有人正需要這個(gè)東西然后搜索了一下哈哈哈哈哈
整個(gè)工具分成兩個(gè)部分,一個(gè)是python寫的,里面使用opencv的68點(diǎn)人臉捕捉功能,并打開電腦的攝像機(jī),獲取圖像后從圖像里找到人臉的關(guān)鍵坐標(biāo),然后生成json格式的數(shù)據(jù)文件,存儲(chǔ)在data.txt里面。
第二個(gè)部分是unity3d的程序,程序里面讀取剛才的data.txt得到坐標(biāo)數(shù)據(jù)然后分析人臉坐標(biāo)然后還原頭部動(dòng)作與簡單的表情。算法還不完善。。。求大佬別罵我。。。
如果想替換模型的話,目前只能從源碼里面改。
鏈接:https://pan.baidu.com/s/1bigLcqtYKHPt92qXBfs3NQ?pwd=0204 提取碼:0204 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦

打包程序部分:
這里分享了兩個(gè)文件,一個(gè)是打包好的,如圖所示。雙擊Object_HDRP.exe程序打開unity的程序部分。

打開上面的目錄的“dist”文件夾,得到下圖,雙擊打開捕捉工具開始讀取電腦相機(jī)的圖像。

上面兩張圖里面都有config.json的文件,這是程序的配置文件。寫完程序才發(fā)現(xiàn)json不支持注釋。。。唉,湊活著看吧



簡略的源碼解釋:
unity部分的程序的腳本有兩個(gè),可以看成是? 1、面部動(dòng)作分析部分 2、模型驅(qū)動(dòng)部分

這個(gè)腳本負(fù)責(zé)不斷的從data.txt文件中讀取json字符串并嘗試去還原用戶的動(dòng)作。大致流程是把捕捉得到的動(dòng)作先直接附著到一個(gè)臨時(shí)的模型上,然后把這個(gè)臨時(shí)模型的歐拉旋轉(zhuǎn)信息傳給模型驅(qū)動(dòng)部分。

這個(gè)腳本的作用是接收要旋轉(zhuǎn)到的目標(biāo)動(dòng)作,然后做運(yùn)動(dòng)的平滑處理,同時(shí)要把旋轉(zhuǎn)的強(qiáng)度按照比例分配給多個(gè)骨骼。(兩個(gè)軀干骨骼,兩個(gè)頭部骨骼)