一種手勢識別方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及手勢識別技術,尤其涉及一種手勢識別方法及裝置。
【背景技術】
[0002]目前智能手機、平板電腦等移動設備都帶有加速度傳感器,通過加速度傳感器識別用戶手勢的類型(如識別出搖一搖動作),并將預設的用戶手勢動作設置為預設事件的觸發(fā)條件。
[0003]現有的手勢識別方法中,主要通過如下公式分別計算移動設備沿預設的X軸方向、預設的Y軸方向和預設的Z軸方向的移動距離:
[0004]X = (xl-x0)*(xl-x0);
[0005]Y = (yl-y0)*(yl-y0);
[0006]Z= (zl-zO) * (zl-zO);
[0007]其中,xO和xl分別為移動設備在X軸方向的初始位置和終點位置,y0和yl分別為移動設備在Y軸方向的初始位置和終點位置,ZO和Zl分別為移動設備在Z軸方向的初始位置和終點位置。在X>M| Y>M| I Z>M時確定用戶手勢的類型為搖一搖動作,M為預設的距離閾值。
[0008]現有的手勢識別方法的誤識別率較高,例如當移動設備向右甩時,即會被判斷為搖一搖動作,但是實際只是甩動了一下,并沒有搖一搖來回的動作。
【發(fā)明內容】
[0009]本發(fā)明的目的在于提出一種手勢識別方法及裝置,以提高手勢識別的準確率。
[0010]一方面,本發(fā)明實施例提供一種手勢識別方法,包括:
[0011]在預設的手勢識別事件被觸發(fā)時,定時獲取移動設備中加速度傳感器測得的加速度值;
[0012]對于每個獲取加速度值的時刻,依據已獲取的加速度值計算該時刻對應的加速度變化值,并依據當前已計算出的加速度變化值識別用戶手勢的類型;
[0013]在識別出的用戶手勢的類型為預設手勢類型時停止手勢識別操作。
[0014]另一方面,本發(fā)明實施例提供了一種手勢識別裝置,包括:
[0015]加速度獲取單元,用于在預設的手勢識別事件被觸發(fā)時,定時獲取移動設備中加速度傳感器測得的加速度值;
[0016]變化值計算單元,用于對于每個獲取加速度值的時刻依據已獲取的加速度值計算該時刻對應的加速度變化值;
[0017]手勢識別單元,用于對于每個獲取加速度值的時刻依據當前已計算出的加速度變化值識別用戶手勢的類型;
[0018]識別停止單元,用于在識別出的用戶手勢的類型為預設手勢類型時停止手勢識別操作。
[0019]本發(fā)明實施例提供的手勢識別方法及裝置,提高了手勢識別的準確率。該方法通過在預設的手勢識別事件被觸發(fā)時,定時獲取移動設備中加速度傳感器測得的加速度值,對于每個獲取加速度值的時刻,依據已獲取的加速度值計算該時刻對應的加速度變化值,并依據當前已計算出的加速度變化值識別用戶手勢的類型,且在識別出的用戶手勢的類型為預設手勢類型時停止手勢識別操作,該方法依據加速度變化值隨時間變化的趨勢識別用戶手勢的類型,提高了手勢識別的準確率,提升了用戶體驗。
【附圖說明】
[0020]此處所說明的附圖用來提供對本發(fā)明實施例的進一步理解,構成本發(fā)明實施例的一部分,并不構成對本發(fā)明實施例的限定。在附圖中:
[0021]圖1是本發(fā)明第一實施例中提供的一種手勢識別方法的實現流程圖;
[0022]圖2是本發(fā)明第二實施例中提供的一種手勢識別方法的實現流程圖;
[0023]圖3是本發(fā)明第二實施例中繪制的X軸方向對應的加速度變化值隨時間變化的趨勢圖;
[0024]圖4是本發(fā)明第三實施例中提供的一種手勢識別裝置的結構示意圖。
【具體實施方式】
[0025]下面結合附圖及具體實施例對本發(fā)明實施例進行更加詳細與完整的說明??梢岳斫獾氖?,此處所描述的具體實施例僅用于解釋本發(fā)明實施例,而非對本發(fā)明實施例的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明實施例相關的部分而非全部內容。
[0026]第一實施例:
[0027]圖1是本發(fā)明第一實施例中提供的一種手勢識別方法的實現流程圖,該方法可以由手勢識別裝置執(zhí)行,其中該裝置可以由軟件和/或硬件實現,可作為移動設備的一部分被內置在移動設備內部。如圖1所示,該實現流程包括:
[0028]步驟11、在預設的手勢識別事件被觸發(fā)時,定時獲取移動設備中加速度傳感器測得的加速度值。
[0029]其中,移動設備中預設的手勢識別事件可以包括多個預設手勢類型的識別事件,預設手勢類型包括搖一搖動作、甩動動作等。識別到的預設手勢動作可作為預設操作的觸發(fā)條件,如在微信應用場景下識別到搖一搖動作可觸發(fā)匹配同一時段執(zhí)行搖一搖動作的其他微信用戶,在播放音頻文件的過程中識別到甩動動作,可觸發(fā)音頻切換操作。
[0030]示例性的,在用戶點擊預設的手勢識別按鈕或以預設方式點擊手勢識別按鍵(如長按音量鍵)時,預設的手勢識別事件被觸發(fā)。移動設備定時(如每隔100ms)獲取加速度傳感器測得的沿X軸方向的線加速度值νχ、沿Y軸方向的線加速度值vy和沿Z軸方向的線加速度值vz中的至少一個。
[0031]步驟12、對于每個獲取加速度值的時刻,依據已獲取的加速度值計算該時刻對應的加速度變化值,并依據當前已計算出的加速度變化值識別用戶手勢的類型。
[0032]對于每個獲取加速度的時刻,計算出該時刻對應的加速度變化值之后,還根據該時刻對應的加速度變化值繪制或更新所述趨勢圖,且依據已繪制的趨勢圖與預定義的手勢識別規(guī)則進行匹配,識別出用戶手勢的類型。
[0033]其中,所述依據已獲取的加速度值計算該時刻的加速度變化值,可以包括:依據已獲取的加速度值計算該時刻的過渡加速度值;計算該時刻獲取的加速度值與該時刻的過渡加速度值間的差值,得到該時刻的加速度變化值。
[0034]示例性的,對于每個獲取加速度的時刻,可依據該時刻之前獲取的至少一個加速度值,確定該時刻的過渡加速度值,進而計算該時刻的加速度變化值。
[0035]其中,所述依據當前已計算出的加速度變化值識別用戶手勢的類型,可以包括:
[0036]A、對于每個預設方向,依據當前已計算出的每個時刻的加速度變化值繪制該方向對應的加速度變化值隨時間變化的趨勢圖,其中,預設方向包括預設的X軸方向、Y軸方向和Z軸方向中的至少一個。
[0037]示例性的,在初始時刻繪制的趨勢圖,且在除初始時刻的其他時刻更新趨勢圖。
[0038]B、將各預設方向已繪制的趨勢圖與預定義的手勢識別規(guī)則進行匹配,識別出用戶手勢的類型。
[0039]示例性的,在趨勢圖與預定義的第一手勢識別規(guī)則匹配時,確定用戶手勢的類型為第一手勢;在趨勢圖與預定義的第二手勢識別規(guī)則匹配時,確定用戶手勢的類型為第二手勢。
[0040]為了避免誤識別,還可在趨勢圖與預定義的手勢識別規(guī)則匹配,且趨勢圖對應的時間長度小于預設的時間長度閾值時確定用戶手勢的類型為匹配到的手勢識別規(guī)則對應的手勢類型。所述預設的時間長度閾值可以為2s。
[0041]步驟13、在識別出的用戶手勢的類型為預設手勢類型時停止手勢識別操作。
[0042]本實施例中提供的手勢識別方法,通過定時獲取移動設備中加速度傳感器測得的加速度值,計算每個時刻的加速度變化值,并依據計算出的加速度變化值識別用戶手勢的類型,且在識別出的用戶手勢的類型為預設手勢類型時停止手勢識別操作,該方法依據加速度變化值隨時間變化的趨勢識別用戶手勢的類型,提高了手勢識別的準確率,提升了用戶體驗。
[0043]進一步地,所述依據已獲取的加速度值計算該時刻的過渡加速度值可以包括:
[0044]A、在該時刻不為初始時刻時,依據如下公式對該時刻獲取的加速度值vi進行平滑處理,得到該時刻的過渡加速度值gi:
[0045]gi = alpha*gi’+ (1-alpha) *vi ;
[0046]其中,i包括X,y和z,分別表示預設的X軸、Y軸和Z軸方向,alpha為預設的加速度修正參數,取值范圍為(0,l),gi’為該時刻的上一時刻對應的過渡加速度值。
[0047]B、在該時刻為初始時刻時,將該時刻獲取的加速度值確定為該時刻的過渡加速度值。
[0048]進一步地,所述將各預設方向已繪制的趨勢圖與預定義的手勢識別規(guī)則進行匹配,識別出用戶手勢的類型,可以包括:在繪制的任一預設方向對應的趨勢圖中包括相鄰的一個下降趨勢與一個上升趨勢,且該趨勢圖的波峰與波谷對應的幅值均大于預設的加速度閾值時,確定用戶手勢為沿該預設方向的搖一搖動作。因此該方法不僅能夠確定手勢的類型還能夠識別手勢的方向。
[0049]第二實施例:
[0050]本實施例在上述實施例的基礎提供了一種搖一搖動作的識別方法。圖2是本發(fā)明第二實施例中提供的搖一搖動作的識別方法的實現流程圖,如圖2所示,該實現流程包括:
[0051]步驟21、在預設的搖一搖識別事件被觸發(fā)時,每隔10ms獲取移動設備中加速度傳感器測得的加速度值。
[0052]步驟22、對于每個獲取加速度值的時刻,在該時刻不為初始時刻時,依據如下公式,計算該時刻的過渡加速度值:
[0053]gx = alpha*gx’ +(1-alpha)*vx ;
[0054]gy = alpha*gy,+(1-alpha)*vy ;
[0055]gz = alpha*gz,+ (1-alpha) *vz ;
[0056]其中,vx,vy和vz分別表示該時刻獲取的沿預設的X軸方向,Y軸方向和Z軸方向的加速度值,gx’,gy’和gz’分別表示該時刻的上一時刻對應的沿預設的X軸方向,Y軸方向和Z軸方向的過渡加速度值,gx, gy和gz分別表示該時刻對應的沿預設的X軸方向,Y軸方向和Z軸方向的過渡加速度值,alpha為預設的加速度修正參數,取值范圍為(0,1),alpha的取值越接近I表示上一次獲取的過渡加速度值的比重越大。
[0057]需要說明的是,將初始時刻獲取的加速度值確定為初始時刻的過渡加速度值。
[0058]步驟23、對于每個獲取加速度值的時刻,依據如下公式計算該時刻的加速度變化值:
[0059]mx = vx-gx ;
[0060]my = vy-gy ;
[0061]mz = vz-gz ;