APP下载

基于B/S架构的数字人台变形NURBS曲面模型

2021-01-06芸,

纺织学报 2020年10期
关键词:胸围曲面变形

刘 芸, 修 毅

(北京服装学院 计算机信息中心, 北京 100029)

近些年来,人们对三维服装的计算机模拟仿真进行了研究,包括三维服装人体的建模、三维服装造型和服装虚拟展示,但这些技术无法满足互联网+服装个性化定制的需求;因此,基于浏览器/服务器结构(B/S架构)构建一个三维人台模型和变形技术,为客户实现跨区域的服装定制和个性化人体特征展示带来可能性。

目前,在构建人台模型方法中三维扫描点云数据方法获得点云数量多达300 000个,占内存高达上百兆。相关研究中会采用逆向工程软件对点云数据进行反复修剪、删除、排除体外孤点、降噪、修补等复杂的操作获得了特征信息[1-2]。经常采用创建水平基准面与人体表面求交法、极值法、曲率判别法、建模法找出人体主要特征信息[3-4]。上述研究中对点云数据的处理方法有效地提取了特征信息,但是提取过程耗时长、方法复杂。

在人体变形相关研究中,通过人台模型变形适配人体特征数据不仅降低了人体数据量,还提升了造型效果。采用构造左右剖面的方法,将人体分成二部分进行变形,解决了人体变形出现的失真情况[5]。一种新型的参数化变形算法是在腰围线变形中采用角度加权平均算法,有效地提高了人体变形的精度[6]。基于语义驱动人体变形方式,可通过模板语义值成功精准地驱动人体模型变形[7]。

利用WebGL与Three.js技术在B/S架构中的客户端实现三维模型的渲染,是“互联网+”三维造型的一种实现途径。该技术在三维模型对象以及网络数据传输方面受到关注。构建规则三维几何体模型时,可完成一组几何体,如椎体、立方体等模型在一个场景里进行空间排布实现渲染,作为非规则类的三维模型对象,如三维地形图,人体解剖模型[8]等不仅存在建模和渲染问题,还要解决模型数据从服务器端到浏览器上传输的带宽问题[9]。传送数据时一般采用AJAX异步通信方式和WebSocket双向通信工具,但对超大量的数据下载没有提供有力的支持。

基于以上分析,本文基于B/S架构设计实现了参数化数字人台变形模型。在构建标准人台模型时,提出标记三维扫描测量法提取特征信息,极大缩小了点云模型数据;通过NURBS曲面技术,对该模型数据进行规范化,能够解决数据量少带来的人台变形模型表面不光滑失真的现象。此次尝试可在服装定制平台的网页中快速地实现人台变形模型的渲染和加载,为互联网服装定制平台三维模型加载提供参考。

1 人台标记三维扫描测量法

1.1 人台的特征信息

参数化人台模型将具有对称性的人台,以人台前中心线和后中心线为分界线将人台模型分为左右2个部分。根据人体工学原理,考虑到女体人台模型形态复杂,在对人台进行个性化变形前需要找准人体特征,包括特征点和特征线。在选择过程中一般选取人体外表明显、凸出点或凹陷点、人体的对称中心等点作为人体特征点。表1示出选取胸部区域特征点与特征围线。然后依据人体的变化规律和变形需要,将标准的人台划分特征区域。特征区域是以重要围度作为主要变形对象进行人台的区域划分,例如以胸围线为主干的胸部区域、以腰围线为主干腰部区域和以臀围线为主干的臀部区域。

表1 围度与特征点定义Tab.1 Girth line and feature point definition

1.2 标记三维扫描测量法

三维扫描点云测量技术是通过对人体模型各部位尺寸和人体体型进行测量,进而研究人体形态特征和技术的方法。本文提出标记三维扫描测量法,是通过对三维人台进行手工贴标记点的方式标记人台中的特征信息,包括特征点以及造型点,然后借助三维扫描设备以及相关图形处理工具针对性地对人工标记点进行处理,获取到标记点三维坐标信息。这些信息构成了人体数据原型,该原型一旦完成就可反复使用。具体步骤如下。

第1步,对人台进行标记。遵循优先标记特征点然后再标记造型点的原则。考虑到人台模型变形与后期NURBS曲面建模的需要,造型点的排布会以特征点为主,采用一定密度的网格法进行标记,即尽可能地实现层与层之间、列与列之间一一对应,用尽可能少的标记点达到最好的人台网格状效果。人台标记点的效果如图1所示。

图1 人台特征点标记与特征围线Fig.1 Feature point mark and feature line of mannequin. (a) Feature point information of front mesh; (b) Feature line information of front mesh

第2步,三维扫描技术将人台数字化。扫描后生成的三维点云模型上可明显地观察到标记点的位置,选中标记点获取其三维坐标信息,生成标记点数据。

