劉金環(huán),賈世杰,王平,霍丹
(大連交通大學 電氣信息學院,遼寧 大連 116028)*
?
基于Leap Motion的3D商品展示技術(shù)研究
劉金環(huán),賈世杰,王平,霍丹
(大連交通大學 電氣信息學院,遼寧 大連 116028)*
提出了基于Leap Motion的3D商品展示技術(shù),通過3ds Max和OGRE建立商品3D模型,運用Leap Motion完成對手指手勢的捕獲、追蹤和識別,最后將手勢識別技術(shù)和3D技術(shù)相結(jié)合,實現(xiàn)實時3D商品展示.實驗結(jié)果表明,所設(shè)計方法能夠以無接觸交互方式對商品進行全方位360度立體展示,能夠大大提升用戶體驗效果.
3D商品展示;Leap Motion;手勢識別
商品在線展示是電子商務(wù)中的一個關(guān)鍵環(huán)節(jié),全面真實的商品展示能有效促進電子商務(wù)的發(fā)展.當前的商品在線展示主要包括二維平面展示和360°產(chǎn)品展示[1],二維平面展示不能真實全面的展示商品特點,目前最新的三維產(chǎn)品展示,如飛利浦、淘寶、亞馬遜等部分商品以動畫和360°全景視頻的方式展示,但是缺少與消費者的互動.本文研究基于Leap Motion手勢識別的3D商品展示技術(shù),有效解決商品在線展示不真實、不全面以及與用戶缺乏互動等問題.
Leap Motion[2]通過紅外LED和攝像頭完成目標捕捉,可以追蹤10根手指,精度高達0.01 mm,并以200幀/s追蹤手部移動,使得追蹤信息與手部移動同時進行,在設(shè)備體積、靈敏度、交互速度和精度上都要優(yōu)于微軟的Kinect[3].文獻[4]通過mMap在二維平面建立光場可視化3D地圖模型,基于Leap Motion定義三種手勢實現(xiàn)與3D地圖的實時交互.本文借鑒其交互方法基于Leap Motion將手勢識別技術(shù)[5]和3D商品展示技術(shù)相結(jié)合,通過手勢去控制3D商品,以交互的方式實現(xiàn)商品展示,有效解決了與用戶缺乏互動的問題.
3D產(chǎn)品展示技術(shù)作為3D范疇的一個新興技術(shù),可以彌補普通產(chǎn)品展示的不足,具有較大的發(fā)展前景和發(fā)展空間.目前,應(yīng)用較多的3D建模軟件有三種:Autodesk Maya[6]、3D Studio Max[7]和Unity3D[8].文獻[9]中使用3ds Max設(shè)計商品三維模型,通過Cult3D模擬三維產(chǎn)品,實現(xiàn)網(wǎng)頁版的三維產(chǎn)品展示;文獻[10]中研究實現(xiàn)了基于Unity3D的虛擬顯示系統(tǒng),最終在網(wǎng)頁上展示出來;文獻[11]中利用Java 3D技術(shù)實現(xiàn)了產(chǎn)品網(wǎng)絡(luò)虛擬展示系統(tǒng).本文通過3ds Max和OGRE圖像渲染引擎完成3D產(chǎn)品的建模和展示,與傳統(tǒng)的二維靜態(tài)圖片展示相比更真實全面,更能突出商品細節(jié).
本文研究工作包括手勢定義、3D模型建立和控制三個部分.通過研究Leap Motion控制器工作原理,根據(jù)Leap Motion捕捉到的目標信息提取手勢相關(guān)的有用信息,定義三種常用手勢.通過3ds Max進行建模,然后通過OGRE圖形渲染引擎使模型脫離3ds Max軟件,生成獨立操作的可執(zhí)行文件.最后通過窗口消息的圖形視圖軟件Spy++獲得模型接口,通過手勢完成3D模型的控制,其主要工作流程如下圖1所示.
圖1 基于Leap Motion的3D商品展示示意圖
1.1 手勢定義
Leap Motion控制器采用立體視覺原理,根據(jù)內(nèi)置的兩個攝像頭從不同角度同時捕捉目標,通過建立三維空間的右手笛卡爾直角坐標系,重建出手掌在真實世界三維空間的運動信息.如圖2所示:坐標原點是控制器的中心,坐標X軸平行于控制器指向屏幕右方,坐標Y軸垂直指向上方,
坐標Z軸指向背離屏幕的方向.
圖2 Leap Motion三維空間直角坐標系
Leap Motion控制器可以在其視野范圍內(nèi)定期的發(fā)送關(guān)于手的運動信息,本文根據(jù)檢測到的數(shù)據(jù)進行手勢的定義,手掌法向量、手指方向和位置示意圖如圖3~4所示.
圖3 手掌法向量和 方向示意圖 圖4 手指方向和位置示意圖
根據(jù)Leap Motion捕捉到的目標信息,本文通過判斷手掌法向量,計算手的移動方向、速度、位移以及俯仰角、翻滾角等變化情況定義了上移和下移、前移和后移和左移和右移三種手勢,具體內(nèi)容如下表1所示.
表1 上移和下移、前移和后移、左移和右移手勢定義
1.2 3D建模
本文通過3ds Max9對商品進行建模,建立好的模型可以通過鼠標進行放大、縮小以及旋轉(zhuǎn)等操作,但是模型依附于3ds Max9軟件,不方便用戶操作.自2001年以來,OGRE[12]已經(jīng)成為最受歡迎的開源圖形渲染引擎之一,并已廣泛應(yīng)用于游戲、仿真器、教育軟件、科學可視化等領(lǐng)域.本文通過3ds Max9對物體進行建模后,通過oFusion導(dǎo)出場景模型文件,通過OGRE對場景圖形進行渲染,用VS2008編程得到脫離3ds Max的商品模型可執(zhí)行文件,以青花瓷盤為例,具體操作過程如下:
(1)通過3ds Max9對青花瓷盤進行建模,并給模型貼圖,賦予材質(zhì),建好后的模型如圖5所示;
(2)安裝oFusion場景插件,導(dǎo)出場景模型文件,即*.osm文件;
(3)安裝并配置Ogre1.9.0圖像渲染引擎;
(4)通過VS2008創(chuàng)建Ogre Root并加載該資源文件;
(5)創(chuàng)建渲染窗口和場景管理器;
(6)創(chuàng)建相機,生成3D商品模型的可執(zhí)行文件,如圖6所示.
圖5 3ds Max9建模示意圖 圖6 可執(zhí)行模型示意圖
實驗所應(yīng)用的操作系統(tǒng)為windows 7、處理器為Intel(R) Core(TM) i3、主頻為2.27 GHz、內(nèi)存為8.0 GB的計算機.手勢信息采集和3D商品模型控制平臺為Python2.7.6,Python是一種開源免費、面向?qū)ο蟮哪_本語言,它簡單、易學、可擴展性強,并且為程序開發(fā)人員提供了豐富的模塊庫,同C、C++和Java等常見語言相比,Python語言更加簡潔易懂.通過Python進行手勢識別,從而控制3D商品的縮放以及多角度旋轉(zhuǎn)等,下面分別為上移和下移、前移和后移和左移和右移三種手勢對3D商品的控制效果.
手平放,向靠近(遠離)Leap Motion的方向移動時,3D商品放大(縮小)稱為縮放.圖7為上移和下移手勢控制3D商品縮放的實驗結(jié)果圖,其中(a)為初始狀態(tài),(b)為手平放后靠近設(shè)備時3D商品縮小的結(jié)果圖,(c)為手遠離設(shè)備時3D商品放大的結(jié)果圖.
(a)初始狀態(tài)(b)縮小圖示(c)放大圖示
圖7 3D物體縮放實驗結(jié)果圖
手平放,指尖慢慢高(低)于手腕方向時,3D商品向正前(后)方旋轉(zhuǎn)稱為前(后)轉(zhuǎn).圖8為
(a)初始狀態(tài) (b)前轉(zhuǎn)180度(c)后轉(zhuǎn)90度
圖8 3D物體前向和后向旋轉(zhuǎn)實驗結(jié)果圖
前移和后移手勢控制3D物體前后旋轉(zhuǎn)的實驗結(jié)果圖.其中(a)為手平放時的初始狀態(tài),(b)為手平放后做指尖高于手腕運動時3D商品前向旋轉(zhuǎn)180度的結(jié)果圖,(c)為手平放后做手腕高于指尖運動時3D商品后向旋轉(zhuǎn)90度的結(jié)果圖.
手平放,手的右邊慢慢高(低)于左邊時,3D商品順(逆)時針旋轉(zhuǎn)稱為順(逆)轉(zhuǎn).圖9為初始狀態(tài)下,左移和右移手勢控制3D物體順時針和逆時針旋轉(zhuǎn)的實驗結(jié)果圖.其中(a)為初始狀態(tài),(b)為手平放后右邊慢慢抬起時3D商品順時針旋轉(zhuǎn)180度的結(jié)果圖,(c)為左邊抬起時3D商品逆時針旋轉(zhuǎn)90度的結(jié)果圖.
(a)初始狀態(tài) (b)順轉(zhuǎn)180度(c)逆轉(zhuǎn)90度
圖9 3D物體順時針和逆時針旋轉(zhuǎn)實驗結(jié)果圖
三種手勢控制3D商品由(a)狀態(tài)變?yōu)?b)狀態(tài)以及由(b)狀態(tài)變?yōu)?c)狀態(tài)的時間如表2所示,能夠滿足實時性的要求.
表2 三種手勢控制3D商品的狀態(tài)變化時間ms
本文主要研究了基于Leap Motion的3D商品展示技術(shù),通過直觀的三種手勢,以交互的方式實時地從各個角度進行展示,解決物品在平面全方位在線展示的問題,將復(fù)雜的設(shè)備操作變得輕松自如,提高主講人與參與者的交互性,比傳統(tǒng)二維的圖片和動畫展示更具有吸引力.但是,還存在一些不足,還可以進一步完善,主要有以下兩個方面:
(1)定義三種手勢,不能滿足所有用戶的需求.針對不同用戶,可以定義更精確、更適合用戶使用的手勢;
(2)通過3ds Max和OGRE進行3D商品建模,對其他建模方法還有待進一步研究.
[1]李哲.3D展示:不一樣的視覺盛宴[J].今日工程機械,2012(13):116-117.
[2]Leap[OL].https://www.leapmotion.com/.
[3]ZHENGYOU ZHANG.Microsoft Kinect Sensor and Its Effect[J].MultiMedia,IEEE,2012,19(2):4-10.
[4]ADHIKARLA V K.Freehand interaction with large-scale 3D map data[C].The True Vision-Capture,Transmission and Display of 3D Video (3DTV-CON),2014:1-4.
[5]CHENG HONG,LU YANG,ZICHENG LIU.A Survey on 3D Hand Gesture Recognition.Circuits and Systems for Video Technology[J].IEEE Transactions on,2015(99):1-1.
[6]AUTODESK[OL]http://www.autodesk.com.cn/adsk/servlet/pc/.
[7]3DSMAX[OL].http://www.autodesk.com/pro-ducts/3ds-max/overview.
[8]Unity[OL]http://unity3d.com/cn/.
[9]田茵.基于虛擬現(xiàn)實的三維產(chǎn)品展示[J].計算機教育,2009(6):119-123.
[10]倪樂波,戚鵬,遇麗娜,等.Unity3d產(chǎn)品虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(9):54-55.
[11]俞璋凌,張萍,鐘華.基于Java 3D技術(shù)的產(chǎn)品網(wǎng)絡(luò)虛擬展示研究[J].湖北工業(yè)大學學報,2010(4):42-44.
[12]OGRE[OL]http://www.ogre3d.org/.
Study of 3D Product Display Technology based on Leap Motion
LIU Jinhuan,JIA Shijie,WANG Ping,HUO Dan
(School of Environmental Science and Engineering,Dalian Jiaotong University,Dalian 116028,China)
This paper proposes a method of 3D product display technology with Leap Motion.Firstly,the 3D product model is established with 3ds Max and OGRE.Secondly,the finger gestures are captured, tracked and recognized with Leap Motion.Finally,a real-time 3D product display system is implemented.The experimental results show that this method can display the product with the style of full 360-degree,stereoscopic and non-contact interaction and greatly enhance the user experience.
3D product display;Leap Motion;hand gesture recognition
1673-9590(2016)04-0110-04
2015-10-24
遼寧省教育廳高等學??茖W研究計劃資助項目(L2014174)
劉金環(huán)(1989-),女,碩士,主要從事圖像處理與模式識別的研究E-mail:jiashijie@dl.cn.
A