一種基于加速度傳感芯片的動(dòng)作識(shí)別方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于加速度傳感芯片的動(dòng)作識(shí)別方法。
【背景技術(shù)】
[0002]目前市面對動(dòng)作傳感,動(dòng)作識(shí)別的技術(shù)普遍使用圖形圖像識(shí)別方法,需要采用攝像頭,對使用者進(jìn)行觀察,識(shí)別出使用者每一幀圖像中的肢體變動(dòng),判斷使用者的動(dòng)作;
[0003]該實(shí)現(xiàn)方法具有精度高,響應(yīng)快,適用性強(qiáng)一些列有點(diǎn),例如目前最為廣泛使用的體感類游戲機(jī);但該方案同樣具有一些缺點(diǎn):必須使用攝像頭進(jìn)行圖像獲取,且被觀察對象需要距離攝像頭一個(gè)合適的距離,一般情況下,只能在室內(nèi)使用,而且攝像頭需要固定在一個(gè)位置,因此使用的范圍極為有限,對空間的要求很高。
【發(fā)明內(nèi)容】
[0004]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于加速度傳感芯片的動(dòng)作識(shí)別方法,實(shí)現(xiàn)單一傳感器識(shí)別用戶的手勢動(dòng)作,計(jì)算出絕對的方向向量,準(zhǔn)確判斷用戶手勢。
[0005]為解決上述問題,本發(fā)明所采用的技術(shù)方案如下:
[0006]—種基于加速度傳感芯片的動(dòng)作識(shí)別方法,應(yīng)用于六軸加速度傳感器,包括以下步驟:
[0007]S1、計(jì)算減去重力后的加速度數(shù)據(jù),加速度數(shù)據(jù)包括ax、ay和az;
[0008]S2、獲取一個(gè)連貫動(dòng)作中的所有加速度數(shù)據(jù),依次根據(jù)每個(gè)加速度數(shù)據(jù)計(jì)算對應(yīng)的夾角數(shù)據(jù),夾角數(shù)據(jù)包括ax、ay和αζ;其中,αχ為加速度向量與現(xiàn)實(shí)空間的X軸夾角,ay為加速度向量與現(xiàn)實(shí)空間的Y軸夾角,az為加速度向量與現(xiàn)實(shí)空間的Z軸夾角;
[0009]S3、將夾角數(shù)據(jù)依次存儲(chǔ)至數(shù)組active中,判斷數(shù)組active的長度是否在預(yù)設(shè)的長度區(qū)間內(nèi),若是,則執(zhí)行S4,若否,則返回步驟SI;
[0010]S4、對數(shù)組active進(jìn)行降維處理,得到數(shù)組hp_active ;
[0011 ] S5、對數(shù)組hp_active進(jìn)行dbscan算法處理,再進(jìn)行κ-means算法處理,得到若干個(gè)動(dòng)作聚類;
[0012]S6、分別計(jì)算數(shù)組hp_active與每個(gè)動(dòng)作聚類的中心的歐氏距離;
[0013]S7、獲取最短的歐氏距離所對應(yīng)的動(dòng)作聚類,該對應(yīng)的動(dòng)作聚類為目標(biāo)動(dòng)作聚類。
[0014]優(yōu)選的,步驟SI中,計(jì)算減去重力后的加速度數(shù)據(jù)的步驟包括:
[0015]511、從六軸加速度傳感器中分別獲取乂、¥、2軸上的加速度,記為4^六7^2,以及獲取四元數(shù)9[0]、9[1]、9[2]、9[3];
[0016]S12、根據(jù)四元數(shù)轉(zhuǎn)換公式分別計(jì)算重力在X、Y、Z軸上的分力G[0]、G[1]、G[2],其中,G[0] = ((q[l]*q[3]-q[0]*q[2]))/16384,G[l] = ((q[0]*q[l]+q[2]*q[3]))/16384,G
[2]=(q[0]*q[0]-q[l]*q[l]-q[2]*q[2]+q[3]*q[3])/32768;
[0017]S13、計(jì)算加速度數(shù)據(jù)ax、ay和az,其中,ax=Ax_G[0],ay=Ay_G[l],az=Az_G[2]0
[0018]優(yōu)選的,在步驟S2中,判斷一個(gè)連貫動(dòng)作的條件為:
[0019]獲取的加速度數(shù)據(jù)中,若ax大于閾值fI,ay大于閾值f 2,且az大于閾值f 3,則將該次獲取的加速度數(shù)據(jù)記為連貫動(dòng)作的開始;
[0020]在獲取連貫動(dòng)作中的加速度數(shù)據(jù)時(shí),若連續(xù)三次獲取到的ax的絕對值小于閾值f4,ay的絕對值小于閾值f 5,且az的絕對值小于閾值f 6,則將最后一次獲取到的加速度數(shù)據(jù)記為連貫動(dòng)作的結(jié)束。
[0021 ]優(yōu)選的,在步驟S2中,利用點(diǎn)積公式計(jì)算每個(gè)加速度數(shù)據(jù)對應(yīng)的夾角數(shù)據(jù)。
[0022]優(yōu)選的,在步驟S4中,降維處理包括以下步驟:
[0023]S41、對數(shù)組active進(jìn)行haar小波變換處理,得到數(shù)組haar_active ;
[0024]S42、對數(shù)組 haar_active 進(jìn)行 PCA 處理,得到數(shù)組 hp_active。
[0025]優(yōu)選的,在步驟S6中還包括,判斷最短的歐氏距離是否小于預(yù)設(shè)的歐氏距離閾值,若是,則執(zhí)行步驟S7,若否,則返回步驟SI。
[0026]相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:只需要通過單一的六軸加速度傳感器即可識(shí)別出用戶的手勢動(dòng)作,而且能夠計(jì)算出用戶在現(xiàn)實(shí)空間中的動(dòng)作方向,更加準(zhǔn)確地識(shí)別出用戶的手勢動(dòng)作,避免了傳感器的位置對用戶的動(dòng)作判斷產(chǎn)生影響。
【附圖說明】
[0027]圖1為本發(fā)明的基于加速度傳感芯片的動(dòng)作識(shí)別方法流程圖。
【具體實(shí)施方式】
[0028]下面,結(jié)合附圖以及【具體實(shí)施方式】,對本發(fā)明做進(jìn)一步描述:
[0029]參考圖1,一種基于加速度傳感芯片的動(dòng)作識(shí)別方法,應(yīng)用于六軸加速度傳感器,包括以下步驟:
[0030]S1、計(jì)算減去重力后的加速度數(shù)據(jù),加速度數(shù)據(jù)包括ax、ay和az。其中,計(jì)算減去重力后的加速度數(shù)據(jù)的步驟包括:
[0031]511、從六軸加速度傳感器中分別獲取乂、¥、2軸上的加速度,記為4^六7^2,以及獲取四元數(shù)9[0]、9[1]、9[2]、9[3]。
[0032]S12、根據(jù)四元數(shù)轉(zhuǎn)換公式分別計(jì)算重力在X、Y、Z軸上的分力G[0]、G[1]、G[2],其中,G[0] = ((q[l]*q[3]-q[0]*q[2]))/16384,G[l] = ((q[0]*q[l]+q[2]*q[3]))/16384,G
[2]= (q[0]*q[0]-q[l]*q[l]-q[2]*q[2]+q[3]*q[3])/32768。
[0033]S13、計(jì)算加速度數(shù)據(jù)ax、ay和az,其中,ax=Ax_G[0],ay=Ay_G[l],az=Az_G[2]0
[0034]其中,在步驟Sll和S12中所述的X、Y、Z軸是指六軸加速度傳感器中設(shè)定的X、Y、Z軸。計(jì)算得到的加速度數(shù)據(jù)是指三軸減去了重力在各個(gè)軸上的分力得到的加速度。
[0035]S2、獲取一個(gè)連貫動(dòng)作中的所有加速度數(shù)據(jù),依次根據(jù)每個(gè)加速度數(shù)據(jù)計(jì)算對應(yīng)的夾角數(shù)據(jù),夾角數(shù)據(jù)包括ax、ay和αζ;其中,αχ為加速度向量與現(xiàn)實(shí)空間的X軸夾角,ay為加速度向量與現(xiàn)實(shí)空間的Y軸夾角,az為加速度向量與現(xiàn)實(shí)空間的Z軸夾角。
[0036]其中,判斷一個(gè)連貫動(dòng)作的條件為:
[0037]獲取的加速度數(shù)據(jù)中,若ax大于閾值fI,ay大于閾值f 2,且az大于閾值f 3,則將該次獲取的加速度數(shù)據(jù)記為連貫動(dòng)作的開始;
[0038]在獲取連貫動(dòng)作中的加速度數(shù)據(jù)時(shí),若連續(xù)三次獲取到的ax的絕對值小于閾值f4,ay的絕對值小于閾值f 5,且az的絕對值小于閾值f 6,則將最后一次獲取到的加速度數(shù)據(jù)記為連貫動(dòng)作的結(jié)束。
[0039]上述的閾值fl、f2、f3、f4、f5和f6均為根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn)所預(yù)設(shè)的值。根據(jù)上述的連貫動(dòng)作判斷條件可以獲取到一個(gè)連貫動(dòng)作中的所有加速度數(shù)據(jù),然后就針對每個(gè)加速度數(shù)據(jù)結(jié)合點(diǎn)積公式計(jì)算對應(yīng)的夾角數(shù)據(jù),利用點(diǎn)積公式計(jì)算夾角的計(jì)算方法為現(xiàn)有技術(shù),在此不做贅述。需要說明的是,計(jì)算出來的夾角數(shù)據(jù),即ax、ay和αζ分別為加速度與現(xiàn)實(shí)空間對應(yīng)的軸的夾角,也就是可以得到用戶施加的力在現(xiàn)實(shí)空間的絕對方向。
[0040]S3、將夾角數(shù)據(jù)依次存儲(chǔ)至數(shù)組active中,判斷數(shù)組active的長度是否在預(yù)設(shè)的長度區(qū)間內(nèi),若是,則執(zhí)行S4,若否,則返回步驟SI。
[0041]其中,獲取的夾角數(shù)據(jù)按順序存儲(chǔ)至數(shù)組active中,例如,加速度傳感器一般每0.01秒會(huì)采集一