模拟试衣间系统

2024-07-12

模拟试衣间系统(共4篇)

模拟试衣间系统 篇1

1 引言

目前国内外, 随着网购趋势愈发猛烈, 因此消费者在购物上有了新的层次上的要求, 因此网上试衣间更符合消费者对产品未来的需求及市场发展的方向。网上试衣间最先在美国、日本等国家出现, 中国的网上试衣服务因其技术上的瓶颈, 还不能达到最完美的现场效果。针对这种现象, 我们研发了人体三维形体模拟仿真试衣系统, 达到真实着衣的效果。

2 研究方法及解决的问题

识别静态的整个人体较难, 即使识别出来结果也不可靠, 所以现在主要以手势/人脸识别为主, 这是因为手和脸上面有比较独特的特征点。利用帧间差分找到图像中灰度相差大的部分, 然后二值化区域连通, 要是图像中没有其他移动物体计算连通区域的变动方向就是人的运动方向。

人体三维形体模拟仿真试衣系统主要解决以下问题: (1) 提高服装网购的真实性与安全性; (2) 减少网购退货率, 提高顾客满意度; (3) 绚丽的购物方式吸引客流; (4) 虚拟方式减少实物损耗。该系统采用电脑软件模拟的方式来构建人体与服装的三维立体模型, 并自动进行最佳匹配, 从而为消费者提供服装选择的参考。

3 系统构建

3.1 数据采集部分

主要通过用户直接在电脑终端上输入自己的身高、三围等数据。并辅以摄像头或红外传感技术拍摄人体图像, 获得人的大致身高、三围、臂长、腿长, 提取出人体各个形态特征和衣服的尺寸信息的匹配值。

3.2 前台系统部分

用户通过前台界面输入人体三维数据, 系统响应输入从数据库中调出已有的虚拟三维立体模型, 再根据用户选择的服装调出服装的三维数据。然后虚拟人体模特“穿上”虚拟的服装, 可以360度拖动旋转, 并显示衣服与人体的匹配度 (百分制) 和推荐的衣服尺码, 方便用户观察、选择。

3.3 数据库部分

存储有人体三维立体模型数据及对应的最佳服装尺码, 服装三维立体模型数据以及人体模型与服装模型的匹配度等数据

系统基本工作流程图如图1。

4 软件实现

结合MATLAB、3DSMAX、数据库等软件的功能特点, 编写的一个模拟试衣软件。该软件可分为两个部分:

(1) 数据库部分:建立一个存储有人体三维立体模型数据及对应的最佳服装尺码, 服装三维立体模型数据以及人体模型与服装模型的匹配度等数据。

(2) 前台部分:打开软件输入各项人体尺寸数据, 系统自动生成相应的三维立体形态模型, 顾客可根据实际情况对模型各项参数进行微调 (如可视化平移、拉伸等) , 还可对虚拟模特用鼠标直接拖曳拉伸或通过修改人体模型或服饰模型的参数来观察服饰的穿着效果。

其中数据库采用SQL SERVER数据库, 前台采用C#编写。试衣技术通过图层对应叠加实现。采用纸娃娃系统, 运用C#语言, 采用图层叠加, 服装层覆盖于人体模型层之上达到换装试衣效果。

5 研究的创新点和特色

(1) 人体三维形体模拟仿真试衣系统, 是基于现代社会网购这一新兴购物方式中不同个体服装的个性化需求而研发的。系统采用电脑软件模拟的方式来构建人体与服装的三维立体模型, 并自动进行最佳匹配, 从而为消费者提供服装选择的参考。

(2) 针对目前研究领域中软件模拟与硬件采集各自的优缺点, 采取软件模拟为主, 硬件采集为辅, 既降低了投入, 又提高了真实度。为客户提供了性价比很高的选择。

(3) 对于大部分普通消费者来说, 它能通过用户输入数据在商家提供的衣服种类中选择合适自己的服装。同时, 对于特定的消费群体, 它也能通过数据采集, 建立其特有的人体三维模型给商家。这样能极大的提高交易成功率。

(4) 该研究最大的特色便是使用图层叠加技术将一套服饰拆分为若干部件, 部件间可自由叠加组合, 这样能在同样多套服饰的基础上极大地丰富了服饰的多样性, 充分的利用了已掌握的简明的方法解决实际中相对复杂的现实问题, 给以后的改进提供了成功的模板, 这是其最重要建树。

6 结束语

