一種人機(jī)交互方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機(jī)技術(shù),尤其涉及一種人機(jī)交互方法。
【背景技術(shù)】
[0002] 隨著移動計算設(shè)備從筆記本電腦到手機(jī)、平板電腦的演化,移動計算設(shè)備的操控 方式也經(jīng)歷了從鍵盤、鼠標(biāo)到手機(jī)按鍵、手寫板,再到觸摸屏、虛擬鍵盤的進(jìn)化,可以看到, 移動設(shè)備的操控方式是朝著越來越直觀、簡便,并且符合人的自然習(xí)慣的方向進(jìn)化的。
[0003]目前在移動計算設(shè)備上廣泛使用的基于觸摸屏的操控方式,技術(shù)上是將一塊透明 的觸摸感應(yīng)屏和顯示屏貼合在一起,觸摸感應(yīng)屏實質(zhì)上是一個定位裝置,能夠捕捉到屏幕 上的觸摸動作并獲取其位置,同時結(jié)合時間軸信息,將動作識別其為點觸、長觸、滑動等動 作之一。進(jìn)而將位置和動作信息作為指令傳遞給移動計算設(shè)備,移動計算設(shè)備基于該指令 做出相應(yīng)的操作反應(yīng)。由于觸摸感應(yīng)屏與顯示屏是疊加在一起的,因此帶給使用者"所點即 所想"的使用感受,相比鼠標(biāo)、觸控板等定位設(shè)備需要通過光標(biāo)反饋位置的輸入方式,屏幕 觸控方式帶來更好的使用體驗。
[0004] 屏幕觸控方式相比鍵盤加鼠標(biāo)的方式,更加符合人的直觀反應(yīng)、更容易學(xué)習(xí),但是 屏幕觸控方式畢竟只捕捉到了人體手指的動作,在一些需要更多使用者本體信息輸入的場 合,比如運動游戲、模擬訓(xùn)練、復(fù)雜操控、遠(yuǎn)距離操控等,屏幕觸控方式就顯示出其捕獲人體 信息過于單一的局限性了。從人機(jī)交互的角度,更多的使用者信息的獲取,將能夠傳達(dá)更豐 富、更精準(zhǔn)的使用者操作意圖,因此必然能夠帶來更便利的操控方法和更好的使用體驗。然 而,目前的人機(jī)交互技術(shù)中的手勢識別處理所采用的算法較為復(fù)雜、耗費時間且識別精度 低,實時性較差,不適合即時交互需求的場合。
【發(fā)明內(nèi)容】
[0005] 在下文中給出了關(guān)于本發(fā)明的簡要概述,以便提供關(guān)于本發(fā)明的某些方面的基本 理解。應(yīng)當(dāng)理解,這個概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的 關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡化的形式給出某些概 念,以此作為稍后論述的更詳細(xì)描述的前序。
[0006] 鑒于此,本發(fā)明提供了一種人機(jī)交互方法,以至少解決現(xiàn)有的人機(jī)交互技術(shù)中的 手勢識別處理所采用的算法較為復(fù)雜、耗費時間且識別精度低的問題。
[0007] 根據(jù)本發(fā)明的一個方面,提供了一種人機(jī)交互方法,所述人機(jī)交互方法包括:步驟 一、獲取含有深度信息的使用者手部的待測圖像序列;步驟二、根據(jù)圖像深度信息和圖像顏 色信息,在所述待測圖像序列的每幀圖像中檢測出所述使用者的手部輪廓;步驟三、針對所 述使用者的每只手,利用預(yù)設(shè)的手部結(jié)構(gòu)模板,在所述待測圖像序列的每幀圖像中確定該 只手的待測特征點序列;步驟四、針對所述使用者的每只手,在多個預(yù)設(shè)特征點序列中確 定該只手的待測特征點序列的匹配序列,以根據(jù)所述匹配序列確定該只手的動作名稱和位 置;步驟五、在預(yù)設(shè)手勢表中選擇與所述使用者雙手的動作名稱和位置相匹配的手勢,作為 已識別手勢;步驟六、根據(jù)預(yù)設(shè)操作指令表,確定與所述已識別手勢對應(yīng)的操作指令;步驟 七、對與確定的操作指令相關(guān)的設(shè)備進(jìn)行與該操作指令對應(yīng)的操作。
[0008] 進(jìn)一步地,步驟三可以包括:步驟三一、針對所述使用者的每只手,利用預(yù)設(shè)的手 部結(jié)構(gòu)模板,在所述待測圖像序列的每幀圖像的手部輪廓中確定該只手的預(yù)定數(shù)目個特征 點;步驟三二、針對所述使用者的每只手,利用該只手在所述待測圖像序列的各幀圖像中對 應(yīng)的預(yù)定數(shù)目個特征點,獲得該只手的待測特征點序列。
[0009] 進(jìn)一步地,步驟一可以包括:通過捕獲預(yù)定成像區(qū)域內(nèi)的所述使用者手部的圖像, 獲得可見光圖像序列{/?(υ)|·和紅外圖像序列丨,卩為所述可見光圖像序列 第i幀圖像坐標(biāo)(x,y)處的像素值,而/取,,)為所述紅外圖像序列第i幀圖像坐標(biāo)(x,y) 處的像素值,根據(jù)如下公式獲得抽取使用者雙手信息的圖像序列:
[0011] 其中,α、β、λ為預(yù)設(shè)參數(shù)閾值,W(x,州為獲取的含有深度信息的使用者雙手 的圖像序列,作為所述待測圖像序列,i = 1,2,···,Μ,Μ為所述待測圖像序列所包含的圖像 幀數(shù)。
[0012] 進(jìn)一步地,步驟二可以包括:針對所述待測圖像序列彳/((1,>')}中的每幀圖像 4(u),結(jié)合顏色信息刪除該幀圖像4(.w)中的噪聲點及非膚色區(qū)域,利用邊緣檢測算子 e( ·)對刪除所述噪聲點和所述非膚色區(qū)域后所得到的圖像4(為y)進(jìn)行邊緣檢測,得到邊 緣圖像々m): 二e(/Uw)),所述邊緣圖像/;y(.v>0即為僅包含所述使用者手 部輪廓的圖像。
[0013] 進(jìn)一步地,步驟三一包括:針對所述待測圖像序列的每幀圖像執(zhí)行以下處理:根 據(jù)該圖像中的輪廓線的曲率找到該輪廓線中的指尖點和指根關(guān)節(jié)點;將所述指尖點作為定 位基點,匹配每個單指的指根關(guān)節(jié)點,得到各單指的長度作為尺度縮放的基準(zhǔn);基于所述指 尖點和所述指根關(guān)節(jié)點的位置以及各單指的長度對相應(yīng)的所述手部結(jié)構(gòu)模板進(jìn)行縮放和 形變,通過匹配得到每只手的各指關(guān)節(jié)特征點和手腕中點特征點;其中,所述手部結(jié)構(gòu)模板 包括左手結(jié)構(gòu)模板和右手結(jié)構(gòu)模板,所述左手結(jié)構(gòu)模板和右手結(jié)構(gòu)模板各自包括:各手指 的指尖特征點、各指關(guān)節(jié)特征點、各指根關(guān)節(jié)特征點、手腕中點特征點以及各特征點之間的 拓?fù)潢P(guān)系。
[0014] 進(jìn)一步地,步驟四可以包括:步驟四一、針對每只手的待測特征點序列,根據(jù)預(yù)定 時間窗將該待測特征點序列分割為多個子序列,并獲得每個子序列對應(yīng)的平均位置;步驟 四二、針對每只手對應(yīng)的每個子序列,將該子序列與所述多個預(yù)設(shè)特征點序列中的每一個 分別進(jìn)行匹配,在所述多個預(yù)設(shè)特征點序列中選擇與該子序列的匹配程度高于預(yù)設(shè)的匹配 閾值、并且最大的預(yù)設(shè)特征點序列,作為該子序列的匹配序列;步驟四三、將每個子序列對 應(yīng)的平均位置與該子序列的匹配序列對應(yīng)的動作名稱相關(guān)聯(lián);步驟四四、針對每只手,將該 只手對應(yīng)的各子序列的匹配序列作為該只手對應(yīng)的多個匹配序列,并將該多個匹配序列各 自對應(yīng)的動作名稱作為該只手的多個動作名稱。
[0015] 進(jìn)一步地,步驟五可以包括:步驟五一、預(yù)先設(shè)置如下映射列表來作為所述預(yù)設(shè)手 勢表:該映射列表中的每個映射的左端是一組動作名稱對及每個動作名稱對的位置;該映 射列表中的每個映射的右端是一個手勢;步驟五二、將所述預(yù)設(shè)手勢表中的每個映射的左 端與所述使用者雙手的動作名稱和位置進(jìn)行匹配,其中,動作名稱的匹配執(zhí)行嚴(yán)格匹配,而 位置則是通過使用者雙手各自的平均位置計算得到相對位置信息,進(jìn)而計算該相對位置信 息與映射左端的位置之間的相似度來實現(xiàn)的。
[0016] 進(jìn)一步地,所述人機(jī)交互方法還可以包括:步驟八:將所述使用者每只手的位置 傳遞給所述設(shè)備,以基于所述使用者每只手的位置在所述設(shè)備的屏幕上顯示所述使用者手 部的半透明簡化手部模擬圖形。
[0017] 進(jìn)一步地,步驟八可以包括:步驟八一、根據(jù)所述使用者每只手在所述待測圖像序 列的每幀圖像中對應(yīng)的待測特征點序列,通過連接骨骼后外延得到該只手的外輪廓圖形, 作為該只手的模擬圖形;步驟八二、通過對所述使用者雙手的相對位置進(jìn)行平移校準(zhǔn)和比 例縮放,確定所述使用者的每只手在所述屏幕中的顯示位置;步驟八三、基于所述使用者每 只手的模擬圖形和顯示位置來在所述屏幕中顯示所述使用者手部的模擬圖形。
[0018] 上述根據(jù)本發(fā)明實施例的人機(jī)交互方法,先識別單手動作、再通過雙手動作識別 手勢,進(jìn)而根據(jù)已識別手勢來執(zhí)行對應(yīng)操作,在人機(jī)交互過程中能夠準(zhǔn)確識別使用者的手 勢,識別精度較高,而且識別速度較快。
[0019] 此外,由于本發(fā)明實施例采用深度攝像頭獲取使用者的人體動作作為操作移動計 算設(shè)備的輸入操控指令,因此能夠令使用者使用更加直觀、便利的自然動作實現(xiàn)對移動計 算設(shè)備的非接觸式操控,為移動計算設(shè)備在諸如運動游戲、模擬訓(xùn)練、復(fù)雜操控、遠(yuǎn)距離操 控等領(lǐng)域中的應(yīng)用提供更加便捷精準(zhǔn)的輸入、控制方法。
[0020] 本發(fā)明的上述人機(jī)交互方法采用層次化設(shè)計算法,算法復(fù)雜度低,便于實現(xiàn)。
[0021] 此外,應(yīng)用本發(fā)明的上述人機(jī)交互方法,當(dāng)需要改變(例如修改、增加或減少等) 對動作和/或手勢的定義時,可以僅通過調(diào)整模板(即,通過修改預(yù)設(shè)特征點序列對應(yīng)的動 作名稱來改變動作的定義,通過增加或減少預(yù)設(shè)特征點序列及其對應(yīng)動作名稱來增、減動 作)以及預(yù)設(shè)手勢表(即,通過修改預(yù)設(shè)手勢表中手勢對應(yīng)的多個動作來改變手勢的定義, 通過增加或減少預(yù)設(shè)手勢表中的手勢及其對應(yīng)動作來增、減手勢),而不需改變算法或者重 新訓(xùn)練分類器,大大提高了算法的適應(yīng)性。
[0022] 此外,本發(fā)明的上述人機(jī)交互方法的實時性強(qiáng),能夠適合即時交互需求的場合。