【關(guān)鍵詞】樹莓派;P-LSTM 算法;深度學(xué)習(xí);骨骼關(guān)鍵點(diǎn)
隨著當(dāng)代社會(huì)發(fā)展的步伐加快,長時(shí)間采取坐姿的人群也不斷增加。長期采取坐姿工作,姿態(tài)會(huì)不自覺地發(fā)生改變,不正確的坐姿日積月累下來會(huì)造成腰背肌勞損等疾病[1]。青少年正處于長身體的關(guān)鍵時(shí)期,如果坐姿長期處于不正確的狀態(tài),那么就可能會(huì)導(dǎo)致視距過近、脊椎承受過多壓力的情況,進(jìn)而導(dǎo)致近視、頸椎 病甚至是脊椎畸形等各種疾病。因此,開展坐姿識(shí)別的研究有著非常重要的意義。
現(xiàn)有坐姿識(shí)別方法主要分為兩類:一是基于可穿戴傳感器識(shí)別的方法,二是基于圖像識(shí)別的方法。基于可穿戴傳感器的方法需要在用戶身上配置傳感器用以采集用戶坐姿信息,但是此方法成本較高,而且可能導(dǎo)致用戶在使用過程中由于佩戴傳感器而感到不舒適甚至影響其日常的一些行為。相比較,使用圖像處理進(jìn)行坐姿識(shí)別的方法解決了可穿戴傳感器給用戶帶來的不適感,通過采集圖像的方式對(duì)用戶的坐姿進(jìn)行檢測(cè)以及矯正,能夠有效預(yù)防當(dāng)今社會(huì)中大部分人由于不良坐姿所帶來的身體健康問題。本文主要采用圖像處理方式進(jìn)行坐姿分析,利用Part-AwareLong short-term memory(P-LSTM)算法和健康姿態(tài)判定算法分別進(jìn)行坐姿識(shí)別和健康姿態(tài)判定[2]。同時(shí)將坐姿檢測(cè)和健康姿態(tài)判定兩個(gè)算法移植到樹莓派上,使坐姿矯正系統(tǒng)實(shí)現(xiàn)便攜應(yīng)用。
人的坐姿行為可以解釋為身體形態(tài)的時(shí)間序列。這些身體配置可以通過身體主要關(guān)節(jié)的3D位置有效而簡(jiǎn)潔地表示。以這種方式,每個(gè)采集的視頻樣本都可以被建模為配置的順序表示。針對(duì)人體姿態(tài)識(shí)別和健康姿態(tài)判定,本系統(tǒng)首先通過PoseNet姿勢(shì)估計(jì)模型獲取人體的關(guān)鍵點(diǎn),然后采用P-LSTM算法[3]和健康姿態(tài)判定算法分別進(jìn)行坐姿識(shí)別和健康姿態(tài)判定。
(一)獲取骨骼信息模型
1.利用PoseNet模型對(duì)采集到的姿態(tài)進(jìn)行關(guān)鍵點(diǎn)識(shí)別
本系統(tǒng)在進(jìn)行姿態(tài)估計(jì)時(shí)在Py QT界面中移植了PoseNet模型,該模型可以識(shí)別出圖像以及視頻中人體的關(guān)鍵點(diǎn)位置,并且通過將各個(gè)關(guān)鍵點(diǎn)位置關(guān)聯(lián)起來就可以對(duì)人的姿態(tài)以及動(dòng)作進(jìn)行判斷。
一般情況下,姿態(tài)估計(jì)的識(shí)別工作包括兩個(gè)步驟:第一步是通過卷積神經(jīng)網(wǎng)絡(luò)輸入RGB圖像[4],本系統(tǒng)使用的PoseNet是MobileNetV1架構(gòu),生成一組熱圖和一些偏移圖,每種關(guān)鍵點(diǎn)對(duì)應(yīng)一個(gè)熱圖,這一步在邊緣TPU上計(jì)算,計(jì)算結(jié)果輸入到第二步中。第二步是通過多姿態(tài)解碼算法解碼出關(guān)鍵點(diǎn)坐標(biāo)、關(guān)鍵點(diǎn)置信度。我們可以為Tensorflow Lite創(chuàng)建自定義設(shè)置,并將其附加到網(wǎng)絡(luò)圖本身。通過這樣的操作,就可以不對(duì)熱圖進(jìn)行處理,而是利用邊緣張量來對(duì)單元API進(jìn)行處理以調(diào)用這個(gè)網(wǎng)絡(luò),并從網(wǎng)絡(luò)之中直接獲得各個(gè)關(guān)鍵點(diǎn)位置、關(guān)鍵點(diǎn)置信度分?jǐn)?shù)以及姿勢(shì)和姿勢(shì)置信度分?jǐn)?shù)。
2.利用PoseEngine類得到最終的關(guān)鍵點(diǎn)和置信度[5]
PoseEngine類可以通過EdgeTPU API來實(shí)現(xiàn)對(duì)PoseNet網(wǎng)絡(luò)的會(huì)計(jì)訪問,只需要通過model.tflite文件進(jìn)行初始化,然后調(diào)用DetectPosesInImage函數(shù),并向該函數(shù)傳入包含圖像的numpy對(duì)象,最后得到一個(gè)Pose對(duì)象,它包括識(shí)別出的所有人體關(guān)鍵點(diǎn)的坐標(biāo)和對(duì)應(yīng)的關(guān)鍵點(diǎn)置信度,即最終得到人體骨骼信息,用于坐姿識(shí)別和健康判定。
(二)坐姿識(shí)別算法
因?yàn)樽藱z測(cè)最主要的就是頭、脖頸、軀干骨骼的坐標(biāo)判定和移動(dòng)判定,所以采用基于循環(huán)神經(jīng)網(wǎng)絡(luò)的P-LSTM算法來實(shí)現(xiàn)此功能。
具體算法及實(shí)現(xiàn)框圖如圖1所示。遺忘門的構(gòu)成是一個(gè)Sigmod神經(jīng)網(wǎng)絡(luò)層以及一個(gè)按位乘操作;記憶門的構(gòu)成則是輸入門(Input Gate)、Tanh激活層以及一個(gè)按位乘操作;輸出門(Output Gate)與 Tanh 函數(shù)以及按位乘操作共同作用將細(xì)胞狀態(tài)和輸入信號(hào)傳遞到輸出端。
P-LSTM是基于LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)算法,LSTM用于解決一般遞歸神經(jīng)網(wǎng)絡(luò)中普遍存在的長期依賴問題,使用LSTM可以有效地傳遞和表達(dá)長時(shí)間序列中的信息并且不會(huì)導(dǎo)致長時(shí)間前的有用信息被忽略(遺忘),與此同時(shí),LSTM還減緩了RNN中的梯度消失和爆炸問題。算法將整個(gè)識(shí)別到的身體的動(dòng)態(tài)(在記憶單元中表示)劃分為身體部位的動(dòng)態(tài)(基于部位的單元),并通過它們的連接學(xué)習(xí)最終的分類器。而P-LSTM采用LSTM獨(dú)立地學(xué)習(xí)身體各部位的共同時(shí)間模式,并將它們結(jié)合在全局水平上進(jìn)行動(dòng)作識(shí)別,提高識(shí)別準(zhǔn)確性。
(三)健康姿態(tài)判定算法
圖像處理中對(duì)坐姿進(jìn)行識(shí)別成功后,在樹莓派中設(shè)定的PyQT上位機(jī)界面的“人體姿態(tài)窗口”中實(shí)時(shí)繪制出識(shí)別的人體骨架,同時(shí)在“人體骨架窗口”中將相應(yīng)的關(guān)鍵點(diǎn)在畫面中的位置以及對(duì)應(yīng)位置的置信度打印出來,同時(shí)給采集不同坐姿數(shù)據(jù)的用戶分別打上標(biāo)簽。從而采用圖像處理技術(shù)識(shí)別和捕獲視頻或者圖片中的人體,進(jìn)一步確定人體各主要關(guān)節(jié)部位在圖像中的位置,通過與健康閾值內(nèi)的姿態(tài)比對(duì)進(jìn)行坐姿健康判定,得出姿態(tài)是否健康。
具體實(shí)現(xiàn):利用估計(jì)算法得到估計(jì)坐標(biāo)和置信度后,將估計(jì)坐標(biāo)與健康閾值數(shù)據(jù)進(jìn)行比對(duì),若落于健康閾值內(nèi)且置信度較高則評(píng)判姿態(tài)健康;若落于健康閾值內(nèi)但置信度較低,則重新估計(jì)姿態(tài),并且實(shí)時(shí)比對(duì);若超出健康閾值,則判定為不健康姿態(tài),傳遞命令給語音播報(bào)系統(tǒng)對(duì)客戶進(jìn)行提醒。
(一)實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)所采用硬件模塊主要包括分辨率為640*480,像素為400萬的攝像頭,以及Intel I5十代6核處理器,內(nèi)存為16G的PC機(jī),軟件開發(fā)環(huán)境為VSCode,OpenCV,開發(fā)語言為Python,訓(xùn)練后的推理平臺(tái)為4GB內(nèi)存的樹莓派4B。
(二)骨骼坐標(biāo)識(shí)別P-LSTM算法實(shí)驗(yàn)結(jié)果與分析
本文參考相應(yīng)的消融實(shí)驗(yàn),獲得了本文提出的骨骼坐標(biāo)識(shí)別P-LSTM算法與使用的兩個(gè)數(shù)據(jù)集上的幾種最先進(jìn)方法進(jìn)行比較的結(jié)果。
一個(gè)是Cross-Subject(CS):Cross-Subject按照人物ID來劃分訓(xùn)練集和測(cè)試集,訓(xùn)練集40320個(gè)樣本,測(cè)試集16560個(gè)樣本,將其中20人作為訓(xùn)練集,剩余的作為測(cè)試集。
另一個(gè)是 Cross-View(CV):Cross-View按相機(jī)來劃分訓(xùn)練集和測(cè)試集,總共有三個(gè)水平角度為45°、0°、-45°的攝像機(jī)。相機(jī)1采集的樣本作為測(cè)試集,相機(jī)2和3作為訓(xùn)練集,樣本數(shù)分別為18960和37920。
最新的幾種骨骼坐標(biāo)識(shí)別方法中,HCN[6]采用CNN模型從骨架數(shù)據(jù)中學(xué)習(xí)全局共現(xiàn),其是將骨架的每一個(gè)關(guān)鍵作為一個(gè)通道,然后通過卷積層來從所有的關(guān)節(jié)之中學(xué)習(xí)全局共現(xiàn)特征;ST-GCN是基于動(dòng)態(tài)骨骼的動(dòng)作識(shí)別方法;PB-GCN是基于部分的圖卷積網(wǎng)絡(luò)來從骨架視頻中識(shí)別動(dòng)作;NTU RGB+D[7]數(shù)據(jù)集上的兩種協(xié)議(CS、CV)的最佳性能分別為95.0%和89.2%。
與Northwestern-UCLA訓(xùn)練集上最先進(jìn)的方法的精度比較,Northwestern-UCLA數(shù)據(jù)集(簡(jiǎn)稱N-UCLA)是一個(gè)用于動(dòng)作識(shí)別的數(shù)據(jù)集,包含了由10個(gè)不同的人在17個(gè)不同的動(dòng)作中進(jìn)行的動(dòng)作捕捉數(shù)據(jù)。該數(shù)據(jù)集包含了骨骼關(guān)節(jié)位置和方向的信息,以及RGB圖像和深度圖像。這個(gè)數(shù)據(jù)集是用于評(píng)估動(dòng)作識(shí)別算法的常用數(shù)據(jù)集之一。
Ensemble TS-LSTM 采用多個(gè)時(shí)間滑動(dòng)LSTM (TSLSTM)分別提取短期、中期和長期時(shí)間動(dòng)態(tài)。VisualizationCNN可視化卷積神經(jīng)網(wǎng)絡(luò)模型。比較在Northwestern-UCLA訓(xùn)練集中先進(jìn)方法的精度,相比于這幾種先進(jìn)的算法模型,AGC-LSTM再次達(dá)到了93.3%的最佳準(zhǔn)確率。
P-LSTM在性能上比它們要低一些,但是它由于網(wǎng)絡(luò)結(jié)構(gòu)更簡(jiǎn)單,在樹莓派上移植更容易和方便。
(三)健康姿態(tài)判定算法實(shí)驗(yàn)結(jié)果與分析
本文對(duì)坐姿判斷正確率進(jìn)行了相關(guān)實(shí)驗(yàn)。實(shí)驗(yàn)使用攝像頭對(duì)不同體型的人分別從正面和側(cè)面進(jìn)行坐姿采集,包括標(biāo)準(zhǔn)坐姿,左傾坐姿,右傾坐姿,前傾坐姿以及后仰坐姿,對(duì)每個(gè)人的每種坐姿分別采集200張圖片,形成訓(xùn)練集。為了驗(yàn)證該算法準(zhǔn)確度,在室內(nèi)自然光下分別對(duì)兩名測(cè)試人員的不同坐姿進(jìn)行測(cè)試,測(cè)得人體關(guān)鍵點(diǎn)坐標(biāo)以及置信度,通過比較同一水平關(guān)鍵節(jié)點(diǎn)的像素橫坐標(biāo)以及同一縱向關(guān)鍵節(jié)點(diǎn)的像素縱坐標(biāo)得到該次坐姿測(cè)試的置信分?jǐn)?shù)。對(duì)測(cè)試得到的置信分?jǐn)?shù)求數(shù)值平均,得到平均識(shí)別率,能發(fā)現(xiàn)本次實(shí)驗(yàn)平均識(shí)別率達(dá)到70%,最高識(shí)別率達(dá)到77%,即本系統(tǒng)能夠比較準(zhǔn)確實(shí)現(xiàn)對(duì)不同姿態(tài)的判定。
坐姿矯正系統(tǒng)對(duì)解決坐姿不規(guī)范引起的健康問題有重大意義。本文提出的骨骼坐標(biāo)識(shí)別P-LSTM算法,該算法獨(dú)立地學(xué)習(xí)各部分的共同時(shí)間模式,并將它們結(jié)合在全局水平上進(jìn)行動(dòng)作識(shí)別,相對(duì)于RNN算法,減緩了梯度消失和爆炸問題,同時(shí),對(duì)LSTM算法的骨骼識(shí)別進(jìn)行優(yōu)化,提出人體健康姿態(tài)判定算法,以2D姿態(tài)估計(jì)為基礎(chǔ),設(shè)定健康閾值,并對(duì)坐姿是否正確予以判斷并做出提醒。本文中所提出的系統(tǒng),利用采集圖像的方式來對(duì)用戶的坐姿進(jìn)行檢測(cè)并根據(jù)需要進(jìn)行矯正,能夠有效預(yù)防坐姿不規(guī)范引起的健康問題。但本文提出的系統(tǒng)也存在不足之處,在昏暗環(huán)境中,或者不同體格的用戶,都會(huì)導(dǎo)致攝像頭無法采集到良好的人體上半身圖像。