无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用胯!論Openpose轉(zhuǎn)Unity.humanoid一種方案(一)

2023-03-29 16:12 作者:DeadCyber  | 我要投稿

Openpose介紹

openpose是git上一個開源庫。(開源其實無所謂,你有那條件訓練嗎)

可以用視頻出實時的3d骨骼測算:

也可以從單張圖出靜態(tài)的2d測算:

Unity.Humanoid介紹

就是一種標準,用來將各種用戶自定義骨骼和Unity的標準人體對應(yīng)起來。這樣的話,人型動作和骨骼可以合理地自動轉(zhuǎn)換:

Openpose的Body_25介紹

類似的,openpose中也有一套人體標準:

因為本文主要關(guān)注的是bodykey的映射,所以其他面部,手部什么的就不拿出來對應(yīng)了。

兩邊的映射關(guān)系

? ? 可以看出humanoid和openpose并無母子關(guān)系,屬于這邊有的,那邊不一定有,那邊有的,這邊不一定有。比如openpose有腳跟和大小腳趾,而humanoid沒有;humanoid有臉手部等,但openpose的手部,臉部另算,不在body_25里;而且huamanoid沒有耳朵,眼睛也是非必須等等....

? ? 所以無法自動映射。如果我們要把openpose的數(shù)據(jù)映射到humanoid里,對于body_25而言,只能我們手動一一找對應(yīng)。好在兩邊都是固定的標準,對應(yīng)關(guān)系也是固定的,所以是一勞永逸的事情。

其中右邊的string是我輸出avatar.humanDescription.human中所有humanName的結(jié)果中對應(yīng)找到的。

Openpose格式解析(單張測算的Openpose原始結(jié)果數(shù)據(jù))

python調(diào)用openpose.bin使用命令:

輸出了[圖片名稱]_keypoints.json的測算文件。其json結(jié)構(gòu)是:


其中pose_keypoints_2d就是我們要的body_25數(shù)據(jù),但它有75個float,每個節(jié)點有3個float,前2個float是節(jié)點的圖片像素位置,以圖片1像素為單位(注意數(shù)據(jù)uv.v方向可能上下顛倒);后一個float是置信度,有時候會出現(xiàn)置信度為0,說明這個節(jié)點沒有識別出來。

? ? 我寫了點代碼在Unity可視化。很明顯有一個節(jié)點超出了圖片范圍,沒有被識別出來:

數(shù)據(jù)轉(zhuǎn)換思路

先讀取openposeJson數(shù)據(jù),然后對25點遍歷,

  1. 根據(jù)openID找到對應(yīng)humanoid的名稱humanName(不一定找到)

  2. 然后依據(jù)avatar.humanDescription.human,根據(jù)humanName找到實際的boneName

  3. 然后從skinedMeshRenderer.bones中,根據(jù)boneName找到對應(yīng)的transform,設(shè)置上openpose的數(shù)據(jù)

字太多了,還有很多內(nèi)容,切下一篇繼續(xù)講吧,下篇教你怎么用胯!

下一篇鏈接看評論。

至此我們已經(jīng)將數(shù)據(jù)從Openpose對應(yīng)到了每個Unity.SkinnedMeshRenderer.bones,下一篇描述怎樣把2d位置數(shù)據(jù)應(yīng)用到transform上。

用胯!論Openpose轉(zhuǎn)Unity.humanoid一種方案(一)的評論 (共 條)

分享到微博請遵守國家法律
蚌埠市| 文登市| 河曲县| 渑池县| 万载县| 龙江县| 南华县| 宁明县| 稷山县| 油尖旺区| 惠水县| 夏津县| 清水河县| 昌宁县| 武安市| 东阿县| 禄丰县| 明星| 文安县| 邓州市| 科尔| 苗栗市| 湖北省| 彰化县| 大同市| 固始县| 柞水县| 斗六市| 龙胜| 成安县| 沽源县| 丹江口市| 凉山| 双城市| 东光县| 都安| 嵩明县| 乌苏市| 巨鹿县| 吴旗县| 都安|