實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法和系統(tǒng),以解決現(xiàn)有技術(shù)中實現(xiàn)非接觸式鼠標(biāo)控制時操作難度大的技術(shù)問題。所述人機(jī)交互方法包括接收手掌的空間三維坐標(biāo)和速度信息的步驟和接收手指尖的空間三維坐標(biāo)和速度信息的步驟;其中,所述速度信息至少包括速度方向;還包括根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三維坐標(biāo)和速度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件的步驟。本發(fā)明通過對手掌和手指尖的空間三維坐標(biāo)和速度信息的分析和比較,依據(jù)判斷的結(jié)果將用戶的手掌和手指尖的運(yùn)動關(guān)聯(lián)為用戶熟知的鼠標(biāo)事件,簡化了用戶的操作,降低了操作者的控制難度。
【專利說明】實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子【技術(shù)領(lǐng)域】,尤其涉及一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方 法和系統(tǒng)。
【背景技術(shù)】
[0002] 在用戶與計算機(jī)的人機(jī)交互方式中,除了鼠標(biāo)和鍵盤等傳統(tǒng)的人機(jī)交互方式,近 年來出現(xiàn)了語音控制、觸控控制和手勢控制等新式的人機(jī)交互方式,尤其是以手勢控制為 代表的非接觸式人機(jī)交互方式,通過深度傳感器檢測人體動作,計算機(jī)再根據(jù)檢測到的數(shù) 據(jù)將人體動作轉(zhuǎn)換為對計算機(jī)的交互命令,使得人機(jī)交互顯得更直接更自然。
[0003] 運(yùn)用鼠標(biāo)控制計算機(jī)是最傳統(tǒng)最直接的人機(jī)交互方式,但在一些衛(wèi)生條件要求很 高的環(huán)境中,不宜用手直接操控鼠標(biāo),在需要隨時調(diào)取計算機(jī)資料時,常常感到不方便,例 如醫(yī)生在手術(shù)室內(nèi),廚師在烹飪過程中,實驗人員在無塵、無菌工作室中等;因此需要將手 勢控制與鼠標(biāo)操作結(jié)合起來,進(jìn)行一種非接觸式的操作。
[0004] 現(xiàn)有技術(shù)中的實現(xiàn)非接觸式鼠標(biāo)控制中,一種方法是:使用深度傳感器捕獲手部 的深度圖,在手部的深度圖中確定手指的數(shù)量和形狀,并根據(jù)手指的數(shù)量和形狀確定手部 的姿勢,同時根據(jù)手部的位移情況確定手部的運(yùn)動軌跡,將確定的手部的運(yùn)動軌跡和手部 的姿勢結(jié)合,對應(yīng)成為不同的操作動作,例如將手指全部張開變化為伸直一根手指對應(yīng)成 為選中目標(biāo)的動作,將伸直一根手指變化為彎曲一根手指對應(yīng)成為鼠標(biāo)左鍵點擊動作等, 這種方法的缺點在于:需要通過多幀手部深度圖分析手部的姿勢變化軌跡,再將手部的姿 勢變化映射成為鼠標(biāo)的操作動作,需要操作者記住手部姿勢與鼠標(biāo)動作的對應(yīng)關(guān)系,增加 了操作者的控制難度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提供一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法和系統(tǒng),以解決 現(xiàn)有技術(shù)中實現(xiàn)非接觸式鼠標(biāo)控制時操作難度大的技術(shù)問題。
[0006] 本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的: 提供了一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,所述方法包括以下步驟:接收手 掌的空間三維坐標(biāo)和速度信息;接收手指尖的空間三維坐標(biāo)和速度信息;其中,所述速度 信息至少包括速度方向;根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空 間三維坐標(biāo)和速度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
[0007] 進(jìn)一步的,所述控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為:判斷所述手掌的速度 方向與所述手指尖的速度方向是否一致;若一致,則將所述手掌的空間三維坐標(biāo)映射到所 述操作界面的二維坐標(biāo)系中;根據(jù)映射的二維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位 置。
[0008] 進(jìn)一步的,所述控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為:當(dāng)所述手掌的速度方 向與所述手指尖中的一個手指尖的速度方向不一致時,或當(dāng)所述手指尖中的一個手指尖的 速度方向與其他手指尖的速度方向不一致時,判斷所述一個手指尖是否是定義手指尖;若 是,則關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作。
[0009] 進(jìn)一步的,所述關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,還包括:當(dāng)所述定義手指尖為第 一定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)左鍵動作;當(dāng)所述定義手指尖為第二定義手指尖 時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)右鍵動作;當(dāng)所述定義手指尖為第三定義手指尖時,關(guān)聯(lián)所述光 標(biāo)執(zhí)行鼠標(biāo)中鍵動作。
[0010] 進(jìn)一步的,所述關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,具體為:當(dāng)所述定義手指尖下移 時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵下按動作;當(dāng)所述定義手指尖上移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行 一次鼠標(biāo)鍵上抬動作。
[0011] 進(jìn)一步的,所述關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,還包括:當(dāng)所述第一定義手指尖 下移后,在預(yù)設(shè)時間內(nèi)沒有上移,并且所述第一定義手指尖的速度方向與所述手掌的速度 方向一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行選擇拖動動作。
[0012] 進(jìn)一步的,所述控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為:當(dāng)所述手掌的速度方 向與所述手指尖中至少兩個手指尖的速度方向不一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動 作。
[0013] 還提供了一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),包括操作界面和深度傳感 器,所述系統(tǒng)還包括:接收單元,用于接收所述深度傳感器檢測到的手掌的空間三維坐標(biāo)和 速度信息,以及手指尖的空間三維坐標(biāo)和速度信息;其中,所述速度信息至少包括速度方 向;控制單元,用于根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三維 坐標(biāo)和速度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
[0014] 進(jìn)一步的,所述控制單元具體包括:判斷模塊,用于判斷所述接收到的手掌的速度 方向與所述手指尖的速度方向是否一致;映射模塊,用于將所述手掌的空間三維坐標(biāo)和所 述手指尖的空間三維坐標(biāo)映射到所述操作界面的二維坐標(biāo)系中;第一關(guān)聯(lián)模塊,用于當(dāng)所 述判斷模塊判斷所述手掌的速度方向與所述手指尖的速度方向一致時,根據(jù)所述映射的二 維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位置。
[0015] 進(jìn)一步的,所述判斷模塊還用于當(dāng)判斷出所述手掌運(yùn)動的速度方向與所述手指指 尖中的一個手指尖的速度方向不一致時,或當(dāng)所述手指尖中的一個手指尖的速度方向與其 他手指尖的速度方向不一致時,進(jìn)一步判斷所述一個手指尖是否是定義手指指尖,所述定 義手指尖包括第一定義手指尖、第二定義手指尖和第三定義手指尖。
[0016] 進(jìn)一步的,所述系統(tǒng)還包括第二關(guān)聯(lián)模塊,所述第二關(guān)聯(lián)模塊還用于,當(dāng)所述定義 手指尖為第一定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)左鍵動作;當(dāng)所述定義手指尖為第二 定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)右鍵動作;當(dāng)所述定義手指尖為第三定義手指尖時, 關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)中鍵動作。
[0017] 進(jìn)一步的,所述第二關(guān)聯(lián)模塊還用于當(dāng)所述定義手指尖下移時,關(guān)聯(lián)所述光標(biāo)執(zhí) 行一次鼠標(biāo)鍵下按動作;當(dāng)所述定義手指尖上移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵上抬動 作。
[0018] 進(jìn)一步的,所述第二關(guān)聯(lián)模塊還用于當(dāng)所述第一定義手指尖下移后,在預(yù)設(shè)時間 內(nèi)沒有上移,并且所述第一定義手指尖的速度方向與所述手掌的速度方向一致時,關(guān)聯(lián)所 述光標(biāo)執(zhí)行選擇拖動動作。
[0019] 進(jìn)一步的,所述第二關(guān)聯(lián)模塊還用于當(dāng)所述判斷模塊判斷出所述手掌的速度方向 與所述手指尖中至少兩個手指尖的速度方向不一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動作。
[0020] 本發(fā)明提供的技術(shù)方案的有益效果或者優(yōu)點是:在本發(fā)明提供的實現(xiàn)非接觸式鼠 標(biāo)控制的人機(jī)交互方法和系統(tǒng)中,深度傳感器獲取手掌和手指尖等精細(xì)部位的深度信息, 這些深度信息包括手掌和五個手指尖的空間三維坐標(biāo)以及至少包括速度方向的速度信息, 系統(tǒng)僅需根據(jù)上述信息的分析和比較來確定光標(biāo)在操作界面上的鼠標(biāo)事件;相比于現(xiàn)有技 術(shù),本發(fā)明提供的技術(shù)方案不需要分析用戶手部的深度圖,不需要定義用戶的手勢模型,更 不需要將用戶的手勢模型與鼠標(biāo)事件建立映射模型,因此用戶不需記憶繁瑣的手勢操作, 簡化了用戶的操作,用戶在進(jìn)行非接觸式鼠標(biāo)操作時,僅需按照常規(guī)鼠標(biāo)操作非接觸式的 控制操作界面上的光標(biāo)即可,降低了操作者的控制難度。
【專利附圖】
【附圖說明】
[0021] 圖1為本申請實施例提供的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法的流程圖; 圖2為本申請實施例提供的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng)的架構(gòu)圖; 圖3為本申請實施例中實現(xiàn)非接觸式鼠標(biāo)控制的具體方法流程圖; 圖4為本申請實施例提供的關(guān)聯(lián)光標(biāo)執(zhí)行鼠標(biāo)滾輪動作的示意圖; 圖5本申請實施例中實現(xiàn)非接觸式鼠標(biāo)控制的具體方法流程圖; 圖6為本申請實施例提供的實現(xiàn)非接觸式鼠標(biāo)的人機(jī)交互系統(tǒng)的系統(tǒng)架構(gòu)圖。
【具體實施方式】
[0022] 下面將結(jié)合附圖,對本發(fā)明實施例提供的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法 和系統(tǒng)的技術(shù)方案進(jìn)行詳細(xì)描述。
[0023] 本申請實施例提供的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,如圖1所示,包括 以下步驟: 步驟S01 :接收手掌的空間三維坐標(biāo)和速度信息; 步驟S02 :接收手指尖的空間三維坐標(biāo)和速度信息;其中,所述速度信息包括速度值和 速度方向; 其中,速度信息至少包括速度方向。
[0024] 手掌和手指尖的空間三維坐標(biāo)和速度信息是通過設(shè)置在操作界面周圍的深度傳 感器獲取的。本申請實施例中,操作界面可以是但不受限于電視屏幕、投影屏幕、電腦屏幕 等。深度傳感器放置于操作界面的周圍或是內(nèi)置于系統(tǒng)的操作鍵盤內(nèi),以圖2中深度傳感 器3放置于操作界面1前端為例,其能感知的范圍在操作界面前方形成一個能感知手掌和 手指尖的位置和速度信息的交互空間4,用戶在此交互空間內(nèi)進(jìn)行手部操作時,其手掌和手 指尖的位置和速度信息都能被該深度傳感器感知,并將感知到的信息傳送給系統(tǒng)的控制單 元,控制單元則根據(jù)以下步驟將用戶的手掌和手指尖的運(yùn)動轉(zhuǎn)換為操作界面上光標(biāo)2的鼠 標(biāo)事件。這里的手掌和手指尖的位置和速度信息可以區(qū)分左手手掌和左手手指尖的位置和 速度信息,以及右手手掌和右手手指尖的位置和速度信息,本申請實施例不對左右手做限 定,用戶可以根據(jù)自己的習(xí)慣使用左手操作或者使用右手操作;這里的鼠標(biāo)事件包含但不 受:限于鼠標(biāo)平移、左鍵單擊、左鍵雙擊、選擇拖動、右鍵單擊等。
[0025] 步驟S03 :根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三 維坐標(biāo)和速度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
[0026] 深度傳感器以設(shè)定的頻率捕獲交互空間內(nèi)用戶的動作,并將捕獲到的用戶手掌和 五個手指尖的空間三維坐標(biāo)和速度信息傳送給系統(tǒng)的控制單元,系統(tǒng)的控制單元在接收到 用戶手掌和五個手指尖的空間三維坐標(biāo)和速度信息后,通過這些信息的分析和比較,將用 戶的手掌和手指尖的運(yùn)動轉(zhuǎn)換為用戶熟知的鼠標(biāo)事件??刂七^程中,不需要獲取用戶手部 的深度圖,不需要通過分析深度圖來定義用戶的手勢模型,更不需要將用戶的手勢模型與 鼠標(biāo)事件建立映射模型,因此用戶不需記憶繁瑣的手勢模型,簡化了用戶的操作,用戶在進(jìn) 行非接觸式鼠標(biāo)操作時,僅需按照常規(guī)鼠標(biāo)操作非接觸式的控制操作界面上的光標(biāo)即可, 降低了操作者的控制難度。
[0027]當(dāng)然,本申請實施例不限制手掌和手指尖的速度信息的獲取方式,其可以是深度 傳感器獲取到的速度信息,也可以是控制單元根據(jù)深度傳感器獲取的手掌和手指尖的空間 二維坐標(biāo)計算得出的速度彳目息。
[0028] 具體的,控制光標(biāo)在操作界面上的鼠標(biāo)事件可以細(xì)化為如圖3的步驟: 步驟S031 :判斷所述手掌的速度方向與所述手指尖的速度方向是否一致。
[0029] 這里所指的手指尖包含整只手的全部五個手指的指尖,或者是代表所有手指尖運(yùn) 動方向的多數(shù)手指尖,例如至少包含三根手指的手指尖。速度方向一致時,說明用戶的手部 (包括手掌和手指尖)在進(jìn)行整體的移動,任一個手指尖沒有產(chǎn)生動作控制鼠標(biāo)事件,此時, 可以將這種手部的整體移動與鼠標(biāo)的平移事件關(guān)聯(lián)起來;若不一致,說明至少有一個手指 尖在控制操作界面上的光標(biāo)產(chǎn)生鼠標(biāo)事件,因此,若比較結(jié)果表明手掌和手指尖的速度方 向是一致時,則進(jìn)入步驟S032。
[0030] 步驟S032:將所述手掌的空間三維坐標(biāo)映射到所述操作界面的二維坐標(biāo)系中。
[0031] 將手掌的空間三維坐標(biāo)映射到操作界面的二維坐標(biāo)系中,存在兩個坐標(biāo)系的對應(yīng) 映射關(guān)系。映射時,忽略三維空間中空間方向(如圖2中的Z軸方向)的空間位移,將映射關(guān) 系簡化為兩個二維平面坐標(biāo)系的比例換算映射,同時可以排除手部在空間方向的抖動對平 移判斷的影響。
[0032] 步驟S033 :根據(jù)映射的二維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位置。
[0033] 手掌和手指尖的速度方向一致時,將用戶這種整體手部移動的動作與鼠標(biāo)平移的 鼠標(biāo)事件進(jìn)行關(guān)聯(lián)。具體的,將手掌在空間的三維坐標(biāo)映射到操作界面的二維坐標(biāo)系中,映 射時,忽略三維空間中其中一維的空間位移,進(jìn)而將手部在三維空間的移動映射為二維平 面上的移動,并將這種移動與操作界面上的光標(biāo)關(guān)聯(lián),使得手部在空間的整體移動映射為 操作平面上光標(biāo)的移動,由此,將用戶手部的空間移動動作與鼠標(biāo)平移的事件關(guān)聯(lián)起來。用 戶可以通過手部整體移動的動作來控制光標(biāo)在操作平面移動,從而可以控制光標(biāo)選擇控制 目標(biāo)。
[0034]例如,手掌在三維坐標(biāo)系中的坐標(biāo)為映射到操作界面的二維坐標(biāo)系 (X,y)中時,忽略A點的空間方向的坐標(biāo)Z,從而將映射轉(zhuǎn)換為從二維坐標(biāo)系(X,Y)映射到二 維坐標(biāo)系(x,y)的過程,假設(shè)二維坐標(biāo)系(X,Y)與二維坐標(biāo)系(x,y)的映射比例為(a,b), 則將手掌映射到操作平面的坐標(biāo)為(aX,bY),此時,將光標(biāo)的位置更新到操作界面坐標(biāo)系的 坐標(biāo)(aX,bY)上即可。
[0035] 若手掌和手指尖的速度方向不一致,則說明至少有一個手指尖在控制操作界面上 的光標(biāo)產(chǎn)生鼠標(biāo)事件,則具體的,進(jìn)入步驟S034。
[0036] 步驟S034:進(jìn)一步判斷與手掌的速度方向不一致的手指尖是否是單個手指尖。若 不是單個手指尖,則進(jìn)入步驟S037。
[0037] 步驟S037:關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動作。
[0038] 本申請實施例中,將至少兩個手指尖的同向運(yùn)動關(guān)聯(lián)為鼠標(biāo)滾輪事件。具體的,例 如,如圖4所示,用戶食指和中指(或者食指、中指和無名指,或者除去大拇指的其他四根手 指)的指尖同時上下移動,其三維空間坐標(biāo)的縱軸(如圖4中的Y軸)坐標(biāo)發(fā)生往復(fù)位移變 化,將用戶的此動作關(guān)聯(lián)為鼠標(biāo)滾輪事件,并判斷所述至少兩個手指尖的速度值,當(dāng)所述至 少兩個手指尖同時下移的速度值明顯大于其他手指尖或手掌的速度值時,關(guān)聯(lián)所述光標(biāo)執(zhí) 行鼠標(biāo)滾輪順時針滾動動作;當(dāng)所述至少兩個手指尖同時上移的速度值明顯大于其他手指 尖或手掌的速度值時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪逆時針滾動動作。
[0039] 進(jìn)一步判斷與手掌的速度方向不一致的手指尖是單個手指尖,則進(jìn)入步驟S035。
[0040] 步驟S035 :進(jìn)一步判斷所述單個手指尖是否是定義手指尖;當(dāng)判斷出單個手指尖 為定義手指尖后,則進(jìn)入步驟S036。
[0041] 步驟S036 :關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作。
[0042] 定義手指尖,是指用戶在系統(tǒng)設(shè)置中自行設(shè)置的手指尖與鼠標(biāo)事件的對應(yīng)關(guān)系 (當(dāng)然也可以是系統(tǒng)設(shè)置的默認(rèn)的手指尖與鼠標(biāo)事件的對應(yīng)關(guān)系),本申請實施例中,將單 個手指尖的運(yùn)動關(guān)聯(lián)為鼠標(biāo)事件中的點擊事件。例如,用戶在系統(tǒng)第一次啟動后,進(jìn)入系統(tǒng) 設(shè)置環(huán)境,定義第一定義手指尖關(guān)聯(lián)光標(biāo)執(zhí)行鼠標(biāo)左鍵點擊動作,定義第二定義手指尖關(guān) 聯(lián)光標(biāo)執(zhí)行鼠標(biāo)右鍵點擊動作,定義第三定義手指尖關(guān)聯(lián)光標(biāo)執(zhí)行鼠標(biāo)中鍵點擊或者滾輪 動作。
[0043] 通常鼠標(biāo)事件中的點擊包括左鍵單擊、左鍵雙擊和右鍵單擊等,具體的,按照用戶 熟知的操作習(xí)慣,可以將食指指尖的運(yùn)動關(guān)聯(lián)為鼠標(biāo)事件中的左鍵點擊,將中指指尖的運(yùn) 動關(guān)聯(lián)為鼠標(biāo)事件中的右鍵點擊,又或者,將中指指尖的運(yùn)動關(guān)聯(lián)為鼠標(biāo)事件中的中鍵點 擊或者鼠標(biāo)滾輪事件,而將無名指指尖的運(yùn)動關(guān)聯(lián)為鼠標(biāo)事件中的右鍵點擊等。
[0044] 具體的關(guān)聯(lián),如圖5所示,包括如下步驟: 步驟S0361:判斷定義手指尖是否下移。
[0045] 具體的,通過深度傳感器獲取到定義手指尖的三維空間坐標(biāo)變化,判斷定義手指 尖在空間中是否產(chǎn)生縱向的下移動作,即判斷縱向坐標(biāo)是否是向下移方向發(fā)生變化,若是, 則進(jìn)入步驟S0362。
[0046] 步驟S0362:將定義手指尖的一次下移關(guān)聯(lián)為所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵的下按動 作。
[0047] 接著進(jìn)入步驟S0363:判斷在預(yù)設(shè)之間內(nèi)定義手指尖是否上移;若判斷出定義手 指尖的縱向坐標(biāo)是向上移方向發(fā)生變化,則進(jìn)步步驟S0364。
[0048] 步驟S0364 :將定義手指尖的一次上移關(guān)聯(lián)為所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵的上抬動 作。
[0049] 具體的,當(dāng)定義食指指尖關(guān)聯(lián)鼠標(biāo)左鍵事件,定義中指指尖關(guān)聯(lián)鼠標(biāo)右鍵事件時, 則食指指尖的一次下移和上移過程對應(yīng)鼠標(biāo)左鍵事件的左鍵按下和抬起的動作,從而完成 一次鼠標(biāo)左鍵單擊的鼠標(biāo)事件,食指指尖的兩次下移和上移過程對應(yīng)鼠標(biāo)左鍵事件的左鍵 兩次按下和抬起的動作,從而完成一次鼠標(biāo)左鍵雙擊的鼠標(biāo)事件;而中指指尖的一次下移 和上移過程對應(yīng)鼠標(biāo)右鍵事件的一次按下和抬起動作,從而完成一次鼠標(biāo)右鍵的單擊鼠標(biāo) 事件。
[0050] 進(jìn)一步的,若在預(yù)設(shè)之間內(nèi)定義手指尖沒有上移,則進(jìn)步步驟S0365。
[0051] 步驟S0365 :進(jìn)一步判斷該定義手指是否是第一定義手指尖,即判斷是否是鼠標(biāo) 左鍵事件關(guān)聯(lián)的手指尖,例如食指指尖,若是,則進(jìn)入步驟S0366。
[0052] 步驟S0366 :判斷第一定義手指尖的速度方向與所述手掌的速度方向一致。
[0053] 若手指尖的速度方向與手掌的速度方向一致時,說明手部整體向同一個方向運(yùn) 動,如前所述,將手部的整體運(yùn)動關(guān)聯(lián)為鼠標(biāo)的平移事件,此時,第一定義手指尖產(chǎn)生下按 動作,同時產(chǎn)生位移,則: 步驟S0367 :關(guān)聯(lián)所述光標(biāo)執(zhí)行選擇拖動動作。
[0054] 具體的,第一定義手指尖下移關(guān)聯(lián)光標(biāo)在操作界面執(zhí)行鼠標(biāo)左鍵單擊動作選中目 標(biāo)后,手部整體移動,使得第一定義手指尖的速度方向與手掌的速度方向一致,進(jìn)而關(guān)聯(lián)光 標(biāo)在操作界面上執(zhí)行鼠標(biāo)拖動事件,將選中目標(biāo)在操作界面上移動。當(dāng)?shù)谝欢x手指尖再 次上移時,關(guān)聯(lián)光標(biāo)在操作界面執(zhí)行放開選中目標(biāo)的動作,從而完成一次選擇拖動動作。
[0055] 本申請實施例還提供了一種實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),如圖6所 示,所述系統(tǒng)包括:操作界面1,深度傳感器3,接收單元5和控制單元6。
[0056] 結(jié)合圖2所示,深度傳感器3放置于操作界面1的周圍位置,可以是前側(cè),也可以 是邊側(cè),本申請實施例不做限制。深度傳感器的感知范圍形成交互空間4,用戶在交互空間 內(nèi)的操作深度傳感器3捕獲后,將手掌和手指尖的三維空間坐標(biāo)和速度信息傳送給接收單 元5,其中,速度信息至少包括速度方向,接收單元5將上述信息傳送給控制單元6,控制單 元6根據(jù)接收到的手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三維坐標(biāo)和速 度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
[0057] 具體的,控制單元包括判斷模塊61,映射模塊62,第一關(guān)聯(lián)模塊63和第二關(guān)聯(lián)模 塊64。
[0058] 其中,判斷模塊,用于判斷所述接收到的手掌的速度方向與所述手指尖的速度方 向是否一致;并且,當(dāng)判斷出所述手掌的速度方向與所述手指尖中的一個手指尖的速度方 向不一致時,或當(dāng)所述手指尖中的一個手指尖的速度方向與其他手指尖的速度方向不一致 時,進(jìn)一步判斷所述一個手指尖是否是定義手指尖,所述定義手指尖包括第一定義手指尖、 第二定義手指尖和第三定義手指尖。
[0059] 映射模塊,用于將所述手掌的空間三維坐標(biāo)和所述手指尖的空間三維坐標(biāo)映射到 所述操作界面的二維坐標(biāo)系中。
[0060] 第一關(guān)聯(lián)模塊,用于當(dāng)所述判斷模塊判斷所述手掌的速度方向與所述手指尖的速 度方向一致時,根據(jù)所述映射的二維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位置。
[0061] 第二關(guān)聯(lián)模塊,當(dāng)所述定義手指尖下移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵下按動 作;當(dāng)所述定義手指尖上移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵上抬動作。當(dāng)所述定義手指尖 為第一定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)左鍵動作;當(dāng)所述定義手指尖為第二定義手 指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)右鍵動作;當(dāng)所述定義手指尖為第三定義手指尖時,關(guān)聯(lián)所 述光標(biāo)執(zhí)行鼠標(biāo)中鍵動作。當(dāng)所述第一定義手指尖下移后,在預(yù)設(shè)時間內(nèi)沒有上移,并且所 述第一定義手指尖的速度方向與所述手掌的速度方向一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行選擇拖動 動作;當(dāng)所述手掌的速度方向與所述手指尖中至少兩個手指尖的速度方向不一致時,關(guān)聯(lián) 所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動作。
[0062] 具體的控制過程已經(jīng)在上述實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法中詳細(xì)介紹, 此處不再贅述。
[0063] 本申請實施例提供的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法和系統(tǒng),采用例如kinect2代體感傳感器、LeapMotion厲動傳感器等,能夠精確識別手掌、手指尖等精細(xì)部位 的位置和速度等信息,并根據(jù)這些信息,經(jīng)過控制單元的比較和判斷,依據(jù)比較和判斷的結(jié) 果將手掌和手指尖的運(yùn)動與鼠標(biāo)事件進(jìn)行關(guān)聯(lián),這些鼠標(biāo)事件都是用戶熟知的鼠標(biāo)操作, 使得用戶無需記憶復(fù)雜的手勢操作,在不接觸鼠標(biāo)的情況下進(jìn)行非接觸式鼠標(biāo)的操作,實 現(xiàn)鼠標(biāo)的熟知功能,無需改變用戶的操作習(xí)慣,具有操作簡單的技術(shù)效果;同時控制單元無 需采集用戶手部深度圖,無需對深度圖進(jìn)行圖像處理分析建立手勢模型,無需將手勢模型 與鼠標(biāo)事件建立映射模型,只需進(jìn)行簡單的數(shù)據(jù)比較和判斷,減少了控制單元的數(shù)據(jù)計算 量,提高了系統(tǒng)運(yùn)行效率,進(jìn)一步能提高用戶的操作感,降低系統(tǒng)的控制難度,具有很高的 推廣意義。
[0064] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實 施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī) 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn) 品的形式。
[0065] 本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算 機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能 的裝置。
[0066] 這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0067] 這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖 一個方框或多個方框中指定的功能的步驟。
[0068] 盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0069] 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1. 實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述方法包括以下步驟: 接收手掌的空間三維坐標(biāo)和速度信息; 接收手指尖的空間三維坐標(biāo)和速度信息;其中,所述速度信息至少包括速度方向; 根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三維坐標(biāo)和速度信 息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
2. 根據(jù)權(quán)利要求1所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述 控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為: 判斷所述手掌的速度方向與所述手指尖的速度方向是否一致; 若一致,則將所述手掌的空間三維坐標(biāo)映射到所述操作界面的二維坐標(biāo)系中; 根據(jù)映射的二維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位置。
3. 根據(jù)權(quán)利要求1所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述 控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為: 當(dāng)所述手掌的速度方向與所述手指尖中的一個手指尖的速度方向不一致時,或當(dāng)所述 手指尖中的一個手指尖的速度方向與其他手指尖的速度方向不一致時,判斷所述一個手指 尖是否是定義手指尖; 若是,則關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作。
4. 根據(jù)權(quán)利要求3所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述 關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,還包括: 當(dāng)所述定義手指尖為第一定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)左鍵動作; 當(dāng)所述定義手指尖為第二定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)右鍵動作; 當(dāng)所述定義手指尖為第三定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)中鍵動作。
5. 根據(jù)權(quán)利要求3-4任一項權(quán)利要求所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法, 其特征在于,所述關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,具體為: 當(dāng)所述定義手指尖下移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵下按動作; 當(dāng)所述定義手指尖上移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵上抬動作。
6. 根據(jù)權(quán)利要求5所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述 關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)按鍵動作,還包括: 當(dāng)所述第一定義手指尖下移后,在預(yù)設(shè)時間內(nèi)沒有上移,并且所述第一定義手指尖的 速度方向與所述手掌的速度方向一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行選擇拖動動作。
7. 根據(jù)權(quán)利要求1所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互方法,其特征在于,所述 控制光標(biāo)在操作界面上的鼠標(biāo)事件,具體為: 當(dāng)所述手掌的速度方向與所述手指尖中至少兩個手指尖的速度方向不一致時, 關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動作。
8. 實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),包括操作界面和深度傳感器,其特征在于, 所述系統(tǒng)還包括: 接收單元,用于接收所述深度傳感器檢測到的手掌的空間三維坐標(biāo)和速度信息,以及 手指尖的空間三維坐標(biāo)和速度信息;其中,所述速度信息至少包括速度方向; 控制單元,用于根據(jù)所述手掌的空間三維坐標(biāo)和速度信息,以及所述手指尖的空間三 維坐標(biāo)和速度信息,控制光標(biāo)在操作界面上的鼠標(biāo)事件。
9. 根據(jù)權(quán)利要求8所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),其特征在于,所述 控制單元具體包括: 判斷模塊,用于判斷所述接收到的手掌的速度方向與所述手指尖的速度方向是否一 致; 映射模塊,用于將所述手掌的空間三維坐標(biāo)和所述手指尖的空間三維坐標(biāo)映射到所述 操作界面的二維坐標(biāo)系中; 第一關(guān)聯(lián)模塊,用于當(dāng)所述判斷模塊判斷所述手掌的速度方向與所述手指尖的速度方 向一致時,根據(jù)所述映射的二維坐標(biāo)更新所述光標(biāo)在所述操作界面上的位置。
10. 根據(jù)權(quán)利要求9所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),其特征在于,所述 判斷模塊還用于: 當(dāng)判斷出所述手掌運(yùn)動的速度方向與所述手指指尖中的一個手指尖的速度方向不一 致時,或當(dāng)所述手指尖中的一個手指尖的速度方向與其他手指尖的速度方向不一致時,進(jìn) 一步判斷所述一個手指尖是否是定義手指指尖,所述定義手指尖包括第一定義手指尖、第 二定義手指尖和第三定義手指尖。
11. 根據(jù)權(quán)利要求10所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),其特征在于,所 述系統(tǒng)還包括第二關(guān)聯(lián)模塊,所述第二關(guān)聯(lián)模塊用于, 當(dāng)所述定義手指尖為第一定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)左鍵動作; 當(dāng)所述定義手指尖為第二定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)右鍵動作; 當(dāng)所述定義手指尖為第三定義手指尖時,關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)中鍵動作。
12. 根據(jù)權(quán)利要求11所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),其特征在于,所 述第二關(guān)聯(lián)模塊還用于, 當(dāng)所述定義手指尖下移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵下按動作; 當(dāng)所述定義手指尖上移時,關(guān)聯(lián)所述光標(biāo)執(zhí)行一次鼠標(biāo)鍵上抬動作。
13. 根據(jù)權(quán)利要求12所述的實現(xiàn)非接觸式鼠標(biāo)的人機(jī)交互系統(tǒng),其特征在于,所述第 二關(guān)聯(lián)模塊還用于 當(dāng)所述第一定義手指尖下移后,在預(yù)設(shè)時間內(nèi)沒有上移,并且所述第一定義手指尖的 速度方向與所述手掌的速度方向一致時,關(guān)聯(lián)所述光標(biāo)執(zhí)行選擇拖動動作。
14. 根據(jù)權(quán)利要求11所述的實現(xiàn)非接觸式鼠標(biāo)控制的人機(jī)交互系統(tǒng),其特征在于,所 述第二關(guān)聯(lián)模塊還用于 當(dāng)所述判斷模塊判斷出所述手掌的速度方向與所述手指尖中至少兩個手指尖的速度 方向不一致時, 關(guān)聯(lián)所述光標(biāo)執(zhí)行鼠標(biāo)滾輪動作。
【文檔編號】G06F3/0346GK104331154SQ201410551798
【公開日】2015年2月4日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年8月21日
【發(fā)明者】周諄 申請人:周諄