一种计算机中虚拟试衣服装模型自动对齐及尺寸判断方法

文档序号:9547983阅读:1000来源:国知局
一种计算机中虚拟试衣服装模型自动对齐及尺寸判断方法
【技术领域】
[0001] 本发明属于计算机图形学技术领域,尤其涉及到一种计算机中虚拟试衣服装模型 自动对齐及尺寸判断方法。
【背景技术】
[0002] 近几年,虚拟试衣已经成了虚拟现实领域的热点问题,在网络购物越来越流行的 今天,虚拟试衣系统可以为消费者提供更加便捷的服务,消费者无需不耐其烦地取、脱、换、 穿一件件服装,更无需长时间排队。
[0003] 在虚拟试衣技术中,一个重要的环节就是试穿,在该过程中如何进行人体模型和 服装模型的对齐则是第一步。在目前的国内外研究情况中,大多都是采用二维服装裁剪 片缝合在三维人体模型上,形成三维服装初始形态,服装的构建过程为,先自动生成服装裁 片,再对裁片进行修正,最后对裁片进行缝合。然而,目前也有很多精美的3D服装模型(如 文件后缀为〇bj、max、3ds、ma的文件),3D服装模型相较于二维服装裁剪片而言更加形象, 并且给人以直观的感受。而在国内外的虚拟试衣中使用3D服装模型进行试穿的研究尚不 多。
[0004] 文南犬 I :Zhong Y, Xu B. Three-dimensional Garment Dressing Simulation [J]. Textile Research Journal, 2009, 79 (9) :792-803.中使用的3D试穿方法分为三个主要阶 段:初始定位、包裹和悬垂,首先将各个衣片放入三维空间中,虚拟人体周围,然后将衣片包 裹住人体,包括了衣袖的自卷处理,通过自适应缝合力将各个衣片进行缝合,施加重力、风 力等外力,观察服装的穿着效果。这种方法存在一个缺陷,对应的缝合点并不只是受到缝合 力的作用,它们还受到各自关联的弹簧的弹力作用,因此它们在缝合过程中的运动轨迹不 可能在同一条直线上。
[0005] 文南犬2:Gro0 C, Fuhrmann A, Luckas V. Automatic pre-positioning of virtual clothing[C]//Proceedings of the 19th spring conference on Computer graphics. ACM, 2003:99-108.中提出了自动化的预置位方法来实现虚拟试衣,使用CAD服装数据,基 于几何进行预定位,基于物理进行最终定位,从而达到给人体穿衣的效果。这种试衣方法虽 然达到了较好的试衣效果,但是需要使用CAD系统提供的服装数据,上向量和特征点的位 置需要手动插入,但是不幸的是,现有的CAD系统并不能直接提供文献中所需要的特征点。
[0006] 文献3 :陈燕,薛原,杨若瑜.任意衣物和人体的3D试穿实时仿真[J].计算机应 用,2014, 34(1) :124-128. DOI :doi: 10. 11772/j. issn. 1001-9081. 2014. 01. 0124.中服装 模型为3D服装模型,使用的试衣方法是先通过服装y坐标值最大的点和后脑勺上高度合适 的点进行全局位置的对齐,再对局部姿态进行调整,通过计算服装模型和人体模型的夹角, 将服装绕X轴旋转达到合适的位置。但是在这里的对齐方法中并没有实现自动对齐,这里 的位移向量、旋转角度等等不能适应于所有的服装模型,针对不同的模型,在进行全局位置 对齐和局部姿态调整后还要添加微调参数,通过不断地实验,查找到微调参数的合适的值。 因此这样的方法并不能达到自动对齐的效果。
[0007] 综上,现有方法的缺点主要有:使用CAD服装数据,将衣片进行位置预置,需要较 多的CAD服装数据,但是某些特征点无法由CAD系统直接提供,需要手动插入,达不到"自 动"的效果,在使用缝合力进行缝合时,容易由于缝合点处其他作用力的影响,缝合点的运 动轨迹出现偏差;使用3D服装模型,在进行对齐时对不同的服装模型需要使用多次实验查 找合适微调参数的方式来进行对齐,不具有普遍性,同时也达不到"自动"的效果。另外在 目前的研究中,鲜有根据材质等自动判断某大小的服装能否穿上,因此本发明中提供的方 法具有一定的创新性。

【发明内容】

