一种面向普通用户的快速3d衣服建模方法
【专利摘要】本发明涉及一种面向普通用户的快速3D衣服建模方法,过程包括:系统自动根据3D人体模型生成相应的2D人体模板图片;使用图片处理工具从输入的衣服图片中提取衣服轮廓;使用图片处理工具将所述提取到的衣服轮廓和所述2D人体模板进行匹配得到衣服图片,通过不断调整衣服轮廓的位置来达到所述匹配;根据3D人体模型和匹配获得的衣服图片的形状通过仿真算法生成3D衣服模型。基于本发明所提出的快速简单的3D衣服建模方法,输入是一张普通的衣服正面照片,用户通过简单的描画边界的操作,便可以快速生成一个已贴上纹理的3D衣服模型。
【专利说明】一种面向普通用户的快速3D衣服建模方法
【技术领域】
[0001]本发明属于几何建模【技术领域】,特别是涉及一种面向普通用户的快速3D衣服建模方法。
【背景技术】
[0002]传统的衣服建模方法主要是采用诸如3D Max、Maya等通用的3D建模工具从零开始构建,其主要步骤有:1)确定目标衣服的参考照片,通常这些照片含有多个角度,以便建模师可以观察到目标衣服在不同角度下的特征;2)选定参考人体模型,由于衣服是一种柔性物体,在不同人体模型上的效果大有不同,因此建模过程通常需要给定一个参照物;3)几何造型建模,该步骤依据衣服的不同类型有不同的建模方法,通常是利用造型工具建模出局部的衣服面片,最后将多个面片拼接在一起。为了避免衣服模型与身体穿插,建模师需要非常细心地调整好衣服与身体的间距;4)为衣服模型贴上纹理图片,在建模工具中生成UV贴图模板,然后在图片处理工具中将处理并生成贴图文件。5)最后步骤是回到建模工具中,将贴图映射到衣服模型上,进行局部细节的调整。由此可见,传统的衣服建模方法中建模师对衣服模型的每一个细节都可以进行控制,因此可以制作出非常细致的3D衣服模型,但其处理步骤繁多,而且每个步骤都需要非常细心的操作,所以非常费时费力。另外该方法要求用户对3D建模软件有较深的专业知识,因此难以被普通的用户所掌握。
[0003]另一类衣服建模方法是基于专业的衣服建模软件,例如Marvelous的Clo3d。该建模过程与真实世界中裁缝制作衣服的流程相似。对于一件给定的目标衣服,其建模流程有:1)打版,即分析衣服的基本构成,可以分叉若干个2D衣服面片;2)在建模工具中,将每一个2D衣服面片绘制出来;3)将相关联的2D衣服面片缝合起来,4)利用建模工具的物理仿真功能,得到最终衣服模型。由于进行了物理仿真,该建模方法所得到的3D衣服模型精确细腻,带有波纹和褶皱,使得真实感较强。但其要求建模人员有较深的服装设计知识,对给定的衣服能够清楚其基本构成。
[0004]无论是传统衣服建模还是专业衣服建模均对用户有较深的专业知识,而且操作过程步骤繁多,工具的使用复杂,因此不适用于普通的用户。
【发明内容】
[0005]本发明提出一种新的面向普通用户的快速3D衣服模型的建模方法,该方法不要求用户均有3D建模工具的专业技能,也不要求用户熟悉服装专业知识,只需掌握计算机的基本操作即可生成3D衣服模型。
[0006]假定衣服建模的参考3D参考人体模型和待建模的衣服正面图片已经给定,利用本发明进行面向普通用户的快速3D衣服建模方法主要有以下四步:
[0007](I)系统自动根据3D人体模型生成相应的2D人体模板图片;
[0008](2)使用图片处理工具从输入的衣服图片中提取衣服轮廓;
[0009](3)使用图片处理工具将所述提取到的衣服轮廓和所述2D人体模板进行匹配得到衣服图片,通过不断调整衣服轮廓的位置来达到所述匹配;
[0010](4)根据3D人体模型和步骤(3)中匹配获得的衣服图片的形状通过仿真算法生成3D衣服模型。
[0011]基于本发明所提出的快速简单的3D衣服建模方法,输入是一张普通的衣服正面照片,用户通过简单的描画边界的操作,便可以快速生成一个已贴上纹理的3D衣服模型。
【专利附图】
【附图说明】
[0012]图1为本发明的技术流程图;
[0013]图2a_2d为本发明的技术流程图的具体图示;
[0014]图3为3D人体模型的坐标系;
[0015]图4为衣服轮廓提取的处理流程;
[0016]图5为将基本3D衣服模型转化为与3D人体表面相匹配的流程图;
【具体实施方式】
[0017]下面结合附图对本发明做进一步的说明。
[0018]参见图1和图2a_2d,本发明的衣服建模流程包括:1)预处理阶段根据3D人模生成2D人体模板图片(如图1a) ;2)在常见的图片处理工具中提取衣服轮廓(如图1b) ;3)在图片处理工具中调整2D衣服图片的位置(如图1c) ;4)根据3D人体模型和衣服形状通过仿真生成相应的3D衣服模型(如图1d)。
[0019]步骤I预处理:
[0020]3D人体模型M是一个多边形网格模型,其通常表示为二元组<V,F>,V是顶点集合,F为面片集合,并假设M所处的坐标系为如图2所示。假设此时3D人体模特坐标轴包围盒在X,y,z坐标轴上的大小分别为wM, hM和dM(人体背部最后的一个点为z轴起点),M在z轴上的投影即为2D人体模板图片T,设投影后模板图片T的宽和高分别为wT和hT,这五个参数为系统的输入参数。%,hM和dM的取值依据3D模型所要表示的人体模型大小来确定,而wT和hT则可为任意的取值,但通常不少于200。
[0021 ] 步骤2衣服轮廓提取:
[0022]如图3所示,对于输入的衣服图片(步骤2.1),首先应用传统视觉领域的轮廓线提取算法自动提取衣服的轮廓(步骤2.2),用户对结果进行观测(步骤2.3),如果发现提取结果的质量太差,则进入人工交互的轮廓提取过程(步骤2.4),其主要操作过程是将目标衣服区域勾画出来,外部区域删除为白色。该步骤中,评价一个边界结果的好坏依据是,目标衣服区域需要完整地保留,且不属于目标衣服的区域应被清除干净。
[0023]步骤3衣服轮廓和2D人体模板的匹配:
[0024]首先用户创建一幅跟2D人体模板相同大小的图片,并将衣服轮廓复制到该图片上,之后用户通过缩放和平移两个操作,使得衣服轮廓刚好跟2D人体模板的轮廓对齐。完成该操作后,将衣服图片保存为任意图片格式后即完成本步骤。
[0025]步骤4基于仿真算法生成3D衣服:
[0026]该步骤分为两个子步骤:
[0027]步骤4.1根据衣服轮廓生成基本3D网格模型。生成的方法是:
[0028]设衣服轮廓在图片中的起始位置为(rs,cs),结束位置为ce),并设定参数g为采样间距,则在该图片区域内,每隔g个像素生成一个3D点,第i行第j个采样点的3D坐标(cs+j*g,rs+g*i,dM),注意此处所有的z分量均为dM,亦即在3D空间中,将初始的3D衣服网格模型位于人体模型的面前。与此同时,原始衣服图片作为该网格模型的纹理贴图,其UV坐标为每个采样点在图像空间的归一化坐标。
[0029]步骤4.2将基本3D衣服网格模型沿着z轴负向逐步移动,并将其与身体模型进行碰撞检测,若某个点发生碰撞,则不再移动,否则继续向前移动,直到发生碰撞或者是达到最大迭代次数。具体过程参考流程图4。
[0030]步骤4.2.1将所有的3D衣服网格顶点设置为能够移动;
[0031]步骤4.2.2将每一个3D衣服网格顶点的初始加速度方向aQ设置为(0,0,-Λζ)(经过试验Λ ζ取经验值0.2);
[0032]步骤4.2.3为每一个顶点计算其前进方向,具体的计算公式为
[0033]av = a0+ Σ k.(I1-1).Gi
[0034]其中,av为某个顶点V的加速度方向,k为弹簧系数(根据经验值取为0.4),ei为顶点V第i个出边的向量,Ii为该边的长度,I为改变初始状态下的长度,在本发明中,所有边的初始状态长度都相同,均为I。
[0035]在得到该点的前进方向后,该点的新位置为
[0036]V1 = v+av.Δ t
[0037]其中,Λ t为迭代过程的时间间隔;
[0038]步骤4.2.4检测V’是否与3D人体模型发生碰撞,如果发生碰撞,则将该点标记为不可移动,该点不再参加后面的迭代(步骤4.2.5)。否则,将该点移动到新的位置,然后重复步骤4.2.2。整个迭代过程有最大迭代次数N的限制,经验值取为100。
[0039]本发明的步骤I在某种情况下可以省略掉与步骤3合并。本发明将本步骤I和步骤3分离开,这样使得步骤2中,用户可以使用自己熟悉的图片处理工具来对衣服图片进行处理甚至是美化,这是本发明的优点;本发明的一个替代方案是将两个步骤合并在一起,专门开发一个工具,在该工具中显示3D人体模型,然后衣服轮廓在3D模型上进行衣服轮廓和人体模型的轮廓进行匹配。
[0040]本发明从淘宝、天猫和京东等网上商城中抓取了相当数量的衣服图片进行试验,试验结果表明,本发明能够使用于大量现有的衣服图片,同时,本发明已开发了相应的原型系统给若干用户进行使用测试,测试表明,本发明的建模方案简单易懂,容易上手。
【权利要求】
1.一种面向普通用户的快速3D衣服建模方法,其特征在于,所述方法包括以下步骤: (1)系统自动根据3D人体模型生成相应的2D人体模板图片; (2)使用图片处理工具从输入的衣服图片中提取衣服轮廓; (3)使用图片处理工具将所述提取到的衣服轮廓和所述2D人体模板进行匹配得到衣服图片,通过不断调整衣服轮廓的位置来达到所述匹配; (4)根据3D人体模型和步骤(3)中匹配获得的衣服图片的形状通过仿真算法生成3D衣服模型。
2.根据权利要求1所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤⑴具体为: 3D人体模型M是一个多边形网格模型,其表示为二元组〈V,F〉,V是顶点集合,F为面片集合,3D人体模特坐标轴包围盒在X、1、z坐标轴上的大小分别为wM、hM和dM,其中,人体背部最后的一个点为z轴起点,M在z轴上的投影即为2D人体模板图片T,投影后模板图片T的宽和高分别为wT和hT,这五个参数为系统的输入参数;wM,hM和dM的取值依据所述3D人体模型所要表示的人体模型大小来确定。
3.根据权利要求1或2所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤(2)具体为: 对于输入的衣服图片,首先应用传统视觉领域的轮廓线提取算法自动提取衣服的轮廓,用户对结果进行观测,如果发现提取结果的质量太差,则进入人工交互的轮廓提取过程,将目标衣服区域勾画出来,外部区域删除为白色。
4.根据权利要求3所述的面向普通用户的快速3D衣服建模方法,其特征在于,评价一个提取结果好坏的依据是:目标衣服区域需要完整地保留,且不属于目标衣服的区域应被清除干净。
5.根据权利要求3所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤⑶具体为: 用户创建一幅跟所述2D人体模板相同大小的图片,并将所述衣服轮廓复制到该图片上,之后用户通过缩放和平移两个操作,使得所述衣服轮廓刚好跟所述2D人体模板的轮廓对齐;完成该操作后,将衣服图片保存为任意图片格式后即完成本步骤。
6.根据权利要求1、2、4或5所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤(4)具体为: (4.1)根据衣服轮廓生成基本3D衣服网格模型; (4.2)将所述基本3D衣服网格模型沿着z轴负向逐步移动,并将其与身体模型进行碰撞检测,若某个点发生碰撞,则不再移动,否则继续向前移动,直到发生碰撞或者是达到最大迭代次数。
7.根据权利要求6所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤(4.1)具体为: 设衣服轮廓在图片中的起始位置为(rs,cs),结束位置为并设定参数g为采样间距,则在该图片区域内,每隔g个像素生成一个3D点,第i行第j个采样点的3D坐标为(cs+j*g,rs+g*i,dM),其中,所有的z分量均为dM,亦即在3D空间中,将初始的3D衣服网格模型位于人体模型的面前;与此同时,原始衣服图片作为该网格模型的纹理贴图,其UV坐标为每个采样点在图像空间的归一化坐标。
8.根据权利要求7所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述步骤(4.2)具体为: (4.2.1)将所有的3D衣服网格顶点设置为能够移动; (4.2.2)将每一个3D衣服网格顶点的初始加速度方向aQ设置为“0,0,-Λζ” ; (4.2.3)为每一个顶点计算其前进方向,计算公式为
av = a0+ Σ k.(1厂1).力 其中,av为某个顶点v的加速度方向,k为弹簧系数,e,为顶点v第i个出边的向量,h为该边的长度,1为改变初始状态下的长度; 在得到该点的前进方向后,该点的新位置为
v' = v+av.Δ t ; 其中,At为迭代过程的时间间隔; (4.2.4)检测V’是否与3D人体模型发生碰撞,如果发生碰撞,则将该点标记为不可移动,该点不再参加后面的迭代;否则,将该点移动到新的位置,然后重复步骤4.2.2 ;整个迭代过程有最大迭代次数N的限制。
9.根据权利要求8所述的面向普通用户的快速3D衣服建模方法,其特征在于,Λζ取值为0.2 ;k的取值为0.4。
10.根据权利要求8或9所述的面向普通用户的快速3D衣服建模方法,其特征在于,所述最大迭代次数N的取值为100。
【文档编号】G06F17/50GK104346827SQ201310312518
【公开日】2015年2月11日 申请日期:2013年7月24日 优先权日:2013年7月24日
【发明者】林金杰, 苏琪, 龚文勇, 叶丰平 申请人:深圳市华创振新科技发展有限公司