感知手部形狀和手部運(yùn)動(dòng)的能力可以改善各個(gè)技術(shù)領(lǐng)域和平臺(tái)的用戶體驗(yàn)。例如,它可以形成手語理解和手勢(shì)控制的基礎(chǔ),并且可以在增強(qiáng)現(xiàn)實(shí)情景中實(shí)現(xiàn)物理世界的數(shù)字內(nèi)容與信息疊加。盡管這對(duì)人類而言十分自然,但由于經(jīng)常出現(xiàn)遮擋情況(如手指/手掌遮擋和手抖)和缺乏高對(duì)比圖案,穩(wěn)定的實(shí)時(shí)手部感知是一項(xiàng)極具挑戰(zhàn)性的計(jì)算機(jī)視覺任務(wù)。
谷歌近期發(fā)布了一種用于手部感知的全新方法。實(shí)際上,谷歌已于六月的CVPR 2019大會(huì)進(jìn)行過預(yù)覽,而這項(xiàng)技術(shù)是在MediaPipe中實(shí)現(xiàn)(一個(gè)開源的跨平臺(tái)框架,主要用于構(gòu)建處理不同模態(tài)感知數(shù)據(jù)的管道,如視頻和音頻)。這種方法通過機(jī)器學(xué)習(xí)從單幀推斷出手部的21個(gè)3D關(guān)鍵點(diǎn),從而提供高保真度的手部和手指追蹤。目前最先進(jìn)的方法主要依靠強(qiáng)大的桌面環(huán)境進(jìn)行推導(dǎo),但谷歌的方法可以為手機(jī)端帶來實(shí)時(shí)性能,甚至可以擴(kuò)展到多手用例。谷歌表示:“通過為更廣泛的研究和開發(fā)社區(qū)提供這種手部感知功能,我們希望這可以帶來更具創(chuàng)造性用例出現(xiàn),并刺激新的應(yīng)用程序和新的研究途徑。”
1. 一種用于手部追蹤和手勢(shì)識(shí)別的機(jī)器學(xué)習(xí)管道
谷歌的手部追蹤解決方案利用了由多個(gè)模型組成的機(jī)器學(xué)習(xí)管道:
●手掌檢測(cè)器模型(名為BlazePalm):對(duì)整個(gè)圖像進(jìn)行操作,并返回定向手部邊界框。
●手部界標(biāo)模型:在由手掌檢測(cè)器定義的裁剪圖像區(qū)域操作,并返回高保真度的3D手部關(guān)鍵點(diǎn)。
●手勢(shì)識(shí)別器:將先前計(jì)算的關(guān)鍵點(diǎn)配置分類為一組離散手勢(shì)。
這個(gè)架構(gòu)類似于谷歌最近發(fā)布的面部網(wǎng)格機(jī)器學(xué)習(xí)管道,以及其他已用于姿態(tài)估計(jì)的架構(gòu)。將準(zhǔn)確裁剪的手掌圖像提供給手部界標(biāo)模型可以大大減少對(duì)數(shù)據(jù)增強(qiáng)(如旋轉(zhuǎn),平移和縮放)的需要,并允許網(wǎng)絡(luò)將大部分容量專門用于坐標(biāo)預(yù)測(cè)精度。
2. BlazePalm:實(shí)時(shí)手部/手掌檢測(cè)
為了檢測(cè)初始手部位置,谷歌采用了名為BlazePalm的單攝檢測(cè)器模型,并以類似于BlazeFace的方式針對(duì)移動(dòng)實(shí)時(shí)用例進(jìn)行了優(yōu)化。檢測(cè)手部是一項(xiàng)非常復(fù)雜的任務(wù):模型必須支持各種手部尺寸,具有相對(duì)于圖像幀的大范圍跨度(約20×),并且能夠檢測(cè)被遮擋的雙手和自我遮擋的雙手。面部具有高對(duì)比圖案(如在眼睛和嘴部區(qū)域),手部則缺少這一點(diǎn),所以難以單單根據(jù)視覺特征進(jìn)行可靠地檢測(cè)。所以,通過提供諸如手臂,身體或人物特征等額外的情景信息有助于實(shí)現(xiàn)精確的的手部定位。
谷歌的解決方案采用不同的策略來解決上述挑戰(zhàn)。首先,谷歌不是訓(xùn)練手部檢測(cè)器,而是訓(xùn)練手掌檢測(cè)器,因?yàn)楣烙?jì)諸如手掌和拳頭等剛性對(duì)象的邊界框比具有手指關(guān)節(jié)的手部要簡(jiǎn)單得多。另外,由于手掌是較小的對(duì)象,非最大抑制算法甚至很好地支持雙手自遮擋情況(如握手)。再者,手掌可以使用方形邊界框(機(jī)器學(xué)習(xí)用“錨”進(jìn)行描述)來進(jìn)行模擬,并忽略其他縱橫比,所以能夠?qū)㈠^的數(shù)量減少3倍-5倍。其次,編碼器 – 解碼器特征提取器可用于大型場(chǎng)景情景感知,同時(shí)可用于小型對(duì)象(類似于RetinaNet方法)。最后,谷歌將訓(xùn)練期間的Focal Loss降至最低,從而能夠支持由于大尺度方差導(dǎo)致的大量錨點(diǎn)。
通過上述技術(shù),谷歌在手掌檢測(cè)中實(shí)現(xiàn)了95.7%的平均精度。利用常規(guī)Cross Entropy Loss并且沒有解碼器的情況下只能實(shí)現(xiàn)86.22%的基線。
3. 手部界標(biāo)模型
在對(duì)整個(gè)圖像進(jìn)行手掌檢測(cè)之后,手部界標(biāo)模型將通過回歸(即直接坐標(biāo)預(yù)測(cè))在檢測(cè)到的手部區(qū)域內(nèi)執(zhí)行21個(gè)3D手關(guān)節(jié)坐標(biāo)的精確關(guān)鍵點(diǎn)定位。這個(gè)模型學(xué)習(xí)一致的固有手姿勢(shì)表現(xiàn),并且能夠穩(wěn)定支持部分可見的手部和自我遮擋情形。
為了獲得ground truth數(shù)據(jù),谷歌手動(dòng)注釋了具有21個(gè)3D坐標(biāo)的大約30000張真實(shí)世界圖像,如下所示(如果存在于每個(gè)相應(yīng)的坐標(biāo),谷歌將從圖像深度圖中獲取Z值)。為了更好地覆蓋可能的手勢(shì),并對(duì)手部幾何形狀的性質(zhì)提供額外的監(jiān)督,谷歌同時(shí)在各種背景下渲染高質(zhì)量的合成手部模型,并將其映射到相應(yīng)的3D坐標(biāo)。
然而,純粹的合成數(shù)據(jù)難以擴(kuò)展至in-the-wild領(lǐng)域。為了克服這個(gè)問題,谷歌采用了混合訓(xùn)練模式。下圖是一個(gè)High-Level模型訓(xùn)練圖例。
下表總結(jié)了回歸準(zhǔn)確性,具體取決于訓(xùn)練數(shù)據(jù)的性質(zhì)。利用合成數(shù)據(jù)和現(xiàn)實(shí)世界數(shù)據(jù)可顯著提升性能表現(xiàn)。
4. 手勢(shì)識(shí)別
緊接著預(yù)測(cè)的手部骨骼,谷歌應(yīng)用了一個(gè)簡(jiǎn)單的算法來推導(dǎo)手勢(shì)。首先,預(yù)計(jì)每個(gè)手指的狀態(tài),如彎曲或筆直,而這由關(guān)節(jié)的累積角度決定。然后,谷歌將手指狀態(tài)集映射到一組預(yù)定義的手勢(shì)。這種簡(jiǎn)單而有效的技術(shù)使得研究人員能夠以合理的質(zhì)量估計(jì)基本的靜態(tài)手勢(shì)?,F(xiàn)有的管道支持計(jì)算來自多種文化的手勢(shì),如美國(guó),歐洲和中國(guó),包括“豎起大拇指”,握拳,“OK”,“金屬禮”和“蜘蛛俠”。
5. MediaPipe示例
利用MediaPipe,這個(gè)感知管道可以構(gòu)建為模塊化組件的有向圖:Calculators。Mediapipe附帶一組可擴(kuò)展的Calculators,可應(yīng)對(duì)各種設(shè)備和平臺(tái)的模型推理,媒體內(nèi)容處理算法和數(shù)據(jù)轉(zhuǎn)換等任務(wù)。諸如裁剪,渲染和神經(jīng)網(wǎng)絡(luò)計(jì)算等單獨(dú)的Calculator可專由GPU執(zhí)行。例如,谷歌為大多數(shù)現(xiàn)代手機(jī)應(yīng)用TFLite GPU推理。
谷歌用于手部追蹤的MediaPipe圖如下所示。這個(gè)MediaPipe圖由兩個(gè)子圖組成:一個(gè)用于手部檢測(cè),一個(gè)用于手部關(guān)鍵點(diǎn)計(jì)算。MediaPipe提供的一個(gè)關(guān)鍵優(yōu)化是,手掌檢測(cè)器僅在必要時(shí)(相當(dāng)不頻繁)運(yùn)行,從而節(jié)省了大量的計(jì)算時(shí)間。谷歌是根據(jù)當(dāng)前幀計(jì)算的手部關(guān)鍵點(diǎn)推斷后續(xù)視頻幀中的手部位置,從而消除了在每個(gè)幀運(yùn)行手掌檢測(cè)器的需要。為了實(shí)現(xiàn)魯棒性,手部追蹤器模型輸出一個(gè)額外的標(biāo)量,所述的標(biāo)量捕獲手部在輸入裁剪中存在并合理對(duì)齊的置信度。只有當(dāng)置信度低于某個(gè)閾值時(shí),手部檢測(cè)模型才會(huì)重新應(yīng)用于整個(gè)幀。
高效的機(jī)器學(xué)習(xí)解決方案可以實(shí)時(shí)運(yùn)行,并且可以支持各種不同的平臺(tái)和形狀參數(shù)。所以,谷歌將通過MediaPipe框架開源上述手部追蹤和手勢(shì)識(shí)別管道,并附帶相關(guān)的端到端使用場(chǎng)景和源代碼。這可以為研究人員和開發(fā)者提供完整的堆棧,并根據(jù)谷歌的模型對(duì)新想法進(jìn)行實(shí)驗(yàn)和原型設(shè)計(jì)。
6. 未來計(jì)劃
谷歌計(jì)劃通過更強(qiáng)大和更穩(wěn)定的追蹤來擴(kuò)展這項(xiàng)技術(shù),擴(kuò)大能夠可靠檢測(cè)的手勢(shì)量,并支持動(dòng)態(tài)手勢(shì)及時(shí)展開等等。這家公司表示:“我們相信,開源這項(xiàng)技術(shù)可以推動(dòng)研究社區(qū)和開發(fā)者社區(qū)實(shí)現(xiàn)新的創(chuàng)意和應(yīng)用,而我們非常期待看到你的作品成果。”