第3步,为标记点数据添加特征语义,采用Y轴分层法。如图1中所示,观察到人台模型标记点是按照水平面分层排布,每层中标记点Y轴坐标大致相同,在某个特定的范围内,以Y轴为参考标准为标记点从左至右的顺序依次添加语义,即第i层第j点,流程如图2所示。

图2 语义添加流程Fig.2 Semantic addition process

2 B/S架构的实现与变形算法

2.1 B/S架构与数据结构

基于B/S架构,搭建MVC(model view controller)[10]框架,在服务器端通过控制器(Controller)接受浏览器端发送的请求,调用数据模型(Model)方法对数据库进行操作,获取到相关数据,控制器将结果返回给浏览器。通过AJAX技术实现浏览器端与服务器端的数据传输,Three.js框架技术实现对人台模型的加载以及在浏览器上的渲染,其原理如图3所示。

图3 人台模型B/S架构Fig.3 Body model B/S architecture

人台模型特征信息是以树状结构保存在JSON格式文件中,该存储方式不仅便于语义的添加,而且操作简便,存储量从原来的74 M缩小到了573 KB,大大提高网络传输速率。在加载JSON格式文件时,需要对文件进行遍历解析,树状结构的数据从根部开始遍历,依据从左到右的原则实现遍历解析,解析单支结构如图4所示。将特征信息按照部位分块,然后根据部位把块分层。

图4 解析JSON数据结构Fig.4 Analysis on internal structure of JSON data

2.2 人台变形算法

人台变形算法通过获取特征点,依据个体的实际参数驱动特征围线,然后驱动特征面,从而实现了人台的变形。

本文以实现胸部区域变形为例,胸围线变形范围差为6 cm即从88 cm变到94 cm的变形如图5所示。通过A、B、D、E4点将右部胸围线分为AD、AB和BE3段弧。

图5 胸围线变形图Fig.5 Bust width line deformation map

2.2.1AD弧的处理

1) 定义变形迭代量△d,迭代量越小,变形精度越高。

2) 已知D点和A点坐标,A与A1同在X轴上,则在X轴方向上加迭代量△d求得A1坐标,根据下式求得D1(x′,y′)的坐标:

(1)

(2)

式中:k为A点与D点之间的比例系数,其中Z轴变形前后保持不变。

3) 将AD弧上的点逐个用计算得相应的变形点,由变形点驱动生成变形弧线A1D1。

2.2.2AB和BE弧的处理与变形

AB和BE弧采用文献[6]参数化胸围线变形算法,具体如下:

1) 计算出以标准轴OA和OB为基准的初始值ROA和ROB;

2) 通过角度加权平均求得线段SSi,S为AB弧的任意一点,则变形后线段OSi=SSi+OS;

3)OSi根据三角函数可求得其坐标值;

4) 最后通过求AB和BE弧上的点变形,获得变形弧,驱动了特征线的变形。

2.2.3 胸部区域相关围线变形

以胸围线变形围线为基准驱动相关联围线变形,其原理如图6所示。设胸围线以及相关联的围线任意一点为S(x,y)、S1(x1,y1)和S2(x2,y2)变形后为S′(x′,y′)、S′1(x′1,y′1)和S′2(x′2,y′2)。已知点S与S′,纵向Y轴不变则根据相似三角形对应边成比例可以求得相关联围线变化后的点S′1和S′2,其中三角形比例关系如下:

图6 胸部区域胸围相关围线变形图Fig.6 Deformation map of associated peripheral line in bust area

(3)

由胸围特征线驱动相关联围线变形,最终实现整个特征面胸部区域的变形。

根据有限的特征信息,由变形算法实现了从特征点驱动特征线再到特征面的变形,胸部变形呈现效果如图7所示。三维人台变形时随着胸围围度的变大,模型表面开始出现明显的棱,尤其是在胸围达到100 cm时模型失真严重。

图7 胸部区域三角形面人台模型变形图Fig.7 Deformation map of triangle face mannequin in bust area. (a) Bust width line 88 cm; (b) Bust width line 94 cm; (c) Bust width line 100 cm

3 人台变形模型NURBES曲面应用

3.1 NURBS曲面构成原理

3.1.1 NURBS基函数

NURBS基函数是NURBS曲面建模的基础,设U={u0,u1,…,uk+1,ur-k-1,…,ur} 是一个单调不递减的实数序列,即uk≤uk+1,k=0,1,…r-1。其中uk被称为节点,U称为节点矢量。

定义在节点矢量U上的第i个k次B样条曲线基函数Ni,k(u)定义公式为:

(4)

(5)

则NURBS的基函数,定义为:

(6)

式中:Wi为NURBS的权重。基函数是具有规范性的,即对任意的节点区间u∈[ui,ui+1],存在

(7)

3.1.2 NURBS的曲线与曲面

曲线与曲面是在基函数的基础上形成的。首先NURBS曲线

(8)

上式为定义的节点矢量,其k次NURBS样条曲线

(9)

