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