本發(fā)明涉及人機交互技術(shù)領(lǐng)域,具體涉及一種基于深度相機kinect的體感交互轉(zhuǎn)換方法及裝置。
背景技術(shù):
體感交互的出現(xiàn)是人與機器對話方式回歸自然的重要轉(zhuǎn)折,體現(xiàn)了人們對“以人為中心”設(shè)計理念的不懈追求。體感游戲是體感交互的一個重要的應(yīng)用領(lǐng)域,突破了以往單純以手柄按鍵輸入的操作方式,使人們可以通過肢體動作控制計算機。作為一種新興的游戲體驗?zāi)J?,體感游戲?qū)⒂脩魪目刂圃O(shè)備中解放出來,從人機交互角度上來說,可以使玩家自然直觀的沉浸在游戲中,帶動全身同時運動,讓玩家在游戲中得到鍛煉,同時也給玩家?guī)砀叩挠螒驑啡ぁ?/p>
kinect作為新一代的新型人機交互設(shè)備,可以實現(xiàn)將實時捕捉到的人的動作、面部表情以及語音作為機器輸入指令,這一強大的特性也使得kinect成為人機交互領(lǐng)域的一個熱點。但目前開發(fā)團隊開發(fā)出優(yōu)秀的基于kinect體感游戲存在一定的困難,如游戲開發(fā)成本高,設(shè)計水平及質(zhì)量參差不齊,制作周期長,開發(fā)效率低等,而制作精良的非體感交互的游戲,游戲數(shù)量龐大,資源較為豐富,卻不能支持體感化操作。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明要解決的問題:提出一種有效的體感交互轉(zhuǎn)換工具,實現(xiàn)非體感應(yīng)用的體感化操作。
一方面,本發(fā)明實施例提出一種基于深度相機kinect的體感交互轉(zhuǎn)換方法,包括:
s1、通過深度相機kinect獲取人體骨骼及關(guān)節(jié)點的空間信息;
s2、建立用戶空間坐標(biāo)系,將所述空間信息轉(zhuǎn)換到所述用戶空間坐標(biāo)系;
s3、基于轉(zhuǎn)換后的空間信息構(gòu)建人體骨架三維模型;
s4、通過依據(jù)所述人體骨架三維模型對姿態(tài)進行定義,建立姿態(tài)模板庫,其中,所述姿態(tài)模板庫包括至少一個姿態(tài)的定義描述以及該姿態(tài)所屬的姿態(tài)類型;
s5、對用戶做出的動作姿態(tài)進行解析,通過將解析結(jié)果與所述姿態(tài)模板庫中的姿態(tài)進行匹配,識別出用戶做出的動作姿態(tài)所屬的姿態(tài)類型,根據(jù)所述姿態(tài)類型通過消息響應(yīng)機制激發(fā)所述姿態(tài)類型對應(yīng)的鍵盤消息。
另一方面,本發(fā)明實施例提出一種基于深度相機kinect的體感交互轉(zhuǎn)換裝置,包括:
獲取單元,用于通過深度相機kinect獲取人體骨骼及關(guān)節(jié)點的空間信息;
轉(zhuǎn)換單元,用于建立用戶空間坐標(biāo)系,將所述空間信息轉(zhuǎn)換到所述用戶空間坐標(biāo)系;
構(gòu)建單元,用于基于轉(zhuǎn)換后的空間信息構(gòu)建人體骨架三維模型;
建立單元,用于通過依據(jù)所述人體骨架三維模型對姿態(tài)進行定義,建立姿態(tài)模板庫,其中,所述姿態(tài)模板庫包括至少一個姿態(tài)的定義描述以及該姿態(tài)所屬的姿態(tài)類型;
匹配單元,用于對用戶做出的動作姿態(tài)進行解析,通過將解析結(jié)果與所述姿態(tài)模板庫中的姿態(tài)進行匹配,識別出用戶做出的動作姿態(tài)所屬的姿態(tài)類型,根據(jù)所述姿態(tài)類型通過消息響應(yīng)機制激發(fā)所述姿態(tài)類型對應(yīng)的鍵盤消息。
本發(fā)明實施例提供的基于深度相機kinect的體感交互轉(zhuǎn)換方法及裝置,提出并設(shè)計了一種可以將原本基于鍵盤操作的電腦應(yīng)用轉(zhuǎn)換為基于kinect體感控制的中間件軟件,實現(xiàn)了用戶身體動作與電腦鍵盤消息的實時映射。經(jīng)實驗證明,本發(fā)明所提出的方法能夠使用戶通過姿態(tài)控制的方式來控制原本基于電腦鍵盤交互的應(yīng)用,達到了豐富體感游戲資源的目的。
附圖說明
圖1為本發(fā)明基于深度相機kinect的體感交互轉(zhuǎn)換方法一實施例的流程示意圖;
圖2為圖1中步驟s3得到的人體骨架三維模型的示意圖;
圖3為本發(fā)明基于深度相機kinect的體感交互轉(zhuǎn)換裝置一實施例的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參看圖1,本實施例公開一種基于深度相機kinect的體感交互轉(zhuǎn)換方法,包括:
s1、通過深度相機kinect獲取人體骨骼及關(guān)節(jié)點的空間信息;
s2、建立用戶空間坐標(biāo)系,將所述空間信息轉(zhuǎn)換到所述用戶空間坐標(biāo)系;
s3、基于轉(zhuǎn)換后的空間信息構(gòu)建人體骨架三維模型;
s4、通過依據(jù)所述人體骨架三維模型對姿態(tài)進行定義,建立姿態(tài)模板庫,其中,所述姿態(tài)模板庫包括至少一個姿態(tài)的定義描述以及該姿態(tài)所屬的姿態(tài)類型;
s5、對用戶做出的動作姿態(tài)進行解析,通過將解析結(jié)果與所述姿態(tài)模板庫中的姿態(tài)進行匹配,識別出用戶做出的動作姿態(tài)所屬的姿態(tài)類型,根據(jù)所述姿態(tài)類型通過消息響應(yīng)機制激發(fā)所述姿態(tài)類型對應(yīng)的鍵盤消息。
當(dāng)用戶在kinect設(shè)備前做出特定的動作時,若該動作剛好可以被動作模板庫中的動作所匹配,則相對應(yīng)的動作類型則會檢索出來,至此則完成了動作識別過程。之后識別出的動作類型會觸發(fā)特定的按鍵消息,從而使用戶通過直接做出特定動作控制鍵盤,實現(xiàn)了鍵盤交互到體感交互的轉(zhuǎn)換。
本發(fā)明實施例提供的基于深度相機kinect的體感交互轉(zhuǎn)換方法,通過上述技術(shù)方案,提出并設(shè)計了一種可以將原本基于鍵盤操作的電腦應(yīng)用轉(zhuǎn)換為基于kinect體感控制的中間件軟件,實現(xiàn)了用戶身體動作與電腦鍵盤消息的實時映射。
在前述方法實施例的基礎(chǔ)上,所述s1中獲取到的空間信息基于kinect設(shè)備空間坐標(biāo)系,包括基于kinect的人體20個關(guān)節(jié)點的坐標(biāo)、速度信息以及由關(guān)節(jié)點所確定的骨骼的旋轉(zhuǎn)信息,通過微軟提供的kinectforwindowssdk中的bodyframesource,bodyframereader,bodyframereference,bodyframe和body類來獲取基本骨架數(shù)據(jù)信息。這些信息基于kinect設(shè)備空間坐標(biāo)系。20個關(guān)節(jié)點分別包括脊椎關(guān)節(jié)集合(頭部、頸部、肩部中央、盆骨中央),右臂集合(右肩、右肘、右腕,右手),左臂集合(左肩、左肘、左腕,左手),右腿集合(右臀、右膝、右踝、右腳),左腿集合(左臀、左膝、左踝、左腳)。
在前述方法實施例的基礎(chǔ)上,所述s2,可以包括:
s21、以用戶右手方向為x軸正方向,頭部向上為y軸正方向,面向深度相機kinect正前方為z軸正方向,臀部為坐標(biāo)原點構(gòu)建用戶空間坐標(biāo)系;
s22、將所述人體關(guān)節(jié)點的坐標(biāo)轉(zhuǎn)換到所述用戶空間坐標(biāo)系,轉(zhuǎn)換關(guān)系為:
式中,(x,y,z)為kinect設(shè)備空間坐標(biāo)系下的坐標(biāo)點,(x′,y′,z′)為用戶空間坐標(biāo)系下對應(yīng)的坐標(biāo)點,(x0,y0,z0)為用戶空間坐標(biāo)系的坐標(biāo)原點。
在前述方法實施例的基礎(chǔ)上,所述人體骨架三維模型的構(gòu)成特征可以包括關(guān)節(jié)點三維坐標(biāo)、關(guān)節(jié)點之間的歐氏距離、關(guān)節(jié)點之間的方向向量、關(guān)節(jié)點與骨骼段之間的距離、骨骼段之間的夾角,以及關(guān)節(jié)點在時間域上的速度。構(gòu)建骨架模型的基本幾何要素包括:點,線段。點對應(yīng)于骨架模型中的關(guān)節(jié)點,線段對應(yīng)于骨架模型中的骨骼段。如圖2所示為人體骨架三維模型的示意圖,20個圓點表示20個關(guān)節(jié),圓點連線表示骨骼段。
在前述方法實施例的基礎(chǔ)上,所述s4,可以包括:
根據(jù)所述人體骨架三維模型,基于關(guān)節(jié)點的位置關(guān)系、骨骼段之間的角度和關(guān)節(jié)點的速度這三種元素對姿態(tài)進行描述性定義。
本實施例中,基于關(guān)節(jié)點位置的描述:采用閾值觸發(fā)機制,如定義“舉右手”這個動作時,只需要使右手關(guān)節(jié)坐標(biāo)的z坐標(biāo)減去右肩關(guān)節(jié)坐標(biāo)的z坐標(biāo)大于一定閾值便可實現(xiàn);基于骨骼段之間角度的描述:每一個骨骼段在3d空間坐標(biāo)系中表現(xiàn)為一個有長度、有方向的向量,兩個向量形成的夾角可以用來描述骨骼段之間的旋轉(zhuǎn)信息;基于關(guān)節(jié)點相對速度的描述:相對速度的描述指的是人體關(guān)節(jié)在移動時相對于參考骨架節(jié)點的速度,通過儲存關(guān)節(jié)點的當(dāng)前幀的位置和上一幀的位置,關(guān)節(jié)點在兩幀數(shù)據(jù)的位置之差比上幀間時差,即可得到該關(guān)節(jié)點的相對速度。相對速度的描述主要是用以配合相對位置的描述和角度的描述,將滿足相對位置或角度的條件的過程納入動作描述的一種方式中。相對速度主要是體現(xiàn)了這個動作的劇烈程度。基于關(guān)節(jié)點的位置關(guān)系、骨骼段之間的角度和關(guān)節(jié)點的速度這三種對姿態(tài)的描述方式,便可以對姿態(tài)進行描述,對不同動作類型分別設(shè)定不同的閾值,建立動作模板庫,為動作的識別提供索引,模板庫里的每一個動作類型都會觸發(fā)某一個特定的按鍵消息。
參看圖3,本實施例公開一種基于深度相機kinect的體感交互轉(zhuǎn)換裝置,包括:
獲取單元1,用于通過深度相機kinect獲取人體骨骼及關(guān)節(jié)點的空間信息;
需要說明的是,所述獲取單元1獲取到的空間信息基于kinect設(shè)備空間坐標(biāo)系,包括基于kinect的人體關(guān)節(jié)點的坐標(biāo)、速度信息以及由關(guān)節(jié)點所確定的骨骼的旋轉(zhuǎn)信息。
轉(zhuǎn)換單元2,用于建立用戶空間坐標(biāo)系,將所述空間信息轉(zhuǎn)換到所述用戶空間坐標(biāo)系;
本實施例中,所述轉(zhuǎn)換單元,具體可以用于:
以用戶右手方向為x軸正方向,頭部向上為y軸正方向,面向深度相機kinect正前方為z軸正方向,臀部為坐標(biāo)原點構(gòu)建用戶空間坐標(biāo)系;
將所述人體關(guān)節(jié)點的坐標(biāo)轉(zhuǎn)換到所述用戶空間坐標(biāo)系,轉(zhuǎn)換關(guān)系為:
式中,(x,y,z)為kinect設(shè)備空間坐標(biāo)系下的坐標(biāo)點,(x′,y′,z′)為用戶空間坐標(biāo)系下對應(yīng)的坐標(biāo)點,(x0,y0,z0)為用戶空間坐標(biāo)系的坐標(biāo)原點。
構(gòu)建單元3,用于基于轉(zhuǎn)換后的空間信息構(gòu)建人體骨架三維模型;
可以理解的是,所述人體骨架三維模型的構(gòu)成特征可以包括關(guān)節(jié)點三維坐標(biāo)、關(guān)節(jié)點之間的歐氏距離、關(guān)節(jié)點之間的方向向量、關(guān)節(jié)點與骨骼段之間的距離、骨骼段之間的夾角,以及關(guān)節(jié)點在時間域上的速度。
建立單元4,用于通過依據(jù)所述人體骨架三維模型對姿態(tài)進行定義,建立姿態(tài)模板庫,其中,所述姿態(tài)模板庫包括至少一個姿態(tài)的定義描述以及該姿態(tài)所屬的姿態(tài)類型;
本實施例中,所述建立單元,具體可以用于:
根據(jù)所述人體骨架三維模型,基于關(guān)節(jié)點的位置關(guān)系、骨骼段之間的角度和關(guān)節(jié)點的速度這三種元素對姿態(tài)進行描述性定義。
匹配單元5,用于對用戶做出的動作姿態(tài)進行解析,通過將解析結(jié)果與所述姿態(tài)模板庫中的姿態(tài)進行匹配,識別出用戶做出的動作姿態(tài)所屬的姿態(tài)類型,根據(jù)所述姿態(tài)類型通過消息響應(yīng)機制激發(fā)所述姿態(tài)類型對應(yīng)的鍵盤消息。
本發(fā)明實施例提供的基于深度相機kinect的體感交互轉(zhuǎn)換裝置,通過上述技術(shù)方案,提出并設(shè)計了一種可以將原本基于鍵盤操作的電腦應(yīng)用轉(zhuǎn)換為基于kinect體感控制的中間件軟件,實現(xiàn)了用戶身體動作與電腦鍵盤消息的實時映射。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。術(shù)語“上”、“下”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
本發(fā)明的說明書中,說明了大量具體細節(jié)。然而能夠理解的是,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本發(fā)明公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋呈反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發(fā)明并不局限于任何單一的方面,也不局限于任何單一的實施例,也不局限于這些方面和/或?qū)嵤├娜我饨M合和/或置換。而且,可以單獨使用本發(fā)明的每個方面和/或?qū)嵤├蛘吲c一個或更多其他方面和/或其實施例結(jié)合使用。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。