ThreeDPoseTracker Ver.0.2.0更新
ThreeDPoseTracker Ver.0.2.0更新
介紹

本文是關(guān)于USB相機(jī)運(yùn)動捕捉ThreeD PoseTracker 0.2.0版的更新。什么是ThreeDPoseTracker?誰先說
“ USB攝像機(jī)運(yùn)動捕捉ThreeDPoseTracker的描述”
https://www.bilibili.com/read/cv7336294
請參考。
關(guān)于v0.2.0
下載目的地
請從下面的URL下載。
https://digital-standard.com/threedpose/ThreeDPoseTracker_Win_x64_v0_2_0.zip
更新內(nèi)容
這是主要的更新內(nèi)容。這次,該版本主要旨在僅保存BVH的人形骨骼。
·???????? 已啟用,僅在保存BVH時保存人形骨骼并設(shè)置其他選項。有關(guān)詳細(xì)信息,請參閱以下設(shè)置屏幕上的章節(jié)。
·???????? 通過添加上述功能更改了設(shè)置屏幕
·???????? 添加了一個濾鏡以糾正運(yùn)動
·???????? 高質(zhì)量模型精度提高(肉眼看不到1%)
·???????? 將默認(rèn)頭像從Unity-chan更改為Ryun Ran(Lune)。沒有Unity議員了。您可以從下面的URL下載Ranbelun的VRM文件。
https://hub.vroid.com/characters/2743935442348366186/models/3045425008508757993
設(shè)定畫面
由于設(shè)置項目很多,因此我將每個功能按選項卡進(jìn)行了劃分。每種功能的設(shè)置項目說明如下。
圖片
輸入圖像和背景圖像的設(shè)置。設(shè)置內(nèi)容從v0.1.0起沒有變化。

·???????? 顯示源圖像
設(shè)置是顯示還是隱藏作為在整個屏幕上顯示的源設(shè)備而加載的視頻以及USB攝像機(jī)的圖像。
·???????? 顯示輸入圖像
將輸入圖像顯示或隱藏到AI(左上角的小窗口)。
·???????? 拖放時
播放視頻時,請?zhí)^視頻打開時未處理的幀。關(guān)閉并播放時,將播放所有幀,因此,如果處理緩慢,將像慢動作一樣播放。
·???????? 電影文件重復(fù)播放模式
播放電影時,如果將其打開,則會重復(fù)播放電影。
·???????? 使用相機(jī)時的鏡像使用
USB相機(jī)時,如果打開,則相機(jī)的輸入將處于鏡像狀態(tài)。
·???????? 源剪切比例
輸入圖像以源圖像圖像的高度為1的比例剪切。例如,如果視頻中的人太小,請指定1或更大的值以將其放大。另外,如果您的腳趾靠近屏幕邊緣或勉強(qiáng)觸摸它,則將此值設(shè)置為0.9或0.8會使它稍微穩(wěn)定。

源剪切中心位置
從以源圖像的中心為原點,圖像高度為1的比率指定的位置切出輸入圖像。如果視頻的右側(cè)有跳舞的人,請進(jìn)行調(diào)整,以使位置為中心。下圖顯示了x的移動量指定為0.3的情況,它是上圖中的放大倍率下的外觀差異。想象一下,顯示圖像的相機(jī)以0.3的縱橫比向右移動。如果它是負(fù)值,它將向左移動,并且Y軸也應(yīng)如此。

背景圖像文件
切換背景圖像。如果不存在圖像或該項目為空,則將顯示默認(rèn)圖像。

·???????? 背景比例調(diào)整
背景圖像的尺寸。無法更改圖像位置,因此請調(diào)整原始圖像以調(diào)整位置。
·???????? 背景顏色如果
隱藏所有源圖像,輸入圖像和背景圖像,則它將變?yōu)榧兩尘???梢允褂肦GB(0至255)指定背景色。當(dāng)您不想在綠色背景或背景上放置任何東西時,請使用。

預(yù)測
主要與運(yùn)動有關(guān)的設(shè)置。