人体三维模拟仿真系统是近年来较为热门的研究方向。本文介绍了该系统的创建理念、方法和研究目的。然后从Kinect数据采集方面、数据库技术和人机交互方面着重介绍了该试衣系统。最后, 提出了该系统的创新点和特色之处, 给出了进一步的研究思路, 希望能对该方向及相关领域的研究起到促进作用。

摘要:本文介绍了人体三维形体模拟仿真试衣系统, 它主要是以红外摄像、MATLAB、3DSMAX、数据库等技术, 制作一个以远程服装试穿为服务对象的综合性系统。该系统采用电脑软件模拟的方式来构建人体与服装的三维立体模型, 并自动进行最佳匹配, 从而为消费者提供服装选择的参考。系统通过用户自行输入自己的各种形态体征, 建立其独有的人体三维模型, 最后商家生产出合身的衣物。同时, 人们可通过该系统进行模拟试衣, 达到与实体店购衣近乎等同的效果。

关键词:三维形体模拟仿真试衣系统,数据库,红外摄像,MATLAB,3DSMAX,Kinect,技术

参考文献

[1]包宏译.AlanWatt.3D计算机图形学 (第三版) [M].北京:机械工业出版社, 2005:194-204.

[2]于晓坤, 王建萍.人体体型与服装号型的匹配关系及其在电子商务中的应用[J].东华大学学报:自然科学版, 2003, 29 (1) :4348.

[3]刘正, 张欣.基于逆向工程技术的虚拟个性化人台的制作[J].天津工业大学学报, 2005, 24 (3) :3840.

虚拟试衣系统研究与实现 篇2

近年来, 随着电子商务的发展, 网络服装销售量逐年增加, 仅在网络上看到服装的颜色、款式、尺码等信息已不能满足人们的需求, 人们希望进一步知道服装是否适合自己的体型、肤色等。为了体验更真实的穿着效果, 让消费者购买到满意的商品, 三维虚拟试衣系统应运而生, 能够快速有效地模拟衣物在人体上真实的穿着效果, 给消费者带来更直观的感受。

虚拟试衣的关键技术之一在于对衣物和人体模型的建模。以往对于织物的模拟, 大多都基于物理的建模, 或结合物理与几何方法。基于物理的建模通过引入质量、力、能量等物理量, 将织物各部分的运动看作是各种力的作用下质点运动的结果。Terzopoulos等人把柔性物体的变形描述成柔性物体内部组织抵抗形变产生的弹性力、外界作用力和阻尼力共同作用的结果, 为柔性物体提出了弹性形变模型, 建立了物理基础[1]。

Miralab发展了弹性形变模型, 用于虚拟演员的服装模拟和3D时装辅助设计, 并且他们对布料的碰撞检测及其优化进行了讨论[2]。Breen等人研究了不同织物的力学特性, 提出了将质点系统应用于织物模拟[3]。

本文的研究是在目前研究的基础上, 对现有的衣物模拟方法进行改进和创新, 实现一个快速模拟衣物穿着于人体上物理效果的系统。本研究主要关注于衣物模型构建、衣物动力学方程求解、碰撞检测和响应等方面的算法探索和创新, 提升算法的速度和稳定性, 解决衣物模拟的时间复杂度和模拟准确性的矛盾。这些研究可望为衣物模拟开拓更广泛的应用范围, 为三维游戏、试衣程序提供真实的衣物效果。

1 衣物物理模型的构建与受力学分析

对于衣物物理建模, 常用的一种模型是从基于能量最小系统模型改进而来, 具有构造简单、实现方便的特点, 为衣物模拟广泛采用。Provot提出的弹簧-质点模型是一种有效表达衣物物理特性的模型[4]。如图1所示, 该模型的拓扑结构是一个质点以二维方式排列而成的矩形网格, 质点之间以质量不计的弹簧连接。为了模拟衣物纤维之间多种方式的连接, 弹簧分为三类:结构弹簧、剪切弹簧和弯曲弹簧。

弹簧-质点模型可以较容易地表示一块矩形布料, 如桌布、窗帘等物体, 但复杂的衣物模型用矩形的网格表示不太理想。通常设计师设计的衣物几何模型和计算机生成的衣物模型大多使用三角网格表示, 即模型中储存衣物所有顶点的三维几何位置, 以及所有构成衣物的三角面片。系统首先从模型中读取衣物的顶点位置, 并构建衣物质点对象。衣物质点对象保存质点的质量、速度、位置等信息。衣物质点间的结构弹簧、剪切弹簧和弯曲弹簧使用构成模型的三角形确定。三角形本身具有抵抗形变的能力, 因此结构弹簧和剪切弹簧可合并为结构弹簧表示。连接的衣物质点之间加入弹簧即为结构弹簧。两个顶点的连接边一般情况下属于两个不同的三角形, 为避免顶点之间重复加入弹簧, 可以在顶点中保存弹簧的数据, 并建立一个临时二维数组保存已连接质点编号来减少构建模型的时间开销。

