摘? 要:文章主要闡述了在嵌入式設(shè)備上運(yùn)行AI算法檢測(cè)人體運(yùn)動(dòng)姿態(tài)并給出相應(yīng)運(yùn)動(dòng)建議的實(shí)現(xiàn)方法,其中嵌入式設(shè)備包含攝像頭模塊、顯示屏模塊、控制主板、模型算法、語(yǔ)音模塊、通信模塊等。通過攝像頭采集運(yùn)動(dòng)姿態(tài)的圖像,并由目標(biāo)檢測(cè)算法、人體骨骼算法、姿態(tài)動(dòng)作算法得到運(yùn)動(dòng)姿態(tài)參數(shù)進(jìn)行統(tǒng)計(jì)與姿態(tài)修正,反饋給運(yùn)動(dòng)人員,實(shí)現(xiàn)運(yùn)動(dòng)姿態(tài)的計(jì)數(shù)與姿態(tài)修正,進(jìn)而提高動(dòng)作完成的質(zhì)量,達(dá)到有效運(yùn)動(dòng)的目的。
關(guān)鍵詞:攝像頭;目標(biāo)檢測(cè);人體骨骼點(diǎn);模型;人工智能
中圖分類號(hào):TP18? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)22-0092-04
Abstract: This paper mainly expounds the implementation method of running AI algorithm on embedded equipment to detect human motion attitude and give corresponding motion suggestions. The embedded equipment includes camera module, display module, control motherboard, model algorithm, voice module, communication module and so on. The image of motion attitude is collected through the camera, and the motion attitude parameters are obtained through the target detection algorithm, human bone algorithm and attitude action algorithm for statistics and attitude correction, which are fed back to the athletes to realize the counting of motion attitude and attitude correction, so as to improve the quality of action completion and achieve the purpose of effective motion.
Keywords: camera; object detection; human bone point; model; artificial intelligence
0? 引? 言
國(guó)家連續(xù)多次發(fā)文引導(dǎo)青少年學(xué)生體質(zhì)健康的發(fā)展改革,屢次強(qiáng)調(diào)體育學(xué)科的重要性,并且明確要求體育中考要逐年增加分值,達(dá)到跟語(yǔ)數(shù)外同分值的水平。在“以考促動(dòng)、健康中國(guó)、體育強(qiáng)國(guó)”的指引下體育學(xué)科的重要性更加凸顯,學(xué)科要求也更加嚴(yán)格,對(duì)學(xué)生起著決定性影響,如何有效地進(jìn)行體育鍛煉也引起學(xué)生、家長(zhǎng)和社會(huì)的高度關(guān)注。
隨著新一代信息技術(shù)的發(fā)展日新月異,特別是AI人工智能技術(shù)的廣泛應(yīng)用,在體育領(lǐng)域正在開辟出全新的道路,如:微軟開發(fā)出的一套解析運(yùn)動(dòng)員訓(xùn)練、比賽表現(xiàn)的數(shù)據(jù)化管理系統(tǒng),可以為運(yùn)動(dòng)員提供運(yùn)動(dòng)數(shù)據(jù)分析。
目前AI人工智能技術(shù)依賴于不同的模型,但人體運(yùn)動(dòng)模型魯棒性仍較弱,需要龐大得數(shù)據(jù)量作為支撐,計(jì)算量大,對(duì)硬件要求高,如何在嵌入式低配置高實(shí)時(shí)的設(shè)備上實(shí)現(xiàn)AI人工智能檢測(cè)運(yùn)動(dòng)姿態(tài)?針對(duì)以上問題可采用以下方法進(jìn)行解決:
(1)建立不同運(yùn)動(dòng)姿態(tài)下的人體姿態(tài)點(diǎn)模型,運(yùn)用局部圖像分割與目標(biāo)追蹤檢測(cè)快速推理算法。
(2)采集不同人群在不同運(yùn)動(dòng)下的人體數(shù)據(jù)并進(jìn)行分類、打樣、訓(xùn)練。
(3)簡(jiǎn)化模型與推理算法,犧牲部分精度換取推理速度的提升,進(jìn)而降低對(duì)硬件的高要求。
通過上述方法可實(shí)現(xiàn)在嵌入式設(shè)備上進(jìn)行運(yùn)動(dòng)姿態(tài)的檢測(cè),在滿足AI人工智能技術(shù)的應(yīng)用,加上嵌入式設(shè)備的低成本,有利于設(shè)備的普及與市場(chǎng)的推廣。
1? 開發(fā)內(nèi)容簡(jiǎn)介
從硬件與軟件兩方面簡(jiǎn)述AI檢測(cè)運(yùn)動(dòng)姿態(tài)在嵌入式設(shè)備上實(shí)現(xiàn)的開發(fā)內(nèi)容。由于AI人工智能技術(shù)的模型與算法比較依賴于硬件,因此在硬件的選型上,主要取決于軟件上對(duì)模型與算法的優(yōu)化,降低對(duì)硬件配置的高要求。此外,針對(duì)業(yè)務(wù)上的要求需要有攝像頭進(jìn)行圖像采集、顯示與語(yǔ)音交互、業(yè)務(wù)數(shù)據(jù)的管理,由控制主板進(jìn)行管理攝像頭模塊、顯示屏模塊、語(yǔ)音模塊、通信模塊以及最為關(guān)鍵的AI模型算法。軟件上選用目前主流的Android操作系統(tǒng),Android操作系統(tǒng)具有豐富的UI界面、動(dòng)畫效果好,應(yīng)用接口豐富,第三方插件也有大量的開發(fā)人員進(jìn)行開發(fā)維護(hù);AI人工智能軟件框架采用Tensorflow軟件框架,Tensorflow與Android操作系統(tǒng)同屬Google旗下的開源軟件庫(kù),里面含有深度學(xué)習(xí)的各類標(biāo)準(zhǔn)算法API和數(shù)據(jù)集等,模型上選用比較主流的YOLO3與MoveNet,推理算法采用卷積神經(jīng)網(wǎng)絡(luò)CNN。
如圖1所示,嵌入式設(shè)備搭載AI人工智能算法的系統(tǒng)包含攝像頭模塊、顯示屏模塊、控制主板、模型算法、語(yǔ)音模塊、通信模塊等以及各個(gè)模塊之間的關(guān)系。
其中,各個(gè)模塊可獨(dú)立進(jìn)行開發(fā)調(diào)試,控制主板作為整個(gè)系統(tǒng)核心,統(tǒng)籌各個(gè)模塊協(xié)同工作,從圖像輸入、圖像分析、結(jié)果輸出、數(shù)據(jù)反饋完成運(yùn)動(dòng)姿態(tài)的檢測(cè)。
2? 模塊實(shí)現(xiàn)方法
2.1? 攝像頭模塊
根據(jù)不同運(yùn)動(dòng)姿態(tài)的要求,對(duì)攝像頭參數(shù)要求也不一樣,攝像頭主要會(huì)影響運(yùn)動(dòng)檢測(cè)的參數(shù)有幀率、分辨率、數(shù)據(jù)格式、白平衡、寬動(dòng)態(tài)范圍、動(dòng)態(tài)速度。其中,幀率、分辨率、數(shù)據(jù)格式影響圖像采集到CPU的頻率,幀率越高、分辨率越低、數(shù)據(jù)格式MJPG較穩(wěn)定能有效提高圖像采集到CPU的速度。對(duì)焦方式、寬動(dòng)態(tài)范圍、動(dòng)態(tài)速度影響圖像的真實(shí)還原,對(duì)焦方式可以采用手動(dòng)對(duì)焦防止自動(dòng)對(duì)焦時(shí)導(dǎo)致圖像某幾幀的變模糊,寬動(dòng)態(tài)范圍在強(qiáng)光下也能有較好的清晰度,動(dòng)態(tài)速度可以減少抓取的運(yùn)動(dòng)姿態(tài)拖影的效果。
考慮在嵌入式設(shè)備上使用,采用一般的高清攝像頭,幀率在30幀,分辨率最大支持1 920×1 080、支持手動(dòng)調(diào)焦、支持寬動(dòng)態(tài)范圍、動(dòng)態(tài)速度滿足大部分運(yùn)動(dòng)姿態(tài)較少拖影。從穩(wěn)定性與擴(kuò)展性上,選用免驅(qū)的USB連接方式的攝像頭,方便軟件開發(fā)、維護(hù)、更換。
2.2? ?控制主板
控制主板采用主流的芯片方案,主要的考慮參數(shù)有CPU、GPU、NPU、內(nèi)存、存儲(chǔ)、功耗等,結(jié)合應(yīng)用場(chǎng)景與成本考慮,選取對(duì)應(yīng)的參數(shù)。AI人工智能算法的算力可以配置CPU、GPU、NPU,一般嵌入式芯片方案的GPU的配置比不上PC機(jī)、具有NPU的不多,因此更多依賴于CPU,主板芯片方案選取CPU配置高的,處理會(huì)較快;GPU、內(nèi)存的參數(shù)選擇上也要往較高的靠,提升顯示屏的速度與流暢性;為了方便后續(xù)功能擴(kuò)展,外圍接口也是多多益善,如:USB接口、串口接口、HDMI接口、音頻口等。如表1所示的參數(shù)可供參考。
2.3? 顯示屏模塊
顯示屏目前有液晶屏、LED屏等,按照實(shí)際應(yīng)用場(chǎng)景可選用紅外觸摸屏或者電容觸摸屏,一般電容觸摸屏用得比較多。顯示屏的分辨率可采用1 920×1 080,響應(yīng)時(shí)間低于6毫秒,亮度不低于300 cd/m2,可視角度178度,尺寸不小于32英寸,橫豎屏都可以。
軟件上采用OpenGL雙緩沖技術(shù),包括前臺(tái)緩沖即當(dāng)前屏幕顯示、后臺(tái)緩沖即內(nèi)存顯存,繪圖操作先在內(nèi)存中繪好,然后再將結(jié)果復(fù)制到屏幕上。這樣就不會(huì)造成畫面的閃爍。一是解決屏幕的頻繁刷新造成的畫面閃爍問題,二是方便AI人工智能算法的圖像處理即在圖像處理的同時(shí)又不影響畫面的顯示。
2.4? 語(yǔ)音模塊
語(yǔ)音模塊一般采用語(yǔ)音芯片與外置揚(yáng)聲器結(jié)合的方式。外置揚(yáng)聲器可根據(jù)需要配置不同功放參數(shù)如:雙8R/5W功放可滿足大部分使用場(chǎng)景。
軟件上采用TTS語(yǔ)音技術(shù)即文本轉(zhuǎn)語(yǔ)音,將不同運(yùn)動(dòng)狀態(tài)的提示語(yǔ)、成績(jī)通過文本轉(zhuǎn)化成語(yǔ)音播放。android操作系統(tǒng)自帶TextToSpeech接口可直接調(diào)用,如果需要不同語(yǔ)調(diào)與語(yǔ)速的可采用第三方插件。
2.5? 通信模塊
通信模塊包含移動(dòng)通信、Wi-Fi通信、以太網(wǎng)通信、Lora通信等。其中,Wi-Fi通信與以太網(wǎng)通信作為標(biāo)準(zhǔn)接口,集成在控制主板上,移動(dòng)通信、Lora通信等以模塊的方式通過USB或者串口連接到主板上實(shí)現(xiàn)數(shù)據(jù)通信。移動(dòng)通信模塊目前主流有5G通信模塊、4G全網(wǎng)通通信模塊,4G-CAT1通信模塊、NB通信模塊等。
軟件上如果是外接的通信模塊,需要固件進(jìn)行適配,按照通信模塊的數(shù)據(jù)手冊(cè)集成到Android的固件中,應(yīng)用則直接調(diào)用Android系統(tǒng)的接口,管理不同通信模塊的數(shù)據(jù)收發(fā)、通信關(guān)閉與開啟、鏈路檢測(cè)等,與后臺(tái)的協(xié)議一般采用HTTP通信,字段以Json格式封裝,報(bào)文以安全算法進(jìn)行加密傳輸。
2.6? 模型算法
模型算法是自然環(huán)境下對(duì)人體進(jìn)行分類、檢測(cè)、分割得到人體關(guān)鍵關(guān)節(jié)點(diǎn)位置的目標(biāo)檢測(cè)算法。由于人體大小分布不一致,且各個(gè)關(guān)節(jié)活動(dòng)范圍很大,相對(duì)位置不固定,還存在各種位置遮擋和服裝遮擋的情況。由于關(guān)鍵點(diǎn)的分布范圍太廣,用全連接層去回歸導(dǎo)致泛化能力很差。因此采用CNN神經(jīng)網(wǎng)絡(luò)會(huì)有較好的效果。目標(biāo)學(xué)習(xí)形式采用回歸heatmap的方式來訓(xùn)練,即把原圖縮小幾倍得到特征圖,特征圖有關(guān)鍵點(diǎn)的位置值就是1、背景就是0,因?yàn)橹辉O(shè)1太稀疏了,所以把1改為一個(gè)高斯核。檢測(cè)流程分為Top-Bottom與Bottom-Up兩種,兩者的差別在于Top-Bottom方式精度高,但是速度慢一點(diǎn),而Bottom-Up速度快,但是精度差一點(diǎn)。因此在保證精度優(yōu)先的前提下采用Top-Bottom,即是先檢測(cè)人,再裁剪出來對(duì)每個(gè)人去檢測(cè)關(guān)鍵點(diǎn)。
YOLO系列是最經(jīng)典也是目前被大家認(rèn)可使用的檢測(cè)框架,因此算法模型采用YOLO3在滿足一定精度的條件下推理速度可以在20毫秒以內(nèi),在滿足實(shí)時(shí)的條件下還能滿足較低的CPU占用,比較適合在嵌入式上進(jìn)行部署。
軟件上android操作系統(tǒng)有現(xiàn)成的OpenCV庫(kù),但是要注意OpenCV庫(kù)的版本,從3.4.2開始支持YOLO3,因此導(dǎo)入的OpenCV庫(kù)要在3.4.2版本之后。此外要加載完OpenCV以后才能調(diào)用yolo3初始化加載模型,接下來就是傳入攝像頭拍攝的圖片數(shù)據(jù)格式轉(zhuǎn)成Mat數(shù)據(jù),輸出目標(biāo)的分類標(biāo)簽,識(shí)別出人體框,再加載人體檢測(cè)MoveNet模型識(shí)別出人體關(guān)鍵點(diǎn)位置。在識(shí)別人體關(guān)鍵點(diǎn)位置后,按照具體的運(yùn)動(dòng)姿態(tài)要求判定動(dòng)作有沒有做到位,并給出提示與計(jì)數(shù)。
3? 具體案例——開合跳姿態(tài)檢測(cè)
開合跳的動(dòng)作要求:身體保持直立,雙手自然垂放于身體兩側(cè);用力向上跳起,同時(shí)雙腳向兩側(cè)張開;跳到最高處時(shí)雙手前后交叉,此時(shí)雙手和雙腿都應(yīng)該是筆直的;回到地面,此時(shí)注意應(yīng)腳尖先落地同時(shí)膝蓋微屈,如此反復(fù)。按照開合跳動(dòng)作要求,可以將整套動(dòng)作拆解為二種狀態(tài),第一種狀態(tài)為起始狀態(tài),即身體保持直立,雙手垂于兩側(cè);第二種狀態(tài)為起跳狀態(tài),即身體向上跳起,雙腳張開,雙手前后交叉。如圖2所示,兩種狀態(tài)反復(fù)轉(zhuǎn)換即可。
起始狀態(tài)根據(jù)檢測(cè)當(dāng)前人體的關(guān)鍵點(diǎn)位置,判定身體軀干是否直立,可根據(jù)脖子、中骻、腳踝的關(guān)鍵點(diǎn)連線是否在一條直線上,雙手是否垂于身體兩側(cè)檢測(cè)肩、肘、手腕的關(guān)鍵點(diǎn)是否在一條直線上且與身體的線平行。
起跳狀態(tài)根據(jù)骻的縱向變化值最高時(shí)為跳到最高點(diǎn),在此過程檢測(cè)左腳踝、中骻、右腳踝關(guān)鍵點(diǎn)的夾角是否超過30°,雙手手腕的點(diǎn)超過頭部鼻子的點(diǎn),雙手手腕關(guān)鍵點(diǎn)的橫向差值變成負(fù)值。
根據(jù)上述狀態(tài)判定,只要經(jīng)過兩種狀態(tài)的變化可記錄動(dòng)作完成一次,反之給出未做到位的提示。
4? 結(jié)? 論
在嵌入式設(shè)備實(shí)現(xiàn)運(yùn)動(dòng)姿態(tài)的檢測(cè),涉及攝像頭采集、目標(biāo)檢測(cè)算法、人體骨骼點(diǎn)算法、某一運(yùn)動(dòng)姿態(tài)的計(jì)數(shù)違規(guī)算法、人機(jī)交互等方面,保證在嵌入式設(shè)備上流暢實(shí)時(shí)的進(jìn)行識(shí)別,除了犧牲一定的算法精度外,還要協(xié)調(diào)好圖像采集的速率與檢測(cè)算法運(yùn)行時(shí)間的平衡,在滿足采集速率的情況下,盡可能地壓縮檢測(cè)算法的推理時(shí)間,保障整個(gè)運(yùn)動(dòng)姿態(tài)的流暢性與準(zhǔn)確性。雖然在嵌入式設(shè)備上的運(yùn)動(dòng)姿態(tài)識(shí)別精度無法與服務(wù)器端相提并論,但嵌入式設(shè)備的低功耗、低成本且能滿足一般的運(yùn)動(dòng)姿態(tài)的識(shí)別,還是比較有競(jìng)爭(zhēng)力。此外,保證精度與推理速度都能達(dá)到高要求,還需要更多的素材數(shù)據(jù)進(jìn)行采樣訓(xùn)練工作以及姿態(tài)判定算法的優(yōu)化。
參考文獻(xiàn):
[1] 彭正方.5G移動(dòng)通信關(guān)鍵技術(shù)分析 [J].通信電源技術(shù),2021,38(4):138-139+142.
[2] 徐海寧.基于深度圖像和骨骼數(shù)據(jù)的人體動(dòng)作識(shí)別 [D].鄭州:鄭州大學(xué),2016.
[3] 王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā) [M].北京:清華大學(xué)出版社,2003.
[4] 岳傳真.Android系統(tǒng)移植和應(yīng)用程序開發(fā) [D].上海:復(fù)旦大學(xué),2010.
[5] 胡銀星.嵌入式多媒體終端設(shè)備關(guān)鍵技術(shù)研究 [D].武漢:華中科技大學(xué),2008.
[6] 朱繼洪,裴繼紅,趙陽(yáng).卷積神經(jīng)網(wǎng)絡(luò)(CNN)訓(xùn)練中卷積核初始化方法研究 [J].信號(hào)處理,2019,35(4):641-648.
[7] 龔維亮,李偉雪.深度學(xué)習(xí)在競(jìng)技體育訓(xùn)練中的應(yīng)用研究 [C]//第十一屆全國(guó)體育科學(xué)大會(huì). 第十一屆全國(guó)體育科學(xué)大會(huì)論文摘要匯編. 南京:出版社不詳,2019:5736-5738.
作者簡(jiǎn)介:柯宇(1985.02—),男,漢族,福建仙游人,研發(fā)經(jīng)理,中級(jí)工程師,本科,研究方向:金融類電子產(chǎn)品設(shè)計(jì)、教育類電子產(chǎn)品設(shè)計(jì)、物聯(lián)網(wǎng)人工智能應(yīng)用、嵌入式軟硬件設(shè)計(jì)、手機(jī)APP客戶端設(shè)計(jì)、管理平臺(tái)軟件架構(gòu)搭建、移動(dòng)端檢測(cè)算法。