·???????? 低通濾波器
這是用于抑制跳躍和水泡的濾波器。如果是高度質(zhì)量模型,則0到0.2是合適的。它越大,它變得越平滑,但是延遲和運(yùn)動變得松散。如果不需要微妙的運(yùn)動,則可以達(dá)到0.3。更改該值不會影響處理速度。
·???????? n階LPF
設(shè)置要應(yīng)用上述低通濾波器的地板。值越大,效果越強(qiáng),但是效果不會與數(shù)量成比例地增加。另一方面,這不是繁重的處理,因此從一開始就可以接受最多9個。
·???????? 范圍通過濾波器
上面的低通濾波器是用于濾除抖動的高頻分量的濾波器。這是用于通過特定頻率的濾波器。話雖如此,由于我想采用人的所有慢動作,因此實際上將其用作低通濾波器。因此,我想將較低的頻率設(shè)置為0Hz,但是由于無法指定0,因此將其設(shè)置為0.01Hz。至于較高的頻率,據(jù)說一個人移動大約0.2秒就足夠了,因此大約5 Hz就足夠了(1÷0.2 = 5 Hz)。但是,默認(rèn)值是3.5Hz,以提高穩(wěn)定性。如果要劇烈運(yùn)動,請將其保持在5Hz左右。
-Buffer:
用于采樣數(shù)據(jù)的緩沖區(qū)大小。我認(rèn)為不需要更改它。
值越大,過程越重。
N
階:過濾器的階數(shù)。實際上,我對它的評價不是很高,所以請不要觸摸它。
值越大,過程越重。
-Hz(從到):
低頻0.01無需更改。將高頻調(diào)整為大約2-5Hz。
更改該值不會影響處理速度。
·???????? 正向閾值
AI的輸出以0到1的分?jǐn)?shù)輸出。1有信心,0有信心。如果在圖像中顯示一個人,通常會得到0.5或更高的分?jǐn)?shù)。當(dāng)圖像中沒有人時,約為0到0.2。此設(shè)置是一個閾值,該閾值確定沒有人可見,并且當(dāng)?shù)梅值陀谠撻撝禃r,運(yùn)動將停止。向前是化身面向前方時的閾值(身體方向在前方的±45度以內(nèi))。
·???????? 后退閾值
Backward是超出上述Forward范圍的閾值。如果看不到面孔,則總體得分會降低,因此我們將其分開管理。將此值設(shè)置得較低。
·???????? LockFoot
當(dāng)腳趾幾乎沒有插入相機(jī)或腳趾不穩(wěn)定時,此功能可鎖定腳趾的移動。如果腳剛好在攝像機(jī)或視頻范圍內(nèi),則最好將其鎖定(伸出時無法做出準(zhǔn)確的判斷)。如果不移動腳趾,您的腳趾并不是太自然。默認(rèn)情況下可以將其打開。
檢查時鎖定腳踝。如果在移動時鎖定它,它將被鎖定在一個奇怪的位置。通常,您要將其鎖定在初始位置,因此請在檢查后重新啟動應(yīng)用程序。
·???????? LockLegs鎖定
從膝蓋向下的運(yùn)動。我試圖用LockFoot做到這一點,但我認(rèn)為它沒有太大用處。
·???????? ElbowAxisTop切換
肘旋轉(zhuǎn)軸。例如,如果您的肘部外側(cè)具有紋理(例如球衣),或者內(nèi)側(cè)陰影帶有紋理,則可以彎曲手臂而無需任何思考,并且該紋理看起來很奇怪。在這種紋理的情況下,肘部的旋轉(zhuǎn)軸被切換為使得內(nèi)側(cè)和外側(cè)將像這樣移動。但是,如果您將手臂向上筆直,肘部會像扭曲一樣運(yùn)動。啟用此選項將切換到正常的肘部運(yùn)動,并且肘部將以自然的方式運(yùn)動。但是,紋理看起來很奇怪。參見下圖。上排是肘部內(nèi)部帶有陰影的紋理。禁用時,內(nèi)部有陰影,但是啟用時,它在外部。但是,當(dāng)關(guān)閉時(如在下排中一樣),肘部看起來會扭曲。如果您的手臂膚色堅硬或堅硬,請打開它。似乎有更好的方法,但是目前是這樣。

