仇立杰 彭四偉
(北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院 北京 100029)
?
基于MEMS傳感器的三維空間運(yùn)動(dòng)軌跡提取方法
仇立杰彭四偉
(北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院北京 100029)
基于MEMS傳感器的手勢(shì)識(shí)別的一般方法是通過對(duì)每個(gè)手勢(shì)進(jìn)行運(yùn)動(dòng)學(xué)分析找出每個(gè)手勢(shì)的加速度特征,以此作為識(shí)別手勢(shì)的特征值。這表明該方法需要人工設(shè)計(jì)特征值,不利于用戶的自定義操作。針對(duì)這種情況,提出一種空間定位方法。首先獲取傳感器數(shù)據(jù)并發(fā)送到PC端,并在PC端進(jìn)行積分處理,轉(zhuǎn)化成空間數(shù)據(jù),從而記錄手勢(shì)的運(yùn)動(dòng)軌跡。最后結(jié)果表明,該方法可以成功記錄手部的運(yùn)動(dòng)軌跡,不用對(duì)每個(gè)手勢(shì)單獨(dú)進(jìn)行運(yùn)動(dòng)學(xué)分析,使得用戶在后續(xù)的研究中可以實(shí)現(xiàn)自定義手勢(shì)。
傳感器數(shù)據(jù)空間數(shù)據(jù)手勢(shì)識(shí)別
手勢(shì)識(shí)別算法的研究目前為止已經(jīng)有很多。手勢(shì)識(shí)別的實(shí)現(xiàn)方式主要有兩種。一種是基于視覺的手勢(shì)識(shí)別技術(shù),或稱為基于圖像的手勢(shì)識(shí)別技術(shù)[1]。該種方式主要是以攝像頭作為硬件設(shè)備獲取視覺信息?;谝曈X的手勢(shì)識(shí)別技術(shù)發(fā)展比較早,現(xiàn)在也比較成熟,目前國(guó)內(nèi)外都已經(jīng)取得不錯(cuò)的研究成果。但是這種技術(shù)對(duì)設(shè)備和環(huán)境的要求比較苛刻,所以有很大的局限性。另一種手勢(shì)識(shí)別的實(shí)現(xiàn)方式是基于傳感器的手勢(shì)識(shí)別技術(shù)[1],這種技術(shù)以傳感器作為硬件設(shè)備,通過傳感器獲得手部運(yùn)動(dòng)的加速度或角速度等信息,根據(jù)這些信息來對(duì)手勢(shì)進(jìn)行識(shí)別。
MEMS傳感器作為采用微電子和微機(jī)械加工技術(shù)制造出來的新型傳感器,與傳統(tǒng)的傳感器相比,具有體積小、功耗低、重量輕、易于集成和實(shí)現(xiàn)智能化等特點(diǎn)。因此,基于MEMS傳感器的手勢(shì)識(shí)別研究近年來逐漸成為熱門話題。
和基于視覺的識(shí)別技術(shù)相比,基于MEMS傳感器的手勢(shì)識(shí)別具有不受環(huán)境、光線影響的優(yōu)勢(shì)[2],目前也取得了很多研究成果。肖茜等人提出了一種提取MEMS慣性傳感器數(shù)據(jù)信息特征的識(shí)別方法[1],即通過提取加速度和角速度的特征量和變化規(guī)律來識(shí)別手勢(shì)。該方法無法識(shí)別與時(shí)間順序有關(guān)的手勢(shì),而且對(duì)復(fù)雜手勢(shì)的識(shí)別還有一定的局限性。王原等人對(duì)特征提取方法進(jìn)行了改進(jìn),加入了時(shí)間序列,以識(shí)別跟時(shí)間順序有關(guān)的手勢(shì)[3]。但是只用到了加速度傳感器,限制了設(shè)備的運(yùn)動(dòng)姿態(tài),給操作者帶來不便。
前面的方法通過分析每個(gè)手勢(shì)的加速度曲線特征來找出每個(gè)手勢(shì)的特征值,這需要人為參與,即操作者要按設(shè)計(jì)者設(shè)定的手勢(shì)進(jìn)行操作,使得操作者不能自己定義手勢(shì)。
鑒于此,提出了一種空間定位的方法,即將傳感器數(shù)據(jù)轉(zhuǎn)換成運(yùn)動(dòng)物體的空間位置數(shù)據(jù)。該方法將實(shí)時(shí)采集到的加速度傳感器和陀螺儀傳感器的數(shù)據(jù)信息發(fā)送到PC端,在PC端進(jìn)行數(shù)據(jù)處理,對(duì)加速度傳感器數(shù)據(jù)進(jìn)行軌跡計(jì)算,得到運(yùn)動(dòng)物體在三維相對(duì)空間的運(yùn)動(dòng)軌跡。用陀螺儀傳感器識(shí)別設(shè)備姿態(tài),從而消除加速度傳感器對(duì)設(shè)備姿態(tài)的限制,得到運(yùn)動(dòng)物體在絕對(duì)空間中的運(yùn)動(dòng)軌跡。
隨著智能手機(jī)等移動(dòng)電子設(shè)備和傳感器的不斷發(fā)展,內(nèi)嵌有MEMS傳感器的智能手機(jī)已被廣泛應(yīng)用在生活中[4,5],所以本文采用手機(jī)作為實(shí)驗(yàn)用的硬件設(shè)備,以此來進(jìn)行基于加速度傳感器和陀螺儀傳感器的手勢(shì)識(shí)別。
操作者手持手機(jī),手部的運(yùn)動(dòng)軌跡和手機(jī)的運(yùn)動(dòng)軌跡是一樣的,所以得到手機(jī)的運(yùn)動(dòng)軌跡即可。通過一個(gè)簡(jiǎn)單的安卓應(yīng)用程序獲取手機(jī)中加速度傳感器和陀螺儀傳感器的數(shù)據(jù)并將數(shù)據(jù)實(shí)時(shí)發(fā)送到PC端。然后在PC端對(duì)數(shù)據(jù)進(jìn)行處理。
1.1加速度
加速度由MEMS加速度傳感器提供,分為x、y、z三個(gè)方向。
圖1 手機(jī)傳感器方向
加速度傳感器的方向定義規(guī)則如下:手機(jī)平放在桌子上,短邊和身體平行。手機(jī)右下角指向左下角方向?yàn)閤軸方向,左上角指向左下角方向?yàn)閥軸方向,垂直手機(jī)平面向下的方向?yàn)閦軸方向。如圖1所示,CD為手機(jī)的短邊。
該加速度包括重力加速度g,即當(dāng)手機(jī)朝上靜止平放時(shí),理論上x、y軸的加速度為0,z軸加速度為重力加速度g。
加速度曲線如圖2所示,橫軸為時(shí)間,單位s,縱軸為加速度,單位m/s2,即MEMS加速度傳感器的輸出值。
圖2 加速度曲線圖
假設(shè)從t0時(shí)刻開始采樣,根據(jù)積分原理,連續(xù)時(shí)間域t0-t內(nèi)位移s(t)和t時(shí)刻的瞬時(shí)速度v(t)的表示如下:
(1)
(2)
通過對(duì)獲取的加速度進(jìn)行二重積分可求得手部的移動(dòng)位移。PC端實(shí)時(shí)獲取手部的運(yùn)動(dòng)加速度,同時(shí)對(duì)三個(gè)方向上的加速度分別進(jìn)行積分運(yùn)算,求得手部的瞬時(shí)速度和空間累計(jì)運(yùn)動(dòng)軌跡。
1.2角速度
角速度由MEMS陀螺儀傳感器提供,分為x、y、z三個(gè)軸的角速度。
手部運(yùn)動(dòng)過程中手機(jī)可能會(huì)出現(xiàn)空間翻轉(zhuǎn),此時(shí)加速度傳感器的坐標(biāo)系不再與手部運(yùn)動(dòng)的絕對(duì)運(yùn)動(dòng)空間坐標(biāo)系重合,即重力加速度會(huì)在加速度傳感器x、y、z三軸方向引起偏移分量。為解決該問題,加入了MEMS陀螺儀傳感器。
陀螺儀傳感器的方向定義如下:手機(jī)逆時(shí)針旋轉(zhuǎn)為正方向,即當(dāng)手機(jī)逆時(shí)針旋轉(zhuǎn)時(shí),角速度為正值,順時(shí)針旋轉(zhuǎn)時(shí),角速度為負(fù)值[6]。
圖3 相對(duì)坐標(biāo)系與絕對(duì)坐標(biāo)系關(guān)系對(duì)應(yīng)
陀螺儀傳感器的測(cè)量值是手機(jī)任意時(shí)刻相對(duì)坐標(biāo)系x、y、z三軸的轉(zhuǎn)動(dòng)角速度[6],根據(jù)轉(zhuǎn)動(dòng)角速度可求出手機(jī)任意時(shí)刻的滾轉(zhuǎn)角、俯仰角和偏航角,即可知道相對(duì)坐標(biāo)系相對(duì)絕對(duì)坐標(biāo)系的偏移量,從而通過陀螺儀來識(shí)別手機(jī)的空間姿態(tài),然后通過坐標(biāo)變換濾除重力加速度的在加速度傳感器三軸上的偏移分量。
相對(duì)坐標(biāo)系與絕對(duì)坐標(biāo)系的對(duì)應(yīng)關(guān)系如圖3所示,其中實(shí)線為參考坐標(biāo)系,即絕對(duì)坐標(biāo)系,虛線為傳感器所在坐標(biāo)系,即相對(duì)坐標(biāo)系。
2.1加速度積分計(jì)算
由于采集的MEMS加速度傳感器的數(shù)據(jù)是離散的,設(shè)定傳感器的采樣時(shí)間間隔為Δt,迭代后可得:
(3)
(4)
式(3)和式(4)中,v[n]為tn時(shí)刻的瞬時(shí)速度,a[n]為tn時(shí)刻的加速度,s[n]為0-tn時(shí)間段的累計(jì)位移。
MEMS加速度傳感器的輸出數(shù)據(jù)為x、y、z三個(gè)方向的加速度,根據(jù)式(3)、式(4)可分別計(jì)算出手部在tn時(shí)刻沿加速度傳感器x、y、z三軸方向上的瞬時(shí)速度:
(5)
(6)
(7)
同理,可求出手部在tn時(shí)刻沿加速度傳感器x、y、z方向的運(yùn)動(dòng)位移分別如式(8)-式(10)所示:
(8)
(9)
(10)
則tn時(shí)刻手部的空間位置坐標(biāo)為:(sx[n],sy[n],sz[n])。因此,通過連線各個(gè)時(shí)刻的空間位置坐標(biāo)點(diǎn)就可得出手部在三維空間的運(yùn)動(dòng)軌跡。
2.2重力加速度分量濾除
操作者在操作手勢(shì)時(shí)可能會(huì)出現(xiàn)空中翻轉(zhuǎn),這時(shí)重力加速度會(huì)在加速度傳感器x、y軸上產(chǎn)生分量,z軸上的加速度也不再是重力加速度g。此時(shí)用式(5)至式(10)計(jì)算得出的結(jié)果會(huì)出現(xiàn)嚴(yán)重誤差。這就需要在積分計(jì)算前先濾除重力加速度在加速度傳感器x、y、z三軸上的分量。
重力加速度在加速度傳感器各軸的分量可通過姿態(tài)矩陣算出,姿態(tài)矩陣的求解算法一般有三參數(shù)法,又稱歐拉角法、方向余弦法、四元參數(shù)法。董威的六軸MEMS傳感器空間定位與實(shí)現(xiàn)[7]中就用到了歐拉角法,但是歐拉角法中涉及到三角運(yùn)算,運(yùn)算量較大。方向余弦法的姿態(tài)微分方程包含九個(gè)未知量的線性微分方程,機(jī)上計(jì)算不易實(shí)現(xiàn)。與歐拉角法比,四元參數(shù)法比歐拉角法多解一個(gè)微分方程,但是沒有三角運(yùn)算,降低了計(jì)算量,而且也避免了歐拉角法會(huì)出現(xiàn)的奇異問題[8]。
綜上,這里我們選擇四元參數(shù)法來計(jì)算姿態(tài)矩陣。
絕對(duì)坐標(biāo)系與相對(duì)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系可以用四元數(shù)Q來表示,即:
Q=q0+q1ib+q2jb+q3kb
(11)
四元數(shù)微分方程為:
(12)
式(9)的矩陣形式為:
(13)
式(10)即為四元微分方程,式中wx、wy、wz為陀螺儀的輸出分量。通過該微分方程可求出參數(shù)q0、q1、q2、q3,根據(jù)姿態(tài)矩陣可將g在相對(duì)坐標(biāo)系中各軸上的分量求出,分量gx、gy、gz為:
(14)
所以,在對(duì)加速度進(jìn)行積分運(yùn)算之前需要用測(cè)得的加速度減去重力加速度在該軸上的分量,得到手部在各個(gè)方向的實(shí)際加速度。通過積分運(yùn)算求得Δt時(shí)間內(nèi)手部在相對(duì)空間中的位移,然后再次用姿態(tài)矩陣求出手部在絕對(duì)空間中的位移,最終通過迭代得出手部在絕對(duì)空間中的運(yùn)動(dòng)軌跡。
3.1獲取數(shù)據(jù)
通過簡(jiǎn)單手機(jī)APP獲取手機(jī)內(nèi)置加速度傳感器和陀螺儀傳感器的數(shù)據(jù)。手機(jī)APP中的傳感器類型采用的是SensorManager.SENSOR_DELAY_GAME,每隔20ms獲取一次傳感器數(shù)據(jù),并通過無線網(wǎng)絡(luò)實(shí)時(shí)將數(shù)據(jù)發(fā)送到PC端,同時(shí)PC端實(shí)時(shí)接收發(fā)送過來的數(shù)據(jù)并進(jìn)行處理得到運(yùn)動(dòng)軌跡。所以手部運(yùn)動(dòng)的空間位置坐標(biāo)是實(shí)時(shí)計(jì)算出來的,即運(yùn)動(dòng)軌跡不受時(shí)間序列的限制。
如表1所示,為PC端接收到的加速度傳感器的部分原始數(shù)據(jù),每一行為一組數(shù)據(jù),ax、ay、az分別為加速度傳感器在x、y、z三軸上的加速度值,單位m/s2。從上向下為加速度傳感器數(shù)據(jù)隨著時(shí)間的變化過程,時(shí)間間隔為20ms。
表1 加速度傳感器部分輸出數(shù)據(jù)
如表2所示,為PC端接收到的陀螺儀傳感器的部分原始數(shù)據(jù),每一行為一組數(shù)據(jù),wx、wy、wz分別為陀螺儀傳感器在x、y、z三軸上的角速度值,單位rad/s。同理,從上向下為陀螺儀傳感器數(shù)據(jù)隨著時(shí)間的變化過程,時(shí)間間隔為20 ms。
表2 陀螺儀傳感器部分輸出數(shù)據(jù)
續(xù)表2
3.2數(shù)據(jù)處理
(1) 根據(jù)式(13)求出各時(shí)刻對(duì)應(yīng)的q0,q1,q2,q3。
(2) 根據(jù)式(14)求出重力加速度分別在相對(duì)坐標(biāo)系x、y、z方向的分量gx,gy,gz。
(3) 用傳感器的加速度ax,ay,az分別減去重力加速度在各自軸上的分量gx,gy,gz,得到相對(duì)空間各軸上的實(shí)際加速度。
(4) 通過式(1)和式(2)對(duì)加速度進(jìn)行積分,得到手部在相對(duì)空間中的移動(dòng)位移。
(5) 根據(jù)式(14)求出手部在絕對(duì)空間的移動(dòng)位移。
通過迭代運(yùn)算最后可得手部在絕對(duì)空間的運(yùn)動(dòng)軌跡,如圖5-圖10所示為實(shí)驗(yàn)中抽取的6個(gè)軌跡示意圖。x軸為手部沿絕對(duì)坐標(biāo)系x軸方向的位移,單位m。y軸為手部沿絕對(duì)坐標(biāo)系y軸方向的位移,單位m。z軸為手部沿絕對(duì)坐標(biāo)系z(mì)軸方向的位移,單位m。
圖5 運(yùn)動(dòng)軌跡 圖6 運(yùn)動(dòng)軌跡
圖7 運(yùn)動(dòng)軌跡 圖8 運(yùn)動(dòng)軌跡
圖9 運(yùn)動(dòng)軌跡 圖10 運(yùn)動(dòng)軌跡
本文提出一種將加速度傳感器數(shù)據(jù)轉(zhuǎn)換成空間數(shù)據(jù)的方法來代替一般方法中對(duì)每個(gè)手勢(shì)加速度特征的分析,然后通過識(shí)別手部的運(yùn)動(dòng)軌跡來識(shí)別手勢(shì)。利用陀螺儀傳感器來消除設(shè)備姿態(tài)對(duì)手勢(shì)運(yùn)動(dòng)軌跡的影響,得到手部在絕對(duì)空間的運(yùn)動(dòng)軌跡。在后續(xù)的研究中可利用深度學(xué)習(xí)的方法對(duì)手勢(shì)數(shù)據(jù)進(jìn)行訓(xùn)練,從而提取每個(gè)手勢(shì)的特征。相比之前的方法,該方法減少了對(duì)手勢(shì)的運(yùn)動(dòng)學(xué)分析,不用人工為每個(gè)手勢(shì)設(shè)定特征值,省去了對(duì)每個(gè)手勢(shì)的運(yùn)動(dòng)學(xué)分析,使得用戶可以通過訓(xùn)練自定義手勢(shì),方便了用戶的操作。
[1] 肖茜, 楊平, 徐立波. 一種基于MEMS慣性傳感器的手勢(shì)識(shí)別方法[J]. 傳感技術(shù)學(xué)報(bào), 2013, 26(5):611-615.
[2] Xu R, Zhou S, Li W J. MEMS accelerometer based nonspecific-user hand gesture recognition[J]. IEEE Sensors Journal, 2012, 12(5):1166-1173.
[3] 王原, 湯勇明, 王保平. 基于加速度傳感器的大手勢(shì)集手勢(shì)識(shí)別算法改進(jìn)研究[J]. 傳感技術(shù)學(xué)報(bào), 2013(10):1345-1351.
[4] Campbell. A survey of mobile phone sensing[J]. Comm Mag, 2010,48(9):140-150.
[5] Wang X, Tarrío P, Metola E, et al. Gesture recognition using mobile phone’s inertial sensors[C]. Distributed Computing and Artificial Intelligence, 2012.
[6] 何永勃, 賈輝, 姜坤,等. 基于Android終端陀螺儀傳感器的無人機(jī)飛行姿態(tài)控制[J].傳感技術(shù)學(xué)報(bào), 2015(4):476-478.
[7] 董威.六軸MEMS傳感器空間定位設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,29(7):73-77.
[8] 宋麗君.基于MEMS器件的航向姿態(tài)測(cè)量系統(tǒng)的研究[D].西北工業(yè)大學(xué), 2007:46-47.
THREE-DIMENSIONAL SPACE TRAJECTORY EXTRACTION METHOD BASED ON MEMS SENSOR
Qiu LijiePeng Siwei
(College of Information Science and Technology, Beijing University of Chemical Technology, Beijing 100029,China)
The general approaches of MEMS sensor-based gesture recognition are to find the acceleration characteristics of each gesture through kinematic analysis on every gesture, and then use them as the characteristic values of gesture recognition. This indicates that the methods require manually designed characteristic values, which is not conducive to user’s self-defined operations. In view of this, we propose a space positioning method. First, it acquires the sensor data and sends it to PC side, and then the sensor data is made the integration processing on PC side to transform it into spatial data, thereby the motion trajectory of the gesture is recorded. Final results show that the method can successfully record the motion trajectory of hand, and avoid the single kinematic analysis on every gesture, this enables the user to be able to realise self-defining the gesture in subsequent studies.
Sensor dataSpatial dataGesture recognition
2015-06-24。仇立杰,碩士生,主研領(lǐng)域:基于MEMS傳感器的手勢(shì)識(shí)別算法。彭四偉,副教授。
TP301
A
10.3969/j.issn.1000-386x.2016.09.068