基于部位划分的三维人体曲面模型的构建

2013-08-16 09:25李晓志李晓久
纺织学报 2013年9期
关键词:扫描线躯干手臂

李晓志, 李晓久

(天津工业大学 艺术与服装学院, 天津 300387)

基于部位划分的三维人体曲面模型的构建

李晓志, 李晓久

(天津工业大学 艺术与服装学院, 天津 300387)

应用自主开发的三维人体测量系统获取人体扫描线点云数据。由于人体表面比较复杂,如果直接对整个人体点云进行模型的重构,可能会使人体手臂与人体躯干、左腿与右腿连在一起,或者导致体头肩部与人体躯干、手臂以及躯干与两腿之间连接的部分出现较大误差,为此,首先根据人体形状,将人体表面分割为6个部分,并对每部分人体点云分别进行三角网格化处理,然后提出将单轮廓划分为多轮廓的方法,将人体头肩部与人体躯干、手臂以及躯干与两腿进行合成,最终生成完整的人体三角网格曲面模型。

三维人体测量; 扫描线点云; 人体划分; 单轮廓; 多轮廓; 三角网格模型

应用自主开发的三维人体扫描系统[1]对人体进行扫描,配准后,可获取人体扫描线点云数据。根据扫描线点云数据的特点[2],可以采用三角曲面片逼近法、参数曲面建模法来构建人体曲面模型。在参数曲面建模方法中,NURBS曲面已成为描述物体外形的工业标准,该方法需将人体至少分割为十几部分,通过每部分的人体数据点反算控制点后构建NURBS曲面,并且还需考虑每部分的光滑拼接问题[3]。三角曲面片逼近法是采用三角形作为基元构成人体的表面[4],算法简单,能有效解决人体表面形状的复杂性,并且与OpenGL技术相结合解决了人体数据量大的问题[5],因此,本文采用三角曲面片逼近法构建人体曲面模型。

由于人体表面比较复杂,人体躯干与手臂部位的扫描线、人体左腿和右腿部位的扫描线处在相同水平线上,如果直接对整个人体进行模型的构建,可能使人体手臂与躯干、左腿与右腿连在一起,或者导致人体头肩部与躯干、手臂以及躯干与两腿之间的连接部位出现较大误差,为此本文首先将人体表面部位进行分割,分别对每部分点云构建人体三角网格模型,然后对各部分之间进行合成,构建完整的人体曲面模型。

1 人体表面部位的划分

在对人体进行划分前,先参考文献[1]中去除第1类和第2类噪声点的方法去除扫描线点云中的跳点和重叠点。根据人体的几何形状,为减小构建的人体模型的误差,本文将人体划分为6部分:头肩部(head and shoulder)、躯干(torso)、左手臂(left arm)、右手臂(right arm)、左腿(left leg)、右腿(right leg)。图1为人体划分示意图。

图1 人体划分示意图Fig.1 Diagram of divided body

对这6个部分划分的关键是确定分割点,分割点与腋窝点和裆点这2个特征点有关,本文采用基于距离阈值的方法识别分割点,即:1)设定1个距离阈值dε;2)由人体头顶扫描线开始,对扫描线上的点云按顺序计算2点之间的距离,对任意一点p[i][j],计算p[i][j]·xP[i][j-1].x的距离d1、p[i][j]·x与p[i][j+1]·x距离d2(x值的比较是为了避免了噪声点的影响)。3)如果d1≪d2,即d2-d1>dε,则(p[i][j]+p[i][j+1])/2为其中一个手臂与躯干的分割点p1,否则继续查找。

同理,可识别出另一手臂与人体躯干的分割点p2,如图2所示手臂与躯干的分割点,p2y>p1y。人体左、右两手臂与人体头肩、躯干是在同一水平线上的扫描线进行分割的,本文选取y坐标值较大的分割点p2所在的扫描线将人体头肩部与其他部位分开,并在该扫描线上查找距离p1最短的一点p3替代p1作为分割点,最终p2点以上的点云为人体头肩部,p2点与p3点之间的点云为人体躯干,2点外侧点云分别为人体两手臂。

用同样的方法可求出人体躯干与左、右两腿的分割点,并将人体躯干、左腿、右腿分割开。

