基于增强现实技术的三维虚拟试衣仿真模拟系统
2023-12-21陈婷婷
陈婷婷
(安庆职业技术学院 农林与服装学院,安徽 安庆 246000)
随着互联网技术和人机交互技术的迅速发展,虚拟试衣技术逐渐被人们所关注。 虽然基于体感的试衣技术已经可以满足用户在不同动作形态下模拟衣物的穿戴效果,但由于无法获得衣物与人体之间最直观的感受,从而导致应用效果不理想。 对于虚拟试衣技术,国外比较知名的是试衣网站My Virtual Model。 该网站对人体进行测量确定码数,同时根据用户喜好选择合适的衣物,展示穿戴效果。 国内虚拟试衣技术也取得了一定的成果。 文献[1]利用服装CAD 软件对褶子的面料、纹样、配饰进行建模,得到2D 样板图,同时结合CLO3D 技术对模特的妆容进行仿真,将模特与褶子进行融合,实现虚拟试衣。 文献[2]对人体数据进行三维测量生成虚拟模特,将预先定制好的三维服装样板与模特相结合,经过虚拟缝合,在考虑服装变形、透视、压力与接触4 个因素后,完成虚拟模特的试衣体验。 但是,上述两种方法对于衣服褶皱、弯曲以及衣服与人体之间的碰撞响应均没有进行分析,无法给用户提供最真实的试衣体验。 增强现实技术作为一种新兴技术,可对衣物与人体之间的碰撞体动作进行分析计算,给用户最真实的试衣感受,是改变用户试衣体验的重要转折。 因此,本研究在增强现实技术的基础上,提出了一种三维虚拟试衣仿真模拟系统设计方案,将衣物三维模型与二维人体影像进行虚实融合,结合碰撞体动作仿真,实现了衣服随人体动作变化而产生褶皱、弯曲等效果。 随后展开系统性能测试,验证了所提系统的有效性。
1 三维虚拟试衣仿真模拟系统总体架构
基于增强现实技术的三维虚拟试衣仿真模拟系统总体架构如图1 所示。 系统由模型生成、场景设置和碰撞体动作仿真三部分组成。 模型生成主要包括三维建模、模型融合和导入模型;场景设置指的是用户在虚拟试衣时的场景导入和光照选择[3];碰撞体动作仿真则是通过增强现实技术,将衣物、场景和人体进行融合,并将试衣结果展现在屏幕上。
图1 三维虚拟试衣仿真模拟系统总体架构Fig.1 Overall architecture of 3D virtual fitting simulation system
2 系统硬件设计
2.1 骨骼绑定模块
骨骼绑定模块采用Kinect 体感互动系统的骨骼追踪技术,对用户的身体特征点进行追踪,如图2 所示。 Kinect 可同时对32 处特征点进行识别和追踪,首先利用特有的红外线对用户特征点计算像素深度值[4],得到景深数据,然后对每一处关节建立坐标系,得到三维坐标点。
图2 Kinect 骨骼特征点追踪图Fig.2 Kinect bone feature point tracking diagram
为保证虚拟试衣系统中衣物可以随用户动作改变而做出响应,在利用3DMAX 建模[5]过程中,将人体骨骼添加到每一件衣物中,经过不断的模型蒙皮和骨骼权重刷试来提高衣物的真实性,随后将FBX 模型代入虚拟现实开发平台Unity3D 中。 为保证衣物模型不显示人体骨骼,在建模时不将骨骼送入管线中。 FBX模型代入Unity3D 中之后,会自动生成Avatar 系统[6],进而生成与带骨骼的衣物模型相互匹配的人体模型,如图3 所示。 将人体模型中的关节特征点与Kinect 中的特征点一一对应,在Kinect SDK 的作用下,实现对人体模型中骨骼节点的追踪。 再将衣物模型与人体模型绑定在一起,即可实现衣物随人体动作改变而做出相应响应。
图3 Avatar 系统中的人体三维模型Fig.3 3D human body model in Avatar system
2.2 三维模型与二维影像虚实融合模块
本研究设计的三维虚拟试衣仿真模拟系统需要将虚拟的衣物三维模型与二维真实人体影像进行虚实融合[7],达到衣物模型能精准覆盖用户身体各个关节部位的目的。
在Unity3D 中,衣物模型的任何部位都有各自的三维坐标[8]。 衣物三维模型与二维人体影像虚实融合的基本思想是通过改变衣物三维模型中的坐标,使其对应于二维人体影像。 本研究利用一个长方体(Overlay Object) 来遮挡人体右手(Pos Joint) ,描述三维模型与二维影像虚实融合流程,如图4 所示。
图4 三维模型与二维影像虚实融合流程Fig.4 Virtual reality fusion process of 3D model and 2D image
2.3 衣服布料模拟模块
衣服布料的模拟主要从布料“cloth”属性设置和衣服交互属性设置两方面进行。 布料“cloth”属性设置可使虚拟试衣系统中衣服布料更具真实性,衣服的交互属性设置可使衣服的悬垂和下摆更加自然。 同时,衣服与人体发生碰撞后,可展现出正常的碰撞响应和褶皱弯曲。
2.4 手势识别模块
手势识别模块共添加了5 种手势状态:open、lasso、closed、unknown 和untracked。 手势识别流程如下:先通过Kinect 获取用户的手部关节信息,之后读取手部、肩膀和髋部的位置信息,判断用户手势是否为命令手势。 在虚拟试衣系统中添加手势识别模块,可以提高用户的交互性和便捷性。
2.5 语音识别模块
语音识别模块最重要的就是grxml 语法文件。grxml 语法文件中的语法对象由单词或者短语构成,不包含“a”“the”等词语。 语音识别模块可分辨出不同颜色、不同种类的衣服,如果用户想要一件红色衣服,直接说“red”,虚拟试衣系统就会将所有红色衣服展现在屏幕上。
2.6 光线模拟模块
光线模拟模块共设置了3 种光线模式:强光模式、正常光线模式及阴天模式。 用户可以在选好服装后,自由选择不同的光线模式,观察同一件衣服在不同光线下的视觉效果,这样可为用户提供更加真实的观感。
3 系统软件设计
3.1 基于增强现实技术的碰撞体动作仿真算法
在虚拟试衣系统中,衣服布料承受的外力主要来自人体活动,这个力在三维模型中体现为布料的几何约束质点运动,故需要考虑布料质点与人体之间的碰撞响应。
结合骨骼追踪技术,控制碰撞体模型来模拟人体动作。 Kinect 的骨骼追踪技术就是通过真实人体骨骼动作来控制虚拟人体执行相同的动作。 虚拟人体模型由蒙皮和骨骼两部分组成,蒙皮指的是虚拟人体模型网格[9],对网格中的顶点赋予不同的权值,即可将虚拟人体骨骼与真实人体骨骼进行关联。 随着真实人体骨骼位置的变化,可通过计算权值的方式对虚拟人体骨骼顶点进行实时更新。 蒙皮从本质上来说属于形变模型,碰撞体模型则不同,只需要对模型的刚体部分进行实时更新和旋转,即可获取骨骼位置信息,实现对碰撞体运动的控制。
人体关节部分通常被看作球形碰撞体,将球心坐标定义为Oi,通过对应关节骨骼的位置Jk进行模拟:
由于球形碰撞体具有特殊的几何性质,旋转信息可通过单位矩阵[10]进行描述:
式中:Ri为碰撞体模型的旋转信息;I为单位矩阵。
对于圆柱体模拟的人体躯干和关节,需要对圆柱体的重心移动位置和旋转数据进行计算。 圆柱体中的关节有着父子节点的关系,Kinect 通常采用四元数的方式记录子节点相对于父节点的旋转。 也可将这种旋转方式看作角轴对称,即将父节点作为基点,以父子节点所在的骨骼为轴进行肢体旋转,旋转数据可看作该骨骼上的任意一点,而重心只有一个,就是骨骼的中点。 子节点以父节点为基点进行旋转,得到重心的旋转信息。 圆柱体碰撞体的位置更新公式如下:
式中:PI、RI分别为圆柱体碰撞体更新前后的位置信息;、分别为子节点和父节点;为碰撞体模型旋转信息。
通过上述计算,可实时更新任意一个碰撞体动作的位置和旋转信息,模拟真实的人体动作,并与衣物模型完美融合,从而给用户提供最真实的试衣体验。具体流程如图5 所示。
图5 碰撞体动作仿真流程Fig.5 Collision body motion simulation process
3.2 三维模型制作软件
三维模型制作是整个虚拟试衣系统运行的基础,本研究选择3DMAX 来完成。 在3DMAX 的操作视窗中,可以使用各种便捷工具完成衣物三维模型的建立。 该软件最大的优势就是实现过程简单,初学者也能很好地操作。 并且,采用3DMAX 建立的三维模型可以完美嵌入Unity3D 中,进行其他项的操作和编辑。
3.3 虚拟现实开发平台
本研究选择Unity3D 作为虚拟现实开发平台。Unity3D 可以帮助用户在最短的时间内开发出实时三维互动内容。 Unity3D 具有非常强大的兼容性,用户用其他软件制作的模型都可嵌入其中。 Unity3D 包含场景窗口、工程窗口、层次结构窗口和游戏窗口。 场景窗口是系统设计的窗口,用户可在该窗口中进行属性设置、建模,软件内置的模型也可在该窗口中进行编辑;工程窗口主要的作用是存储用户使用的资源;层次结构窗口服务于场景窗口,用来存储场景窗口中的物料,与工程窗口不同的是,该窗口可显示在场景中,显示的层次关系由窗口元素的父子关系决定;游戏窗口是显示平台,对于模型的整体效果、运行流程都可进行展示,对于本研究来说,该窗口主要显示用户的试衣效果。
4 系统性能测试
将3DMAX 建立的三维模型置入Unity3D 中,用户可以在Unity3D 中自由选择场景与光线条件。 在用户自定义的场景模式中进行试衣体验,可以排除其他外界因素的干扰。 为验证所提系统在实际应用中是否可以给用户提供最真实的试衣体验,需要对其进行性能测试。 测试主要从服装大小的调整和骨骼追踪技术应用效果两方面进行。
4.1 服装大小的调整
由于用户的身材不同,所以需要对服装大小的调整功能进行测试。 选取两位身材相差较大的用户进行试衣,所提系统取得的测试结果如图6 所示。 用户A 的身高、体重分别为168 cm、50 kg,用户B 的身高、体重分别为174 cm、64 kg。
图6 所提系统服装大小调整功能测试结果Fig.6 Test results of the clothing sizing function of the proposed system
对比图6(a) 、(b) 可以看出,所提系统可根据用户身材的不同,调节衣物三维模型中的服装比例,展现出量体裁衣的试衣效果,为用户提供更加真实的试衣体验。
4.2 骨骼追踪技术应用效果
为验证所提系统是否可以根据用户肢体动作变化展现出不同形态,对骨骼追踪技术的应用效果进行测试,结果如图7 所示。
图7 所提系统骨骼追踪技术应用效果Fig.7 Application effect of bone tracking technology of the proposed system
由图7 可以看出,所提系统可以精准检测到人体肢体的变化和位置,根据用户的动作展现出不同的形态,大大增强了用户的体验感和真实感。
4.3 系统性能对比
为验证本方法的可行性,将本方法与文献[1]、文献[2]方法以服装接触点个数为标准进行对比,服装接触点越多,动作跟踪效果越好,对比结果如表1 所示。
表1 3 种方法服装接触点对比结果Tab.1 Comparison results of three methods for clothing contact points
从表1 中可以看出,本方法的服装接触点平均为12.6 个,说明本方法可为用户提供契合度高、速度快且精准的试衣体验。 文献[1]方法的服装接触点平均为10 个,文献[2]方法平均为9.6 个,均低于本方法。 由此可知,本方法的动作跟踪效果更好,更具可行性。
为进一步验证本方法的实用性,分别以试衣契合度、试衣效率、面料变形率作为指标,采用本方法及文献[1]、文献[2]方法进行性能测试,对比结果如表2 所示。
表2 3 种方法用户试衣效果对比结果Tab.2 Comparison results of user fitting effects of the three methods
从表2 中可以看出,与其他两种方法相比,本方法的试衣契合度与试衣效率最高,面料变形率最低,更具实用性。
5 结语
本研究在增强现实技术的基础上,建立了三维虚拟试衣仿真模拟系统,使衣服可随人体肢体动作改变做出不同的响应,增强了用户的体验感和真实感。