陳浩龍
(南京中醫(yī)藥大學(xué) 人工智能與信息技術(shù)學(xué)院,江蘇 南京 210046)
近年來,青少年因坐姿習(xí)慣差而引發(fā)的亞健康問題形勢(shì)嚴(yán)峻,坐姿不當(dāng)也為長(zhǎng)期坐著辦公的人群埋下病根,頸椎病、腰椎間盤突出癥等疾病的患病人群有年輕化的趨勢(shì),在此背景下,坐姿矯正成了當(dāng)下急需解決的問題。
坐姿矯正之前需要對(duì)矯正者進(jìn)行坐姿監(jiān)測(cè),系統(tǒng)會(huì)對(duì)不良坐姿進(jìn)行識(shí)別而提醒矯正者,促使其主動(dòng)地養(yǎng)成坐姿端正的好習(xí)慣從而實(shí)現(xiàn)坐姿矯正。
如今基于設(shè)備的姿態(tài)識(shí)別方式主要有以下兩個(gè):
方式一是計(jì)算機(jī)視覺領(lǐng)域的基于視頻圖像的識(shí)別技術(shù),比較出名的項(xiàng)目則是美國(guó)卡耐基梅隆大學(xué)(CMU)的OpenPose項(xiàng)目。郭園等人[1]就曾基于OpenPose學(xué)習(xí)坐姿分析研究桌椅人機(jī)適應(yīng)性;魏華良等人[2]基于視頻監(jiān)控對(duì)兒童學(xué)習(xí)坐姿姿態(tài)進(jìn)行識(shí)別并提醒。使用視頻識(shí)別涉及到被拍攝者的隱私、拍攝環(huán)境等問題,且監(jiān)控設(shè)備成本高昂。
方式二是利用各種可穿戴傳感器,如物理傳感器等進(jìn)行姿態(tài)識(shí)別。坐姿姿態(tài)識(shí)別需要測(cè)量用傳感器輕便靈活、精度高、靈敏度高、成本低。文獻(xiàn)[3]使用的是手機(jī)內(nèi)置三維加速度傳感器,傳感器選用簡(jiǎn)潔,但可移植性不高;文獻(xiàn)[4-5]同樣使用智能手機(jī)自帶的傳感器,雖然使用滑動(dòng)濾波器在對(duì)數(shù)據(jù)預(yù)處理的噪聲去除中取得了很好的去噪效果,處理過程較為復(fù)雜,人工操作多。除次以外,即便使用文獻(xiàn)[6-7]中所說的MPU6050或MPU9250加速度傳感器,但仍需要人工進(jìn)行濾波處理。而文獻(xiàn)[8]所使用的是JY-901加速度傳感器,該傳感器集成高精度的陀螺儀、加速度傳感器、地磁場(chǎng)傳感器,內(nèi)置卡爾曼動(dòng)態(tài)濾波算法,減少使用者信號(hào)處理過程中的復(fù)雜步驟,有效降低噪聲,提高測(cè)量精度,綜合考量其優(yōu)點(diǎn),JY-901將被選為本方案的傳感器。
而文中所使用的多傳感器聯(lián)合監(jiān)測(cè)姿態(tài)數(shù)據(jù),提供了對(duì)動(dòng)作細(xì)節(jié)的多維度分析識(shí)別,從而提高動(dòng)作識(shí)別的范圍和精度。文中將從數(shù)據(jù)采集與預(yù)處理、模型訓(xùn)練、結(jié)果分析對(duì)比等各個(gè)方面闡述基于多傳感器的坐姿姿態(tài)識(shí)別的研究方案。
系統(tǒng)設(shè)計(jì)流程分為數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、模型搭建和測(cè)試四個(gè)部分,如圖1所示。數(shù)據(jù)采集部分將由傳感器提供下位機(jī)的硬件支持,并將記錄的數(shù)據(jù)傳至計(jì)算機(jī)生成數(shù)據(jù)文件。在輸入至神經(jīng)網(wǎng)絡(luò)之前進(jìn)行剔除、加窗、特征提取等數(shù)據(jù)預(yù)處理,在不斷測(cè)試和優(yōu)化模型中得出最終適合本研究方案的神經(jīng)網(wǎng)絡(luò)算法。
圖1 系統(tǒng)設(shè)計(jì)流程
本數(shù)據(jù)集來源是由三個(gè)固定在如圖2人體部位上的JY-901傳感器,分別位于頸部、中背部、腰部,選取這三個(gè)特殊部位以判斷人體坐姿姿勢(shì)。
圖2 傳感器固定位置
穿戴者將串好的三個(gè)傳感器如上所述在身上加以固定并端坐好,打開位于上位機(jī)的MiniIMU軟件確認(rèn)傳感器工作狀態(tài)良好。開始記錄后,穿戴者將分別進(jìn)行正坐、前傾、左傾、右傾的活動(dòng),每一個(gè)活動(dòng)將在一段時(shí)間內(nèi)連續(xù)進(jìn)行,數(shù)據(jù)采集結(jié)束后各項(xiàng)數(shù)據(jù)將以文本的形式保存至本地。
2.1.1 構(gòu)建標(biāo)簽
坐姿姿態(tài)識(shí)別由于將采用監(jiān)督式學(xué)習(xí)算法,所以需要人工對(duì)數(shù)據(jù)集設(shè)置標(biāo)簽。由于文中選取正坐、前傾、左傾、右傾四個(gè)坐姿姿態(tài),因此將正坐、前傾、左傾、右傾四個(gè)動(dòng)作分別以標(biāo)號(hào)1、2、3、4記錄。
2.1.2 構(gòu)建數(shù)據(jù)集
生成的原數(shù)據(jù)文本每一條具有多維信息,文中為防止維數(shù)繁多而引起的過擬合,選用三軸加速度ax,ay,az和三軸角速度wx,wy,wz為最終構(gòu)建數(shù)據(jù)集所需的數(shù)據(jù)信息。考慮到人體完成一個(gè)動(dòng)作為一個(gè)連續(xù)的過程,而單條數(shù)據(jù)難以對(duì)一個(gè)活動(dòng)進(jìn)行描述,即其決定性有限,因此在特征提取時(shí)以連續(xù)40條數(shù)據(jù)為一個(gè)整體,類似于加窗處理方式,相鄰的整體以50%進(jìn)行重疊。
為更好地輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,文中將預(yù)先人工對(duì)數(shù)據(jù)特征進(jìn)行提取,選用平均值、標(biāo)準(zhǔn)差、偏度、峰度四個(gè)統(tǒng)計(jì)量來對(duì)上一節(jié)中的數(shù)據(jù)進(jìn)行特征提取:
經(jīng)過無效數(shù)據(jù)的剔除、加窗和特征提取的處理過程后,構(gòu)建的數(shù)據(jù)集每個(gè)動(dòng)作的占比如表1所示。
表1 動(dòng)作占比
每個(gè)動(dòng)作的占比基本上在25%左右,數(shù)據(jù)集安全,可供神經(jīng)網(wǎng)絡(luò)訓(xùn)練使用。
文中坐姿矯正使用的是監(jiān)督學(xué)習(xí)的方法,需要對(duì)坐姿的端正與否制定較為科學(xué)合理的標(biāo)準(zhǔn)。事先采集多個(gè)不同體型的人正坐的數(shù)據(jù),并提煉出2.1.2中所列舉的四個(gè)統(tǒng)計(jì)量分別求平均值,得到各項(xiàng)數(shù)據(jù)的平均水平作為端正坐姿的標(biāo)準(zhǔn)。表2是文中綜合考量不同體型的人所得到的較為均衡的數(shù)據(jù)標(biāo)準(zhǔn),在訓(xùn)練過程中近似符合該標(biāo)準(zhǔn)特征的動(dòng)作視為正坐,即判斷為正確坐姿。
關(guān)于姿態(tài)識(shí)別,已存在很多分類算法。文獻(xiàn)[9]采用支持向量機(jī)(support vector machine,SVM)進(jìn)行分類,但特征過于單一。文獻(xiàn)[10]將集成學(xué)習(xí)的相關(guān)理論基礎(chǔ)與隨機(jī)森林(random forest,RF)算法原理有機(jī)整合,平均識(shí)別精度為86.4%。文獻(xiàn)[11]提出的改進(jìn)K-近鄰算法(K-nearest neighbors,KNN),更適合進(jìn)行人體異常情況下行為的識(shí)別。此外還有Emerging Pattern(EP)模式匹配算法[12]、決策樹算法(decision tree,DT)[13]、樸素貝葉斯(navie Bayes,NB)[14]、基于隱形馬爾可夫鏈(hidden Markov model,HMM)的GMM-HMM模型[15]。
表2 標(biāo)準(zhǔn)預(yù)設(shè)
文獻(xiàn)[16]對(duì)K-近鄰算法、隨機(jī)森林算法和卷積神經(jīng)網(wǎng)絡(luò)(CNN)算法進(jìn)行評(píng)估,結(jié)果為CNN算法模型可以實(shí)現(xiàn)更為精確的姿態(tài)識(shí)別。而文中所進(jìn)行的坐姿姿態(tài)識(shí)別涉及到坐姿的變換幅度小,更需要高精確度的模型辨識(shí),而數(shù)據(jù)訓(xùn)練集和標(biāo)簽的構(gòu)建更表明需要一種監(jiān)督式學(xué)習(xí)算法,因而選用CNN算法模型為實(shí)現(xiàn)坐姿姿態(tài)識(shí)別的基礎(chǔ)模型。
3.2.1 算法設(shè)計(jì)
模型的基為:一維卷積神經(jīng)網(wǎng)絡(luò)層、用于防止過擬合的輟學(xué)層、用于提取特征的池化層、用于連接輸出層的展平層、輸出最后分類結(jié)果的輸出層。
文中使用Tensorflow框架,結(jié)合第三方庫(kù)搭建神經(jīng)網(wǎng)絡(luò)模型,Tensorflow2.0提供網(wǎng)絡(luò)層的定義和連接。以一層一維卷積層(Conv1D)進(jìn)行特征學(xué)習(xí)。一維卷積層的輸入為文中每一條數(shù)據(jù)的72×1的矩陣形式。
經(jīng)過卷積層的輸出為:
4.2 品種選擇 臨沭地瓜種植主要以鮮食品種為主,種植面積最大的品種為蘇薯8號(hào)(俗稱小花葉);其他品種有來福一號(hào)、紅香蕉、小黃瓤、濟(jì)薯26、煙薯25等。
Convi=f(
(1)
其中,i= 1,…,n- l + 1,f函數(shù)為激活函數(shù);filter為卷積核;l為卷積核的長(zhǎng)度;bias為偏置項(xiàng);尖括號(hào)為求內(nèi)積。
為了降低CNN極快的學(xué)習(xí)速度,設(shè)計(jì)輟學(xué)層(Dropout)隨機(jī)剔除網(wǎng)絡(luò)中的神經(jīng)元來減慢學(xué)習(xí)過程以控制過擬合風(fēng)險(xiǎn),原理見圖3。
圖3 Dropout層工作原理
常用的池化層Pooling有最大池化層和平均池化層,而文中選擇的最大池化層MaxPooling1D能減少卷積層參數(shù)誤差造成估計(jì)均值的偏移:
Pooli=max([Conv(i-1)P+1,…,ConviP])
(2)
其中,i=1,…,n/p;p為池化窗口的大小;max為取最大值函數(shù);Conv為輸入的卷積層。
經(jīng)過展平層Flatten的過渡,最后連接輸出層輸出分類結(jié)果。
目前常用的神經(jīng)網(wǎng)絡(luò)激活函數(shù)有多種,文中卷積層使用ReLU函數(shù)加快訓(xùn)練速度,該函數(shù)收斂速度快,能克服“梯度消失”問題。Softmax適用于多分類,按最大概率輸出預(yù)測(cè)值,因此輸出層使用Softmax分類器輸出分類結(jié)果。
鑒于多分類問題,損失函數(shù)選用交叉熵函數(shù),優(yōu)化器選用Adam。
3.2.2 超參數(shù)評(píng)估
為了更好地進(jìn)行超參數(shù)評(píng)估,文中將神經(jīng)網(wǎng)絡(luò)的epochs值設(shè)置為5,batch_size值設(shè)置為32。其余參數(shù)組合有多種,文中對(duì)4個(gè)超參數(shù)從模型準(zhǔn)確率和擬合情況進(jìn)行超參數(shù)評(píng)估,表3為控制單一變量進(jìn)行調(diào)整,重復(fù)10次實(shí)驗(yàn)得到的平均準(zhǔn)確率和標(biāo)準(zhǔn)差,圖4~圖7為不同參數(shù)下loss的變化。
在選定模型時(shí),準(zhǔn)確率為第一考慮要素,使準(zhǔn)確率提高以達(dá)到實(shí)驗(yàn)?zāi)康?;?biāo)準(zhǔn)差一項(xiàng)能說明重復(fù)10次實(shí)驗(yàn)所求準(zhǔn)確率的波動(dòng)程度,該值越大說明模型準(zhǔn)確率越不穩(wěn)定;準(zhǔn)確率過高也有可能是模型的過擬合導(dǎo)致的后果,因此loss值的變化情況也應(yīng)被考慮在內(nèi)。
濾波器個(gè)數(shù)(filters):?jiǎn)螌泳矸e層所擁有的濾波器個(gè)數(shù)。
卷積核大小(kernel_size):即濾波器形狀。
輟學(xué)率(Dropout):剔除網(wǎng)絡(luò)神經(jīng)元的數(shù)量占比。
池化窗口大小(pool_size):池化矩陣大小。
filters個(gè)數(shù)的多少反映卷積層整體學(xué)習(xí)速度的快慢,filters越多,卷積速度越快。當(dāng)filters過低時(shí),模型欠擬合,平均準(zhǔn)確率低且不穩(wěn)定;當(dāng)filters值大于2時(shí),模型準(zhǔn)確率較高,標(biāo)準(zhǔn)差小。但filters過高時(shí),loss函數(shù)波動(dòng)程度大,學(xué)習(xí)速度過快導(dǎo)致模型過擬合現(xiàn)象出現(xiàn)。因此選擇filters為2符合文中要求。
表3 調(diào)整不同參數(shù)得到的實(shí)驗(yàn)結(jié)果
kernel_size的大小反映卷積層單次卷積學(xué)習(xí)速度的快慢,kernel_size越大,單次卷積速度越快。kernel_size為7的時(shí)候,準(zhǔn)確率較高,loss函數(shù)波動(dòng)程度小,無明顯反彈跡象,減輕了網(wǎng)絡(luò)過擬合,因此kernel_size取7適合。
增添Dropout層是為過擬合現(xiàn)象出現(xiàn)的解決方案之一,從表3中可以看出剔除20%的神經(jīng)元是最合適的,損失值反彈的程度沒有其他情況下的高。
圖4 不同filters下loss值的變化
圖5 不同kernel_size下loss值的變化
圖6 不同Dropout率下loss值的變化
圖7 不同pool_size下loss值的變化
文中模型使用的是最大池化層,即取窗口數(shù)據(jù)中的最大值來代替窗口數(shù)據(jù),pool_size值越大,池化層窗口越大,縮放比例越大。若縮放比例過大,很多特征將被忽略,影響準(zhǔn)確率。文中模型的pool_size取3時(shí),準(zhǔn)確率較高,多次實(shí)驗(yàn)結(jié)果穩(wěn)定,并且損失值下降快速。
綜上考慮,最終模型的卷積層利用2個(gè)卷積核,每個(gè)卷積核的大小為7,Dropout率為0.2,池化層池化窗口大小為3。
為體現(xiàn)本方案所使用的多個(gè)傳感器相較于單個(gè)傳感器的優(yōu)越性,分別在腰部、背部、頸部使用單個(gè)傳感器選取相同的數(shù)據(jù),并采用相同方法對(duì)正坐、前傾、左傾、右傾四個(gè)動(dòng)作進(jìn)行識(shí)別。
在做四個(gè)動(dòng)作時(shí),腰部和背部的活動(dòng)幅度小,而頸部的活動(dòng)幅度大。如表4所示,在三個(gè)不同位置使用單個(gè)傳感器的總體準(zhǔn)確率不高,置于腰部和背部的傳感器對(duì)正坐和前傾這兩個(gè)動(dòng)作難以區(qū)分,而頸部的傳感器對(duì)左傾和右傾兩個(gè)動(dòng)作識(shí)別的準(zhǔn)確率可以達(dá)到90%以上,而像正坐和前傾那樣的動(dòng)作細(xì)節(jié)的識(shí)別區(qū)分難以實(shí)現(xiàn)。但通過腰部、背部、頸部三點(diǎn)傳感器的聯(lián)合識(shí)別可使準(zhǔn)確率到92%以上。
表4 位于不同部位的傳感器對(duì)坐姿
文中提出了一種基于多加速度傳感器的坐姿識(shí)別解決方案,在人體不同部位采集三軸加速度和三軸角速度的數(shù)據(jù)信息,并人工加以提取特征構(gòu)建訓(xùn)練集和標(biāo)簽,輸入到搭建的卷積神經(jīng)網(wǎng)絡(luò)模型中,最終得出識(shí)別準(zhǔn)確率和識(shí)別結(jié)果。
該研究方案所使用的傳感器靈活、精度高、成本低,采用多個(gè)傳感器可從多維度采集一個(gè)動(dòng)作的各項(xiàng)信息,提高了動(dòng)作識(shí)別的辨識(shí)度,能更好地區(qū)分相似度高的動(dòng)作。該研究方案可應(yīng)用于監(jiān)測(cè)不良坐姿,改善青少年坐姿不正的壞習(xí)慣,從而預(yù)防近視、勁椎病等問題的惡化。