[0008] 发明目的:本发明的目的是针对以上技术问题,提供一种计算机中适用于3D服装 模型的服装模型自动对齐并进行尺寸判断的方法。
[0009] 为了解决上述技术问题,本发明公开了一种计算机中虚拟试衣服装模型自动对齐 及尺寸判断的方法,包括如下步骤:
[0010] 步骤1,载入服装模型,如读取计算机某一目录下的衣服模型文件"男士短袖衬 衫.3ds",判断衣服模型的类型,若为上衣模型则将服装模型的类型标记为0,若为裤子模 型则将服装模型的类型标记为1,读取服装模型的信息,并为其构造邻接表,所述服装模型 为三维服装模型,根据已知的服装模型的类型,若为上衣模型,则执行步骤2,若为裤子模 型,则执行步骤3 ;所述服装模型的信息包括顶点信息和三角面片信息,所述人体模型为根 据人体特征点和特征尺寸获得型值点,使用插值样条曲面对人体各部位建立曲面模型并进 行光顺拼接得到的人体网格模型;
[0011] 步骤2,根据步骤1的人体模型和上衣模型,进行对齐操作,完成上衣模型和人体 模型在三维空间上的位置预处理;
[0012] 步骤3,根据步骤1的人体模型和裤子模型,进行对齐操作,完成裤子模型和人体 模型在三维空间上的位置预处理;
[0013] 步骤4,位置预处理后,对服装模型和人体模型进行碰撞检测和碰撞处理;
[0014] 步骤5,根据服装材质以及服装的尺寸大小来判断用户是否能够穿上服装,在步骤 4中,若根据服装材质的各项参数计算服装模型质点位置时,服装模型质点位置仍然在人体 模型内,即服装模型的质点无法通过碰撞处理将其拉伸到人体模型外,则标记服装模型无 法被人体模型穿上,否则标记为服装能够穿上;
[0015] 步骤6,给出判断用户是否能够穿上服装的结果,若穿不上,则给用户反馈,若能穿 上则进行动态仿真并显示试穿效果。
[0016] 其中,步骤2包括如下步骤:
[0017] 步骤2-1,遍历上衣模型邻接表中的顶点坐标,得到上衣模型的三维空间范围,根 据上衣模型的三维空间范围,建立上衣模型AABB包围盒(Axis Aligned Bounding Box,轴 对齐包围盒);
[0018] 步骤2-2,设定八叉树的深度,以上衣模型的AABB包围盒为范围建立八叉树,树节 点存储该树节点上的顶点个数和顶点坐标,使用上衣模型的邻接表,将上衣模型的顶点放 入八叉树的树节点中;
[0019] 步骤2-3,以人体模型的特征点会阴点作为原点,原点向头部特征点的方向为y轴 方向,建立右手定则的三维坐标系,查找上衣模型的中心轴,实现上衣模型X轴和Z轴方向 上的对齐;
[0020] 步骤2-4,查找上衣模型的肩的位置,将其和人体模型的肩的位置进行对齐,实现 上衣模型y轴方向上的对齐;
[0021] 步骤2-5,对服装模型构造质点-弹簧模型,通过人体部位标记服装模型对应的部 位,确定上衣模型上每个质点所属人体的部位,进行标记,所述人体部位分为躯干、臀部、右 大腿、左大腿、右小腿、左小腿、右大臂、左大臂、右小臂以及左小臂10个部分,则左大臂所 对应的衣服模型的部位即为上衣模型的左侧袖子;
[0022] 步骤2-6,查找到上衣模型的左侧袖子部位,使用袖子上端中心点对上衣位置进行 y轴和z轴方向的微调;
[0023] 步骤2-7,根据胳膊的中心轴和袖子的中心轴计算胳膊旋转后的终止位置坐标,调 用人体模型胳膊旋转的函数,使得胳膊的中心轴和袖子的中心轴重合。
[0024] 其中,步骤2-3包括如下步骤:
[0025] 步骤2-3-1,使用步骤2-2中建立的八叉树查找上衣模型下摆点中X坐标值最大的 点hem_x max和X坐标值最小的点hem_x min;
[0026] 步骤2-3-2,使用步骤2-2中建立的八叉树查找上衣模型左右两边各自的y坐标值 最大的点ymax 1(;ft和点ymax Hght;
[0027] 步骤2-3-3,由步骤2-3-1中得到的点hem_xmax和点hem_x min来计算上衣模型下摆 的中心点bottom,中心点bottom为点hem_xmax和点hem_x min的中间点,由步骤2-3-2中得 到的点ymaxleft和点ymax Hght来计算上衣模型最上方的中心点top,中心点top为点ymax left 和点Ymaxl4ght的中间点,由点top和点bottom构成的轴即为上衣模型的中心轴ClothAxis ;
[0028] 步骤2-3-4,将经过人体模型的头部特征点和腰部特征点所在的直线作为人体模 型的中心轴HumanAxis,由步骤2-3-3中得到的上衣模型的中心轴ClothAxis与人体模型的 中心轴HumanAxis进行对齐,完成上衣模型在X轴和z轴方向上的对齐。
[0029] 其中,步骤2-4包括如下步骤:
[0030] 步骤2-4-1,使用步骤2-2中建立的八叉树查找上衣模型中所有X坐标值小于点 hem_xmin的X坐标值的点,将其中y坐标值最大的点作为上衣模型肩部最高点shoulder_ cloth,人体模型的肩部点shoulder_human则是人体模型左大臂和躯干衔接处y坐标值最 大的点;
[0031] 步骤2-4-2,使用步骤2-4-1中得到的上衣模型肩部最高点shoulder_cloth和人 体模型的肩部点shoulder_human对上衣模型进行在y轴方向上的对齐;
[0032] 步骤2-4-3,根据经验值对z轴方向的对齐进行微调,减少上衣模型顶点的z坐标 值,经验值取0. 4,使得微调后上衣模型z坐标值减小0. 4,为之后的对齐计算减少误差。
[0033] 其中,步骤2-6包括如下步骤:
[0034] 步骤2-6-1,由步骤2-5查找到上衣模型中的左侧袖子部位,由于服装模型和人体 模型都是左右对称的,因此只需要计算一侧的袖子和胳膊即可,在计算时选用了左侧袖子 和左侧胳膊,遍历所有袖子部位的点,查找到y坐标值最大的点leftsleeve_yl max和y坐标 值最小的点 leftsleeve_y0min;
[0035] 步骤2-6-2,遍
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1