趙海文, 王佳闊, 齊德瑄, 郭士杰
(1.河北工業(yè)大學(xué) 機械工程學(xué)院,天津 300401; 2.河北省機器人感知與人機融合重點實驗室,天津 300401)
通常,患者在床上停留的時間會較久,患者在床上的坐臥姿勢會影響其健康狀況。睡姿是臥姿的主要組成部分,是睡眠質(zhì)量監(jiān)測的重要指標(biāo)之一,在睡眠階段可通過睡姿診斷睡眠呼吸暫停綜合征(sleep apnea syndrome,SAS)以及心血管疾病等癥狀,對于醫(yī)療診斷十分關(guān)鍵。在智能無人護理系統(tǒng)中,利用睡姿和坐姿信息,對患者的健康監(jiān)測顯得尤為重要。
傳統(tǒng)的睡姿識別系統(tǒng)如,葉蔭球等人[1]提出的通過計算機視覺,采用目標(biāo)分割和神經(jīng)網(wǎng)絡(luò)結(jié)合的算法進行人體睡姿識別,該系統(tǒng)受光線影響會降低識別準(zhǔn)確率,且使用視頻也會帶來隱私問題;楊明健等人[2]提出了一種基于OpenPose的姿態(tài)估計算法,通過對人體各個關(guān)節(jié)點的定位來判斷人體姿態(tài),但對環(huán)境的要求較高。近年來,無束縛睡姿識別逐漸成為該領(lǐng)域的主要研究方向[3]。張藝超等人[4]提出一種使用多壓電薄膜傳感器采集人體局部細微震動信號的睡姿識別方法,該方法識別精度受信號去噪效果的影響大,魯棒性差;耿讀艷等人[5]設(shè)計一種多壓電薄膜傳感器的床墊,制作工藝繁瑣,成本高;任志斌等人[6]使用壓力傳感器,定義睡姿圖像特征,采用粗糙模糊集算法對圖像特征屬性高效約簡,實現(xiàn)睡姿類別合理分類,但識別準(zhǔn)確率有待提高。
高精度的無束縛識別是目前姿勢識別領(lǐng)域里的主要挑戰(zhàn)。本文利用自主研發(fā)的床單式柔性壓力傳感器設(shè)計了姿勢數(shù)據(jù)采集系統(tǒng),根據(jù)英國咨詢服務(wù)和睡眠評估機構(gòu)主任克里斯·依季科夫斯基教授的分析結(jié)論,采集了6種睡姿的靜態(tài)數(shù)據(jù),分別為仰臥型、俯臥型、左側(cè)胎兒型、左側(cè)樹干型、右側(cè)胎兒型和右側(cè)樹干型;采集了4種坐姿的靜態(tài)數(shù)據(jù),分別為直腿坐于床上、盤腿坐于床上、雙腿坐于床邊、單腿坐于床邊。將這10種姿勢分別定義為姿勢1~姿勢10,使用了基于卷積神經(jīng)網(wǎng)絡(luò)YOLOv5作為姿勢識別方法,并用訓(xùn)練完成的網(wǎng)絡(luò)模型驗證了該方法識別的準(zhǔn)確率。
本文的人體姿勢壓力分布數(shù)據(jù)均利用大面積床單式柔性壓力傳感器采集獲得,其結(jié)構(gòu)原理如圖1所示。傳感器采用陣列式布局,上下電極層分別有64條和32條平行電極,在空間上相互垂直均布,中間為離子凝膠電解質(zhì)介電層,整個傳感器形成“夾心”結(jié)構(gòu)。兩個電極層上的平行電極在相互交錯處,形成了一個電容傳感單元。整個傳感器分布著64×32共2 048個電容傳感單元。在壓力作用下,電極層與離子凝膠介電層接觸面積發(fā)生改變,相應(yīng)區(qū)域傳感單元的電容值會隨之變化,通過檢測電容值可獲取該區(qū)域的壓力數(shù)據(jù)。
圖1 柔性壓力傳感器結(jié)構(gòu)
通過測試,本文所用的傳感器電容靈敏度約135.9(nF/cm2)/kPa,可感知的壓強范圍為0~50 kPa,兩者關(guān)系于文獻[7]中給出。
本文根據(jù)床單式柔性壓力傳感器的結(jié)構(gòu),自主研發(fā)了姿勢數(shù)據(jù)的采集系統(tǒng)。采集系統(tǒng)由數(shù)據(jù)采集卡、床單式柔性壓力傳感器以及上位機組成。數(shù)據(jù)采集卡由分壓電路、放大濾波、數(shù)據(jù)處理以及串口通信4個部分組成。傳感器的檢測區(qū)域大小為1 900 mm×950 mm,可獲取通常人的坐臥姿勢數(shù)據(jù)。實驗時,將傳感器置于床褥上,采集卡通過USB連接上位機,受試人員躺在床上,便可實現(xiàn)無干擾、無束縛的人體姿勢數(shù)據(jù)采集。圖2所示為姿勢數(shù)據(jù)采集系統(tǒng)。
圖2 姿勢數(shù)據(jù)采集系統(tǒng)
系統(tǒng)工作過程如下:接入傳感器后,傳感器單元與采樣電容形成分壓電路,將傳感器單元的電容值變化轉(zhuǎn)換為對應(yīng)的電壓變化;在采集端將采集到的電壓信號進行放大濾波處理;通過ARM架構(gòu)MCU自帶的8位A/D模塊將傳感器輸出的電壓轉(zhuǎn)換為數(shù)字量,進行軟件濾波處理并排序;最后通過串行通信按幀(傳感器有64行、32列,共2 048個電容單元,所有電容單元輸出值按順序排列為1幀數(shù)據(jù))將數(shù)據(jù)傳輸?shù)缴衔粰C進行儲存、處理與展示。
上位機將每幀數(shù)據(jù)按順序排列,使傳感器的電容傳感單元與其壓力值坐標(biāo)對應(yīng),保證圖像顯示時人體姿勢的方向和位置與實際相同,并在圖3(a)采集系統(tǒng)界面中同步顯現(xiàn)出完整的睡姿圖像,為加強系統(tǒng)界面直觀性,系統(tǒng)顯示圖像為RGB圖像。同時,將傳感器的數(shù)據(jù)轉(zhuǎn)換為64×32的矩陣形式。圖3(b)為10種姿勢的上位機顯示圖像。
圖3 上位機界面
本文實驗遵守倫理原則和《赫爾辛基宣言》,受試者均無身體缺陷,在仔細閱讀了解本實驗流程和目的后自愿簽署知情同意書,在測試人員的指引下完成數(shù)據(jù)采集。數(shù)據(jù)采集于30名受試人員,年齡21~40歲,身高155~194 cm,體重45~100 kg(男性25名,女性5名),身體質(zhì)量指數(shù)(body mass index,BMI)為(25.1±7.7)kg/m2。共計采集“臥”和“坐”10種姿勢,9 000組數(shù)據(jù),其中,臥姿5 400組,坐姿3 600組。圖4為姿勢1~姿勢10的采集示例。
圖4 姿勢數(shù)據(jù)采集示例
在圖像識別領(lǐng)域中,圖像質(zhì)量會影響圖像識別的準(zhǔn)確率。由于采集到的壓力數(shù)據(jù)為64×32的矩陣數(shù)據(jù),將其轉(zhuǎn)換成灰度圖后,在對靜態(tài)的壓力圖像進行姿勢分類時,圖像因噪聲和濾波處理導(dǎo)致身體軀干與上肢連接處的不穩(wěn)定性和孤立點都會導(dǎo)致識別姿勢特征的準(zhǔn)確率變低。因此,在對圖像進行標(biāo)注前,需對姿勢灰度圖進行預(yù)處理以提高識別準(zhǔn)確率,同時,圖像標(biāo)準(zhǔn)化可降低圖像分類的難度。本文采用了雙線性插值處理,使輪廓邊緣自然過渡。對雙線性插值處理后的圖像進行歸一化,消除受試人員體重差異對壓力圖像造成的影響,加快神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)收斂。圖5為姿勢3、姿勢5、姿勢7和姿勢8圖像預(yù)處理的效果對比。
圖5 姿勢圖像預(yù)處理
預(yù)處理完成后,使用LabelImg標(biāo)注軟件對數(shù)據(jù)集手動框選圖片中的人體姿勢得到VOC格式文件后,需要將其轉(zhuǎn)化為YOLO格式標(biāo)記文件,具體公式如下所示
x=(xmin+xmax)/dw
(1)
y=(ymin+ymax)/dh
(2)
w=(xmax-xmin)/dw
(3)
z=(ymax-ymin)/dh
(4)
式中xmin,ymin,xmax,ymax為VOC格式文件中所標(biāo)記物體位置的對角線坐標(biāo),分別表示左上角坐標(biāo)以及右下角坐標(biāo)的值。dw和dh為圖片的寬和高。將已框選好的新數(shù)據(jù)集按類型以8︰2隨機劃分為訓(xùn)練集和測試集,為接下來的神經(jīng)網(wǎng)絡(luò)訓(xùn)練作準(zhǔn)備。
YOLO系列算法是一種基于整個圖片進行預(yù)測,所有的檢測結(jié)果一次性給出的目標(biāo)檢測算法。新的YOLOv5算法[8,9]已是高性能的實現(xiàn)目標(biāo)檢測的模型之一,基于準(zhǔn)確率和計算速率的綜合考量[10],本文選取YOLOv5s網(wǎng)絡(luò)模型。
實驗使用的計算機硬件設(shè)備為:Intel?CoreTMi5—8400 CPU,NVIDIA GeForce GTX 1060 GPU,12GB內(nèi)存。在Windows 10系統(tǒng)上使用PyTorch框架搭建深度學(xué)習(xí)框架。在訓(xùn)練過程中,網(wǎng)絡(luò)模型訓(xùn)練參數(shù)設(shè)置為:批大小(batch size)設(shè)為4,總訓(xùn)練輪次(epoch)為200。
YOLOv5模型訓(xùn)練完成后,其結(jié)果如圖6所示。
圖6 YOLOv5訓(xùn)練結(jié)果
本文選用平均精度均值(mean average precision,mAP)、精度(precision,P)、召回率(recall,R)作為模型的評估標(biāo)準(zhǔn),來衡量算法檢測精度。其計算公式中,TP表示姿勢被網(wǎng)絡(luò)正確識別的數(shù)量,FP表示姿勢被網(wǎng)絡(luò)錯誤識別的數(shù)量,F(xiàn)N表示姿勢沒有被網(wǎng)絡(luò)識別出的數(shù)量。
精度P公式如下所示
P=TP/(TP+FP)×100%
(5)
召回率R公式如下所示
R=TP/(TP+FN)×100%
(6)
平均精度AP(average precision)公式如下所示
(7)
mAP公式如下所示
(8)
如圖7所示為實驗結(jié)果mAP圖。
圖7 YOLOv5模型mAP圖
在訓(xùn)練完成后,在測試集上得到性能指標(biāo)P為 99.2%,R為98.7 %,mAP為99 %。
姿勢識別效果如圖8所示。
圖8 姿勢識別效果示例
將本文實驗結(jié)果與近年來國內(nèi)外學(xué)者提出的幾種方法結(jié)果進行比較,如表1所示,文獻[11]和文獻[12]的姿勢分類準(zhǔn)確率較高,但識別的姿勢類型較少,多姿勢識別的可靠性有待進一步驗證。文獻[12]準(zhǔn)確率高達99.7 %,但需要在患者軀干和四肢綁縛加速度傳感器,患者會感到不適。文獻[13]的稀疏分類算法用32個特征對6種睡姿姿勢來進行分類,但準(zhǔn)確率僅有83.2 %。文獻[14]使用了遺傳算法優(yōu)化支持向量機(support vector machine,SVM)關(guān)鍵參數(shù)的姿勢識別方法,準(zhǔn)確率為93.3 %。與上述算法相比,本文算法在多姿勢識別情況下準(zhǔn)確率可達到99.2 %,在識別姿勢數(shù)量和準(zhǔn)確率上具有優(yōu)勢。
表1 各算法對比
因此,在與其他算法進行比較后得出結(jié)論,使用YOLOv5算法對坐臥姿勢可進行可靠識別。
為使醫(yī)護人員能及時掌握患者在病床上的姿勢,利用睡姿和坐姿信息對患者健康進行監(jiān)測,設(shè)計了一種基于床單式柔性壓力傳感器的姿勢數(shù)據(jù)采集系統(tǒng),實現(xiàn)了對人體姿勢進行無干擾、無束縛的采集與識別。采集了10種姿勢數(shù)據(jù),使用基于卷積神經(jīng)網(wǎng)絡(luò)的YOLOv5算法來對人體姿勢進行識別。實驗結(jié)果表明:該方法人體識別準(zhǔn)確率達到了99.2 %,實現(xiàn)了人體坐臥姿勢的精準(zhǔn)識別,為智能無人護理系統(tǒng)中實現(xiàn)姿勢動態(tài)識別奠定了基礎(chǔ)。