为了实现弹簧—质点模型, 本文设计了几个相关的基础类, 包括三维空间矢量类、顶点类、面片类、顶点模型类, 设计了几个相关的派生类, 包括面片模型类、模型类、布料类等等。这些基础类封装了相关的基础数据和操作方法, 并重载了常用运算的操作算子。

2 衣物动力学和受力分析

设衣物模型总计有n个质点, 质点的集合记为P= (P1, P2, …, Pn) 。质点 (i∈{1, 2, …, n}, 下同) 的质量记为mi, 位移记为mi, 速度记为vi, 加速度记为ai, 所受合力记为Fi。则根据牛顿第二定律有:

其中Finternal指质点受到内力的合力, Fexternal指质点受到外力的合力。

质点所受到的内力包括衣物的结构弹簧、剪切弹簧、弯曲弹簧对质点的作用力。质点所受到的外力包括重力、风力和空气阻尼力等。下面分析质点所受内力、外力和阻尼力。

2.1 内力

模型中, 衣物系统质点间的内力指弹簧的弹性形变力。质点所受到的内力可以表示为:

其中Fstretch指质点受的拉伸弹簧力, Fshear指质点受到的剪切弹簧力, Fbend指质点受到的弯曲弹簧力。

理想情况下, 弹簧的弹性形变力可由胡克定律计算。根据胡克定律, 在弹簧的弹性限度范围内, 弹力与弹簧的拉伸量 (或压缩量) 成正比, 即:

其中k (i, j) 指连接Pi和Pj之间的弹簧弹性系数, l (i, j) 指连接和Pj之间弹簧的原始长度。

如图2所示, 用线性弹簧代替布料来模拟内部牵引力, 当内力在一定范围之内时, 曲线拟合较为接近。但当内力超过一定值Imax, 弹簧形变将远远大于相同受力情况下布料的形变量, 这就造成了布料仿真中不真实的“超弹性”现象。

本文解决此问题是通过给布料中的结构弹簧设置一个拉伸的上限, 这样可以控制弹簧内力不至于过大, 同时使布料具备一定的弹性又不会拉伸过度导致“超拉伸”现象。在弹力运算中, 如果弹簧系数过小, 则弹簧极易拉伸, 加剧了“超拉伸”现象的发生;但如果选取的弹簧系数过大, 根据弹簧积分步长自然周期关系, 在布料仿真中, 弹簧系数与数值积分时间步长呈反比关系, 因此, 大系数的弹簧必然导致较小的时间步长, 导致了单位时间内积分次数的增多, 系统整体效率下降。

本系统采用动态调整劲度系数的方法来避免过度拉伸问题。当伸长量在原来的0.1倍以外时, 劲度系数将扩大为原来的4倍, 实验结果表明, 在采用大步长隐式积分的前提下, 这种方法在保证实时性的同时, 有效地避免了过度拉伸。

2.2 外力

在实时布料运动仿真中, 为了提高布料运动的真实感, 往往还要考虑重力、风力、空气阻力等自然世界里真实存在的外力对布料运动的影响。本文主要考虑了重力、风力和空气阻尼力的影响。

1) 风力

假设风力影响布料的运动, 但是布料的运动并不会影响风力场。根据流体力学的方法, 通过计算风力作用在模型中每个三角面上的力来计算风施加在相应三个顶点质点上的力, 这样每个质点所受的风力为它所在三角形面受力的合力。由流体力学定律可得, 施加在每个三角面上的力为:

式中ρ是空气密度;cd是布料的拖曳系数;α三角形的面积;N是三角形的法线;Vrel是三角形表面相对风的运动速度。图3为风力作用下布料包围球体的效果。

2) 空气阻尼力

衣物在空气中运动受到空气阻力使速度下降, 其自身结构的内部摩擦力也会减小衣物运动的速度。考虑空气阻力, 根据Stokes公式, 衣物受到的粘滞阻力和质点的速度大小成正比, 方向相反, 即:

若考虑弹簧的阻尼, 将弹簧内部的阻尼表示为与质点相对速度成正比的作用力, 则:

其中kdamping (vi-vj) 指连接Pi和Pj之间弹簧的阻尼系数。

3 动力学方程求解

