本發(fā)明涉及機(jī)器學(xué)習(xí)和模型部署,尤其涉及一種基于tinyml和matlab多模型部署的人體運(yùn)動(dòng)識(shí)別方法。
背景技術(shù):
1、外骨骼機(jī)器人近些年得到迅速的發(fā)展,它是有很強(qiáng)的人機(jī)耦合性,可以增強(qiáng)人體行動(dòng)能力,廣泛應(yīng)用于軍事、工業(yè)、救援和醫(yī)療等多個(gè)領(lǐng)域,它可以減緩重復(fù)勞動(dòng)的疲勞,提供爆發(fā)能力,減少大量的職業(yè)勞動(dòng)傷害人體。運(yùn)動(dòng)意圖識(shí)別技術(shù)在外骨骼控制中具有十分重要的作用。外骨骼作為控制回路中人機(jī)耦合的可穿戴設(shè)備,人機(jī)柔順協(xié)調(diào)的運(yùn)動(dòng)控制,這都離不開(kāi)準(zhǔn)確的對(duì)人體運(yùn)動(dòng)的意圖識(shí)別。人體運(yùn)動(dòng)識(shí)別準(zhǔn)確性和魯棒性,在穿戴外骨骼行走時(shí)十分的重要,直接影響穿戴者穿戴舒適度的穩(wěn)定性。
2、現(xiàn)如今,外骨骼的算法主要以針對(duì)多源信息融合和簡(jiǎn)單的狀態(tài)機(jī)轉(zhuǎn)換算法為主。多源信息融合控制算法需要收集很多傳感器的數(shù)據(jù),例如imu(慣性傳感器)、emg(表面肌電信號(hào))、fsr(壓力傳感器)等等。所用到的傳感器很多使其不具有很強(qiáng)的魯棒性,往往這些算法還需要加入深度學(xué)習(xí)算法,又需要采集大量的數(shù)據(jù)計(jì)算和學(xué)習(xí)來(lái)提高識(shí)別的準(zhǔn)確性,針對(duì)不同的個(gè)體的學(xué)習(xí)數(shù)據(jù)量將會(huì)更大。而簡(jiǎn)單的狀態(tài)機(jī)轉(zhuǎn)換算法,可以帶來(lái)簡(jiǎn)便的控制邏輯。但是針對(duì)不同場(chǎng)景下,例如跑步,平地行走,上下坡,上下樓梯等場(chǎng)景的識(shí)別率就會(huì)變差。
3、因此,針對(duì)上述的技術(shù)缺陷,本發(fā)明提出了一種基于tinyml和matlab多模型部署的人體運(yùn)動(dòng)識(shí)別方法。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提供一種基于tinyml和matlab多模型部署的人體運(yùn)動(dòng)識(shí)別方法,既避免多傳感器方法在處理和訓(xùn)練大量數(shù)據(jù)的繁瑣,還具有更強(qiáng)的魯棒性;多模型的部署解決了傳統(tǒng)狀態(tài)機(jī)轉(zhuǎn)換在面對(duì)不同運(yùn)動(dòng)模式下的識(shí)別不精確,在步態(tài)相位識(shí)別和轉(zhuǎn)換帶來(lái)更高的準(zhǔn)確率。另外,該方法在加入新的的場(chǎng)景和步態(tài)識(shí)別可以靈活的擴(kuò)展和修改,以適應(yīng)不同的使用場(chǎng)景,為助力外骨骼等設(shè)備的使用帶來(lái)更多的可能性。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于tinyml和matlab多模型部署的人體運(yùn)動(dòng)識(shí)別方法,包括以下步驟:
3、步驟s1、采集穿戴者在不同場(chǎng)景下的慣性傳感器imu的運(yùn)動(dòng)數(shù)據(jù);
4、步驟s2、對(duì)采集到的慣性傳感器imu運(yùn)動(dòng)數(shù)據(jù)進(jìn)行處理,并根據(jù)不同場(chǎng)景,對(duì)其進(jìn)行標(biāo)簽標(biāo)注,制作形成數(shù)據(jù)集;
5、步驟s3、構(gòu)建cnn運(yùn)動(dòng)識(shí)別模型,結(jié)合訓(xùn)練集對(duì)運(yùn)動(dòng)狀態(tài)進(jìn)行訓(xùn)練,獲取人體運(yùn)動(dòng)在不同場(chǎng)景下的cnn運(yùn)動(dòng)識(shí)別模型,并將該模型的識(shí)別率優(yōu)化到最佳狀態(tài);
6、步驟s4、基于matlab構(gòu)建svm模式識(shí)別分類器模型,將數(shù)據(jù)輸入該模型中進(jìn)行訓(xùn)練,調(diào)整svm模式識(shí)別分類器模型讓準(zhǔn)確率達(dá)到最優(yōu);
7、步驟s5、在對(duì)上述生成的運(yùn)cnn運(yùn)動(dòng)識(shí)別模型和svm模式識(shí)別分類器模型混合部署到嵌入式平臺(tái),通過(guò)傳感器的數(shù)據(jù)完成識(shí)別。
8、優(yōu)選的,在步驟s1中,構(gòu)建數(shù)據(jù)采集系統(tǒng),該系統(tǒng)包括三個(gè)慣性傳感器imu,分別分布在膝關(guān)節(jié)往上的大腿和背部;三個(gè)慣性傳感器imu均通過(guò)藍(lán)牙和單片機(jī)相連,采集頻率為100hz,單片機(jī)將數(shù)據(jù)發(fā)送到上位機(jī)pc上進(jìn)行數(shù)據(jù)處理;
9、其中,采集數(shù)據(jù)包括但是不限于:行走,坐站轉(zhuǎn)換,平地行走,上下樓梯,上下坡,快速行走的三軸加速度,三軸角速度和三軸的歐拉角數(shù)據(jù)。
10、優(yōu)選的,在步驟s2中,對(duì)采集到的imu運(yùn)動(dòng)數(shù)據(jù)進(jìn)行處理,并根據(jù)不同場(chǎng)景,對(duì)其進(jìn)行標(biāo)簽標(biāo)注,制作形成數(shù)據(jù)集,具體過(guò)程如下:
11、步驟s21、對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,首先對(duì)不需要的數(shù)據(jù)進(jìn)行剔除,應(yīng)剔除缺失值過(guò)多、標(biāo)準(zhǔn)差過(guò)小、標(biāo)準(zhǔn)差和均值的比值絕對(duì)值過(guò)小和當(dāng)一個(gè)模式下的轉(zhuǎn)身以及停止的數(shù)據(jù);
12、步驟s22、通過(guò)低通濾波器對(duì)上述預(yù)處理的數(shù)據(jù)進(jìn)行進(jìn)一步處理,如下所示:
13、y(n)=y(tǒng)(n-1)+a*(x(n)-y(n-1))
14、其中,y(n)為濾波后的值;a為濾波系數(shù);x(n)為本次采樣值;y(n-1)為上一次濾波結(jié)果;
15、步驟s23、然后對(duì)濾波后的數(shù)據(jù)進(jìn)行歸一化,如下所示:
16、
17、其中,xn為得到歸一化后的序列;x為輸入的傳感器信號(hào)值;xmax為同一類型信號(hào)中的最大值;xmin為同一類型信號(hào)中的最小值;
18、步驟s24、將上述處理完成的數(shù)據(jù)制作形成數(shù)據(jù)集;其中,訓(xùn)練集和測(cè)試集的比例在4:1。
19、優(yōu)選的,在步驟s3中,構(gòu)建cnn運(yùn)動(dòng)識(shí)別模型,結(jié)合訓(xùn)練集對(duì)運(yùn)動(dòng)狀態(tài)進(jìn)行訓(xùn)練,獲取人體運(yùn)動(dòng)在不同場(chǎng)景下的cnn運(yùn)動(dòng)識(shí)別模型,并將該模型的識(shí)別率優(yōu)化到最佳狀態(tài),具體過(guò)程如下:
20、步驟s31、構(gòu)建cnn運(yùn)動(dòng)識(shí)別模型,通過(guò)兩層卷積層提取數(shù)據(jù)特征,再通過(guò)兩個(gè)池化層降低數(shù)據(jù)的維度,再通過(guò)一個(gè)dropout層減少過(guò)擬合,最后一層是一個(gè)帶有softmax激活函數(shù)的全連接層進(jìn)行數(shù)據(jù)的分類;
21、步驟s32、基于cnn運(yùn)動(dòng)識(shí)別模型,結(jié)合訓(xùn)練集對(duì)該模型進(jìn)行訓(xùn)練,調(diào)整數(shù)據(jù)的損失函數(shù)為恰當(dāng)位置,讓cnn運(yùn)動(dòng)識(shí)別模型準(zhǔn)確率達(dá)到最優(yōu),獲取人體運(yùn)動(dòng)在不同場(chǎng)景下的cnn運(yùn)動(dòng)識(shí)別模型;
22、步驟s33、將cnn運(yùn)動(dòng)識(shí)別模型轉(zhuǎn)換成在嵌入式環(huán)境下運(yùn)行的文件,即采用nnom框架來(lái)轉(zhuǎn)換成在單片機(jī)運(yùn)行的權(quán)重c語(yǔ)言頭文件,部署時(shí)應(yīng)將nnom所提供的庫(kù)文件一同部署。
23、優(yōu)選的,cnn運(yùn)動(dòng)識(shí)別模型的結(jié)構(gòu)如下:
24、input層為輸入層,輸入的數(shù)據(jù)應(yīng)該為70*9的矩陣,batch_size的值應(yīng)該定義成32;
25、convolution?layers層由兩個(gè)卷積層組成,第一層卷積層經(jīng)過(guò)64個(gè)3*3的卷積核,卷積核進(jìn)行數(shù)據(jù)處理,采用relu函數(shù)作為激活函數(shù)對(duì)輸入的矩陣進(jìn)行激活,再經(jīng)過(guò)一個(gè)3*3最大池化層將數(shù)據(jù)轉(zhuǎn)換成維度是64*23的矩陣;第二層卷積層經(jīng)過(guò)64個(gè)3*3的卷積核,卷積核進(jìn)行數(shù)據(jù)處理,采用relu函數(shù)作為激活函數(shù)對(duì)輸入的矩陣進(jìn)行激活,再經(jīng)過(guò)一個(gè)3*3最大池化層將數(shù)據(jù)轉(zhuǎn)換成維度是64*7的矩陣;
26、flatten層為展平層,數(shù)據(jù)通過(guò)展平層以后,輸出128*1的矩陣;
27、full?connect層是全連接層,最終輸出的數(shù)據(jù)是6*1的矩陣;
28、output層對(duì)應(yīng)輸出層,對(duì)應(yīng)輸出的數(shù)據(jù)場(chǎng)景包含坐站轉(zhuǎn)換,平地行走,上下樓梯,上下坡,快速行走,但不限于這些場(chǎng)景。
29、優(yōu)選的,在步驟s4中,基于matlab構(gòu)建svm模式識(shí)別分類器模型,將數(shù)據(jù)輸入該模型中進(jìn)行訓(xùn)練,調(diào)整svm模式識(shí)別分類器模型讓準(zhǔn)確率達(dá)到最優(yōu),具體過(guò)程如下:
30、步驟s41、首先,對(duì)原始數(shù)據(jù)進(jìn)行再次處理,僅提取行走時(shí)的相位信息,剔除其余數(shù)據(jù);
31、步驟s42、其次,對(duì)于上述處理過(guò)的原始數(shù)據(jù),根據(jù)不同場(chǎng)景下的步態(tài)相位進(jìn)行標(biāo)記;
32、步驟s43、然后,對(duì)上述數(shù)據(jù)再次進(jìn)行歸一化處理;將數(shù)據(jù)集劃分訓(xùn)練集和測(cè)試集,劃分比例是4:1。
33、步驟s44、接下來(lái),采用matlab構(gòu)建svm模式識(shí)別分類器模型和不同相位的有限狀態(tài)機(jī),將上述處理完成的訓(xùn)練集輸入svm模式識(shí)別分類器模型中進(jìn)行訓(xùn)練,調(diào)整svm模式識(shí)別分類器模型讓準(zhǔn)確率達(dá)到最優(yōu);
34、步驟s45、最后,將步態(tài)相位的svm模式識(shí)別分類器模型識(shí)別結(jié)果對(duì)應(yīng)到有限狀態(tài)機(jī)轉(zhuǎn)換,通過(guò)matlab?embeded?coder轉(zhuǎn)換成c語(yǔ)言代碼,將其部署到嵌入式平臺(tái)。
35、優(yōu)選的,步態(tài)相位標(biāo)記包括右腿開(kāi)始邁步,右腳支撐相位,右腿擺動(dòng)相,左腿擺動(dòng)相,左腿支撐相位,左腿開(kāi)始邁步,左腿停止邁步,右腿停止邁步和初始狀態(tài);在其他未知的數(shù)據(jù)標(biāo)記為未知狀態(tài)。
36、優(yōu)選的,在matlab上構(gòu)建有限狀態(tài)機(jī),用于描述行走狀態(tài)和行走狀態(tài)的判斷;行走過(guò)程是一個(gè)循環(huán)的過(guò)程,在循環(huán)中的狀態(tài)機(jī)切換條件,如下所示:
37、(1)初始狀態(tài),該狀態(tài)為初始狀態(tài),是imu上電校準(zhǔn)后靜止的狀態(tài);該狀態(tài)能夠向左腿開(kāi)始擺動(dòng)和右腿開(kāi)始擺動(dòng)態(tài)轉(zhuǎn)移;
38、(2)左腿開(kāi)始邁步,從該狀態(tài)能夠轉(zhuǎn)移到左腳支撐相位;
39、(3)左腳支撐相位,由該狀態(tài)能夠轉(zhuǎn)移到右腿擺動(dòng)相位;
40、(4)右腿擺動(dòng)相位,由該狀態(tài)能夠轉(zhuǎn)移到右腳支撐相位;
41、(5)右腳支撐相位,由該狀態(tài)能夠轉(zhuǎn)移到左腿擺動(dòng)相位;
42、(6)左腿擺動(dòng)相位,由該狀態(tài)能夠轉(zhuǎn)移到左腳支撐相位;
43、同樣的在(2)中由右腿開(kāi)始邁步,順序變成(2)→(5)→(6)→(3)→(4)→(2)往復(fù)循環(huán);
44、所有的狀態(tài)機(jī)轉(zhuǎn)換在遇到未知識(shí)別的相位時(shí),跳轉(zhuǎn)到未知相位異常跳出狀態(tài)。
45、因此,本發(fā)明采用上述一種基于tinyml和matlab多模型部署的人體運(yùn)動(dòng)識(shí)別方法,既避免多傳感器方法在處理和訓(xùn)練大量數(shù)據(jù)的繁瑣,還具有更強(qiáng)的魯棒性;多模型的部署解決了傳統(tǒng)狀態(tài)機(jī)轉(zhuǎn)換在面對(duì)不同運(yùn)動(dòng)模式下的識(shí)別不精確,在步態(tài)相位識(shí)別和轉(zhuǎn)換帶來(lái)更高的準(zhǔn)確率。另外,該方法在加入新的的場(chǎng)景和步態(tài)識(shí)別可以靈活的擴(kuò)展和修改,以適應(yīng)不同的使用場(chǎng)景,為助力外骨骼等設(shè)備的使用帶來(lái)更多的可能性。
46、下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。