基于Leap Motion的3D商品展示技术研究
2016-11-17刘金环贾世杰王平霍丹
刘金环,贾世杰,王平,霍丹
(大连交通大学 电气信息学院,辽宁 大连 116028)*
基于Leap Motion的3D商品展示技术研究
刘金环,贾世杰,王平,霍丹
(大连交通大学 电气信息学院,辽宁 大连 116028)*
提出了基于Leap Motion的3D商品展示技术,通过3ds Max和OGRE建立商品3D模型,运用Leap Motion完成对手指手势的捕获、追踪和识别,最后将手势识别技术和3D技术相结合,实现实时3D商品展示.实验结果表明,所设计方法能够以无接触交互方式对商品进行全方位360度立体展示,能够大大提升用户体验效果.
3D商品展示;Leap Motion;手势识别
0 引言
商品在线展示是电子商务中的一个关键环节,全面真实的商品展示能有效促进电子商务的发展.当前的商品在线展示主要包括二维平面展示和360°产品展示[1],二维平面展示不能真实全面的展示商品特点,目前最新的三维产品展示,如飞利浦、淘宝、亚马逊等部分商品以动画和360°全景视频的方式展示,但是缺少与消费者的互动.本文研究基于Leap Motion手势识别的3D商品展示技术,有效解决商品在线展示不真实、不全面以及与用户缺乏互动等问题.
Leap Motion[2]通过红外LED和摄像头完成目标捕捉,可以追踪10根手指,精度高达0.01 mm,并以200帧/s追踪手部移动,使得追踪信息与手部移动同时进行,在设备体积、灵敏度、交互速度和精度上都要优于微软的Kinect[3].文献[4]通过mMap在二维平面建立光场可视化3D地图模型,基于Leap Motion定义三种手势实现与3D地图的实时交互.本文借鉴其交互方法基于Leap Motion将手势识别技术[5]和3D商品展示技术相结合,通过手势去控制3D商品,以交互的方式实现商品展示,有效解决了与用户缺乏互动的问题.
3D产品展示技术作为3D范畴的一个新兴技术,可以弥补普通产品展示的不足,具有较大的发展前景和发展空间.目前,应用较多的3D建模软件有三种:Autodesk Maya[6]、3D Studio Max[7]和Unity3D[8].文献[9]中使用3ds Max设计商品三维模型,通过Cult3D模拟三维产品,实现网页版的三维产品展示;文献[10]中研究实现了基于Unity3D的虚拟显示系统,最终在网页上展示出来;文献[11]中利用Java 3D技术实现了产品网络虚拟展示系统.本文通过3ds Max和OGRE图像渲染引擎完成3D产品的建模和展示,与传统的二维静态图片展示相比更真实全面,更能突出商品细节.
1 基于Leap Motion的3D商品展示
本文研究工作包括手势定义、3D模型建立和控制三个部分.通过研究Leap Motion控制器工作原理,根据Leap Motion捕捉到的目标信息提取手势相关的有用信息,定义三种常用手势.通过3ds Max进行建模,然后通过OGRE图形渲染引擎使模型脱离3ds Max软件,生成独立操作的可执行文件.最后通过窗口消息的图形视图软件Spy++获得模型接口,通过手势完成3D模型的控制,其主要工作流程如下图1所示.
图1 基于Leap Motion的3D商品展示示意图
1.1 手势定义
Leap Motion控制器采用立体视觉原理,根据内置的两个摄像头从不同角度同时捕捉目标,通过建立三维空间的右手笛卡尔直角坐标系,重建出手掌在真实世界三维空间的运动信息.如图2所示:坐标原点是控制器的中心,坐标X轴平行于控制器指向屏幕右方,坐标Y轴垂直指向上方,
坐标Z轴指向背离屏幕的方向.
图2 Leap Motion三维空间直角坐标系
Leap Motion控制器可以在其视野范围内定期的发送关于手的运动信息,本文根据检测到的数据进行手势的定义,手掌法向量、手指方向和位置示意图如图3~4所示.
图3 手掌法向量和 方向示意图 图4 手指方向和位置示意图
根据Leap Motion捕捉到的目标信息,本文通过判断手掌法向量,计算手的移动方向、速度、位移以及俯仰角、翻滚角等变化情况定义了上移和下移、前移和后移和左移和右移三种手势,具体内容如下表1所示.
表1 上移和下移、前移和后移、左移和右移手势定义
1.2 3D建模
本文通过3ds Max9对商品进行建模,建立好的模型可以通过鼠标进行放大、缩小以及旋转等操作,但是模型依附于3ds Max9软件,不方便用户操作.自2001年以来,OGRE[12]已经成为最受欢迎的开源图形渲染引擎之一,并已广泛应用于游戏、仿真器、教育软件、科学可视化等领域.本文通过3ds Max9对物体进行建模后,通过oFusion导出场景模型文件,通过OGRE对场景图形进行渲染,用VS2008编程得到脱离3ds Max的商品模型可执行文件,以青花瓷盘为例,具体操作过程如下:
(1)通过3ds Max9对青花瓷盘进行建模,并给模型贴图,赋予材质,建好后的模型如图5所示;
(2)安装oFusion场景插件,导出场景模型文件,即*.osm文件;
(3)安装并配置Ogre1.9.0图像渲染引擎;
(4)通过VS2008创建Ogre Root并加载该资源文件;
(5)创建渲染窗口和场景管理器;
(6)创建相机,生成3D商品模型的可执行文件,如图6所示.
图5 3ds Max9建模示意图 图6 可执行模型示意图
2 实验及结果分析
实验所应用的操作系统为windows 7、处理器为Intel(R) Core(TM) i3、主频为2.27 GHz、内存为8.0 GB的计算机.手势信息采集和3D商品模型控制平台为Python2.7.6,Python是一种开源免费、面向对象的脚本语言,它简单、易学、可扩展性强,并且为程序开发人员提供了丰富的模块库,同C、C++和Java等常见语言相比,Python语言更加简洁易懂.通过Python进行手势识别,从而控制3D商品的缩放以及多角度旋转等,下面分别为上移和下移、前移和后移和左移和右移三种手势对3D商品的控制效果.
手平放,向靠近(远离)Leap Motion的方向移动时,3D商品放大(缩小)称为缩放.图7为上移和下移手势控制3D商品缩放的实验结果图,其中(a)为初始状态,(b)为手平放后靠近设备时3D商品缩小的结果图,(c)为手远离设备时3D商品放大的结果图.
(a)初始状态(b)缩小图示(c)放大图示
图7 3D物体缩放实验结果图
手平放,指尖慢慢高(低)于手腕方向时,3D商品向正前(后)方旋转称为前(后)转.图8为
(a)初始状态 (b)前转180度(c)后转90度
图8 3D物体前向和后向旋转实验结果图
前移和后移手势控制3D物体前后旋转的实验结果图.其中(a)为手平放时的初始状态,(b)为手平放后做指尖高于手腕运动时3D商品前向旋转180度的结果图,(c)为手平放后做手腕高于指尖运动时3D商品后向旋转90度的结果图.
手平放,手的右边慢慢高(低)于左边时,3D商品顺(逆)时针旋转称为顺(逆)转.图9为初始状态下,左移和右移手势控制3D物体顺时针和逆时针旋转的实验结果图.其中(a)为初始状态,(b)为手平放后右边慢慢抬起时3D商品顺时针旋转180度的结果图,(c)为左边抬起时3D商品逆时针旋转90度的结果图.
(a)初始状态 (b)顺转180度(c)逆转90度
图9 3D物体顺时针和逆时针旋转实验结果图
三种手势控制3D商品由(a)状态变为(b)状态以及由(b)状态变为(c)状态的时间如表2所示,能够满足实时性的要求.
表2 三种手势控制3D商品的状态变化时间ms
3 结论
本文主要研究了基于Leap Motion的3D商品展示技术,通过直观的三种手势,以交互的方式实时地从各个角度进行展示,解决物品在平面全方位在线展示的问题,将复杂的设备操作变得轻松自如,提高主讲人与参与者的交互性,比传统二维的图片和动画展示更具有吸引力.但是,还存在一些不足,还可以进一步完善,主要有以下两个方面:
(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]田茵.基于虚拟现实的三维产品展示[J].计算机教育,2009(6):119-123.
[10]倪乐波,戚鹏,遇丽娜,等.Unity3d产品虚拟展示技术的研究与应用[J].数字技术与应用,2010(9):54-55.
[11]俞璋凌,张萍,钟华.基于Java 3D技术的产品网络虚拟展示研究[J].湖北工业大学学报,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
辽宁省教育厅高等学校科学研究计划资助项目(L2014174)
刘金环(1989-),女,硕士,主要从事图像处理与模式识别的研究E-mail:jiashijie@dl.cn.
A