python摄像头动作捕捉_OpenMMD:没有专业摄像设备也能动作捕捉!K帧动作设计苦手的福音~...
1.前言
首先感謝大佬(們)的開(kāi)源(整合)項(xiàng)目?https://github.com/peterljq/OpenMMD
(原開(kāi)源項(xiàng)目的作者是算法工程師一枚,其實(shí)也是筆者的同行,想支持的親們可以去這個(gè)項(xiàng)目頁(yè)面點(diǎn)個(gè)star~~)
筆者掐指一算,覺(jué)得能點(diǎn)進(jìn)來(lái)看的應(yīng)該都已經(jīng)知道MMD(Miku Miku Dance)是神馬了吧,就不多做背景介紹了喲~純路人萌新不妨看看這一篇MMD的發(fā)展史:MMD發(fā)展史。如果你再問(wèn)初音是誰(shuí)的話,請(qǐng)腦補(bǔ)一下筆者這個(gè)表情:[不禁對(duì)你翻了一個(gè)白眼]
2.受眾
OpenMMD到底是干啥的?簡(jiǎn)潔地講,OpenMMD是一個(gè)可以直接分析現(xiàn)成視頻(各種MP4, AVI等視頻格式),自動(dòng)生成vmd動(dòng)作文件的工具;也就是說(shuō),你可以隨便從網(wǎng)上找一個(gè)(或者自己錄一個(gè))人類的舞蹈動(dòng)作視頻,然后直接使用這個(gè)分析工具就可以生成該舞蹈動(dòng)作對(duì)應(yīng)的vmd格式的文件了。如果文字沒(méi)說(shuō)明白的話,下面這個(gè)圖應(yīng)該一目了然吧:(當(dāng)然了,整個(gè)中間流程其實(shí)不止關(guān)鍵點(diǎn)檢測(cè),還有其他深度學(xué)習(xí)技術(shù)加持的一系列騷操作,就不贅述了,感興趣可以看下原github頁(yè)面)
處理流程:從右往左,最終可以生成連貫的vmd動(dòng)作文件
到此OpenMMD的作用很明白了哈~我覺(jué)得受眾可以是每一名想自制動(dòng)作的MMD制作者,因?yàn)橛辛诉@個(gè)神器就可以很輕松的創(chuàng)作融合各種舞蹈了,能夠很大程度上簡(jiǎn)化K幀的編輯過(guò)程~不過(guò)這里有一點(diǎn)值得說(shuō)明,這個(gè)僅僅是輔助工具而已,至少目前是做不到完美復(fù)現(xiàn)原視頻的所有動(dòng)作的,因此想制作出好的視頻依舊需要你對(duì)k幀去修補(bǔ)美化一番,但是能事先有個(gè)大體的骨骼動(dòng)作擺在那,我想已經(jīng)是意義非凡的了吧!就算是大佬想必也是樂(lè)見(jiàn)其成的~
3.使用方法
3.1 大佬向教程
其實(shí)原始github項(xiàng)目已經(jīng)寫的很詳細(xì)了,英文水平過(guò)關(guān)并且電腦水平不錯(cuò)的親們請(qǐng)直接享用:https://github.com/peterljq/OpenMMD 的?Installation and User Guidelines 部分,甚至有不懂的或者其他建議也可以直接在該項(xiàng)目上開(kāi)個(gè)issue向原作者提問(wèn)~
3.2 小白向教程
咱就假設(shè)親們使用的是windows 10系統(tǒng)了;使用linux系統(tǒng)一般是大佬,俺就不管了;使用蘋果系統(tǒng)的話,嘿嘿這個(gè)筆者自己也沒(méi)有用過(guò),因此也就不管了 [攤手]
說(shuō)在前面:如果遇到了什么教程沒(méi)有提到的問(wèn)題,可以翻一翻評(píng)論看看有沒(méi)有類似問(wèn)題,或者看一看github的issue是否有類似問(wèn)題以及解決辦法;不行就直接來(lái)評(píng)論/私信找up哈~如果up有時(shí)間會(huì)盡量來(lái)解答的。
前提條件只有兩個(gè):
1)下載作者提供的模型文件(代碼 + 深度學(xué)習(xí)模型文件,主要是模型的參數(shù)很多,因此文件體積不小,請(qǐng)耐心下載)
2)安裝Python環(huán)境(Python和C,C++,Java一樣是一種計(jì)算機(jī)語(yǔ)言)
首先是 1)下載模型文件,在往下繼續(xù)瀏覽教程之前,你就可以先從下面這個(gè)地址上開(kāi)始下載文件了:(度盤)
1L-TxEsgXD3zRHTAM8YQd7w
提取碼:82qe
那么現(xiàn)在開(kāi)始 2)安裝Python環(huán)境
windows上安裝python相比linux其實(shí)相對(duì)麻煩,因此建議直接安裝Anaconda,地址在此 https://www.anaconda.com/distribution/,這個(gè)頁(yè)面往下翻會(huì)看到
注意選擇正確的系統(tǒng),比如我們是Windows;并且是左邊的Python 3.7 version (不過(guò)version選錯(cuò)了其實(shí)沒(méi)問(wèn)題,后面再說(shuō))。一路按提示要求安裝好,選擇安裝路徑什么的,應(yīng)該問(wèn)題不大,就不贅述了。
安裝好了之后,從桌面點(diǎn)擊開(kāi)始 -> Anaconda3文件夾 -> Anaconda Prompt,打開(kāi)這個(gè)類似終端一樣的東西,它大概長(zhǎng)這樣:
注意啦,從此以后我們就要在這里輸入各種命令了~
a)首先,我們來(lái)創(chuàng)建一個(gè)名叫tensorflow的、使用python3.6版本的虛擬環(huán)境(所以說(shuō)其實(shí)最開(kāi)始下載python3.7版本也無(wú)所謂,因?yàn)檫@一步總會(huì)創(chuàng)建新的python3.6版本):直接在終端輸入這個(gè)指令(每輸入完一行指令都要按一下回車鍵哈~):
conda create -n tensorflow pip python=3.6
接著,輸入這個(gè)指令:
activate tensorflow
你會(huì)看到此后不管你輸入什么,每一行都變成了以(tensorflow)開(kāi)頭,這就證明成功開(kāi)啟了虛擬環(huán)境了~
b )接下來(lái)開(kāi)始安裝一些需要的python第三方工具包:繼續(xù)在剛才啟動(dòng)了虛擬環(huán)境的終端里一行一行地輸入,每輸入完一行按一下回車鍵:(請(qǐng)先看下面的注意再安裝)
conda install h5py
pip install opencv-python
pip install matplotlib==3.0.0? (注:最新版的matplotlib貌似會(huì)在后續(xù)某一步報(bào)錯(cuò),因此限定一下是3.0.0版)
pip install tensorflow==1.13.1? (注:tensorflow當(dāng)前處于飛速迭代更新中,因此姑且限制了版本號(hào)1.13.1,其實(shí)目前(2019.6.9)的話不加也可以,也就是直接pip install tensorflow)
pip install pyqt5
注意:在使用pip install指令時(shí),可在每一行命令結(jié)尾加入?-i https://pypi.tuna.tsinghua.edu.cn/simple 參數(shù)來(lái)獲得飛一般的下載速度~~~比如這樣:
pip install tensorflow==1.13.1?-i https://pypi.tuna.tsinghua.edu.cn/simple
(就是個(gè)切換下載源的實(shí)用小trick)
另外,后續(xù)流程終如果遇到類似No module named xxx的錯(cuò)誤信息(xxx是隨便一個(gè)名字),不用慌張,只需要按上面這樣pip install xxx指令,把xxx裝上就好了。
安裝部分到此結(jié)束,下面進(jìn)入使用部分。在使用前請(qǐng)自行準(zhǔn)備一個(gè)時(shí)間在5秒左右的動(dòng)作視頻作為第一次嘗試,時(shí)間太長(zhǎng)的話一旦出錯(cuò)不方便進(jìn)行調(diào)試。等一切順利以后我們?cè)侔凑兆约合埠萌ヌ幚碚嬲囊曨l。此外,將下載好的好幾個(gè)G大小的代碼+模型文件夾解壓縮到一個(gè)英文路徑,最好就叫做openmmd,注意這個(gè)文件夾的名稱最好全英文,尤其不要含有空格!!假如叫做openmmd v1.0的話就會(huì)報(bào)錯(cuò)找不到路徑的。。。
還是在開(kāi)啟了虛擬環(huán)境的conda終端里(如果重新打開(kāi)了終端,就需要輸入activate tensorflow啟用虛擬環(huán)境)
接下來(lái)的步驟其實(shí)非常直白了,按照流程去做就好:
a)用鼠標(biāo)將OpenposeVideo.bat文件拖到終端界面里,你會(huì)看到當(dāng)前命令行自動(dòng)顯示出了文件路徑,直接點(diǎn)回車鍵就可執(zhí)行,接著按照提示輸入視頻文件的路徑,然后一路回車鍵,直到開(kāi)始啟動(dòng)openpose。(你會(huì)看到啟動(dòng)了一個(gè)叫做openpose的新程序,它會(huì)把視頻從頭到尾播放一遍順便進(jìn)行每一幀的關(guān)鍵點(diǎn)檢測(cè))
b)用鼠標(biāo)將3d-pose-baseline-vmd文件夾下的OpenposeTo3D.bat拖到終端界面,點(diǎn)回車鍵,輸入相應(yīng)路徑(即a步驟輸出的、出現(xiàn)在你視頻文件旁邊的_json文件夾),之后一路回車,等待執(zhí)行完畢,又會(huì)輸出一個(gè)形如_json_3d_20190515_152335_idx01的文件夾
c)同樣的操作,這回是FCRN-DepthPrediction-vmd文件夾里的VideoToDepth.bat,按提示輸入路徑
d)同樣的操作,這回是VMD-3d-pose-baseline-mult目錄下的3DToVMD.bat,如果一切順利,恭喜你,在b)步驟輸出的文件夾中,會(huì)有一個(gè)vmd格式的output,這就是我們所需要的動(dòng)作文件了!
注0:如果途中報(bào)錯(cuò) xxx module not found 或者 No module named xxx這類錯(cuò)誤信息,那就是缺少python對(duì)應(yīng)的庫(kù),一般可以直接輸入pip install xxx安裝一下就可以了
注1:當(dāng)前源代碼版本下,d)步驟一般肯定會(huì)報(bào)錯(cuò):unrecognized arguments: -s 1,不過(guò)不要慌,只要你刪掉3DToVmd.bat文件最后一行里的'-s %SMOOTH_TIMES%' ,就可以了
注2:如果d)步驟報(bào)錯(cuò):encoding什么的錯(cuò),或者找不到某個(gè)亂碼名字的csv文件,那么需要你手動(dòng)修改下miku的骨骼文件,就是VMD-3d-pose-baseline-mult/born/あにまさ式ミクボーン.csv這個(gè)文件,請(qǐng)把它改成一個(gè)英文名字,比如miku_bone.csv,之后還需要同步修改下3DToVmd.bat文件的第18行,也是把set MODEL_BONE_CSV=born\あにまさ式ミクボーン.csv里面的日文改成你剛才起的名字(miku_bone.csv),重新運(yùn)行應(yīng)該就可以了
接下來(lái)就是將該文件導(dǎo)入到MMD里面等正常操作了,這里不再贅述。導(dǎo)入后可以體驗(yàn)下效果。
大功告成~
39!
一些限制:該模型默認(rèn)只適合我(們)的公主miku殿下的骨骼,其他模型不一定合適,若想針對(duì)其他模型,則需要該模型的骨骼文件,也就是說(shuō)需要你自己生成上面的那個(gè)被修改的csv文件,具體筆者就不是很清楚啦
總結(jié)
以上是生活随笔為你收集整理的python摄像头动作捕捉_OpenMMD:没有专业摄像设备也能动作捕捉!K帧动作设计苦手的福音~...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 850hpa
- 下一篇: 外部 SRAM 实验