图2 手臂与躯干的分割点Fig.2 Dividing points of arms and torso

2 三维人体模型的构建

对人体表面部位划分后,采用文献[1]中去除第3类噪声点的方法对点云进行光顺处理,采用文献[6]中的方法对点云进行简化处理,以及采用三次参数样条插值的方法修补人体各部位的漏洞[7],同时,由于手掌及手指内侧缺失的数据较多,用现有的点云数据很难重构手的真实模型,因此在修补漏洞的同时以手腕扫描线最细处为分割线,去掉手掌及手指部位的点云,这部分点云不作为本文研究内容。经过以上的处理后,通过距离采样法[8]可获得人体表面各部位完整且密度适当的点云数据,用于构建三维人体模型,图3示出距离采样后人体点云图像。

图3 距离采样后人体点云图像Fig.3 Human body point cloud after distance sampling

2.1 人体各部位三角网格模型的构建

对于人体各部位扫描线点云来说,其相邻扫描线的间距较小,且相邻扫描线的几何中心偏移非常小,因此可以采用平行切面轮廓数据点的三角网格化方法来构建人体各部位的三角网格模型[9],其算法的基本原理是采用最小边长准则。图4为相邻扫描线点云的三角网格化,li-1和li是相邻的2条扫描线,pij分别是这2条扫描线上按一定方向排序的数据点。构造三角网格时,为避免狭长三角形的出现,每次选择边长最短的边作为新生成的三角网格边,如假设e2>e3,则选择边e3作为新三角形的边,然后以该边为初始边,重复该过程,直到相邻扫描线上的点都连接成三角形。

图4 相邻扫描线点云的三角网格化Fig.4 Adjacent scan lines triangularization

Fig.5 人体各部位三角网格模型Fig.5 Triangular mesh model of every part. (a) Head and shoulder; (b) Arms; (c) Torso; (d) Legs

由于三角网格模型是以图形元素组合来表示物体模型,这种模型是从轮廓上表示一个物体,但不能把物体表面光滑地模仿出来。应用OpenGL技术,可以通过计算三角形的面或点的法向量来达到光滑物体表面的目的,人体各部位三角网格模型如图5所示。2.2 人体各部位之间的三角网格化

人体各部位之间的三角化是将各部位连接起来,构建完整的人体模型。本文涉及到人体头肩部与躯干和手臂之间、人体躯干与腿之间三角化,这些部位的三角化是单轮廓与多轮廓之间的三角化。由于人体各部位之间的位置相对固定,因而可以将单轮廓划分为多轮廓或者将多轮廓合并成一个单轮廓,最终将单对多的三角化问题转化为单对单的三角化问题。

在文献[10]中,通过“桥”将多轮廓合并成1个合成轮廓,“桥”之间的部分形成“峡谷”,然后将合成的轮廓线与相邻的单轮廓线采用单对单轮廓三角化方法。应用该方法获取完整的人体模型后,人体的腋窝点和裆点分别位于合成轮廓的峡谷区域内。而本文在对人体部位进行划分时,应用距离阈值法确定分割点,在分割点处,手臂与躯干以及左右腿之间已经有一定的距离,因此,腋窝点和裆点应位于分割点之上,可以近似认为它们位于与多轮廓线相邻的单轮廓线上,为此,本文提出将单轮廓划分为多轮廓的方法,如图6所示的单轮廊与相邻的多轮廓扫描线。设S和Mi(i=0,1,2)分别为单轮廓和相邻的多轮廓扫描线,扫描线S与扫描线Mi形状具有相近性,因此,可以根据Mi的形状,将单轮廓扫描线S划分成与多轮廓扫描线Mi相对应的几部分。在对S进行分割时,分割线的确定以及分割后分割区域内点的插补是需要解决的2个主要问题。