对衣服进行建模和受力分析后建立了衣服质点的动力学方程组。数值计算并非可以完全准确地求得微分方程的解, 而是通过计算机的数值计算得到微分方程的一个近似解。本文介绍几种常见的数值求解方法, 并讨论经改进的隐式积分法。

3.1 显式欧拉法

显式欧拉法又称前向欧拉法, 使用前向的函数增量比近似代替导数, 属于差分方法。若将显式欧拉方法应用于弹簧-质点模型, 从时间开始计算, 在时间步长Δt之后质点的速度和位置分别为:

其中x (t) 、x (t+Δt) 分别指质点在t时刻和t+Δt时刻的位置。v (t) 、v (t+Δt) 分别指质点在t时刻和t+Δt时刻的速度。a (t) 指质点在t时刻的加速度。

显式欧拉法属于一阶数值微分方法, 由于该方法的误差O (Δt2) 为步长Δt的平方, 误差较大, 在设置时间步长时Δt必须很小才能保证数值求解的稳定性, 而对于布料仿真, 由于外力通常较小, 采用较大步长的显式积分法也能保持较好的稳定性。但是在引入碰撞检测的前提下, 可能会导致布料质点发生振荡, 使得仿真系统不再保持数值稳定。如图4所示, 仿真中出现衣服的穿透现象。

3.2 Verlet积分方法

Verlet法通过前一步和后一步时间步长位置的计算减小了误差, 提供比显式欧拉方法高的数值稳定性。Verlet法由向时间轴前后进行Taylor展开计算而得, 如下:

两式相加得到:

由上式可知, Verlet方法不涉及到质点速度的计算, 可用于求解质点运动的轨迹, 通过计算上一时间步和下一时间步, 精度更高。Verlet方法中不涉及质点速度的计算, 误差O (Δt4) 为步长Δt的四次方。在步长相同且小于1的情况下, Verlet方法的误差将远小于显式欧拉法, 且稳定性更好。

3.3 隐式积分法

本文在Verlet方法的基础上, 对梯形法进行了改进, 得到了更加高效的数值求解方法。通过Verlet法对下一时刻的位置进行预测, 由预测得到的下一时刻位置和当前时刻位置, 通过差分运算求得下一时刻的速度, 进行运用梯形公式法求得下一时刻的位置。

改进后的梯形算法具有Verlet方法误差上的优势, 且Verlet可以省去对速度的计算, 以进一步减少计算量和累计误差。实验表明, 改进的隐式积分方法保证了系统的稳定性, 在较大时间步长条件下系统也能保持稳定, 但计算时间复杂度略高于显式积分方法。算法比较如表1所示。

4 基于AABB层次包围盒的碰撞检测和响应

衣物模型和人体模型交互作用的主要方式就是衣物和人体之间的碰撞。本文使用了基于AABB层次包围盒树的碰撞检测方法和判断质点距离的衣物自碰撞检测方法[6,7]。

本系统中, 通过检测衣服质点和人体面片的相对位置来判断衣物和人体是否发生了碰撞。为了加速检测, 分别对衣服质点和人体面片建立了两棵AABB层次包围盒树, 两树同时比较、检测。对于衣服质点, 由于同层AABB盒位置不会重叠, 盒子划分易使用二分法, 因此采用了自顶而下的建树过程。首先将物体对象或者所有元素所占据的整个空间作为AABB树根节点, 然后对该根节点进行左右划分, 自顶向下为父节点建立两个子节点, 直到每个叶子节点中只包含一个衣服质点为止。在实现中, 沿着空间体的最长轴划分为左右两个子节点, 然后继续再对这些子节点分别沿着各自的最长轴进行左右划分, 这样最终将得到一个AABB二叉树结构, 如图5所示。对于人体模特面片, 同层AABB盒位置很难确定边界, 不适合二分法, 而采用邻近面片组合法, 自底而上建树, 免去了确定AABB盒的复杂性。自底向上的建树方法首先遍历叶子层中的每个AABB包围盒节点, 按照相邻关系将指定邻域范围内的若干个节点合并成一个父层节点, 其中父节点管辖的空间域正好能包围住它各个子节点所对应的空间域。根据子节点的邻接节点所对应的父节点, 可以得到当前父节点的邻接关系。进一步利用父层的邻接关系合并, 可得到祖父层的节点。依次类推, 最终可以建立整棵BVH树, 如图6所示。实验结果表明, 对于顶点树, 自顶而下建树法速度较快, 对于面片树, 自底向上建树法速度较快。AABB间的相交测试最多只需要6次比较运算。

