王 婷, 顾冰菲,2,3
(1. 浙江理工大学 服装学院, 浙江 杭州 310018; 2. 浙江省服装工程技术研究中心, 浙江 杭州 310018;3. 丝绸文化传承与产品设计数字化技术文化和旅游部重点实验室, 浙江 杭州 310018)
随着互联网技术的不断进步与普及,服装电子商务迅猛发展,成为提升传统服装品牌业绩的关键动力之一。由于消费者在线购买服装时,无法知晓试穿效果,如何购买到合体的服装已成为广大消费者在网购服装时遇到的重要问题。探索如何仅基于人体正侧面照片构建三维模型是十分必要的,不仅可帮助消费者买到合体的服装,还可推进服装电子商务的发展。
基于人体参数的三维建模技术在计算机辅助服装设计、服装个性化定制和虚拟试衣等多个领域中已得到广泛探索与应用,目前常见的方法有线框建模、曲面建模、实体建模、参数化建模等[1-2]。Heekyung等[3]首先生成基于高度、宽度、深度和长度的二维图像,然后利用多边形技术对具有代表性的虚拟物体进行建模。Li等[4]利用人体测量数据对三维模型进行重建,然后用特征曲线网的形状约束对其进行进一步优化。Shin等[5]建立了三维人体模型形状变换的回归方程,克服了围度尺寸变化不能反映截面形状变化的问题。人体尺寸数据是构建三维人体模型的基础,尽管三维人体测量仪已被广泛研究与应用[6],但复杂的操作、昂贵的价格和庞大的体积阻碍了其推广使用,所以研究快捷、方便、可实现远程人体测量的方法很有必要。为了满足这种需求,相关学者开发了一种基于数字图像的二维人体尺寸测量系统[7-8]。如Senanayake等[9]使用启发式算法在人体轮廓上寻找关键位置以测量人体尺寸。马黎[10]提出基于人体比例的局部轮廓人体测量法,在局部轮廓内提取所需特征点[11]。除此之外,基于二维尺寸测量的个性化人体模型自动生成研究也逐渐成为热点[12-13]。师乐[14]提出在人体特征区域内进行局部像素扫描的人体尺寸测量和参数化建模方法。王力[15]提出一种基于Freeman链码和人体比例关系的特征点提取方法,并基于Maya软件和人体轮廓进行三维建模。此方法将二维图像数据转化为三维空间数据,具有成本低、应用范围广等优势,然而如何快速准确地获得人体关键尺寸数据,从而生成不同外形的三维人体模型仍是研究的重点与难点。
本文研究以人体正侧面照片为基础,以“坐标点—截面曲线—人体表面”为三维建模的基本思路,结合二维尺寸提取技术、截面曲线建立规则和三维人体建模技术,探讨个体化颈肩部三维模型构建方法。首先借助三维人体点云数据确定出与颈肩部形态相关的8个特征截面层,并提出角度半径的定义来建立曲线形态规则。然后以人体正侧面照片为基础提取曲线形态规则所需的人体参数,结合二维人体尺寸提取技术和曲面建模技术实现颈肩部三维模型的构建,为虚拟试衣、服装远程定制提供可能。
本文研究以202名身高在154~172 cm之间,体重在40~64 kg之间的18~25岁在校女大学生为实验对象。表1示出实验对象颈肩部的基本尺寸信息。
表1 实验对象基本尺寸信息
通常情况下,样本量越大,所测数据越精确,置信度越高,应用价值越高;样本量越小,所测数据越粗略,置信度越低,应用价值越低[16]。合理的样本容量既可确保研究的可靠性与准确度,还能减少对人力、物力等资源的浪费。样本量n的计算公式如下:
通常科学研究中置信水平为95%,相对误差的取值范围为1%~4%,即α=0.05,μα=1.96,同时为减小误差,A取1%,计算结果如表2所示。结果显示,以颈围为参考时,所需样本量最大,为176人。所以本文研究的样本量最小为176,实际样本量为202,满足需求。
1.3.1 三维人体测量
本文研究采用美国[TC]2三维人体扫描仪获取实验对象的三维点云数据。为减小测量着装及站立姿势对所测数据的影响,要求被试者身穿合体浅色服装,头戴浅色帽子,不能佩戴眼镜、手表、耳环等饰品。严格按照美国[TC]2三维人体测量系统规定的测量姿势,测量时目视前方,保持正常呼吸。
表2 样本量的确定
1.3.2 照片测量法
本文研究使用智能手机采集实验对象的正面和侧面照片。被测者站在黑色拍摄背景内标记的位置,保持直立静止,目视前方。拍摄正面照片时要求胳膊略弯曲抬起,以便识别到腋下点;拍摄侧面照片要求双手贴于腰侧,不可遮挡人体前腹或后腰部分,拍摄姿势如图1所示。
图1 拍摄姿势示意图
特征截面层是指人体特征部位的截面层,是人体建模、服装结构设计或款式设计的关键参考部位。颈肩部作为连接头和手臂的部位,是上衣的主要支撑部位,包含4个特征点,即颈点、侧颈点、肩点、腋下点。根据特征点可确定出对应的特征截面曲线,即颈部(L1)、侧颈部(L2)、肩部(L3)、腋下(L4)。根据已有4个截面层的高度差值,应用平均分层的方法,提取颈部(L1)与侧颈部(L2)的中间层为中颈部(L5)、侧颈部(L2)与肩部(L3)的中间层为中侧颈部(L6);但由于肩部(L3)和腋下(L4)截面层之间的间距比较大,为使建立的模型更能符合真实人体体型,再等间距提取2层,分别为中肩部(L7)、中腋部(L8)。这8个截面层的位置确定如图2所示。各层之间的高度关系如下:
式中:HLi(i=1,2,…,8)为每一层至脚底的高度值。
图2 颈肩部截面层确定
本文研究截取人体点云数据中颈肩部的8层特征截面曲线,在提取横截面时,同时提取了该截面高度层上下1 mm内的点,导致数据点过多且散乱无序,因此需对提取的点云数据进行简化处理并保存,以便后续分析。
在三维人体扫描过程中,由于人体的细微晃动或站姿的影响,难免会导致特征截面层与系统自定义的直角坐标系有一定偏差,为了更好地建立截面曲线,需对获取的截面层曲线进行旋正处理。
本文研究选用最小外接矩形法(MER)[17]对横截面点云数据进行旋正处理。如图3所示,以肩部截面层为例。
图3 MER算法示意图
首先确定旋转中心为横截面的外接矩形中心,然后在-20°~20°范围内以0.1°为间隔围绕旋转中心进行旋转,计算出每旋转0.1°后外接矩形的面积
S=[max(x)-min(x)]×[max(y)-min(y)]
式中:S为截面曲线的外接矩形面积。
找出面积最小时对应的旋转角度,则各点的新坐标如下:
式中:xn为旋正后的横坐标;yn为旋正后的纵坐标;θ为面积最小时对应的旋转角度。
由于人体截面曲线凹凸不平,很难根据曲线的弯曲变化进行分段描述,本文研究采用极坐标插值[18]对特征截面层点云数据进行重构,以得到特征截面曲线,方便后期角度半径的提取。借助cart2pol函数将旋正后的直角坐标转化为极坐标,调用三次样条插值(spline)确定1个三次样条函数f(x),在区间[xi,xi+1]上的表达式如下:
f(x)=aix3+bix2+cix+di,i=0,1,…,n-1
Spline插值曲线使用的格式为yy=interp1(x,y,xx,′spline′),即计算出由x和y确定的分段三次多项式y=f(x)在插值点xx对应的函数值yy。
由于拟合后的特征截面曲线数据点过多,在后期建立截面曲线时,计算量过大,会增大误差。本文研究将各特征截面层曲线每隔10°取1个点,由于已对截面曲线进行了对称处理,所以只需提取曲线半边角度半径Ra,其中a代表角度(a=0°,10°,20°,…,180°),作为后期数据分析的基础。肩部截面层曲线测量示意图如图4所示。
图4 肩部截面曲线测量示意图
特征截面各角度半径与厚度、宽度之间存在一定的关系,为了研究这种关系,将各特征截面层曲线上测量的角度半径与相对应的厚度、宽度数据进行相关性分析,从而得到特征截面曲线建立规则,为曲面建模奠定基础。本文研究选用皮尔逊(Pearson)相关系数r,其计算公式如下:
以肩部截面曲线的厚度、宽度及部分插入点的角度半径为例,相关分析结果如表3所示。
表3 相关性分析
由表3可知,角度半径R0、R10、R20、R30与肩厚的相关系数接近1,因此,将这些角度半径仅与肩厚进行一元回归分析;而角度半径R90与肩宽的相关系数接近1,将其与肩宽进行回归分析。同理,可验证其他特征截面层各角度半径与厚度、宽度间的相关性。
根据角度半径与宽度、厚度的相关程度,可建立以角度半径为因变量,特征截面厚度、宽度为自变量的回归模型,如下式所示:
Ra=E1×D+E2×W+E
式中:Ra为角度半径(a=0°,10°,20°,…,180°),mm;E1和E2为回归系数;E为常数项;D和W为自变量,D为对应特征截面的厚度值,W为宽度值,单位为mm。
利用线性回归分析可获得判定系数R2、常数项E及回归系数E1、E2,建立特征截面曲线规则。为验证各角度半径与厚度、宽度之间是否存在比较显著的线性关系,首先利用散点图进行分析,观察它们之间是否呈线性分布趋势。以肩部截面140°时的角度半径R140、肩厚、肩宽为例,可看出这三者大致呈线性关系,如图5所示。
图5 肩部截面R140散点图
其他特征截面各角度半径与对应截面厚度、宽度的散点图也存在较为显著的线性关系。基于特征截面的厚度和宽度分别建立各特征截面各角度半径的回归模型,对各特征截面曲线规则进行预测,从而获得8个特征截面曲线形状。以肩部截面为例,部分角度半径与肩厚、肩宽的回归方程如表4所示。
表4 肩截面部分角度半径与肩厚、肩宽的回归方程
在二维尺寸提取中,提取的特征点精确与否较大程度取决于人体轮廓的提取是否精确。本文研究选取最佳阈值分割法提取人体边缘轮廓。按照灰度级别将像素集合划分为若干个区域,通过最大类间方差法找到一个合适的阈值进行二值图像转换,如图6(a)所示。为解决某些部位背景和目标的灰度差别较小,导致的目标轮廓不够平滑、存在孔洞等情况,分别采用开运算和填充来解决,如图6(b)所示。最后提取二值图像的边缘轮廓,得到所需人体轮廓,如图6(c)所示。
图6 正侧面图像处理
根据颈肩部建模所确定的8个特征截面层,需要确定出相关特征点(颈点、侧颈点、肩点和腋下点),从而获取曲线建立规则所需的13个特征参数值(见表5)。利用计算机图形学知识,结合特征点的高度范围和人体颈肩部形态规律在处理后的人体轮廓上寻找上述特征点,以得到人体特征截面的厚度、宽度和高度,尺寸提取部位如图7所示。
表5 颈肩部尺寸定义
图7 二维尺寸提取示意图
以人体颈部为例,颈部的侧面特征比较明显。首先根据三维测量数据得到颈部高度在人体身高的83.6%~87.2%之间,直线Hu和直线Hd表示颈部高度范围,从Hu到Hd以1像素行距进行逐行寻找,当MN与上一扫描线M′N′相差最大时,其所在行H即为颈围行,如图8所示。直线H上点M与点N之间的距离为颈厚,然后在正面轮廓以相同的高度比寻找颈点。
根据上述原则,本文共提取了颈、侧颈、肩及腋下4个部位特征点的像素坐标值,结合光学成像原理得到图像提取尺寸与真实尺寸的转换关系,获取各横截面厚度、宽度与高度的真实尺寸,为后续个性化颈肩部模型的建立奠定基础。
随机选取40个女性样本的二维图像,提取特征截面的厚度和宽度数据,分析4个特征截面层(颈部、侧颈部、肩部和腋下)曲线厚度、宽度提取值与三维测量值间的关系(见表6),以验证照片测量尺寸的准确性。
图8 颈厚测量示意图
表6 二维提取误差分析
由表6可知,T检验的显著性均大于0.05,且相关系数较高,表明三维测量值与二维提取值之间无显著差异;均值的标准误差都小于0.5,说明误差较小;误差百分比(平均绝对误差/平均值)都小于5%,满足人体测量要求,说明本文研究提出的尺寸提取方法具有一定的可行性。
由于在对特征截面曲线进行标准化处理时,对各截面曲线的中心位置进行了修改,故在建立模型时需调整每一层的中心位置。以肩部截面为例,如图9所示。图中M为肩部截面外接矩形中心,M′为腋下截面外接矩形中心,N为肩部截面的实际中心。通过二维图像找出M和M′的坐标值,进而计算出二者的水平距离d,则可得到肩截面的实际中心N,各点新坐标如下:
式中:xm为中心调整后的横坐标;ym为中心调整后的纵坐标;x为肩部截面厚度中心的横坐标;x′为腋下截面厚度中心的横坐标。
图9 中心调整示意图
本文研究利用NURBS曲面建模法进行颈肩部三维模型构建。通过颈肩部的顶点、边、表面等相互间的拓扑关系描述颈肩部的形状,NURBS曲面的数学模型如下:
式中:Di,k(u)为u向的k阶基函数;Dj,t(v)为v向的t阶基函数;wi,j为加权因子;bi,j为控制点[19]。
由以上公式,根据控制点bi,j可得到u向和v向的节点矢量,即可通过二维尺寸提取、截面曲线建立规则及NURBS曲面建模技术构建颈肩部三维模型。随机选取2名女性的人体图像作为测试样本,采用二维尺寸提取技术提取所需尺寸,然后根据曲线建立规则及三维人体建模技术进行颈肩部模型的构建,所建三维模型如图10所示。
在实际应用中,不同的服装对各部位规格允许的误差要求不同。如GB/T 2665—2017《女西服、大衣》、GB/T 2660—2017《衬衫》和FZ/T 81004—2012《连衣裙、裙套》分别指出了女西服、衬衫、连衣裙对颈围、肩宽、胸围允许的误差范围,如表7所示。可认为在该误差范围内的颈肩部三维模型能够用于虚拟试衣或服装远程定制。
表7 规格允许误差
为进一步验证该方法构建的颈肩部模型的精度,对比分析测试样本各部位模型尺寸与三维测量尺寸间的差值,即误差,结果如表8所示。
表8 三维建模误差分析
由表8可知,误差均小于1,同时颈围、肩宽均在成衣尺寸规格允许的误差内。其中,样本1#中误差最大的为肩围1.0 cm,其次是肩斜角0.9°;样本2#中误差最大的为肩斜角0.7°;造成这2个部位误差相对较大的原因在于人体肩部截面形状较为复杂,且肩点位置较难确定。
本文研究对非接触式二维人体尺寸测量与个性化三维人体模型自动生成进行了研究,提出了二维尺寸测量方法,并根据提取的人体尺寸建立特征截面曲线,从而构建个性化颈肩部模型。研究主要成果如下。
1)建立截面曲线规则。利用逆向工程软件对女性样本的三维点云数据进行处理,截取了8个特征截面曲线;对横截面进行旋正、三次样条插值及对称处理,然后每隔10°提取角度半径,并分析其与截面厚度、宽度之间的线性回归关系,得到各特征截面曲线的建立规则,为颈肩部三维模型的构建奠定了基础。
2)提出二维人体尺寸测量方法。以二维图像为基础,利用MatLab软件进行人体轮廓提取,结合人体比例和颈肩部形态规律确定特征点,计算得到所需尺寸,并对提取的尺寸进行误差分析,误差百分比都小于5%,证明了二维尺寸测量的准确性与可行性。
3)建立个体化颈肩部模型。通过二维尺寸测量方法提取所需尺寸,以“坐标点—截面曲线—人体表面”为建模的基本思路,结合曲线建立规则,得到建模所需的8层特征截面曲线的坐标值并确定截面中心位置,最后选用NURBS曲面建模实现基于正侧面照片的颈肩部三维模型构建。