本發(fā)明涉及虛擬現(xiàn)實(shí)和智能識別技術(shù)領(lǐng)域,尤其是一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互系統(tǒng)及方法。
背景技術(shù):
隨著社會的不斷發(fā)展和電子設(shè)備的不斷普及,人機(jī)之間的交互變得越來越頻繁。人們也一直在不斷努力創(chuàng)造一種更加自然、人性化的交互系統(tǒng)。
在對機(jī)器的輸入方面,傳統(tǒng)的交互設(shè)備如:鼠標(biāo)、鍵盤、手柄等,又或者是比較新型的交互設(shè)備如:數(shù)據(jù)手套、全身運(yùn)動捕捉系統(tǒng)等穿戴設(shè)備,都會給人的行為附加上一些物理?xiàng)l件的限制,一定程度上束縛了人的自由,增加人的負(fù)擔(dān),而且這些交互方式均不是人們?nèi)粘;顒又幸哉Z言、動作為主的交互方式。
在機(jī)器對人的反饋方面,比較傳統(tǒng)的方式如:在軟件交互界面彈出一些圖片、對話框,播放一段音樂或人聲,也就僅能通過視覺、聽覺與人進(jìn)行交互,類人型機(jī)器人和智能語音助理,它們與人的交互也只是通過識別一些比較僵硬的靜態(tài)肢體動作或簡單的語言來進(jìn)行,由此可見,目前智能體的外形及交互方式比較呆板單一,還沒有達(dá)到能像人與人交互同時具有動作和語音的程度。
對于這樣的研究現(xiàn)狀,我們需要設(shè)計一個具有高度類人外觀及動作,可通過動作及語言等方式進(jìn)行動態(tài)交互的智能體系統(tǒng)?;贙inect攝像頭捕捉并識別人體連續(xù)動作的交互手段,人性化程度高,操作比較自由便捷友好,沒有傳統(tǒng)人機(jī)交互設(shè)備給人帶來的束縛,虛擬人智能體,擁有人的外觀、肢體動作、表情及語言,容易讓交互對象產(chǎn)生親切感,以解決傳統(tǒng)及現(xiàn)有人機(jī)交互反饋環(huán)節(jié)比較呆板單一的局限性,將兩項(xiàng)技術(shù)相結(jié)合,可實(shí)現(xiàn)更加人性化、類人化的生動有趣的人機(jī)交互過程,給用戶帶來一種新的體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對上述現(xiàn)有技術(shù)的不足,提供了一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互系統(tǒng)。
本發(fā)明的另一目的在于提供一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互方法。
本發(fā)明的目的可以通過如下技術(shù)方案實(shí)現(xiàn):
一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互系統(tǒng),包括手勢與數(shù)字識別模塊、中央服務(wù)器模塊與虛擬人控制模塊,所述手勢與數(shù)字識別模塊用于提取手部區(qū)間,識別手勢及手寫軌跡;所述中央服務(wù)器模塊用于連接手勢與數(shù)字識別模塊和虛擬人控制模塊,實(shí)現(xiàn)數(shù)據(jù)的采集,傳輸和命令發(fā)送;所述虛擬人控制模塊為在實(shí)際中與人進(jìn)行互動的載體,展示出虛擬人,根據(jù)從中央服務(wù)器模塊接受來的命令,對虛擬人進(jìn)行動作、語言、表情等操控,實(shí)現(xiàn)與人的交互。
優(yōu)選地,所述手勢與數(shù)字識別模塊中采用Kinect作為傳感器。
優(yōu)選地,所述中央服務(wù)器模塊的搭建是基于RPC-Thrift架構(gòu),在該架構(gòu)中,定義統(tǒng)一的傳輸數(shù)據(jù)變量,包括識別的手勢與數(shù)字以及對虛擬人的動作、語言控制,運(yùn)用Thrift代碼生成器編譯成C++和Python的客戶端與服務(wù)端服務(wù)代碼框架,接著運(yùn)用Python運(yùn)行服務(wù)器端的代碼搭建起電腦本地端的服務(wù)器,并運(yùn)用決策樹設(shè)計出基于手勢與數(shù)字識別結(jié)果的虛擬人控制決策架構(gòu)。
優(yōu)選地,所述虛擬人控制模塊搭建虛擬人是基于smartbody系統(tǒng)結(jié)合ogre游戲引擎,結(jié)合3D-Max建模軟件和motion Builder動作設(shè)計軟件,對于復(fù)雜動作的設(shè)計,采用Kinect獲取真人骨架信息嵌套到虛擬人上的方法來完成,并通過Python語言進(jìn)行行為動作、語言、表情的控制。
本發(fā)明的另一目的可以通過如下技術(shù)方案實(shí)現(xiàn):
一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互方法,所述方法包括如下步驟:
1)通過手勢與數(shù)字識別模塊中的Kinect獲取用戶的深度數(shù)據(jù)及骨架信息;
2)結(jié)合步驟1)中獲得的深度數(shù)據(jù)和骨架信息,利用人在空中書寫時手為身體與Kinect距離值最小部分的原理,分離出人手的部分;
3)提取出手部輪廓,利用外輪廓線距離手心峰值點(diǎn)數(shù)目原理,識別手部手勢,并發(fā)送給中央服務(wù)器模塊;
4)將手部區(qū)域距離攝像頭最近的點(diǎn)定為指尖點(diǎn)位置,當(dāng)識別到手部手勢為書寫手勢,即步驟3)中提到的手指峰值點(diǎn)數(shù)目等于1時,開始記錄指尖點(diǎn)位置,當(dāng)識別到手部手勢為結(jié)束手勢,即步驟3)中提到的手指峰值點(diǎn)數(shù)目在4以上或跟蹤手掌丟失時,指尖點(diǎn)位置記錄停止;
5)將步驟4)中記錄的指尖點(diǎn)位置,即手寫軌跡,進(jìn)行輪廓檢測、提取和筆畫粗細(xì)優(yōu)化及轉(zhuǎn)換處理;
6)將步驟5)中處理后的手寫軌跡,輸入到DWKNN識別器中進(jìn)行數(shù)字識別;
7)將步驟6)中的識別結(jié)果通過RPC協(xié)議發(fā)送給中央服務(wù)器模塊;
8)中央服務(wù)器模塊通過RPC協(xié)議接收來自手勢與數(shù)字識別模塊的識別結(jié)果;
9)中央服務(wù)器模塊根據(jù)步驟8)中接收的識別結(jié)果,通過RPC協(xié)議向虛擬人控制模塊發(fā)送對虛擬人動作、語言、表情的控制命令;
10)初始化虛擬人控制模塊中的虛擬場景,展示出虛擬人;
11)虛擬人控制模塊通過RPC協(xié)議,接收來自中央服務(wù)器模塊的虛擬人控制指令;
12)根據(jù)步驟11)中接收的虛擬人控制指令,對虛擬人實(shí)行動作、語言、表情等相關(guān)操控,實(shí)現(xiàn)人機(jī)交互。
優(yōu)選地,步驟2)包括如下步驟:
a)采用Kinect作為傳感器,采集用戶的深度數(shù)據(jù)及骨架信息;
b)通過Kinect提供的API提供深度圖像及深度圖像中每一個像素點(diǎn)所屬的用戶ID;
c)運(yùn)用用戶ID數(shù)據(jù)在深度圖像中分離出一幅身體部分的深度圖像;
d)對只有身體部分的深度圖像進(jìn)行遍歷,找出具有最小的深度值的點(diǎn);
e)基于空中書寫時指尖會在整個人體的最前端的原理,將具有最小的深度值的點(diǎn)的位置定為手指尖點(diǎn)的位置;
f)再遍歷只有身體部分的深度圖像,分離出大于手指尖深度值一定數(shù)值的圖像,將其認(rèn)定為手部圖像。
優(yōu)選地,步驟3)包括如下步驟:
g)對步驟f)中的手部圖像進(jìn)行邊緣檢測,獲取手部輪廓點(diǎn)集;
h)對點(diǎn)集求最小面積包圍圓,將圓心定為手心點(diǎn);
i)計算點(diǎn)集中的每個點(diǎn)與手心點(diǎn)的距離,按順時針方向遍歷,找出峰值點(diǎn);
j)根據(jù)峰值點(diǎn),即手指點(diǎn)的數(shù)量,得出最終的人手手掌狀態(tài)結(jié)果。
優(yōu)選地,步驟5)包括如下步驟:
k)當(dāng)識別到開始手寫的手勢后,開始記錄下每一個指尖點(diǎn)的位置,并在一幅圖像中實(shí)時地畫出這些點(diǎn)并連接起來,展示給用戶;
l)待手寫結(jié)束后,獲得一個關(guān)于指尖點(diǎn)手寫數(shù)字軌跡的點(diǎn)集以及一幅原始軌跡圖像;
m)對指尖點(diǎn)手寫數(shù)字軌跡的點(diǎn)集求出最小面積的包圍矩形,并根據(jù)包圍矩形的面積調(diào)整點(diǎn)與點(diǎn)之間連線的粗細(xì),獲得新的畫有白色手寫軌跡的黑色圖像;
n)再對這幅新的畫有白色手寫軌跡的黑色圖像進(jìn)行邊緣檢測,找出一個新的軌跡點(diǎn)集,求出新的最小面積的包圍矩形;
o)運(yùn)用新的最小面積的包圍矩形在新的畫有白色手寫軌跡的黑色圖像中截取出只有單純手寫軌跡的圖像;
p)將只有單純手寫軌跡的圖像縮放成32*32的01矩陣。
優(yōu)選地,在步驟5)中,對于數(shù)字1的處理,如果單純地對數(shù)字1的軌跡求最小面積的包圍矩形,最終得出來的圖像將是一副全白的圖像,因此,在計算出最小面積的包圍矩形后,要對最小面積的包圍矩形的長寬比進(jìn)行判斷,長寬比小于0.5的視為數(shù)字1,然后對最小面積的包圍矩形的長和寬進(jìn)行調(diào)整,努力使長寬比達(dá)到1:1,最后對32*32的圖像進(jìn)行二值化處理,轉(zhuǎn)化成32*32的01矩陣。
優(yōu)選地,步驟6)中對手寫軌跡的識別采用的是DWKNN算法,其中對距離的計算,采用的是歐式幾何距離算法。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
1、現(xiàn)有技術(shù)大多數(shù)只將Kinect運(yùn)用于人體靜態(tài)單一姿勢和動作的捕捉與識別中,本發(fā)明運(yùn)用Kinect捕捉人體手部連續(xù)的手寫動作,可識別動態(tài)3D手寫的數(shù)字及手勢,達(dá)到生動靈活有趣的人機(jī)交互效果;
2、本發(fā)明提取手部區(qū)域圖像,采用的是人在空中書寫時手為身體與Kinect距離值最小部分的原理,相比于普遍的基于簡單膚色及分辯輪廓大小的提取方法,精度更高,魯棒性更好;
3)本發(fā)明采用手部外輪廓線距離手心峰值點(diǎn)數(shù)目原理,可實(shí)現(xiàn)實(shí)時的手部手勢檢測,達(dá)到迅速開始及結(jié)束手寫的效果;
4)本發(fā)明對手寫軌跡的處理,采用基于軌跡點(diǎn)集區(qū)域面積調(diào)整筆畫粗細(xì)的方法,實(shí)現(xiàn)手寫軌跡大小歸一化,提高手寫軌跡的識別率;
5)本發(fā)明采用DWKNN算法進(jìn)行手寫軌跡的識別,相比傳統(tǒng)的KNN,識別準(zhǔn)確率有所提高;
6)本發(fā)明基于RPC-Thrift架構(gòu),搭建了中央服務(wù)器模塊,實(shí)現(xiàn)了不同程序模塊間的通信;
7)本發(fā)明以虛擬人智能體作為與人的交互媒介,通過對虛擬人的動作、語言、表情等操控,實(shí)現(xiàn)堪比人與人交互的人機(jī)交互過程。
附圖說明
圖1為本發(fā)明的整體系統(tǒng)框圖;
圖2(a)-圖2(c)分別為人體深度圖、最小深度值、手部分離示意圖;
圖3為本發(fā)明的手部指尖點(diǎn)示意圖;
圖4(a)、圖4(b)分別為本發(fā)明修正前的手部手勢識別示意圖和修正后的手部手勢識別示意圖;
圖5(a)-圖5(d)為本發(fā)明的手寫軌跡處理示意圖;其中圖5(a)為原始軌跡圖,圖5(b)為調(diào)整后的軌跡圖,圖5(c)為純手寫軌跡圖,圖5(d)為生成的01矩陣圖;
圖6為本發(fā)明的交互示意圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例:
如圖1所示,為本發(fā)明的整體系統(tǒng)框圖,整個系統(tǒng)按照感知層、分析決策層、執(zhí)行層三層結(jié)構(gòu)來搭建,包括手勢與數(shù)字識別模塊、中央服務(wù)器模塊和虛擬人控制模塊,所述手勢與數(shù)字識別模塊用于提取手部區(qū)間,識別手勢及手寫軌跡;所述中央服務(wù)器模塊用于連接手勢與數(shù)字識別模塊和虛擬人控制模塊,實(shí)現(xiàn)數(shù)據(jù)的采集,傳輸和命令發(fā)送;所述虛擬人控制模塊為在實(shí)際中與人進(jìn)行互動的載體,搭建出虛擬人,根據(jù)從中央服務(wù)器模塊接受來的命令,對虛擬人進(jìn)行動作、語言、表情等操控,實(shí)現(xiàn)與人的交互。
其中,所述手勢與數(shù)字識別模塊中采用Kinect作為傳感器。
其中,中央服務(wù)器模塊的搭建是基于RPC-Thrift架構(gòu),在該架構(gòu)中,定義統(tǒng)一的傳輸數(shù)據(jù)變量,包括識別的手勢與數(shù)字以及對虛擬人的動作、語言控制,運(yùn)用Thrift代碼生成器編譯成C++和Python的客戶端與服務(wù)端服務(wù)代碼框架,接著運(yùn)用Python運(yùn)行服務(wù)器端的代碼搭建起電腦本地端的服務(wù)器,并運(yùn)用決策樹設(shè)計出基于手勢與數(shù)字識別結(jié)果的虛擬人控制決策架構(gòu)。
例如,當(dāng)手勢與數(shù)字識別檢測到新用戶的信號時,將通過客戶端接口向中央服務(wù)器模塊發(fā)送相應(yīng)信號,中央服務(wù)器模塊接收到檢測新用戶信號后,向虛擬人控制模塊發(fā)送控制虛擬人打招呼的命令。
其中,所述虛擬人控制模塊搭建虛擬人是基于smartbody系統(tǒng)結(jié)合ogre游戲引擎,結(jié)合3D-Max等建模軟件和motion Builder等動作設(shè)計軟件,對于復(fù)雜動作的設(shè)計,采用Kinect獲取真人骨架信息嵌套到虛擬人上的方法來完成,并通過Python語言進(jìn)行行為動作、語言、表情的控制。
同時,本發(fā)明基于該系統(tǒng)提供了一種基于動態(tài)3D手寫數(shù)字識別的虛擬人交互方法,包括如下步驟:
1)通過手勢與數(shù)字識別模塊中的Kinect獲取用戶的深度數(shù)據(jù)及骨架信息;
2)結(jié)合1)中獲得的深度數(shù)據(jù)和骨架信息,利用人在空中書寫時手為身體與Kinect距離值最小部分的原理,分離出人手的部分;
3)提取出手部輪廓,利用外輪廓線距離手心峰值點(diǎn)數(shù)目原理,識別手部手勢,并發(fā)送給中央服務(wù)器模塊;
4)將手部區(qū)域距離攝像頭最近的點(diǎn)定為指尖點(diǎn)位置,當(dāng)識別到手部手勢為書寫手勢,即步驟3)中提到的手指峰值點(diǎn)數(shù)目等于1時,開始記錄指尖點(diǎn)位置,當(dāng)識別到手部手勢為結(jié)束手勢,即步驟3)中提到的手指峰值點(diǎn)數(shù)目在4以上或跟蹤手掌丟失時,指尖點(diǎn)位置記錄停止;
5)將步驟4)中記錄的指尖點(diǎn)位置,即手寫軌跡,進(jìn)行輪廓檢測、提取和筆畫粗細(xì)優(yōu)化及轉(zhuǎn)換處理;
6)將步驟5)中處理后的手寫軌跡,輸入到DWKNN識別器中進(jìn)行數(shù)字識別;
7)將步驟6)中的識別結(jié)果通過RPC協(xié)議發(fā)送給中央服務(wù)器模塊;
8)中央服務(wù)器模塊通過RPC協(xié)議接收來自手勢與數(shù)字識別模塊的識別結(jié)果;
9)中央服務(wù)器模塊根據(jù)步驟8)中接收的識別結(jié)果,通過RPC協(xié)議向虛擬人控制模塊發(fā)送對虛擬人動作、語言、表情的控制命令;
10)初始化虛擬人控制模塊中的虛擬場景,展示出虛擬人;
11)虛擬人控制模塊通過RPC協(xié)議,接收來自中央服務(wù)器模塊的虛擬人控制指令;
12)根據(jù)步驟11)中接收的虛擬人控制指令,對虛擬人實(shí)行動作、語言、表情等相關(guān)操控,實(shí)現(xiàn)人機(jī)交互。
如圖2(a)-圖2(c)所示,為本發(fā)明的指尖提取與手部分離示意圖,在步驟2)中對人手部分的分離利用的是人在空中書寫時手為身體與Kinect距離值最小部分的原理,具體包含以下步驟:
a)采用微軟公司的Kinect作為傳感器,采集用戶的深度數(shù)據(jù)及骨架信息;
b)通過Kinect提供的API可以提供深度圖像MDepth及MDepth中每一個像素點(diǎn)所屬于的用戶ID;
c)運(yùn)用用戶ID數(shù)據(jù)可在深度圖像MDepth中分離出一幅身體部分的深度圖像MDBody;
d)對只有身體部分的深度圖像MDBody進(jìn)行遍歷,找出具有最小的深度值的點(diǎn)Pmin;
e)基于空中書寫時指尖會在整個人體的最前端的原理,將Pmin的位置定為手指尖點(diǎn)PT的位置;
f)再遍歷只有身體部分的深度圖像MDBody,分離出大于手指尖深度值一定數(shù)值的圖像,將其認(rèn)定為手部圖像Mh。
如圖3、圖4(a)、圖4(b)所示,分別為本發(fā)明的手部指尖點(diǎn)示意圖及手部手勢識別示意圖,在步驟3)中提取出手部輪廓,識別手部手勢,利用的是外輪廓線距離手心峰值點(diǎn)數(shù)目原理,包含如下步驟:
g)對手部圖像Mh進(jìn)行邊緣檢測,獲取手部輪廓點(diǎn)集Vh={P1,P2,……,Pn};
h)對點(diǎn)集Vh求最小面積包圍圓Cmin,將圓心定為手心點(diǎn)Phc;
i)計算Vh中的每個點(diǎn)Pi與Phc的距離,按順時針方向遍歷,找出峰值點(diǎn)PPeak;
j)根據(jù)峰值點(diǎn)PPeak,即手指點(diǎn)的數(shù)量,得出最終的人手手掌狀態(tài)結(jié)果。
如圖4(a)所示,顯然峰值算法在尋找到指尖點(diǎn)的同時,也尋找到了一些錯誤的峰值點(diǎn),如手下方的一些點(diǎn)或者重復(fù)尋找了手指尖點(diǎn),因此,我們要增加一些限制,例如刪除手心點(diǎn)下方的點(diǎn)和將找出來的峰值點(diǎn)進(jìn)行兩兩的距離比較,點(diǎn)間距較小的點(diǎn)進(jìn)行合并,修正后的結(jié)果如圖4(b)所示。
在本發(fā)明中,將只有一個手指的手勢,作為開始手寫手勢;手指數(shù)為五,即手掌張開的手勢,作為結(jié)束手寫手勢。
如圖5(a)-圖5(d)所示,為本發(fā)明的手寫軌跡處理示意圖,在步驟5)中對手寫軌跡處理的方法,包含如下步驟:
k)當(dāng)識別到開始手寫的手勢后,開始記錄下每一個指尖點(diǎn)PT的位置,并在一幅圖像中實(shí)時地畫出這些點(diǎn)并連接起來,展示給用戶;
l)待手寫結(jié)束后,獲得一個關(guān)于PT手寫數(shù)字軌跡的點(diǎn)集VTh={PT1,PT2,……,PTn},以及一幅原始軌跡圖像IT;
m)對VT求出最小面積的包圍矩形R,并根據(jù)R的面積調(diào)整點(diǎn)與點(diǎn)之間連線的粗細(xì),獲得新的畫有白色手寫軌跡的黑色圖像IT;
n)再對這幅新的軌跡圖像IT進(jìn)行邊緣檢測,找出一個新的軌跡點(diǎn)集,求出新的最小包圍矩形R′;
o)運(yùn)用R′在黑白圖像IT中截取出只有單純手寫軌跡的圖像IpT;
p)將圖像IpT縮放成32*32的01矩陣MT。
特別地,對數(shù)字1的處理,如果單純地對數(shù)字1的軌跡求最小的包圍矩陣,最終得出來的圖像將是一副全白的圖像,因此,在計算出最小面積的包圍矩形R后,要對R的長寬比進(jìn)行判斷,長寬比小于0.5的視為數(shù)字1,然后對矩形的長和寬進(jìn)行調(diào)整,努力使長寬比達(dá)到1:1,最后對32*32的圖像進(jìn)行二值化處理,轉(zhuǎn)化成32*32的01矩陣MT。
在步驟6)中,對手寫軌跡的識別采用的是DWKNN算法,將步驟5)中得到的32*32的01矩陣MT,與樣本庫中的每一個32*32的01矩陣樣本進(jìn)行距離計算,在距離較近的k個樣本中進(jìn)行“表決”,將“表決”的數(shù)字類別結(jié)果作為矩陣MT的數(shù)字識別結(jié)果。
DWKNN算法是一種由KNN算法演變而來的,距離加權(quán)最近鄰居算法。在DWKNN算法和KNN算法中,假設(shè)一個樣本x可定義為:
<a1(x),a2(x),…,an(x)>
其中,ar(x)為樣本x的第r個特征值,r∈(1,n)。
根據(jù)歐式幾何距離算法,樣本xm與樣本xn之間的距離d(xm,xn)為:
其中,n在本系統(tǒng)中設(shè)置32*32與01矩陣MT對應(yīng)。
DWKNN算法與KNN算法的區(qū)別在于決策方法上的不同,KNN算法的決策是基于最近鄰居的類別眾數(shù),而DWKNN算法則是基于距離加權(quán)的投票決策機(jī)制。
在傳統(tǒng)的DWKNN算法中,第i個最近鄰居的距離權(quán)值Wi表示為:
不同于傳統(tǒng)的DWKNN算法,我們將第i個最近鄰居的距離權(quán)值Wi設(shè)置為:
其中,k表示設(shè)置的最近鄰居樣本的總數(shù)目,i表示第i個最近鄰居樣本的序號,i∈(1,k)。
分類標(biāo)簽L的投票結(jié)果為:
其中,當(dāng)?shù)趇個最近鄰居的標(biāo)簽屬于L時,標(biāo)簽判斷變量當(dāng)?shù)趇個最近鄰居的標(biāo)簽不屬于L時,標(biāo)簽判斷變量
最終的表決結(jié)果f(x)為:
如圖6所示,為本發(fā)明的交互示意圖,本發(fā)明的具體的交互流程,包括如下步驟:
當(dāng)Kinect檢測到用戶,在獲得只有身體部分的深度圖像MDBody后,手勢與數(shù)字識別模塊通過中央服務(wù)器向虛擬人控制模塊發(fā)送用戶識別信號,控制虛擬人與用戶通過問好及揮手手勢進(jìn)行打招呼;
當(dāng)識別到結(jié)束手寫手勢,獲得數(shù)字識別結(jié)果后,手勢與數(shù)字識別模塊通過中央服務(wù)器向虛擬人控制模塊發(fā)送數(shù)字識別結(jié)果信號,控制虛擬人說出數(shù)字識別結(jié)果并做出與數(shù)字相對應(yīng)的手勢;
當(dāng)Kinect無法檢測及跟蹤到用戶時,手勢與數(shù)字識別模塊通過中央服務(wù)器向虛擬人控制模塊發(fā)送用戶消失信號,控制虛擬人與用戶說再見并揮手。
以上所述,僅為本發(fā)明專利較佳的實(shí)施例,但本發(fā)明專利的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明專利所公開的范圍內(nèi),根據(jù)本發(fā)明專利的技術(shù)方案及其發(fā)明專利構(gòu)思加以等同替換或改變,都屬于本發(fā)明專利的保護(hù)范圍。