建好BVH树后, 即可进行动态仿真中的碰撞检测。在仿真过程中, 随着时间的推进, 物体对象或可变形体元素的空间位置可能已经发生了明显的变化。实际上, 大多数情况下, 在每一个时间步长内, 物体的位置变化通常并不是很大。为了保证碰撞检测的有效性, 只需要对现有的BVH树进行更新即可, 无须重建。为了充分发挥出系统的高效性, 我们使用较为高效自底向上标记、自顶向下只更新标记AABB分支树的方法。

5 实验

本文使用C++语言和SGI的开放图形库技术 (OpenGL) [8,9]作为工具实现了衣物人体交互仿真。系统的功能可以分为如下几个模块:

(1) 显示模块渲染衣物和人体面片;

(2) 输入模块从衣物几何模型输入根据用户设定的参数转换为衣物弹簧-质点物理模型;

(3) 数值计算模块更新质点物理数据, 利用数值积分方法和设定时间步长求解质点微分方程, 计算质点物理数据;

(4) 碰撞检测模块检测衣物和人体的碰撞以及衣物间碰撞;

(5) 输出模块输出质点的位置数据和法向量数据, 以供其他基于衣物物理的程序使用。

实验仿真流程如图7所示。

系统使用面向对象方法, 首先抽象出一个模型基类, 具体的模型基类由基类或子类派生。主要的数据结构的定义如下:

(1) Particle类保存质点的物理数据。

(2) Constraint类保存质点对之间的约束信息。

(3) Cloth类保存质点的集合和约束的集合, 提供数值计算和碰撞检测的方法。

(4) Mesh类保存三角面片模型的几何信息。可以从3ds模型导入数据。

6 结果分析与展望

系统在CPU为Core i3-2310M 2.10GHz, 内存为2G, 显卡为AMD Radeon TM HD 6630M的PC机环境下进行了测试, 实现衣物布料仿真和人体模特的穿衣动画, 如图8所示。从模型基类派生出布料类、衣服类和人体类, 以及相应的顶点类、面片类, 基于层次包围盒抽象层次模型, 派生了AABB包围盒相关的子类, 并以此为例实现了布料、衣服等织物仿真中的碰撞检测与响应。由于织物的自碰撞发生在可变形体本身的不同部位, 是一种特殊的碰撞, 为此我们也基于AABB树实现了可变形体的自碰撞与响应算法模块。在数值方法方面, 与显式欧拉积分方法相比, 本文的方法具有一定的稳定性。本实验中, 对3400个顶点的衣服和6万面片的衣服模特进行穿衣, 采用改进后的梯形法, 每秒可生成3至4帧的数据, 步长为0.2秒, 且稳定性非常好, 在迭代6次后, 在处理过度拉伸时依然能处于稳定状态, 从穿衣过程的仿真结果来显示, 本模型基本达到了物理仿真的逼真性要求, 满足了布料、衣服等可变形体和人体模特的虚拟动画需求。人体穿衣仿真有望为网络虚拟试衣提供技术支持, 促进国内网络试衣间的发展, 并将促进人们对网络购物的热情。

参考文献

[1]Meng Y, Mokb P Y, Jin X.Interactive virtual try-on clothing design systems[J].Computer-Aided Design.2010, 42 (4) :310-321.

[2]Thomaszewski B, Pabst S, Strasser W.Asynchronous cloth simulation[C]//Proceedings of CGI.2008.

[3]Volino P, Magnenat-Thalmann N, Faiire F.A simple approach to nonlinear tensile stiffness for accurate cloth simulation[J].ACM Transactions on Graphics, 2009, 28 (4) :104.

[4]Zhang M M, Pan Z G, Mi Q R.Anisotropic cloth modeling for material fabric[J].Transactions on Edutainment IV, 2010 (4) :130-144.

[5]周川.布料动画关键技术研究[D].浙江:浙江大学, 2009.

[6]Salazar F S R, Machado B B, Ocsa A, et al.Cloth simulation using AABB hierarchies and GPU parallelism[C]//Brazilian Symposium on Computer Games and Digital Entertainment, 2010:97-107.

[7]Zhang X Y, Kim Y J.Interactive collision detection for deformable models using streaming AABBs[J].IEEE Transactions on Visualization and Computer Graphics, 2007, 13 (2) :318-329.

[8]谭浩强.C++程序设计[M].2版.北京:淸华大学山版社, 2011.

模拟试衣间系统 篇3

