
【Arm 專欄】用智慧電視姿勢追蹤在家健身!看 Arm AI Platform 如何助力智慧家庭應用

新冠肺炎大流行迫使人們花更多的時間在室內,加上智慧電視近來的進展提供了全新的需求與機會,使得我們能夠將新興的體驗引入客廳。
許多人現在的生活形態與以前相比差異很大,藉由適當的科技協助,將使在家健身更方便與更有效,對許多消費者而言,在未來遠距健身將持續是個吸引人的選項。相機是這項科技關鍵的一環,而相機重返數位電視 (DTV) 市場也創造了機會。由於現代的電視都是高解析與大螢幕,這些用戶體驗有可能非常沉浸式,也能為健康帶來好處。
透過應用於大螢幕智慧電視的 app,能讓舒適地在家中健身成為可能。我們首先簡介一下這個 app,接著說明適合 Android 電視的身體姿勢預估與追蹤的深度學習,並討論在選擇正確的卷積類神經網路 (CNN) 時的主要考量點。
概述
除了量化教練與學員兩人身體姿勢差異帶來的挑戰,我們必須解決如何從兩個影像串流中,正確辨識出對應圖框的問題。教練與學員在健身時難免會產生延遲。基於這個原因,同時考量不同的健身速度,我們必須進行搜尋以決定要比較的是哪兩張影像。
如下圖所示,在我們的應用程式中,正在將兩個視訊串流視覺化,並加上骨骼數據以及用百分比呈現的分數。


本文將聚焦在智慧電視上,因為這個領域具有龐大的潛力。不過,在此討論到的許多軟體模型與工具,也適用於其它你可能想要鎖定的消費性裝置。
深度學習
自從微軟公司開發出 Kinect 感測器以及估計身體姿勢的 Random Forest 模型,至今已有近十年,它突顯出這項任務對於許多終端用戶應用的重要性。在那之後,機器學習 (ML) 研究就持續聚焦在 2D 與 3D 人體姿勢估計。近年來,深度學習已經顯現龐大潛力,目前在這個領域是領先市場的技術。
以深度學習估計與追蹤身體位置時,我們必須考慮很多。針對智慧電視、手機與家庭裝置的解決方案,通常效能必須很高,因此選擇適當的 CNN 模型是相當具挑戰性的工作。估計體姿的輕量模型通常將來自相機的 RGB 影像作為身體關鍵點位置的 2D 或 3D 輸入與輸出,可以透過單一端對端的模型來執行,也可以分成兩個模型:第一個模型負責人的檢測,第二個模型則負責定位關節或地標的位置。第一類模型的範例是 PoseNet (基於 MobileNetV1 或 ResNet50),而第二個範例則是 BlazePose(類似 MobileNetV2,具備客製化區塊)

最重要的是精準度與效能。為了更佳地了解精準度,我們必須檢視訓練的資料集以及錯誤度量,但往往還是無法一窺全貌。資料集常常由人工標註,可能會因自遮蔽與低解析產生巨大的錯誤,即便我們使用既有的 CNN 模型,我們應該考慮打造自己的小型資料集以供評估。如此一來,我們可以更瞭解它在特定使用情境中的表現。此外,我們必須不斷地評估效能,權衡精準度 vs. 效能。要瞭解不同模型與推論引擎的效能,可以先從 TensorFlow 的基準校正工具著手。
針對 TFLite 模型在 Android 裝置上運行推論有許多選項,包括軟體 (SW) 與硬體 (HW),使得大家可能馬上就對此感到困惑。在軟體方面有NNAPI、TFLite CPU 或 GPU(繪圖處理器)代理;在硬體方面,可以在許多可供推論的運算單元中選擇,例如 CPU、GPU、NPU(神經網路處理器)等。以 Arm 的平台來說,使用 ArmNN TFLite delegate 是個好選項,它可以提供更高層級的抽象化。或者您也可直接鎖定 Arm 運算函式庫 (ACL) 與 Arm NN,它們可以讓用戶進行更多的管控。對我們而言,兩種模型都在 Mali GPU 上達到最佳效能,針對不同硬體裝置效能情況可能有所不同。

其它考量
既然模型的效能只是整個考量點的一環,還要考慮到前處理與後處理運作。例如,以 PoseNet 模型來說,採用 257 x 257的 RGB 影像輸入,並輸出熱點圖與偏移向量,這些都必須進行處理,以確定每個關節在原相機影像中的最終位置。另一方面,BlazePose的地標模型則輸出 x、y 與 z 座標,以及每個關節的存在與能見度。這聽起來似乎更簡單,但實際上卻涉及更多的處理階段。這是因為地標模型輸出的座標必須投影到原始圖框上,從而恢復與檢測模型相關的預處理和後處理階段。

這些處理階段與應用裡的其它功能,也需具備很高的效能,且身為開發人員,會想要儘可能地利用您的系統。您需要專注優化能提供最顯著效能提升的部份。針對這個目的,Arm 的Streamline Performance Analyzer 是適合的工具。它針對您系統中不同的單元,提供詳細的硬體計數器。隨後,倘若您在程式碼中增加註解,您可以看到它在管線中對每個軟體階段的確切影響。Florent 的部落格針對 ML 應用,提供針對 Streamline 很好的概述。由於我們的應用裡同時有視訊串流與相機串流,必須對兩者都進行推論。幸運的是,可以預先進行處理教練的視訊。我們可以先離線把骨骼的位置寫入檔案中,然後即時讀取、計算分數並開始繪圖,從而提供明顯的效能提升。
結論
本文分享了使用深度學習進行體姿估計時面臨的挑戰與限制,從 BlazePose 模型看到一些不錯的成果,讓我們更加瞭解如何透過 Android 智慧電視打造健身應用。如同時下其他的高階行動裝置,數位電視也可以提供全新的互動體驗,並將這些體驗帶進您客廳的螢幕上。增加深度感測器會進一步提升姿勢估計的準確度與強固性,並考量 3D 重組與情境理解,以獲得更身歷其境的沉浸體驗。
欲了解更多 Arm AI Platform 針對開發者提供的實用協助與設計指引,請造訪相關網頁,以助力您實現機器學習與深度學習應用。
責任編輯:Mia
核稿編輯:MindyLi
延伸閱讀: