OliveX 是一家專注于健身領域軟件研發的公司,自第一款產品上線以來已經服務超過 200 萬用戶。
我們都知道健身軟件的主要使用人群是青年和中年人,但隨著智能手機的普及,越來越多老年人也在使用智能手機,而我們希望能夠也幫助這些老年人。
在眾多老年人的健身運動中,流行最廣的項目之一是健身氣功八段錦,因此我們希望可以從跟這個運動入手來幫助老年人養成健身習慣,以及在運動中減少受傷的可能性。同時,我們希望借助于人工智能的輔助,識別老年人進行八段錦運動的姿勢,并且有針對性的提供反饋。
目標
八段錦是一種在中國古代發明的健身方法,由八種肢體動作組成,內容包括肢體運動和氣息調理。八段錦依據人體的骨骼、關節、內臟器官等生理結構創編的,對外在的自我鍛煉和內在的調理達到內外兼修的目的。
八段錦和五禽戲、太極拳等,都是中國民間廣為流傳的健身方法。2003 年,中國國家體育總局把重新編排后的八段錦等健身法作為“健身氣功”的內容向全國推廣。
“智能八段錦”這個項目的最終目標是希望可以創造一個人工智能的八段錦助手,而這個基于人工智能的助手可以幫助用戶來判斷他們練習的動作做的是否標準,以及對他們的八段錦動作進行打分。我們希望通過引入人工智能的相關功能,改進傳統的單純依照視頻鍛煉的方法。為普通的鍛煉提供更多的交互性和反饋,我們也希望這些功能可以幫助老年人更加有效的練習八段錦。
用戶進行八段錦鍛煉的主要場所是在戶外,因此我們的 App 需要運行在移動端。
用戶在進行八段錦鍛煉時,通常需要觀看視頻教程,以及播放口令錄音。
我們希望通過前置攝像頭采集用戶運動數據,并給出反饋。
而對于姿勢識別部分,我們希望我們的算法可以做到以下幾點:
該算法需要可以識別到每一個具體的姿勢。
該算法可以對姿勢的正確程度做出評分。
該算法可以對不正確的姿勢提出改正意見。
技術分析
技術調研
基于以上的需求,我們希望可以選擇的深度學習框架可以支持以下幾點:
對移動端有良好的支持,其模型推理可以在中低端手機上流暢運行。
友好的接口設計以及豐富的調試工具。
成熟的技術社區支持。
通過技術調研,我們發現 TensorFlow 完全滿足于我們的需求,并且我們驚喜的發現 Google 還開源了PoseNet 的算法庫,并且實現了在 JavaScript 平臺的示例程序。這樣,Google 即幫助我們完成了初期的人體骨骼的識別工作,而且由于在 JavaScript 平臺的性能表現,讓我們充分相信我們的運動識別算法也可以在移動端運行。
注:PoseNet 算法庫
https://github.com/tensorflow/tfjs-models/tree/master/PoseNet
算法方案
姿勢識別
在項目預研階段,我們對現有的運動識別算法進行了調研。目前主流的動作類型識別算法基本都是基于連續的視頻序列幀。雖然其準確率達到我們需求,但是整體網絡都比較復雜,其推斷計算 需要大量的計算資源。而我們的目標是希望運行在移動設備上,因此,我們不得不在識別準確度 和計算速度之間進行權衡。
我們采取的策略是首先利用 PoseNet 獲取人體骨骼信息,然后再基于人體骨骼的序列進行具體姿勢和運動類型的識別。而通過 PoseNet 獲取的骨骼信息只有 17 個關鍵點的位置信息,相比較于一幅圖像,其需要處理的數據已經大大減少了。下圖所示即為算法的處理流程,首先我們利用 PoseNet 將輸入的視頻轉換為連續的骨骼數據,然后在骨骼數據的基礎上按照關鍵姿勢進行分類。
姿勢識別算法流程
關鍵姿勢的定義
在確定策略之后,首先需要定義我們需要識別的關鍵姿勢。于是我們將具體的姿勢識別轉化為一個分類問題。下圖就是我們根據八段錦的教程定義的部分關鍵姿勢。
分類的算法我們采用的是傳統的 DNN 網絡進行計算,通過多次的調整參數和優化訓練數據,最后的計算結果還算不錯,在實際應用中完全符合我們的需求。
移動設備的挑戰
除了模型的開發外,我們的下一步挑戰是把所有的模型應用在移動設備上,包括主流的兩個手機平臺 iOS 和 Android。在剛開始的時候,我們第一個方案是使用 TensorFlow Mobile。由于我們需要檢測實時動作, TensorFlow Mobile 的效率并不足以滿足我們的需要。
正當我們致力于解決運算效率的問題的時候, TensorFlow 發布了 Lite 版本。TensorFlow Lite 在移動平臺上的效率有了重大突破
以下是我們在不同的移動設備上測試的運算時間
根據現在的情況,在大部分 Android 手機上都無法實時進行運動檢測。而在所有的模型當中,我們采用的 PoseNet 的運算最為復雜,也用時最長,占總運算時間的 95% 以上。所以我們根據需要,再重新調整 PoseNet 的輸入大小和參數,與此同時我們重新訓練了姿勢分類算法來彌補輸入精度的缺失。最后我們用的是 337 x 337 RGB 輸入的大小,而且在 Android 上使用了 0.5 作為 MobileNet 的寬度參數。
因為我們產品的目標用戶群為老人家,他們所使用的手機配置普遍較低。雖然在 PoseNet 參數調整后,效能有明顯的改善,但在低配置手機上仍然未如理想。所以我們便著手研究使用手機中的 GPU 來加速計算。而恰好這時 TensorFlow Lite GPU delegate (experimental) 推出,節省了我們大量的研發時間。在 GPU 中,算法的運算效率也得到大幅提升。
以下是我們在調整 PoseNet 參數后在不同的移動設備上測試 Lite 和 Lite GPU 的運算時間。
因為八段錦中的動作相對較慢,所以我們在使用 TensorFlow Lite GPU delegate (experimental) 后,大部分市面上的手機都可以正常使用。
成果及展望
我們最終成功的在 iOS 以及 Android 平臺上完成了八段錦項目,并且在用戶測試中得到了不少積極的反饋。利用姿勢的識別,我們提供了引導模式,幫助八段錦新手一步一步的跟著老師進行鍛煉。對于經常鍛煉八段錦的用戶,我們提供了評分反饋等功能。目前“智能八段錦”這個應用可以在蘋果的 App Store 和 Google Play 上下載到。
與此同時,OliveX 還在積極探索人體姿勢識別在其他健身運動中的使用。我們發現在日常很多健身運動和八段錦一樣,姿勢的正確與否非常重要。正確的姿勢可以更好的保護身體不受損傷,以及更好的提高運動效率。因此我們希望能將在八段錦項目中的姿勢識別和糾正的算法應用在其他的運動場景。
-
智能手機
+關注
關注
66文章
18431瀏覽量
179860 -
人工智能
+關注
關注
1791文章
46859瀏覽量
237579
原文標題:人體動作識別在智能八段錦 App 中的實踐
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論