随着服装电子商务的日益普及和网上试衣间的迅速发展,人们已不仅仅满足于简单的文字介绍和图形展示,对服装商品展示的交互性和真实性也有更高的需求。目前网上服装销售中服装展示仍然以二维服装照片为主,但是一些著名服装销售网站已经开始利用虚拟现实技术向广大消费者提供虚拟试穿服务。

目前采用虚拟试衣技术主要分为两种:一种基于二维照片,消费者可以将不同的服装“穿”到固定模特身上以观察不同服装的搭配效果,这种方法方便简单,成本与一般的服装展示照片相差不多,但只能显示衣服的正反面,缺乏全方位展示;另一种是基于建模渲染的,首先建立的试衣模特,人体(包括头部与身体部分)与服装都是采用计算机三维模拟技术得到的,其真实性还远远不够,加之目前服装面料的计算机模拟并不能很好地表达出面料的质感、悬垂效果等,缺乏真实感。

本文提出一种基于照片的Flash三维在线试衣系统能解决以上问题。具体实现的方法是:首先对一个真人模特进行360度环绕拍摄,每隔22.5度拍摄一张照片,得到一组16张照片,然后再对照片进行数字化处理,生成数字模特。接着把每件衣服穿在塑料模特身上,然后按照以上拍摄真人模特的方法进行360拍摄,得到一组共16张的照片,对照片进行数字化处理并添加交互功能。

2. 系统总体设计

本试衣系统采用Flash作为开发工具以便运用于网络,整个系统被设计成一个Flash文件,可以很方便地内嵌于html页面中。用户通过浏览器打开并运行试衣系统,可以进行选衣、试穿和搭配。

由于本系统的模特和衣服都是通过360拍摄取得素材,所以试穿功能的实现是使用图片叠加的方法,原理如图1所示。由360拍摄得到模特和衣服各16张图片,使用Flash脚本语言Action Script控制多张图片的叠加,可以实现“穿衣服”的效果。

搭配功能的实现方法是使多件衣服的照片进行叠加,也就是把多件衣服“穿”在模物身上,原理如图2所示。每件衣服必须与模特的匹配,匹配方法严格按试穿功能的叠加方法。

3. 系统的实现

3.1 图像采集

图像采集是利用普通数码相机对模特或衣服进行360环绕拍摄,依据精度不同,可拍摄8~36张照片。拍摄照片太少会导致最后得到的三维效果差;拍摄照片过多会使数据量增加,对网上传输不利,所以经过大量实验测试,本文得出拍摄16张照片最为合适的结论。

为了提高后面图像处理的效率,拍摄时可使用蓝色背景,当拍摄衣服时,还要把塑料模特涂成与背景色一样的颜色。由于真人不方便移动,拍摄模特时可使用真人模特固定,相机按一定半径以模特为中心环绕拍摄的方法。拍摄衣服时,使用衣服环绕旋转,相机固定位置拍摄的方法。

3.2 图像处理

拍摄完成后,把图像素材传送到计算机上,使用图像处理软件(如Photoshop)对拍摄所得的16张模特照片分别进行剪裁,调整色彩、抠图等操作,把背景设成透明颜色,然后输出成png格式图片,如图3所示。对衣服使用同样的方法进行处理,得到如图4所示的衣服图片。同时利用图像处理软件制作一些比较美观的按钮、背景等素材,作为以后在Flash中制作交互动画使用。

3.3 添加交互功能把处理完成图片和素材添加到Flash开发平台下,并且使用Actionscript编写交互功能。

本系统的交互功能包括两部分:一是模特和衣服的三维展示功能的实现,二是试衣功能的实现。

三维展示功能实现原理是,首先把模特或衣服的16张图片分别插入到16帧上,然后通过鼠标的移动控制图片帧序列的播放。具体用Actionscript程序实现的流程如图5所示,首先监听鼠标按下的动作,再计算在鼠标弹上之前,鼠标在X坐标方向上的位移量。接着获取当前帧,然后判断如果为位移量为负值,则切换播放到前一帧,如果为位移量为正值,则切换播放到后一帧。

因为模特和衣服图片的背景都是透明的,所以试衣功能的实现只需要通过按钮控制图片的叠加。当需要“穿衣服”时把衣服图片叠加到模特图片之上,当需要“脱衣服”时,只需把衣服图片隐藏即可。最后完成三维试衣的Flash界面如图6所示。

4. 结束语

基于Flash的在线试衣系统给用户提供一个全新的网物体验平台,完全实拍360度旋转,让用户能够随意的将各种服饰搭配。本系统以Flash技术为平台,可以轻松嵌入网页,便于浏览对观看,具有强大的功能扩展性。

