本發(fā)明涉及增強(qiáng)現(xiàn)實(shí)技術(shù)領(lǐng)域,尤其涉及一種增強(qiáng)現(xiàn)實(shí)交互方法及系統(tǒng)。
背景技術(shù):
增強(qiáng)現(xiàn)實(shí)技術(shù)將虛擬世界疊加到現(xiàn)實(shí)世界中,被人類感官所感知,從而達(dá)到超越現(xiàn)實(shí)的感官體驗(yàn)。人與增強(qiáng)現(xiàn)實(shí)的交互是增強(qiáng)現(xiàn)實(shí)技術(shù)里的重要組成部分,目前增強(qiáng)現(xiàn)實(shí)中應(yīng)用的交互基本是通過(guò)識(shí)別、觸控、聲控和傳感等比較復(fù)雜的方式。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于三維空間坐標(biāo)的增強(qiáng)現(xiàn)實(shí)交互方法及系統(tǒng)。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:
一種增強(qiáng)現(xiàn)實(shí)交互方法,適用于現(xiàn)實(shí)設(shè)備和所述現(xiàn)實(shí)設(shè)備通過(guò)AR技術(shù)得到的虛擬設(shè)備,所述增強(qiáng)現(xiàn)實(shí)交互方法包括:
S1:在Unity中建立三維場(chǎng)景,將Unity中的坐標(biāo)系作為AR空間坐標(biāo)系,將現(xiàn)實(shí)場(chǎng)景的中心點(diǎn)作為AR空間坐標(biāo)系的原點(diǎn),將所述現(xiàn)實(shí)設(shè)備作為AR空間坐標(biāo)系中的一點(diǎn);
S2:通過(guò)Unity中的transform組件實(shí)時(shí)獲取所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo);
S3:根據(jù)所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算所述現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度;
S4:根據(jù)所述現(xiàn)實(shí)設(shè)備的所述移動(dòng)方向和所述移動(dòng)速度,控制所述虛擬設(shè)備進(jìn)行與所述現(xiàn)實(shí)設(shè)備同步的運(yùn)動(dòng)。
本發(fā)明的有益效果是:本技術(shù)方案在增強(qiáng)現(xiàn)實(shí)應(yīng)用識(shí)別現(xiàn)實(shí)環(huán)境后建立識(shí)別設(shè)備(智能手機(jī)、AR眼鏡)、現(xiàn)實(shí)環(huán)境、虛擬場(chǎng)景對(duì)應(yīng)的三維坐標(biāo)關(guān)系,在移動(dòng)設(shè)備的過(guò)程中,通過(guò)實(shí)時(shí)計(jì)算設(shè)備在這個(gè)坐標(biāo)系中的位置、移動(dòng)方向、移動(dòng)速度信息,來(lái)觸發(fā)虛擬場(chǎng)景進(jìn)行合理的響應(yīng),從而達(dá)到虛擬場(chǎng)景和現(xiàn)實(shí)世界中持設(shè)備移動(dòng)的人保持一致行為的互動(dòng)效果。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
優(yōu)選地,所述步驟S3中,根據(jù)所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算所述現(xiàn)實(shí)設(shè)備的移動(dòng)方向,具體包括:
A1:獲取所述現(xiàn)實(shí)設(shè)備的第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
A2:將所述第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo)轉(zhuǎn)換為相應(yīng)的空間向量;
A3:通過(guò)Unity的Vector3組件和所述空間向量,計(jì)算所述現(xiàn)實(shí)設(shè)備的運(yùn)動(dòng)向量,得到所述移動(dòng)方向。
優(yōu)選地,所述步驟S3中,根據(jù)所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算所述現(xiàn)實(shí)設(shè)備的移動(dòng)速度,具體包括:
B1:獲取所述現(xiàn)實(shí)設(shè)備的第二預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
B2:通過(guò)Unity的Vector3組件計(jì)算每相鄰兩幀返回的所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo)的間距;
B3:通過(guò)加權(quán)平均法對(duì)所述間距進(jìn)行加權(quán)平均,得到所述移動(dòng)速度。
一種增強(qiáng)現(xiàn)實(shí)交互系統(tǒng),適用于現(xiàn)實(shí)設(shè)備和所述現(xiàn)實(shí)設(shè)備通過(guò)AR技術(shù)得到的虛擬設(shè)備,所述增強(qiáng)現(xiàn)實(shí)交互系統(tǒng)包括:
建立模塊,用于在Unity中建立三維場(chǎng)景,將Unity中的坐標(biāo)系作為AR空間坐標(biāo)系,將現(xiàn)實(shí)場(chǎng)景的中心點(diǎn)作為AR空間坐標(biāo)系的原點(diǎn),將所述現(xiàn)實(shí)設(shè)備作為AR空間坐標(biāo)系中的一點(diǎn);
獲取模塊,用于通過(guò)Unity中的transform組件實(shí)時(shí)獲取所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo);
計(jì)算模塊,用于根據(jù)所述現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算所述現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度;
控制模塊,用于根據(jù)所述現(xiàn)實(shí)設(shè)備的所述移動(dòng)方向和所述移動(dòng)速度,控制所述虛擬設(shè)備進(jìn)行與所述現(xiàn)實(shí)設(shè)備同步的運(yùn)動(dòng);
其中,所述建立模塊、所述獲取模塊、所述計(jì)算模塊和所述控制模塊依次連接。
優(yōu)選地,所述計(jì)算模塊包括:
第一獲取子模塊,用于獲取所述現(xiàn)實(shí)設(shè)備的第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
轉(zhuǎn)換子模塊,用于將所述第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo)轉(zhuǎn)換為相應(yīng)的空間向量;
第一計(jì)算子模塊,用于通過(guò)Unity的Vector3組件和所述空間向量,計(jì)算所述現(xiàn)實(shí)設(shè)備的運(yùn)動(dòng)向量,得到所述移動(dòng)方向;
其中,所述獲取子模塊、所述轉(zhuǎn)換子模塊和所述計(jì)算子模塊連接。
優(yōu)選地,所述計(jì)算模塊還包括:
第二獲取子模塊,用于獲取所述現(xiàn)實(shí)設(shè)備的第二預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
第二計(jì)算子模塊,用于通過(guò)Unity的Vector3組件計(jì)算所述現(xiàn)實(shí)設(shè)備每?jī)蓭拈g距;
加權(quán)子模塊,用于通過(guò)加權(quán)平均法對(duì)所述間距進(jìn)行加權(quán)平均,得到所述移動(dòng)速度;
其中,所述第二獲取子模塊、所述第二計(jì)算子模塊和所述加權(quán)子模塊依次連接。
附圖說(shuō)明
圖1為本發(fā)明的一種增強(qiáng)現(xiàn)實(shí)交互方法的流程示意圖;
圖2為本發(fā)明的一種增強(qiáng)現(xiàn)實(shí)交互方法的流程示意圖;
圖3為本發(fā)明的一種增強(qiáng)現(xiàn)實(shí)交互方法的流程示意圖;
圖4為本發(fā)明的一種增強(qiáng)現(xiàn)實(shí)交互系統(tǒng)的結(jié)構(gòu)示意圖;
圖5為本發(fā)明的一種增強(qiáng)現(xiàn)實(shí)交互系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,一種增強(qiáng)現(xiàn)實(shí)交互方法,適用于現(xiàn)實(shí)設(shè)備和現(xiàn)實(shí)設(shè)備通過(guò)AR技術(shù)得到的虛擬設(shè)備,增強(qiáng)現(xiàn)實(shí)交互方法包括:
S1:在Unity中建立三維場(chǎng)景,將Unity中的坐標(biāo)系作為AR空間坐標(biāo)系,將現(xiàn)實(shí)場(chǎng)景的中心點(diǎn)作為AR空間坐標(biāo)系的原點(diǎn),將現(xiàn)實(shí)設(shè)備作為AR空間坐標(biāo)系中的一點(diǎn);
S2:通過(guò)Unity中的transform組件實(shí)時(shí)獲取現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo);
S3:根據(jù)現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度;
S4:根據(jù)現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度,控制虛擬設(shè)備進(jìn)行與現(xiàn)實(shí)設(shè)備同步的運(yùn)動(dòng)。
上述實(shí)施例中,在Unity中建立三維場(chǎng)景,以現(xiàn)實(shí)場(chǎng)景中某個(gè)中心點(diǎn)為坐標(biāo)系原點(diǎn),設(shè)定好三維坐標(biāo)系(AR空間坐標(biāo)系)的原點(diǎn)以及x、y、z軸方向,將Unity世界坐標(biāo)系作為AR空間坐標(biāo)系,初始化場(chǎng)景,假設(shè)現(xiàn)實(shí)場(chǎng)景為正方形,設(shè)為RealWall,中心點(diǎn)RWC(0,0,0),四個(gè)角點(diǎn)RW1(100,100,0),RW2(-100,100,0),RW3(-100,-100,0),RW4(100,-100,0),假設(shè)虛擬場(chǎng)景為正方體,設(shè)為Virtual,中心點(diǎn)VC(0,0,100),八個(gè)角點(diǎn)V11(20,20,80),V12(-20,20,80),V13(-20,-20,80),V14(20,-20,80),V21(20,20,120),V22(-20,20,120),V23(-20,-20,120),V24(20,-20,120);假設(shè)現(xiàn)實(shí)設(shè)備為Camera,點(diǎn)坐標(biāo)CC(0,0,200);通過(guò)Unity中的transform.position實(shí)時(shí)獲取現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo);當(dāng)現(xiàn)實(shí)設(shè)備移動(dòng)時(shí),設(shè)備相對(duì)現(xiàn)實(shí)場(chǎng)景的位置和方向發(fā)生改變,通過(guò)實(shí)時(shí)計(jì)算得到每幀時(shí)設(shè)備的坐標(biāo)CC,unity中每秒幀率在30左右,1秒的時(shí)間足夠反應(yīng)出設(shè)備的運(yùn)動(dòng)軌跡;最后,根據(jù)現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度,控制虛擬設(shè)備進(jìn)行與現(xiàn)實(shí)設(shè)備同步的運(yùn)動(dòng)。
如圖2所示,步驟S3中,根據(jù)現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算現(xiàn)實(shí)設(shè)備的移動(dòng)方向,具體包括:
A1:獲取現(xiàn)實(shí)設(shè)備的第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
A2:將第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo)轉(zhuǎn)換為相應(yīng)的空間向量;
A3:通過(guò)Unity的Vector3組件和空間向量,計(jì)算現(xiàn)實(shí)設(shè)備的運(yùn)動(dòng)向量,得到移動(dòng)方向。
上述實(shí)施例中,通過(guò)Unity的Vector3(x1,y1,z1)與Vector3(x2,y2,z2)相減的方法來(lái)計(jì)算每2幀設(shè)備運(yùn)動(dòng)向量,命名向量為v,v1=CC2-CC1,在現(xiàn)實(shí)場(chǎng)景下,用戶的移動(dòng)方向相對(duì)來(lái)說(shuō)是不規(guī)則的,這里需要取值范圍相對(duì)來(lái)說(shuō)要小一些,以10幀為計(jì)算范圍。假設(shè)當(dāng)前運(yùn)行幀數(shù)為m,
m=0時(shí),v=0;
m<10時(shí),v=CCn-CC1;
m>=10時(shí),v=CC10-CC1。
如圖3所示,步驟S3中,根據(jù)現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算現(xiàn)實(shí)設(shè)備的移動(dòng)速度,具體包括:
B1:獲取現(xiàn)實(shí)設(shè)備的第二預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
B2:通過(guò)Unity的Vector3組件計(jì)算每相鄰兩幀返回的現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo)的間距;
B3:通過(guò)加權(quán)平均法對(duì)間距進(jìn)行加權(quán)平均,得到移動(dòng)速度。
上述實(shí)施例中,unity中每秒幀率在30左右,1秒的時(shí)間足夠反應(yīng)出設(shè)備的運(yùn)動(dòng)軌跡,因此這里采用最近30幀數(shù)據(jù)來(lái)計(jì)算設(shè)備移動(dòng)速度和方向;設(shè)30幀設(shè)備坐標(biāo)為:CC1,CC2,CC3,…,CC30,通過(guò)Unity的Vector3.Distance(CC1,CC2)來(lái)計(jì)算每2幀間距,依次得到間距為d1,d2,d3,…,d29。
由于在使用場(chǎng)景下,設(shè)備的移動(dòng)相對(duì)穩(wěn)定而緩慢,因此設(shè)備的移動(dòng)速度相對(duì)來(lái)說(shuō)是比較平滑的,由于越接近運(yùn)行幀,其速度越真實(shí),因此采用權(quán)重的方式計(jì)算速度s。假設(shè)當(dāng)前運(yùn)行幀數(shù)為n,
n=0時(shí),s=0;
n<30時(shí),s=(d1*1+d2*2+…+dn*n)/(1+2+…+n);
n>=30時(shí),s=(d1*1+d2*2+…+d30*30)/(1+2+…+30)。
如圖4所示,一種增強(qiáng)現(xiàn)實(shí)交互系統(tǒng),適用于現(xiàn)實(shí)設(shè)備和現(xiàn)實(shí)設(shè)備通過(guò)AR技術(shù)得到的虛擬設(shè)備,增強(qiáng)現(xiàn)實(shí)交互系統(tǒng)包括:
建立模塊1,用于在Unity中建立三維場(chǎng)景,將Unity中的坐標(biāo)系作為AR空間坐標(biāo)系,將現(xiàn)實(shí)場(chǎng)景的中心點(diǎn)作為AR空間坐標(biāo)系的原點(diǎn),將現(xiàn)實(shí)設(shè)備作為AR空間坐標(biāo)系中的一點(diǎn);
獲取模塊2,用于通過(guò)Unity中的transform組件實(shí)時(shí)獲取現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo);
計(jì)算模塊3,用于根據(jù)現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo),計(jì)算現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度;
控制模塊4,用于根據(jù)現(xiàn)實(shí)設(shè)備的移動(dòng)方向和移動(dòng)速度,控制虛擬設(shè)備進(jìn)行與現(xiàn)實(shí)設(shè)備同步的運(yùn)動(dòng);
其中,建立模塊1、獲取模塊2、計(jì)算模塊3和控制模塊4依次連接。
如圖5所示,計(jì)算模塊3包括:
第一獲取子模塊31,用于獲取現(xiàn)實(shí)設(shè)備的第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
轉(zhuǎn)換子模塊32,用于將第一預(yù)設(shè)幀數(shù)的AR空間坐標(biāo)轉(zhuǎn)換為相應(yīng)的空間向量;
第一計(jì)算子模塊33,用于通過(guò)Unity的Vector3組件和空間向量,計(jì)算現(xiàn)實(shí)設(shè)備的運(yùn)動(dòng)向量,得到移動(dòng)方向;
其中,獲取子模塊31、轉(zhuǎn)換子模塊32和計(jì)算子模塊33連接。
如圖5所示,計(jì)算模塊3還包括:
第二獲取子模塊34,用于獲取現(xiàn)實(shí)設(shè)備的第二預(yù)設(shè)幀數(shù)的AR空間坐標(biāo);
第二計(jì)算子模塊35,用于通過(guò)Unity的Vector3組件計(jì)算每相鄰兩幀返回的現(xiàn)實(shí)設(shè)備的AR空間坐標(biāo)的間距;
加權(quán)子模塊36,用于通過(guò)加權(quán)平均法對(duì)間距進(jìn)行加權(quán)平均,得到移動(dòng)速度;
其中,第二獲取子模塊34、第二計(jì)算子模塊35和加權(quán)子模塊36依次連接。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。