人体头肩部与手臂、躯干的三角化是单轮廓对3个轮廓之间的三角化,通过图6,在单轮廓中,手臂与躯干连接处,曲线最凹点为轮廓之间的拐点,可以将该点作为轮廓线的分割点,确定该点的具体算法为:1) 缩小拐点所在的范围,避免受其他拐点的影响。将单轮廓扫描线上的点投影到二维平面上,设定x值的范围分别为[p2·x-dε,p2·x+dε]、[p3·x-dε,p3·x+dε],其中p2、p3分别为划分人体时左右手臂与躯干的分割点,dε为划分人体时的距离阈值。2) 计算该范围内点的z坐标的平均值avez,根据该值将点分为上下两部分,对每部分点云进行三次参数样条插值拟合,结果如图7所示的分割点所在的曲线。3) 求每条曲线的拐点。用三次参数样条插值的方法求得曲线方程f(x),该方程存在二阶导数,判断点p是否为拐点的充要条件为①f″(x0)=0,x0为点p的x坐标值;② 对该点两旁f″(x)变号,即在[p2·x-dε,x0]内f″(x)>0或者f″(x)<0;在[x0,p2·x-dε]内f″(x)<0或者f″(x)>0。

图6 单轮廓与相邻的多轮廓扫描线Fig.6 Scan lines of single contour and its adjacent multi contour. (a) Single contour scan line at armpit point; (b) Single contour scan line at crotch point; (c) Adjacent multi contour scan lines with (a); (d) Adjacent multi contour scan lines with (b)

图7 分割点所在的曲线Fig.7 Curves of split points located on

腿部与人体躯干的三角化是单轮廓与双轮廓之间的三角化,其单轮廓的分割点识别方法与上述方法相同。确定分割点后,连接单轮廓前、后2个分割点形成分割线,将分割线两侧的数据分成2部分,如图8所示的“单轮廓的分割”。

图8 单轮廓的分割Fig.8 Split of single contour. (a) At armpit point; (b) At crotch point

分割后的轮廓在分割线处形成孔洞,对孔洞的修补,本文采用线性插值的方法,即在分割线上按相等的间隔线性插补数据点,并将这些点作为分割后相邻轮廓线的公共点,点的间隔为对人体点云重采样时的距离值,插补后轮廓线上的点如图9所示的分割线处孔洞的修补。

图9 分割线处孔洞的修补Fig.9 Repairing holes at split lines. (a) At armpit point; (b) At crotch point

单轮廓被分割为多轮廓后,将单对多轮廓的三角化转化为多个单对单轮廓的三角化,可以直接按2.1的方法构建三角网格模型。图10示出腋下和裆部三角网格化结果,图11(a)为人体全身三角网格模型。全身人体三角网格模型以及应用OpenGL技术绘制的人体曲面模型如图11(b)所示。

图10 单轮廓与多轮廓之间的三角化Fig.10 Triangulation between single contour and multi contours. (a) At armpit point; (b) At crotch point

图11 人体模型Fig.11 Human body models. (a) Triangular mesh model; (b) Surface model

3 结 论

1)针对人体形状的复杂性,首先通过遍历点的方法对人体表面部位进行划分,减小人体头肩部与手臂、躯干以及躯干与左腿、右腿之间的误差,算法时间复杂度为O(1)。

2)对每个部位采用平行切面轮廓数据点的三角网格化方法构建三角网格模型,该方法适用于扫描线线点云,效率高,对构建的人体三角网格模型精度不会产生影响。

3)提出将多轮廓划分为单轮廓进而将单对多问题转化为多个单对单轮廓的三角化方法构建全身人体三角网格模型,涉及到的部位包括腋窝点和裆点处的扫描线。与已有的方法相比较,应用该方法构建人体模型后,不会影响腋窝点和裆点的位置,并且该方法原理简单,算法的时间复杂度为O(x3),该方法不能准确地重构腋窝的结构形态,但是由点云模型到曲面模型,人体模型的精度未发生变化,并且该曲面模型能满足服装行业的需求。

FZXB

[1] 李晓志,李晓久,王玉秀. 基于人体扫描线点云的光顺去噪[J].纺织学报,2010,31(3): 133-137. LI Xiaozhi, LI Xiaojiu, WANG Yuxiu. 3D body scan line point cloud data denoising and smoothing[J]. Journal of Textile Research, 2010, 31(3): 133-137.