摘要:随着网络技术的高速发展,网上在线试衣正成为人们服装消费的新方式。目前网上在线试衣是以二维为主,缺乏全方位展示,还有一些基于建模渲染的三维展示系统,但由于制作复杂,成本高以及色彩还原差等问题,其实用性不高。为此,提出基于Flash的三维在线试衣系统,使用照片为素材制作衣服的三维展示,此系统具有很高的实用价值。

关键词:计算机应用,Flash技术,三维展示,在线试衣

参考文献

[1]何伟明.基于Flash的三维商品展示[J].广东工业大学学报(社会科学版),2009,6:317-318.

[2]王文毅.新网上购物革命[J].服装设计师,2004,(4):133-134.

[3]高峰,董兰芳.网上3D试衣系统技术研究[J].计算机仿真.2006,6:211-212.

[4]陆永良,李汝勤.胡金莲.虚拟服装的发展历史和现状[J].纺织学报,2005,26(1):132—133.

基于深度摄像头的虚拟试衣系统 篇4

关键词:深度摄像头,虚拟试衣,人机交互

一、绪论

(一) 项目提出的背景及研究意义

就目前而言, 人们大多采用的试衣方式是:先在店中选中自己喜欢的衣服而后逐一试穿, 试衣者耗费了大量体力和时间。现如今凡事都追求快速高效, 若是能在更少的时间内达成自己的诉求, 必会获得广大消费者的青睐。

随着类似于微软Kinect等可以检测出深度的摄像头的出现以及三维建模技术的成熟, 为虚拟试衣系统的诞生提供了可能。该系统界面简洁友好, 使消费者不用阅读说明书就能较快上手, 完成自己的试衣。

(二) 国内外研究及应用现状

虚拟试衣最先是以网页2D虚拟替身类型出现的, 这种类型的特点是成本低、开发时间短、技术手段相对成熟, 仅需对真实模特和服装的照片或者效果图进行简单处理即可。2D类型的虚拟试衣虽然操作简单, 对网络带宽和终端设备要求较低, 一般仅能提供虚拟替身正面与背面两组视角的试穿效果, 因此对于服装上身效果的细节并不能很细致地体现。

而之后发展出来的3D虚拟试衣在操作方式上与2D类似, 都需要在试衣前选择并设置用户替身的身材比例, 然后从网页列表中选取并试穿服装或者配饰后在预览窗口中进行浏览。所有的服装模型均为三维模型, 因此可提供360度全方位的视图浏览。它的视角比2D虚拟试衣更为灵活, 但是就用户真实度和体验感来说而言仍是差强人意, 原因是在3D虚拟试衣中每件服装、配饰和虚拟模特都要进行三维构建。其次, 三维服装属于柔体模型, 易变形, 达不到体验者对美观的要求。

基于增强现实AR (Augmented Reality) 技术的服装虚拟试衣是目前最新的应用类型, 其高效、直观、真实的优势十分明显, 也是沉浸感和体验效果最优的一种虚拟试衣体验类型。

二、基于深度摄像设备的人体姿态的捕捉与识别

(一) 彩色视频流的获取

首先进行人体信息的提取。Kinect有两类摄像头, 近红外摄像头和普通的视频摄像头。视频摄像头提供了一般摄像头类似的彩色影像。这种数据流是三种数据流中使用和设置最简单的。因此我将他作为Kinect数据流介绍的例子。

使用Kinect数据流也有三步。首先是数据流必须可用。一旦数据流可用, 应用程序就可以从数据量中读取数据并对数据进行处理和展现。一旦有新的数据帧可用, 这两个步骤就会一直进行。我们使用Kinect彩色视频摄像头获取视频流信息, 即看到的人像与背景。使用红外摄像头来获取人体的骨骼信息与深度信息。

为了实现实时播放视频流数据, 在Kinect_ColorFrame Ready方法中, 我们首先通过打开或者获取一个frame来提取Frame数据。Color Image Frame Ready Event Args对象的Open Color Image Frame属性返回一个当前的Color Image Frame对象。这个对象实现了IDisposable接口。调用Copy Pixel Data To方法可以填充像素数据, 然后将数据展示到image控件上。这样在屏幕上就会出现一个实时录制现实场景的视频。

(二) 手势识别

对于Kinect来说, 目前可以使用的有8个通用的手势:挥手 (wave) 、悬浮按钮 (hover button) 、磁吸按钮 (magnet button) 、推按钮 (push button) 、磁吸幻灯片 (magnetic slide) 、通用暂停 (universal pause) 、垂直滚动条 (vertical scrolling) 和滑动 (swipping) 。我们的系统里采用了push button, vertical scrolling和swipping。

