好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于Kinect的虚拟试衣相关技术的研究.docx

14页
  • 卖家[上传人]:ji****81
  • 文档编号:233700785
  • 上传时间:2022-01-02
  • 文档格式:DOCX
  • 文档大小:36.03KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •     基于Kinect的虚拟试衣相关技术的研究    万燕 陈林下摘 要:针对当前虚拟试衣技术普遍存在的一些问题,本文提出一套基于Kinect的3D实时虚拟试衣系统本系统设备成本较低,设备体积小,操作简单,适用于家庭或是个人使用不需要任何的穿戴就可以完成虚拟试衣的流程,并且试衣效果相对真实,能够实现基于即时演算并且能够反映人衣交互效果的虚拟试衣系统关键词:虚拟试衣; 三维; 布料仿真; 人衣交互Abstract: Focusing on the problems of the existing virtual fitting systems, a real-time virtual fitting system based on the Kinect camera is proposed. The system has lower cost, small size and simple operation, which is suitable to family or personal use. This system could achieve real-time interactivity between the customer and the clothes, real-time cloth simulation and could provide real-time results without severe dependence of the equipment or environment.Key words: virtual fitting; three-dimensional; cloth simulation; interactivity引言随着人们生活水平的逐渐提高和网上购物的兴起,生活在都市的人们对于线上选购衣物的需求变得更加深入和实际。

      有数据显示,年轻的上班族和学生是网购服装的主流群体但是,同样有数据显示,在有关网购服装的消费满意度方面,有一个很大的影响因素就是网购服装自身难以避免的一大缺陷——没有试穿的体验为了解决这一问题,虚拟试衣技术也就应运而生了现存的虚拟试衣系统所采用的技术从框架和展现形式上来讲主要可以分为三维和二维两种;就服装的建模方式上,二维技术路线试衣所用的服装使用图片完成服装的构造,三维路线中采用三维模型实现[1]使用图片很难将布料仿真的效果加入到系统中,因为布料的方针效果更多的是基于渲染相对的,利用三维模型,想要添加布料效果就会容易的多[3]三维虚拟试衣系统对应的工作量和数据量会比较大,不利于网络的传输,网络协议传输的数据可能使用字节来表示的,所以只能去做资源的更新,而不能做运行时的同步而二维利用图片来完成的虚拟试衣技术在网络传输上会显得更有优势,因为传输的数据量会大幅度的减少系统实现和数据维护的思路一般可以分为“构建”和“变形”两种[10]前者是指根據数据去“画”服装模型,这一思路对于二维和三维的模型都是通用的,但是使用这种思想来完成的虚拟试衣系统往往非常复杂利用“变形”思想实现的虚拟试衣系统,需要预先设置好标准模型,然后根据数据对于模型的网格或者是预先设置的骨骼组进行调整和变形。

      这样实现虚拟试衣不但在效率上会有非常大的改进,而且也能够更大程度实现对于变形效果的控制Xitong Han提出的基于二维数字图像的网络虚拟试衣系统,主要是利用二维图像分割融合,将服装图片融合到已有的图片上,从而实现虚拟试衣[7]G网站上也推出了基于WebGL的眼镜虚拟试戴系统,该系统通过摄像头获取人的头像,然后根据头像上获得的数据来实现眼镜三维虚拟试穿效果优衣库网站上也实现了虚拟试衣系统,让客户能够根据自己的体型利用参数来调整三维模型的体型,然后再进行服装的试穿,该系统在用户体验上获了一定的好评,能够较为直观地展现出服装试穿的效果同样也有网站曾经展示出虚拟试衣镜系统,这一类系统利用了二维图片,贴在通过摄像头获取的用户和用户所处环境的影像上,并且根据序列帧来调整图片的信息,产生例如动作改变和形变等效果也有一部分系统是预存了大量的图片,这些图片量非常的大,能覆盖绝大多数用户动作改变的需求[8]Salin Boonbrahm提出过针对女性的三维实时虚拟试衣系统,该系统使用三维模型,与人体的骨骼点进行匹配和调整,但对于布料的实时仿真和物理效果实现上还有很大的改进空间[11]Dimitris 和Protosaltou针对这一领域提出了布料构建的方法[5]。

      Takao Furukawa在文章中提出了基于图片克隆的三维服装建模方法[8]该方法通过提取人物正面和背面照片的骨骼点和外轮廓,然后对服装进行分割,将服装部分和人体的头部进行分离Shiyi Huang和Won-Sook Lee提出了基于双Kinect摄像头的三维服装重构技术[9]综上所述,目前的虚拟试衣技术主要存在两大问题:一是实时的三维试衣效果不够真实,对于用户来说最佳的效果是实时的交互效果;其二是大多数不适合家用,设备较为昂贵,设备体积也较为庞大,甚至有一部分虚拟试衣系统需要通过用户穿戴一定数量的传感器才能实现较好的实时虚拟试效果值得一提的是,可穿戴设备一般是指穿戴传感器,这种方法实现的动作同步是目前存在的动作捕捉技术当中效果最好的但如果试衣过程需要穿戴一系列的设备,那么虚拟试衣就没有什么存在的必要了因此能够满足实时的、轻量级、设备体积较小、无需任何穿戴设备、符合家用需求的3D实时虚拟试衣系统,具有非常重要的研究意义和研究价值基于此,本文提出了一套基于Kinect的实时虚拟试衣系统,该系统利用Kinect作为用户的信息获取设备,同时采用Unity3D作为开发环境来实现系统能够实时的完成布料仿真,并且能够实现实时的试衣动作捕捉和人衣交互,对于布料仿真的效率和效果方面也有一定的改进。

      系统最后成像部分加入了去遮挡效果的改进,能够实现较好的实时人衣交互效果1 总体设计现存的虚拟试衣系统普遍来说对试衣环境有着一定的要求,为了能够降低虚拟试衣系统对于环境的依赖,还要避免虚拟试衣的过程中需要穿戴设备或是传感器本文采用Kinect深度摄像头作为用户信息的输入设备,Kinect摄像头可以获取用户的深度图和彩色图,并且利用对于深度图和彩色图进行分析来提取用户的骨骼点和特征信息这种方法可降低系统本身对于环境的依赖,而且Kinect摄像头体积小、重量轻、使用方便,成本低、使用方便快捷,只需用户站在摄像头前就可以完成骨骼点信息的获取,满足了家庭以及大小商场的需求本文提出的技术方案主要针对两个方面:一是三维与二维的选择因此,使用二维的图像方法来实现虚拟试衣时,在试衣的实时动态效果和布料的仿真上会有一定的局限第二点是实现的总体思路本文所采用的方法是在三维世界中先预先放置所需要的资源(人体模型,服装模型),再根据所获取的数据对已有的人体模型和服装模型进行变形,也就是更加偏向一种“异步”的思想,能够实现较为高效的虚拟试衣效果总体设计路线如图1所示系统设计与实现的三个阶段:(1)目标信息的获取该阶段包括对于目标深度图、彩色图、图像骨骼点、身体参数、位置等信息的获取,并接入到Unity3D当中,主要用来实现试衣动作的同步。

      2)布料仿真虚拟试衣系统得到较为真实的动态布料效果的方法有多种,可用建模软件在构建模型时实现动画效果,然后将动画作为模型的缓存接入到Unity3D当中这种方法虽然能够实现布料的效果,甚至是交互但如果需要更为真实的实时布料仿真效果,就需在Unity3D当中对于布料效果进行优化处理3)复合输出对于任何三维的虚拟试衣系统来说,最后的三维真实试衣效果展示都是不可忽视的一部分,因为这一部分的效果和效率直接影响了用户的体验针对这一点,本文采用复合输出的方式来实现2 布料仿真布料仿真主要需实现两点:首先将“弹簧质点模型”应用到布料网格的模型上,实现布料中质点的相互作用;另外,则需要物理系统的支持,这里所提到的物理系统是指重力和碰撞检测本文主要介绍其中优化部分;最后还有对于实时布料仿真效果的优化方案进行详细的阐述2.1 弹簧质点模型弹簧质点模型是利用牛顿定律完成对物体变形模拟的方法,如今这一模型逐渐在布料仿真等研究领域被广泛的应用该模型的理念是将物体的质量分布在各个质点上,质点之间的连接由弹簧完成,质点间的弹簧又是无质量而且自然长度不为零的;这些弹簧主要用来模拟内外力对于弹簧质点运动时的影响弹簧质点模型如图2所示。

      弹簧质点运动时会受到内力和外力的影响,其中内力是指弹性力和阻尼力,外力主要是指重力和空气阻力由于弹簧质点模型的应用已经比较成熟,在很多文献上都能找到非常详细的资料,所以有关这一部分本文仅做简述需要解释的是弹簧的弹性力之间遵守胡克定律,而且不同材质的布料之间,不同的部分可以通过弹簧质点模型的力学参数来实现,而弹簧质点模型的应用并没有实质上的变动2.2 物理效果的实现单纯的实现布料的仿真效果,能够实现的只是布料质点之间的互动,反映到效果上也只是布料的波动效果而实际应用中的布料仿真还需要让布料受到重力的影响,以及要让布料中的质点能够实现碰撞的检测2.2.1 重力的实现基于图形学API所构建的三维世界中,是不存在“力”这一概念的,与其对应的是“速度”,而速度在实现的过程中将以单位时间内的位移来表示计算公式如下:不仅在此系统中是利用此方法实现重力,游戏引擎及利用到三维世界的软件中,都是利用此原理完成重力系统的实现利用弹簧质点模型中的彈簧的拉伸,可以保证布料只是下垂而不是无限的拉伸,而且可以根据系数的调整来完成不同种布料效果的模拟仿真2.2.2 碰撞和刚体检测的实现与重力系统相同,碰撞系统同样是三维世界的环境中不可或缺的一部分。

      无论是物体与物体之间的碰撞,还是物体与场景之间的碰撞,都需要实现这样一套检测系统现实中人们不能穿墙而过是因为有墙作为碰撞体阻挡,然而在三维世界中,和重力一样,这些都是不存在的,需要后期自行实现以物体和场景之间的碰撞检测为例目前,几乎所有的3D场景和物体都是由三角面片构成的在图形库文档中也都是以三角面片为例来进行图形绘制的还有一点需要完成的就是要记录每一帧物体的位置首先要根据物体的运动规律或用户指定的位置来计算当前帧的位置,然后遍历场景中的每一个三角面片然后先找到当前三角形所在的平面,称之为平面S沿着平面发现的方向对它做一个平移d,以此来表示物体和平面之间接近的距离之后再判断当前帧的位置和下一帧的位置与平面S的关系,如果当前帧物体在平面之前,而下一帧物体在平面后,则表明物体已经“穿透”了平面如图3所示但此时并不能断定物体和三角形之间发生了碰撞,因为平面是没有边界的,还需进一步判断物体是否在三角形的范围内穿透了平面S因此,在三角形的三边做垂直于S的三个平面,并令这三个平面法线都指向三角形内部为了体现物体和三角形所能接近的最短距离,这三个平面也需要沿着法线的反方向做一个平移,依靠以上提供的三个平面来检测物体与平面之间发生的穿透是否发生在三角形的边界范围内。

      但是根据三角面片形状的不同,很容易产生过大的边界,对此人们还应该加以修正如图4所示图4中占线了碰撞检测的过程中对于超过边界检测方范围的控制和优化,通过裁剪冗余的边界,来完成性能上的优化,并去除不必要的判断判断物体的位置是否在这6个平面之内,如果是则修正当前帧的位置,进行下一步的操作;否则继续遍历其余的三角形并进行最开始的操作以上介绍的就是利用DirectX实现的碰撞检测系统不难看出,如果在场景或者物体的网格特别复杂的情况下,进行这样的遍历,对于资源的消耗会非常的巨大为了应对这种情况,如今很多游戏引擎已经将网格碰撞检测移除,并用一些相对简单的形状来制作碰撞框,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.