·???????? 訓(xùn)練有素的模型
選擇用于姿勢估計的模型。如果規(guī)格足夠,請選擇“高質(zhì)量”。如果您更改此項目,請重新啟動應(yīng)用程序。如果規(guī)格不足,請使用下面描述的低質(zhì)量型號。
記錄

Unity資產(chǎn)存儲中的BVH工具按原樣用于保存BVH。如果您想使用Unity讀取數(shù)據(jù),我認(rèn)為最好使用此Asset。Github看起來像這樣。有關(guān)選項的說明,另請參見Github。
https://github.com/emilianavt/BVHTools
·???????? Blender坐標(biāo)系
加載到Blender或轉(zhuǎn)換為VRM Live Viewer或VMD時,似乎已關(guān)閉。似乎在更改此選項時應(yīng)該將其打開,以使其與Blender的坐標(biāo)系匹配,并使用Blender對其進(jìn)行讀取和校正,然后再次使用Unity對其進(jìn)行讀取。
·????????
啟用“?增強(qiáng)類人動物骨骼”?時,僅保存類人動物骨骼。轉(zhuǎn)換為VRM Live Viewer或VMD時,僅使人形骨骼保持打開狀態(tài)。如果要在輸出中包含諸如頭發(fā)或衣服之類的骨骼,請將其關(guān)閉。
·???????? 捕獲
打開時,將以固定的指定FPS保存數(shù)據(jù)。我不確定它是否確實按指定保存。
·???????? CatchUp如果
將其設(shè)置為on,則當(dāng)幀頻較低時,“捕獲標(biāo)記可用于加速捕獲,并且捕獲的動畫的持續(xù)時間可以保持準(zhǔn)確。在給定的幀之后,我們保證根據(jù)給定的frameRate,至少要經(jīng)過一幀所需的毫秒數(shù)?!?/p>
其他

·???????? 使用Unity Video Capture啟用
Unity Video Capture。這將使當(dāng)前顯示的屏幕(不包括菜單和設(shè)置屏幕)成為USB攝像機(jī)的輸出,以便可以將其作為其他應(yīng)用程序(例如Zoom(虛擬攝像機(jī)))作為攝像機(jī)輸入來處理。有關(guān)詳細(xì)信息,請參閱使用Unity Capture進(jìn)行縮放輸出。
·???????? 使用VMC協(xié)議使用VMC協(xié)議
發(fā)送化身骨骼信息和虛擬跟蹤器。這是示例代碼。不發(fā)送混合形狀。VMC協(xié)議也無法接收。盡管它仍然是測試實現(xiàn),但我已經(jīng)確認(rèn)EVMC4U可以接收數(shù)據(jù)(實際上,我對此了解不多)。