打开程序, 进入界面, 在kinect摄像头前挥手, 机器自动识别出手势并映射在界面上。此时不进行任何操作。

1. 确认选择的Push Button。

下压按钮 (Push Button) 。手掌张开向前, 在形式上有点像动态鼠标。下压命令执行的结果就是用户选择的衣服将试穿在用户身上。

2. 用于浏览的Vertical Scrolling与Swip。

左边衣物选择栏使用的是垂直滚动条 (Vertical Scrolling) 。当抬起或者放下手臂时会使得屏幕的内容垂直滚动, 滚动的方向和大小由手臂和水平方向的夹角来确定。

使用划动手势 (Swip) 进行操作。Swipe Time和Swipe Deviation分别提供了划动手势经历的时间和划动手势在y轴上的偏移阈值, 在一定阈值范围内对手部骨骼数据进行实时跟踪。检测出划动手势时滚动条将进行相应的响应。 (如图1)

3. 用于抓取的握拳手势。

当使用者在浏览衣橱的时候, 需要上拉或者下拽。在使用者将手握拳抬起或者放下手臂时会使得屏幕的内容垂直滚动, 是便于使用者确定浏览抓取点的设计。

三、虚拟衣物模型的建立

(一) 衣物模型的选择与建立

将衣物进行分类, 分为上装、下装和全身装。基本衣物的建模过程如下:

一些简单的无袖裙装、高跟鞋、短裤等, 可以先建立一个类似的长方体, 根据具体需要修改参数 (包括长、宽、高, 以及长宽高上的分段数) , 然后将整体转化为可编辑多边形;之后选中不需要的面片删掉, 剩下的即基本形状。然后用合适的、方便操作的选取方法选中所需要调整的关键点, 进行位移上的推拉。除此之外, 还可以使用修改器中的球形化、挤出、弯曲、扭曲、噪波等。

修改器调整好整体形状以后, 需要通过细化、网格平滑、nurms细分等来使得对象更加平滑, 适当地增加迭代次数可以达到更加满意的效果, 但迭代次数太高会导致电脑功率加大造成负担;最后可以适当地在裙装上采用松弛修改器来增加垂坠感。

(二) 解决衣物与试衣者紧密贴合问题

在使用者试衣的过程中, 一定会移动或者旋转身体来体验所试的衣服穿上身的效果。所以衣物与身体的贴合度的解决方案是将所建的模型进行截图, 并按照旋转角度分帧来进行图片的保存。在与Kinect结合的时候预先对使用者的身体转向进行判断, 然后使用相对应的图片对使用者相应的身体部位进行贴图处理。 (如图2)

四、基于深度摄像头的虚拟试衣系统的设计

(一) 衣物的分类及它们与控件之间的对应关系

首先将衣服分为三类:TOPS, PANTS, TOPS, 分别表示裙装、下装、上装。Kinect Region里面不同的Kinect Tile Button代表不同的衣服, 通过按钮上的LA-BEL属性获取当前用户选择的衣服类型, 三种不同的衣服属性分别对应三张待替换的图片IMAGE控件。

(二) 衣服与待替换的图片的关系

PANTS以hipcenter的坐标为参考点, 即PANTS图片的左上角与hipcenter的映射坐标对齐。

TOPS和DRESS以shoulder Left的坐标为参考点, 即TOPS和DRESS图片的左上角与shoulder Left的映射坐标对齐。

另外, 当选中某一衣服时, 程序通过获取属性类型, 调用后台准备好的相应的衣物说明信息, 当用户试穿该衣服时, 衣服信息将通过WPF相关组件的功能显示在屏幕右方的一块panel上。至此为止衣物信息获取结束。

(三) 用户状态信息获取

当前用户状态的判断方法:Joint类型可以获取用户骨骼的坐标信息。

根据左右肩膀骨骼Z值, 来判断此时人体究竟是左侧更靠近屏幕还是右侧更靠近屏幕, 即向右转还是向左转。判断结果将影响我们从界面里看到的所试穿衣服的角度。

当用户选择要试用的衣物时, 衣服就会以适当的角度准确舒适地贴合人体, 达到良好的试衣效果 (如图3) 。

五、总结与展望

随着科技的进一步发展与人们更快节奏的生活, 我们项目小组的同学都认为虚拟试衣这个课题还有很大的发展空间。为人们提供更加高效便捷的购物环境与全新的生活方式。

参考文献

上一篇:改良电休克下一篇:新鲜感