本發(fā)明涉及虛擬現(xiàn)實領域,特別是指一種人體姿態(tài)與虛擬場景疊加的方法、裝置和系統(tǒng)。
背景技術:
虛擬現(xiàn)實(VR,Virtual Reality)技術是一種可以創(chuàng)建和體驗虛擬世界的計算機仿真系統(tǒng)。它利用計算機生成一種模擬環(huán)境,是一種多源信息融合的交互式的三維動態(tài)視景和實體行為的系統(tǒng)仿真使用戶沉浸到該環(huán)境中。
體感游戲(英文:Motion Sensing Game),用身體去感受的電子游戲。突破以往單純以手柄按鍵輸入的操作方式,體感游戲是一種通過肢體動作變化來進行操作的新型電子游戲。
目前在虛擬現(xiàn)實設備(VR設備)上只能進行簡單的體感游戲,無法識別復雜的人體動作。
技術實現(xiàn)要素:
本發(fā)明提供一種人體姿態(tài)與虛擬場景疊加的方法、裝置和系統(tǒng),本發(fā)明用于進行體感游戲,豐富虛擬現(xiàn)實領域應用和游戲的趣味性,并且本發(fā)明能夠識別復雜的人體動作,降低了網(wǎng)絡延遲,實時性好。
為解決上述技術問題,本發(fā)明提供技術方案如下:
一方面,本發(fā)明提供一種人體姿態(tài)與虛擬場景疊加的方法,包括:
步驟100:獲取體感設備采集到的人體姿態(tài)數(shù)據(jù);
步驟200:將所述人體姿態(tài)數(shù)據(jù)整理為人體關鍵點數(shù)據(jù);
步驟300:將所述人體關鍵點數(shù)據(jù)轉(zhuǎn)換為一個字符串;
步驟400:將所述字符串發(fā)送到VR設備,以使所述VR設備將所述字符串解析為所述人體關鍵點數(shù)據(jù),并同步至虛擬人物上。
進一步的,所述人體關鍵點數(shù)據(jù)數(shù)量為25個,包括全身基本點、脊椎中心點、脖子、頭部、左肩膀、左肘、左手腕、左手、右肩膀、右肘、右手腕、右手、左臀、左膝蓋、左踝、左腳、右臀、右膝蓋、右踝、右腳、肩膀中心點、左手腕、左手指、右手腕、右手指。
進一步的,所述字符串包括人體在世界坐標系下的位置數(shù)據(jù)、人體關鍵點的位置數(shù)據(jù)、人體手部的位置數(shù)據(jù)。
進一步的,所述步驟400中,使用Socket技術將所述字符串發(fā)送到所述VR設備。
另一方面,本發(fā)明提供一種服務端,所述服務端包括:
人體姿態(tài)數(shù)據(jù)獲取模塊,用于獲取體感設備采集到的人體姿態(tài)數(shù)據(jù);
人體姿態(tài)數(shù)據(jù)整理模塊,用于將所述人體姿態(tài)數(shù)據(jù)整理為人體關鍵點數(shù)據(jù);
人體關鍵點數(shù)據(jù)轉(zhuǎn)換模塊,用于將所述人體關鍵點數(shù)據(jù)轉(zhuǎn)換為一個字符串;
字符串發(fā)送模塊,用于將所述字符串發(fā)送到VR設備,以使所述VR設備將所述字符串解析為所述人體關鍵點數(shù)據(jù),并同步至虛擬人物上。
進一步的,所述人體關鍵點數(shù)據(jù)數(shù)量為25個,包括全身基本點、脊椎中心點、脖子、頭部、左肩膀、左肘、左手腕、左手、右肩膀、右肘、右手腕、右手、左臀、左膝蓋、左踝、左腳、右臀、右膝蓋、右踝、右腳、肩膀中心點、左手腕、左手指、右手腕、右手指。
進一步的,所述字符串包括人體在世界坐標系下的位置數(shù)據(jù)、人體關鍵點的位置數(shù)據(jù)、人體手部的位置數(shù)據(jù)。
進一步的,所述字符串發(fā)送模塊中,使用Socket技術將所述字符串發(fā)送到所述VR設備。
再一方面,本發(fā)明提供一種人體姿態(tài)與虛擬場景疊加的系統(tǒng),包括體感設備、VR設備和上述的服務端,其中:
所述體感設備與所述服務端連接,所述服務端與VR設備通過無線網(wǎng)絡連接。
本發(fā)明具有以下有益效果:
本發(fā)明的人體姿態(tài)與虛擬場景疊加的方法利用網(wǎng)絡通信的機制,將VR設備和服務器之間建立一個局域網(wǎng),體感設備連接至服務端并進行輸入數(shù)據(jù)采集,同時服務端再將采集到的數(shù)據(jù)通過局域網(wǎng)發(fā)送至VR設備,最后VR設備對采集到的數(shù)據(jù)進行同步展現(xiàn)和更新,控制虛擬人物的動作,與虛擬場景進行疊加,并與場景中的元素進行互動,豐富虛擬現(xiàn)實領域應用和游戲的趣味性。
并且本發(fā)明使用人體關鍵點數(shù)據(jù)模擬人體的姿態(tài),能夠識別復雜的人體動作,另外,本發(fā)明將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為字符串進行傳輸,提高了傳輸效率,降低了網(wǎng)絡延遲,實時性好。
附圖說明
圖1為本發(fā)明的應用場景示意圖;
圖2為本發(fā)明的人體姿態(tài)與虛擬場景疊加的方法示意圖;
圖3為本發(fā)明的服務端的示意圖;
圖4為本發(fā)明的人體姿態(tài)與虛擬場景疊加的系統(tǒng)示意圖。
具體實施方式
為使本發(fā)明要解決的技術問題、技術方案和優(yōu)點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發(fā)明適用于在VR設備上進行體感游戲的場景,其中,體感設備與服務端相連,服務端與VR設備通過網(wǎng)絡相連,如圖1所示。本發(fā)明中所述的服務端既可以是服務器,也可以是PC機,體感設備是指能夠采集人體姿態(tài)數(shù)據(jù)的設備,如體感攝影機等,網(wǎng)絡連接優(yōu)選為無線網(wǎng)絡連接,VR設備指安卓或者IOS端設備(包含手機、內(nèi)置處理芯片的VR一體機頭顯等類似設備等,本發(fā)明和均用VR設備表述)。
一方面,本發(fā)明提供一種人體姿態(tài)與虛擬場景疊加的方法,本發(fā)明的方法應用在服務端,如圖2所示,包括:
步驟100:獲取體感設備采集到的人體姿態(tài)數(shù)據(jù)。
本步驟中,體感設備,優(yōu)選為3D體感攝影機,它能夠?qū)崿F(xiàn)即時動態(tài)捕捉、影像辨識、麥克風輸入、語音辨識、社群互動等功能。體感設備采集人體姿態(tài)數(shù)據(jù),并將其發(fā)送到服務端。
步驟200:將人體姿態(tài)數(shù)據(jù)整理為人體關鍵點數(shù)據(jù)。
體感設備采集的人體姿態(tài)數(shù)據(jù)的數(shù)據(jù)量比較龐大繁雜,不利于傳輸及使用,需要進行檢測、篩選過濾,然后整理為人體關鍵點數(shù)據(jù),人體關鍵點數(shù)據(jù)可以很好地模擬人體姿態(tài)。
步驟300:將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為一個字符串。
人體關鍵點數(shù)據(jù)的數(shù)據(jù)格式不利于網(wǎng)絡傳輸,為了提高傳輸效率,可以將其按照一定規(guī)則整理成一個字符串。
步驟400:將字符串發(fā)送到VR設備,以使VR設備將字符串解析為人體關鍵點數(shù)據(jù),并同步至虛擬人物上。
VR設備接收到字符串后,重新解析為人體關鍵點數(shù)據(jù),同步至虛擬場景中的虛擬人物上,使虛擬人物做出相應的動作(即外界人體的動作)。在虛擬場景中,虛擬人物可以和場景中的元素進行互動,達到人體姿態(tài)和虛擬場景進行疊加的目的。
本發(fā)明的人體姿態(tài)與虛擬場景疊加的方法利用網(wǎng)絡通信的機制,將VR設備和服務器之間建立一個局域網(wǎng),體感設備連接至服務端并進行輸入數(shù)據(jù)采集,同時服務端再將采集到的數(shù)據(jù)通過局域網(wǎng)發(fā)送至VR設備,最后VR設備對采集到的數(shù)據(jù)進行同步展現(xiàn)和更新,控制虛擬人物的動作,與虛擬場景進行疊加,并與場景中的元素進行互動,豐富虛擬現(xiàn)實領域應用和游戲的趣味性。
并且本發(fā)明使用人體關鍵點數(shù)據(jù)模擬人體的姿態(tài),能夠識別復雜的人體動作,另外,本發(fā)明將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為字符串進行傳輸,提高了傳輸效率,降低了網(wǎng)絡延遲,實時性好。
為了更好地表征人體姿態(tài),人體關鍵點數(shù)據(jù)數(shù)量為25個,包括全身基本點、脊椎中心點、脖子、頭部、左肩膀、左肘、左手腕、左手、右肩膀、右肘、右手腕、右手、左臀、左膝蓋、左踝、左腳、右臀、右膝蓋、右踝、右腳、肩膀中心點、左手腕、左手指、右手腕、右手指。上述25個關鍵點主要是人體關節(jié)點或骨骼結構,25個關鍵點(關節(jié)點、骨骼結構)可以模擬出人體的絕大部分肢體動作和形態(tài)。
前述的字符串可以有多種數(shù)據(jù)格式,優(yōu)選的,字符串包括當前幀人體在世界坐標系下的位置數(shù)據(jù)、當前幀人體25個關鍵點的位置數(shù)據(jù)、當前幀人體手部的位置數(shù)據(jù)。其中將手部的數(shù)據(jù)單獨發(fā)送是為了做手勢識別方便。世界坐標系,即以人物所在位置為坐標原點,其它物體相對于該點的相對位置。
數(shù)據(jù)格式如下:
km,1.000,0.000,0.000,0.000,0.000,1.000,0.000,1.000,0.000,0.000,1.000,0.000,0.000,0.000,0.000,1.000|
kb,26300644264040000,6,25,0,0,0,0,0,0|
kh,26300644264040000,6,0,0,0,0,0,0
其中km行表示當前幀人體在世界坐標系下的位置數(shù)據(jù);kb行表示當前幀人體25個關鍵點的位置數(shù)據(jù);kh行表示當前幀人體手部的位置數(shù)據(jù)。
為了進一步提高數(shù)據(jù)傳輸?shù)膶崟r性,步驟400中,使用Socket技術將字符串發(fā)送到VR設備。
Socket,作為BSD UNIX的進程通信機制,通常也稱作套接字,用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現(xiàn)不同虛擬機或不同計算機之間的通信。
本發(fā)明基于上述原理,可以在Unity引擎中使用UNet技術進行實現(xiàn)字符串的發(fā)送。
UNet是Unity3D中的一個網(wǎng)絡通信模塊,底層基于Socket技術,對其進行封裝,使用Unet及高層次的API,可以非常方便的建立一個基于網(wǎng)絡的通信環(huán)境。
Unity3D是由Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)游戲引擎。
UNet使用UDP協(xié)議實現(xiàn)的P2P數(shù)據(jù)同步。其中,UDP協(xié)議全稱是用戶數(shù)據(jù)報協(xié)議,在網(wǎng)絡中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。它具有資源消耗小,處理速度快的優(yōu)點,即使偶爾丟失一兩個數(shù)據(jù)包,也不會對接收結果產(chǎn)生太大影響。
本發(fā)明使用Unet通信技術,使得本發(fā)明的延遲性低、實時性好。
當然,也可以使用Unreal、CryEngine等引擎,其網(wǎng)絡通信模塊底層也是基于Socket技術。
另一方面,本發(fā)明提供一種服務端(人體姿態(tài)與虛擬場景疊加的裝置)1,如圖3所示,服務端包括:
人體姿態(tài)數(shù)據(jù)獲取模塊11,用于獲取體感設備采集到的人體姿態(tài)數(shù)據(jù)。
人體姿態(tài)數(shù)據(jù)整理模塊12,用于將人體姿態(tài)數(shù)據(jù)整理為人體關鍵點數(shù)據(jù)。
人體關鍵點數(shù)據(jù)轉(zhuǎn)換模塊13,用于將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為一個字符串。
字符串發(fā)送模塊14,用于將字符串發(fā)送到VR設備,以使VR設備將字符串解析為人體關鍵點數(shù)據(jù),并同步至虛擬人物上。
本發(fā)明的人體姿態(tài)與虛擬場景疊加的方法利用網(wǎng)絡通信的機制,將VR設備和服務器之間建立一個局域網(wǎng),體感設備連接至服務端并進行輸入數(shù)據(jù)采集,同時服務端再將采集到的數(shù)據(jù)通過局域網(wǎng)發(fā)送至VR設備,最后VR設備對采集到的數(shù)據(jù)進行同步展現(xiàn)和更新,控制虛擬人物的動作,與虛擬場景進行疊加,并與場景中的元素進行互動,豐富虛擬現(xiàn)實領域應用和游戲的趣味性。
并且本發(fā)明使用人體關鍵點數(shù)據(jù)模擬人體的姿態(tài),能夠識別復雜的人體動作,另外,本發(fā)明將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為字符串進行傳輸,提高了傳輸效率,降低了網(wǎng)絡延遲,實時性好。
為了更好地表征人體姿態(tài),人體關鍵點數(shù)據(jù)數(shù)量為25個,包括全身基本點、脊椎中心點、脖子、頭部、左肩膀、左肘、左手腕、左手、右肩膀、右肘、右手腕、右手、左臀、左膝蓋、左踝、左腳、右臀、右膝蓋、右踝、右腳、肩膀中心點、左手腕、左手指、右手腕、右手指。上述25個關鍵點主要是人體關節(jié)點或骨骼結構,25個關鍵點(關節(jié)點、骨骼結構)可以模擬出人體的絕大部分肢體動作和形態(tài)。
前述的字符串可以有多種數(shù)據(jù)格式,優(yōu)選的,字符串包括人體在世界坐標系下的位置數(shù)據(jù)、人體關鍵點的位置數(shù)據(jù)、人體手部的位置數(shù)據(jù)。
為了進一步提高數(shù)據(jù)傳輸?shù)膶崟r性,字符串發(fā)送模塊中,使用Socket技術將字符串發(fā)送到VR設備。本發(fā)明使用Unet通信技術,使得本發(fā)明的延遲性低、實時性好。
再一方面,本發(fā)明提供一種人體姿態(tài)與虛擬場景疊加的系統(tǒng),如圖4所示,包括體感設備2、VR設備3和上述的服務端1,其中:
體感設備2與服務端1連接,服務端1與VR設備3通過無線網(wǎng)絡連接。
本發(fā)明的人體姿態(tài)與虛擬場景疊加的方法利用網(wǎng)絡通信的機制,將VR設備和服務器之間建立一個局域網(wǎng),體感設備連接至服務端并進行輸入數(shù)據(jù)采集,同時服務端再將采集到的數(shù)據(jù)通過局域網(wǎng)發(fā)送至VR設備,最后VR設備對采集到的數(shù)據(jù)進行同步展現(xiàn)和更新,控制虛擬人物的動作,與虛擬場景進行疊加,并與場景中的元素進行互動,豐富虛擬現(xiàn)實領域應用和游戲的趣味性。
并且本發(fā)明使用人體關鍵點數(shù)據(jù)模擬人體的姿態(tài),能夠識別復雜的人體動作,另外,本發(fā)明將人體關鍵點數(shù)據(jù)轉(zhuǎn)換為字符串進行傳輸,提高了傳輸效率,降低了網(wǎng)絡延遲,實時性好。
以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。