[2] 周富强,李章,张广军.基于三维测量扫描线点云的表面重建[J].仪器仪表学报,2006,27(6):619-623. ZHOU Fuqiang, LI Zhang, ZHANG Guangjun. Surface reconstruction with 3D point cloud from sectional measurement[J]. Chinese Journal of Scientific Instrument, 2006, 27(6):619-623.

[3] 柯福军. 三维人体建模理论研究及着装仿真初探[D]. 杭州:浙江大学,2004: 14. KE Fujun. Research of 3D human modeling theory and preliminary of dressing simulation[D]. Hangzhou: Zhejiang University, 2004: 14.

[4] 王眉. 面向服装CAD的三维人体建模与变形技术研究及实现[D]. 杭州:浙江大学,2006: 10-13. WANG Mei. 3D human reconstruction and deformation: research and realization for GCAD[D]. Hangzhou: Zhejiang University, 2006: 10-13.

[5] 成思源, 张群瞻. 计算机图形学[M]. 北京:冶金工业出版社,2003: 193-287. CHENG Siyuan, ZHANG Qunzhan. Computer Graphics[M]. Beijing: Metallurgical Industry Press, 2003: 193-287.

[6] 李晓久,景晓宁. 基于非接触式测量的人体点云简化方法[J]. 纺织学报,2012, 33(7): 146-150. LI Xiaojiu, JING Xiaoning. Study of body point cloud simplification based on non-contact measurement[J]. Journal of Textile Research, 2012, 33(7): 146-150.

[7] LI Xiaozhi, LI Xiaojiu. Filling the holes of 3D body scan line point cloud[C]// The 2ndInternational Conference on Advanced Computer Control. Shenyang, China. 2010: 334-338.

[8] 徐光荣,平雪良,聂恒卫,等. 逆向工程中数据简化方法比较及其误差分析[J]. 机械设计与制造,2006(5):10-12. XU Rongli, PING Xueliang, NIE Hengwei, et al. Comparison of data reduction method and analyses of error in revese engineering[J]. Machinery Design & Manufacture,2006(5):10-12.

[9] 高成英. 三维虚拟服装造型与动态仿真技术研究[D]. 广州:中山大学,2003: 71-76. GAO Chengying. Computer simulation and modeling techniques for 3D virtual garment[D]. Guangzhou: Sun Yat-Sen University, 2003: 71-76.

[10] 杨允出.基于体型分析的女性虚拟人台建立于服装原型样板定制研究[D]. 上海:东华大学,2007: 99-106. YANG Yunchu. Female virtual dummy modeling and garment prototype pattern customization based on body shape analysis[D]. Shanghai: Donghua University, 2007: 99-106.

Construction of 3-D body surface model based on partitioning

LI Xiaozhi, LI Xiaojiu

(SchoolofArtandClothing,TianjinPolytechnicUniversity,Tianjin300387,China)

By the self-developed 3-D body measurement system, the 3-D body scan line point cloud data can be acquired. For the complexity of the human body surface, if a body surface model is directly constructed, the result may cause arms with torso, left leg with right legs together as one contour, or big errors in the head-shoulder with the arms and the torso and the torso with legs. So the paper first divides the human body surface into six parts based on the shape, then constructs a triangular mesh for each part and puts forward a new method that divides the single contour into multi-contour to establish the triangular mesh between single contour and multi contours of the head-shoulder with the arms and the torso and the torso with legs. Finally, the triangular mesh surface model of the entire human body is constructed.

3-D body measurement; scan line point cloud; partitioning of body; single contour; multi contour; triangular mesh model

0253- 9721(2013)09- 0145- 05

2012-10-26

2013-04-04

李晓志(1980—),女,讲师,博士。研究方向为数字化服装技术。李晓久,通信作者,E-mail:lixiaojiu@tjpu.edu. cn。

TP 391.72

A

猜你喜欢
扫描线躯干手臂
一种基于线扫描的受损一维条形码识别方法
手臂上的抓痕
树与人
基于扫描线模型的机载激光点云滤波算法
章鱼长长的手臂是用来做什么的
抱手臂的娃娃
扫描线点云数据的曲面重构技术研究
完美的手臂
角度法评价躯干冠状面失平衡
正常成人躯干皮肤温度觉阈值测定