式中:u∈[a,b];Ni,k(u)代表第i个k次B样条曲线基函数,随着参数u的变化而变化;Wi为加权因子,确定控制点的权值;Pi是控制点,确定曲线的位置,是控制NURBS网格的点。

一张在u方向p次,v方向q次的NURBS曲面的定义公式:

(10)

式中:u,v∈[0,1];Wij为加权因子;Pij为网格的控制点,呈拓扑矩形阵列,形成一个控制网格;Ni,k(u)和Nj,t(v)分别为u方向k次和v方向t次B样条基函数。

根据标记点特征信息沿u(或v)计算出各条NURBS曲线的控制顶点,然后在求得另一个方向v(或u)计算多边形网格,就得到了NURBS曲面。

3.2 NURBS曲面的构建

3.2.1 人台前片点阵

人台模型表面NURBS曲面的生成是基于采样点阵,将其作为曲面的控制点,并输入相关信息,例如点阵信息、曲面的阶数、节点矢量、加权因子等生成NURBS曲面,从而构建人台曲面模型。首先分析提取的特征信息,其中采样点阵以人台模型前片为例,依据人体工学原理将人体的前片依据表面变化幅度将其划分为3个区域,即胸上部区域(1~4排)、 胸部区域(4~6排)和胸下部区域(6~12排)如图8所示。

图8 人台前片点阵图Fig.8 Lattice of front mesh.(a) Lattice of upper bust area;(b) Lattice of bust area; (c) Lattice of lower bust area

3.2.2 规范化点阵

图8中所示的点呈现的是非工整的点阵,即胸上部区域第1层与第2层为4×2,第3层为5×1,第4层 7×1,胸部区域第1层与第2层7×2,第3层8×1, 从第4层以及胸下部区域均为10×13。

基于NURBS的设计方法,利用公式(10)定义了单张的NURBS曲面,该式中u方向上每一层的控制点数相同,v方向每一列的控制点数相同。采用密度高点复用的原则重新构建NURBS曲面的点阵,对控制点数不统一的区域进行规范化。密度高点复用原则是指在该区域点阵中,将点最多的那一层作为规范化的基础点,根据基础点个数对其他层进行补点,直到点数达到与基础点个数相同。补点是选取纵向层与层之间点排布中密度最高的点进行复用,密度越高则曲面的变化率越大,面的弧度越大,该点在人台造型上影响越大。规范化后的点阵图如图9所示。

图9 人台前片规范化图Fig.9 Normalized front mesh. (a)Normalization of the upper bust area; (b) Normalization of the chest area

上图中加重的点表示被复用的点,可多次复用,例如胸上部区域第1层有3个加重点被复用,构成7×4的点阵。胸部区域是10×4的点阵,胸下部区域为10×13的点阵,最终生成如图10所示的光滑NURBS曲面。

图10 人台前片NURBS曲面Fig.10 NURBS curved surface of front human model

最终,人台模型根据个体参数进行变形得到的目标结果,以胸部区域变形为例,NUEBS曲面与变形算法的共同作用下,胸围达到100 cm后依旧能够保证人台具有良好的效果,如图11所示。

图11 人台NURBS曲面变形人台Fig.11 NURBS surface deformed human model. (a) Bust width line 88 cm; (b) Bust width line 94 cm; (c) Bust width line 100 cm

4 结束语

在构建标准人台模型时,特征信息的获取是采用标记三维扫描测量法,即将手工标记与三维扫描技术结合,通过使用水平仪来对水平方向的标记点进行校准,确保数据的准确性。该方法大大减少模型数据存储量,在网页中加载模型过程不受带宽的影响,能够流畅地从服务器端将数据传输到浏览器端并实现三维模型渲染。

在人台变形算法运行过程中,采用JSON数据格式的树状结构描述人体数据模型,优化了数据查找过程,使得变形算法能够快速准确地得到变形数据与变形结果。变形算法基于人体工学和服装工程的原理,以特征点驱动特征线,特征线驱动特征区域变形,实现速度快,精度高,效果好的目标。

在构建人台NURBS曲面时将不规范的特征数据控制点根据NURBS曲面的成面原理,进行规范化处理,保证在同一区域各层的控制点个数相同,生成曲面获得光滑人台曲面造型。NURBS曲面的应用很好地解决了特征信息数据量少,胸围过大引发变形后人台失真的情况。

在后续的研究中,在NURBS曲面构建中对高曲率部分进一步优化。如颈部区域由于曲率过大数据精度不够,可以采用差值复用点的方式,增加控制点的个数,从而提高NUBRS曲面对高曲率面的造型精度。最终实现在B/S架构中采用有限的特征数据实现高质量的人台渲染效果。

猜你喜欢

胸围曲面变形
探讨假体凸度对假体隆乳患者术后胸围及罩杯的影响
变形记
谈诗的变形
参数方程曲面积分的计算
参数方程曲面积分的计算
第二型曲面积分的中值定理
“我”的变形计
关于第二类曲面积分的几个阐述
会变形的饼
胸围革命