這個項目,我能玩一年!
大家好,我是 Jack。
今天分享一個算法 KalidoKit,我們看下效果:

根據(jù)真實的人物肢體、面部、手的動作,來驅(qū)動虛擬形象。
KalidoKit 是整合了多種算法實現(xiàn)的,F(xiàn)acemesh、Blazepose、Handpose、Holistic。
這個技術(shù)的主流應(yīng)用方向就是虛擬主播。
可以驅(qū)動虛擬人物跳舞:

也可以像開頭的動圖那樣,捕捉全身的動作,面部表情、手勢等。
除了這種驅(qū)動虛擬形象類型的,還可以發(fā)揮自己的想象力,做一些有趣的小應(yīng)用。

KalidoKit
該項目是基于 Tensorflow.js 實現(xiàn)的。
項目地址:
https://github.com/yeemachine/kalidokit
捕捉的關(guān)鍵點信息,可以用來驅(qū)動 2D 和 3D 的虛擬形象,結(jié)合一些虛擬形象的驅(qū)動引擎,即可實現(xiàn)文章開頭所展示的效果。
既可以驅(qū)動 Live2D 形象,又可以驅(qū)動 3D VRM 形象。
這里涉及的技術(shù)點一篇文章講不完,今天主要講述基礎(chǔ)的關(guān)鍵點檢測技術(shù):人臉關(guān)鍵點檢測、人體姿態(tài)估計、手勢姿態(tài)估計。
人臉關(guān)鍵點檢測
人臉關(guān)鍵點檢測,有稀疏的,有稠密的。
像基礎(chǔ)一點的,68 個關(guān)鍵點檢測。

一般來說,一些閉眼、頭部姿態(tài)、張閉嘴的檢測,用這種簡單的 68 個關(guān)鍵點就夠了。
當(dāng)然,也有更加稠密的關(guān)鍵點檢測。

對于一些皮膚美容類的應(yīng)用場景,就需要稠密的關(guān)鍵點檢測算法了,成千上萬的那種。
不過算法的思想都是一樣的,回歸出這些關(guān)鍵點的位置坐標(biāo),通常搭配人臉檢測算法使用。
想要學(xué)習(xí)人臉關(guān)鍵點檢測算法的,推薦兩個入門項目:
https://github.com/1adrianb/face-alignment
https://github.com/ChanChiChoi/awesome-Face_Recognition
一個是基礎(chǔ)的入門項目,一個整合了人臉關(guān)鍵點的主流算法。
人體姿態(tài)估計
人體姿態(tài)估計也是計算機視覺中一個很基礎(chǔ)的問題。
從名字的角度來看,可以理解為對“人體”的姿態(tài)(關(guān)鍵點,比如頭,左手,右腳等)的位置估計。
一般可以分為 4 種任務(wù):
單人姿態(tài)估計 (Single-Person Skeleton Estimation)
多人姿態(tài)估計 (Multi-person Pose Estimation)
人體姿態(tài)跟蹤 (Video Pose Tracking)
3D人體姿態(tài)估計 (3D Skeleton Estimation)
簡單來說,就是對于人體骨骼關(guān)節(jié)點進行檢測,定位人體的姿態(tài)。

人體姿態(tài)估計,應(yīng)用范圍寬廣,比如在自動駕駛行業(yè)進行街景中行人的姿態(tài)檢測、動作預(yù)測;在安防領(lǐng)域的行人再識別問題,特殊場景的特定動作監(jiān)控;影視產(chǎn)業(yè)的電影特效等。
想要學(xué)習(xí)的小伙伴,可以看這整理的論文:
https://github.com/cbsudux/awesome-human-pose-estimation
手勢姿態(tài)估計
手關(guān)節(jié)更加靈活,動作敏捷和存在自我遮擋,因此略復(fù)雜一些。

不過原理和人體姿態(tài)估計類似。

除了這種常規(guī)的手勢識別,也可以用來做一些特效。

其實,很多這種人體特效,位置的定位,都是借助這些關(guān)鍵點實現(xiàn)的。
同上,想要學(xué)習(xí),可以看這份整合的資料:
https://github.com/xinghaochen/awesome-hand-pose-estimation
總結(jié)
本文介紹了一些基礎(chǔ)的算法,并推薦了一些學(xué)習(xí)資料,比較基礎(chǔ)。
關(guān)鍵點檢測也是一個不錯的方向,就聊這么多吧,我是 Jack,我們下期見~
PS:拖更up的新視頻在做了,敬請期待~