·???????? IP
指定運(yùn)行VMC協(xié)議服務(wù)器的PC的IP地址。通常,應(yīng)保持原樣為127.0.0.1。
·???????? 端口
指定VMC協(xié)議的服務(wù)器端口號。我不知道正常數(shù)字是多少,但是大概是39539。
·???????? Rot
ThreeDPoseTracker將其背面旋轉(zhuǎn)180度。通過檢查進(jìn)行180度校正。
·???????? 恢復(fù)設(shè)置將
設(shè)置恢復(fù)到初始狀態(tài)。頭像設(shè)置也將被初始化。請直接退出應(yīng)用程序。
關(guān)于BVH文件
在此應(yīng)用中,坐標(biāo)系旋轉(zhuǎn)了180度。從正面看時,它的背面朝后。為方便起見,此工具較容易制造,但有一些優(yōu)點,因此我覺得自己犯了一個錯誤。目前,輸出后請旋轉(zhuǎn)180度。
轉(zhuǎn)換為VMD
關(guān)于將輸出的BVH文件轉(zhuǎn)換為VMD,我確認(rèn)可以使用B-MoMi版本0.2進(jìn)行轉(zhuǎn)換。有關(guān)B-MoMi的下載和詳細(xì)用法,請參見下文。
https://www.bilibili.com/read/cv7335895
如下設(shè)置骨骼圖。Kimo的左右臂分別為40和-40。通常,加號和減號是相反的,但是正如我上面所寫的,此應(yīng)用程序的輸出面向后。因此,似乎必須反轉(zhuǎn)從T姿勢到A姿勢的校正值(也許)。請參考手冊設(shè)置適時的刻度。
使用文本編輯器打開BVH文件時,可以在第一個HIERARCHY項目中找到BVH骨骼信息。如有必要,請更正引用它的骨骼圖文件(可以使用B-MoMi的-makeMap選項獲得骨骼信息,但這并不完美)。
?
?
boneMap_TDPT_1.txt
#
#骨圖
#
#@ scale縮放中心骨骼的運(yùn)動
原始數(shù)據(jù)在#1.0下保持不變。
#@ scale = 0.3
?
中心=臀部
左腳= LeftUpperLeg
左膝= LeftLowerLeg
左腳踝=左腳
右腳= RightUpperLeg
右膝= RightLowerLeg
右腳踝=右腳
上身=胸部
左肩
左臂= LeftUpperArm,0,0,40
左肘= LeftLowerArm
左手
右肩
右臂= RightUpperArm,0,0,-40
右肘= RightLowerArm
左手=左手
頸部
頭
?
BVH文件應(yīng)在關(guān)閉Blender坐標(biāo)系并打開“強(qiáng)制人形骨骼”的情況下創(chuàng)建。如果保存的BVH文件是motion.bvh,而骨骼圖文件是boneMap_TDPT_1.txt,請在命令提示符處執(zhí)行以下命令,以創(chuàng)建一個與指定BVH文件同名的VMD文件(適當(dāng)?shù)馗窂剑?)。
?
C:\ b-momi_02 \ b-momi> b-momi.bat -bvh motion.bvh -map boneMap_TDPT_1.txtB-MoMi 0.2適用于MikuMikuDance的BVH運(yùn)動轉(zhuǎn)換器?輸出目標(biāo):motion0723.vmdBVH模型高度= 1.284616未來高度= 15.5686========開始轉(zhuǎn)換========@ scale = 12.11926365544256========轉(zhuǎn)換完成(motion.vmd)========
?
?
之后,關(guān)閉MikuMikuDance一側(cè)的腳IK,并加載運(yùn)動。如果處理速度因環(huán)境而異,則在加載運(yùn)動時就像快進(jìn)一樣。請通過運(yùn)動的放大倍數(shù)等進(jìn)行調(diào)整。(我沒有使用過MMD,所以我不知道如何使用它)。
這就是我嘗試過的全部。

最后
我認(rèn)為在Qiita中撰寫有關(guān)應(yīng)用程序發(fā)布的文章可能會有所不同,但是在Qiita中編寫起來很容易,因此我想使用Qiita一段時間。
接下來,我想考慮深度的運(yùn)動和腳的增加(地板的判斷)。我不確定是否可行,因為這樣做有點困難。
以下是先前的副本。
順便說一句,此應(yīng)用程序的源位于以下存儲庫中(正在構(gòu)建中)。根據(jù)Github上寫的許可對代碼進(jìn)行許可。我還負(fù)責(zé)姿勢估計,因此并非全部免費。如果要添加功能并將其用于商業(yè)目的,請購買許可證或申請工作。如果您確實要免費添加功能并將其用于商業(yè)用途,則將免費傳遞此應(yīng)用程序版本,因此,如果您請求合并或提取請求,則可以將其添加到應(yīng)用程序中并在以后發(fā)布(不能保證提供擔(dān)保)。 )。
https://github.com/digital-standard/ThreeDPoseTracker
執(zhí)照
無論是否獲利,都可以隨意使用ThreeDPoseTracker的此可執(zhí)行文件。使用此可執(zhí)行文件的分發(fā)和運(yùn)動數(shù)據(jù)也可以免費獲得。
請遵循Github上的許可以獲取Github上的源代碼。
免責(zé)聲明
對于因使用本軟件而造成的任何損害,對軟件或硬件的其他損害,或因無法使用該軟件而造成的損害,制造商概不負(fù)責(zé)。 ..