李曉志, 李曉久
(天津工業(yè)大學(xué) 藝術(shù)與服裝學(xué)院, 天津 300387)
基于部位劃分的三維人體曲面模型的構(gòu)建
李曉志, 李曉久
(天津工業(yè)大學(xué) 藝術(shù)與服裝學(xué)院, 天津 300387)
應(yīng)用自主開(kāi)發(fā)的三維人體測(cè)量系統(tǒng)獲取人體掃描線(xiàn)點(diǎn)云數(shù)據(jù)。由于人體表面比較復(fù)雜,如果直接對(duì)整個(gè)人體點(diǎn)云進(jìn)行模型的重構(gòu),可能會(huì)使人體手臂與人體軀干、左腿與右腿連在一起,或者導(dǎo)致體頭肩部與人體軀干、手臂以及軀干與兩腿之間連接的部分出現(xiàn)較大誤差,為此,首先根據(jù)人體形狀,將人體表面分割為6個(gè)部分,并對(duì)每部分人體點(diǎn)云分別進(jìn)行三角網(wǎng)格化處理,然后提出將單輪廓?jiǎng)澐譃槎噍喞姆椒?,將人體頭肩部與人體軀干、手臂以及軀干與兩腿進(jìn)行合成,最終生成完整的人體三角網(wǎng)格曲面模型。
三維人體測(cè)量; 掃描線(xiàn)點(diǎn)云; 人體劃分; 單輪廓; 多輪廓; 三角網(wǎng)格模型
應(yīng)用自主開(kāi)發(fā)的三維人體掃描系統(tǒng)[1]對(duì)人體進(jìn)行掃描,配準(zhǔn)后,可獲取人體掃描線(xiàn)點(diǎn)云數(shù)據(jù)。根據(jù)掃描線(xiàn)點(diǎn)云數(shù)據(jù)的特點(diǎn)[2],可以采用三角曲面片逼近法、參數(shù)曲面建模法來(lái)構(gòu)建人體曲面模型。在參數(shù)曲面建模方法中,NURBS曲面已成為描述物體外形的工業(yè)標(biāo)準(zhǔn),該方法需將人體至少分割為十幾部分,通過(guò)每部分的人體數(shù)據(jù)點(diǎn)反算控制點(diǎn)后構(gòu)建NURBS曲面,并且還需考慮每部分的光滑拼接問(wèn)題[3]。三角曲面片逼近法是采用三角形作為基元構(gòu)成人體的表面[4],算法簡(jiǎn)單,能有效解決人體表面形狀的復(fù)雜性,并且與OpenGL技術(shù)相結(jié)合解決了人體數(shù)據(jù)量大的問(wèn)題[5],因此,本文采用三角曲面片逼近法構(gòu)建人體曲面模型。
由于人體表面比較復(fù)雜,人體軀干與手臂部位的掃描線(xiàn)、人體左腿和右腿部位的掃描線(xiàn)處在相同水平線(xiàn)上,如果直接對(duì)整個(gè)人體進(jìn)行模型的構(gòu)建,可能使人體手臂與軀干、左腿與右腿連在一起,或者導(dǎo)致人體頭肩部與軀干、手臂以及軀干與兩腿之間的連接部位出現(xiàn)較大誤差,為此本文首先將人體表面部位進(jìn)行分割,分別對(duì)每部分點(diǎn)云構(gòu)建人體三角網(wǎng)格模型,然后對(duì)各部分之間進(jìn)行合成,構(gòu)建完整的人體曲面模型。
在對(duì)人體進(jìn)行劃分前,先參考文獻(xiàn)[1]中去除第1類(lèi)和第2類(lèi)噪聲點(diǎn)的方法去除掃描線(xiàn)點(diǎn)云中的跳點(diǎn)和重疊點(diǎn)。根據(jù)人體的幾何形狀,為減小構(gòu)建的人體模型的誤差,本文將人體劃分為6部分:頭肩部(head and shoulder)、軀干(torso)、左手臂(left arm)、右手臂(right arm)、左腿(left leg)、右腿(right leg)。圖1為人體劃分示意圖。
圖1 人體劃分示意圖Fig.1 Diagram of divided body
對(duì)這6個(gè)部分劃分的關(guān)鍵是確定分割點(diǎn),分割點(diǎn)與腋窩點(diǎn)和襠點(diǎn)這2個(gè)特征點(diǎn)有關(guān),本文采用基于距離閾值的方法識(shí)別分割點(diǎn),即:1)設(shè)定1個(gè)距離閾值dε;2)由人體頭頂掃描線(xiàn)開(kāi)始,對(duì)掃描線(xiàn)上的點(diǎn)云按順序計(jì)算2點(diǎn)之間的距離,對(duì)任意一點(diǎn)p[i][j],計(jì)算p[i][j]·xP[i][j-1].x的距離d1、p[i][j]·x與p[i][j+1]·x距離d2(x值的比較是為了避免了噪聲點(diǎn)的影響)。3)如果d1?d2,即d2-d1>dε,則(p[i][j]+p[i][j+1])/2為其中一個(gè)手臂與軀干的分割點(diǎn)p1,否則繼續(xù)查找。
同理,可識(shí)別出另一手臂與人體軀干的分割點(diǎn)p2,如圖2所示手臂與軀干的分割點(diǎn),p2y>p1y。人體左、右兩手臂與人體頭肩、軀干是在同一水平線(xiàn)上的掃描線(xiàn)進(jìn)行分割的,本文選取y坐標(biāo)值較大的分割點(diǎn)p2所在的掃描線(xiàn)將人體頭肩部與其他部位分開(kāi),并在該掃描線(xiàn)上查找距離p1最短的一點(diǎn)p3替代p1作為分割點(diǎn),最終p2點(diǎn)以上的點(diǎn)云為人體頭肩部,p2點(diǎn)與p3點(diǎn)之間的點(diǎn)云為人體軀干,2點(diǎn)外側(cè)點(diǎn)云分別為人體兩手臂。
用同樣的方法可求出人體軀干與左、右兩腿的分割點(diǎn),并將人體軀干、左腿、右腿分割開(kāi)。
圖2 手臂與軀干的分割點(diǎn)Fig.2 Dividing points of arms and torso
對(duì)人體表面部位劃分后,采用文獻(xiàn)[1]中去除第3類(lèi)噪聲點(diǎn)的方法對(duì)點(diǎn)云進(jìn)行光順處理,采用文獻(xiàn)[6]中的方法對(duì)點(diǎn)云進(jìn)行簡(jiǎn)化處理,以及采用三次參數(shù)樣條插值的方法修補(bǔ)人體各部位的漏洞[7],同時(shí),由于手掌及手指內(nèi)側(cè)缺失的數(shù)據(jù)較多,用現(xiàn)有的點(diǎn)云數(shù)據(jù)很難重構(gòu)手的真實(shí)模型,因此在修補(bǔ)漏洞的同時(shí)以手腕掃描線(xiàn)最細(xì)處為分割線(xiàn),去掉手掌及手指部位的點(diǎn)云,這部分點(diǎn)云不作為本文研究?jī)?nèi)容。經(jīng)過(guò)以上的處理后,通過(guò)距離采樣法[8]可獲得人體表面各部位完整且密度適當(dāng)?shù)狞c(diǎn)云數(shù)據(jù),用于構(gòu)建三維人體模型,圖3示出距離采樣后人體點(diǎn)云圖像。
圖3 距離采樣后人體點(diǎn)云圖像Fig.3 Human body point cloud after distance sampling
2.1 人體各部位三角網(wǎng)格模型的構(gòu)建
對(duì)于人體各部位掃描線(xiàn)點(diǎn)云來(lái)說(shuō),其相鄰掃描線(xiàn)的間距較小,且相鄰掃描線(xiàn)的幾何中心偏移非常小,因此可以采用平行切面輪廓數(shù)據(jù)點(diǎn)的三角網(wǎng)格化方法來(lái)構(gòu)建人體各部位的三角網(wǎng)格模型[9],其算法的基本原理是采用最小邊長(zhǎng)準(zhǔn)則。圖4為相鄰掃描線(xiàn)點(diǎn)云的三角網(wǎng)格化,li-1和li是相鄰的2條掃描線(xiàn),pij分別是這2條掃描線(xiàn)上按一定方向排序的數(shù)據(jù)點(diǎn)。構(gòu)造三角網(wǎng)格時(shí),為避免狹長(zhǎng)三角形的出現(xiàn),每次選擇邊長(zhǎng)最短的邊作為新生成的三角網(wǎng)格邊,如假設(shè)e2>e3,則選擇邊e3作為新三角形的邊,然后以該邊為初始邊,重復(fù)該過(guò)程,直到相鄰掃描線(xiàn)上的點(diǎn)都連接成三角形。
圖4 相鄰掃描線(xiàn)點(diǎn)云的三角網(wǎng)格化Fig.4 Adjacent scan lines triangularization
Fig.5 人體各部位三角網(wǎng)格模型Fig.5 Triangular mesh model of every part. (a) Head and shoulder; (b) Arms; (c) Torso; (d) Legs
由于三角網(wǎng)格模型是以圖形元素組合來(lái)表示物體模型,這種模型是從輪廓上表示一個(gè)物體,但不能把物體表面光滑地模仿出來(lái)。應(yīng)用OpenGL技術(shù),可以通過(guò)計(jì)算三角形的面或點(diǎn)的法向量來(lái)達(dá)到光滑物體表面的目的,人體各部位三角網(wǎng)格模型如圖5所示。2.2 人體各部位之間的三角網(wǎng)格化
人體各部位之間的三角化是將各部位連接起來(lái),構(gòu)建完整的人體模型。本文涉及到人體頭肩部與軀干和手臂之間、人體軀干與腿之間三角化,這些部位的三角化是單輪廓與多輪廓之間的三角化。由于人體各部位之間的位置相對(duì)固定,因而可以將單輪廓?jiǎng)澐譃槎噍喞蛘邔⒍噍喞喜⒊梢粋€(gè)單輪廓,最終將單對(duì)多的三角化問(wèn)題轉(zhuǎn)化為單對(duì)單的三角化問(wèn)題。
在文獻(xiàn)[10]中,通過(guò)“橋”將多輪廓合并成1個(gè)合成輪廓,“橋”之間的部分形成“峽谷”,然后將合成的輪廓線(xiàn)與相鄰的單輪廓線(xiàn)采用單對(duì)單輪廓三角化方法。應(yīng)用該方法獲取完整的人體模型后,人體的腋窩點(diǎn)和襠點(diǎn)分別位于合成輪廓的峽谷區(qū)域內(nèi)。而本文在對(duì)人體部位進(jìn)行劃分時(shí),應(yīng)用距離閾值法確定分割點(diǎn),在分割點(diǎn)處,手臂與軀干以及左右腿之間已經(jīng)有一定的距離,因此,腋窩點(diǎn)和襠點(diǎn)應(yīng)位于分割點(diǎn)之上,可以近似認(rèn)為它們位于與多輪廓線(xiàn)相鄰的單輪廓線(xiàn)上,為此,本文提出將單輪廓?jiǎng)澐譃槎噍喞姆椒?,如圖6所示的單輪廊與相鄰的多輪廓掃描線(xiàn)。設(shè)S和Mi(i=0,1,2)分別為單輪廓和相鄰的多輪廓掃描線(xiàn),掃描線(xiàn)S與掃描線(xiàn)Mi形狀具有相近性,因此,可以根據(jù)Mi的形狀,將單輪廓掃描線(xiàn)S劃分成與多輪廓掃描線(xiàn)Mi相對(duì)應(yīng)的幾部分。在對(duì)S進(jìn)行分割時(shí),分割線(xiàn)的確定以及分割后分割區(qū)域內(nèi)點(diǎn)的插補(bǔ)是需要解決的2個(gè)主要問(wèn)題。
人體頭肩部與手臂、軀干的三角化是單輪廓對(duì)3個(gè)輪廓之間的三角化,通過(guò)圖6,在單輪廓中,手臂與軀干連接處,曲線(xiàn)最凹點(diǎn)為輪廓之間的拐點(diǎn),可以將該點(diǎn)作為輪廓線(xiàn)的分割點(diǎn),確定該點(diǎn)的具體算法為:1) 縮小拐點(diǎn)所在的范圍,避免受其他拐點(diǎn)的影響。將單輪廓掃描線(xiàn)上的點(diǎn)投影到二維平面上,設(shè)定x值的范圍分別為[p2·x-dε,p2·x+dε]、[p3·x-dε,p3·x+dε],其中p2、p3分別為劃分人體時(shí)左右手臂與軀干的分割點(diǎn),dε為劃分人體時(shí)的距離閾值。2) 計(jì)算該范圍內(nèi)點(diǎn)的z坐標(biāo)的平均值avez,根據(jù)該值將點(diǎn)分為上下兩部分,對(duì)每部分點(diǎn)云進(jìn)行三次參數(shù)樣條插值擬合,結(jié)果如圖7所示的分割點(diǎn)所在的曲線(xiàn)。3) 求每條曲線(xiàn)的拐點(diǎn)。用三次參數(shù)樣條插值的方法求得曲線(xiàn)方程f(x),該方程存在二階導(dǎo)數(shù),判斷點(diǎn)p是否為拐點(diǎn)的充要條件為①f″(x0)=0,x0為點(diǎn)p的x坐標(biāo)值;② 對(duì)該點(diǎn)兩旁f″(x)變號(hào),即在[p2·x-dε,x0]內(nèi)f″(x)>0或者f″(x)<0;在[x0,p2·x-dε]內(nèi)f″(x)<0或者f″(x)>0。
圖6 單輪廓與相鄰的多輪廓掃描線(xiàn)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 分割點(diǎn)所在的曲線(xiàn)Fig.7 Curves of split points located on
腿部與人體軀干的三角化是單輪廓與雙輪廓之間的三角化,其單輪廓的分割點(diǎn)識(shí)別方法與上述方法相同。確定分割點(diǎn)后,連接單輪廓前、后2個(gè)分割點(diǎn)形成分割線(xiàn),將分割線(xiàn)兩側(cè)的數(shù)據(jù)分成2部分,如圖8所示的“單輪廓的分割”。
圖8 單輪廓的分割Fig.8 Split of single contour. (a) At armpit point; (b) At crotch point
分割后的輪廓在分割線(xiàn)處形成孔洞,對(duì)孔洞的修補(bǔ),本文采用線(xiàn)性插值的方法,即在分割線(xiàn)上按相等的間隔線(xiàn)性插補(bǔ)數(shù)據(jù)點(diǎn),并將這些點(diǎn)作為分割后相鄰輪廓線(xiàn)的公共點(diǎn),點(diǎn)的間隔為對(duì)人體點(diǎn)云重采樣時(shí)的距離值,插補(bǔ)后輪廓線(xiàn)上的點(diǎn)如圖9所示的分割線(xiàn)處孔洞的修補(bǔ)。
圖9 分割線(xiàn)處孔洞的修補(bǔ)Fig.9 Repairing holes at split lines. (a) At armpit point; (b) At crotch point
單輪廓被分割為多輪廓后,將單對(duì)多輪廓的三角化轉(zhuǎn)化為多個(gè)單對(duì)單輪廓的三角化,可以直接按2.1的方法構(gòu)建三角網(wǎng)格模型。圖10示出腋下和襠部三角網(wǎng)格化結(jié)果,圖11(a)為人體全身三角網(wǎng)格模型。全身人體三角網(wǎng)格模型以及應(yīng)用OpenGL技術(shù)繪制的人體曲面模型如圖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
1)針對(duì)人體形狀的復(fù)雜性,首先通過(guò)遍歷點(diǎn)的方法對(duì)人體表面部位進(jìn)行劃分,減小人體頭肩部與手臂、軀干以及軀干與左腿、右腿之間的誤差,算法時(shí)間復(fù)雜度為O(1)。
2)對(duì)每個(gè)部位采用平行切面輪廓數(shù)據(jù)點(diǎn)的三角網(wǎng)格化方法構(gòu)建三角網(wǎng)格模型,該方法適用于掃描線(xiàn)線(xiàn)點(diǎn)云,效率高,對(duì)構(gòu)建的人體三角網(wǎng)格模型精度不會(huì)產(chǎn)生影響。
3)提出將多輪廓?jiǎng)澐譃閱屋喞M(jìn)而將單對(duì)多問(wèn)題轉(zhuǎn)化為多個(gè)單對(duì)單輪廓的三角化方法構(gòu)建全身人體三角網(wǎng)格模型,涉及到的部位包括腋窩點(diǎn)和襠點(diǎn)處的掃描線(xiàn)。與已有的方法相比較,應(yīng)用該方法構(gòu)建人體模型后,不會(huì)影響腋窩點(diǎn)和襠點(diǎn)的位置,并且該方法原理簡(jiǎn)單,算法的時(shí)間復(fù)雜度為O(x3),該方法不能準(zhǔn)確地重構(gòu)腋窩的結(jié)構(gòu)形態(tài),但是由點(diǎn)云模型到曲面模型,人體模型的精度未發(fā)生變化,并且該曲面模型能滿(mǎn)足服裝行業(yè)的需求。
FZXB
[1] 李曉志,李曉久,王玉秀. 基于人體掃描線(xiàn)點(diǎn)云的光順去噪[J].紡織學(xué)報(bào),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] 周富強(qiáng),李章,張廣軍.基于三維測(cè)量掃描線(xiàn)點(diǎn)云的表面重建[J].儀器儀表學(xué)報(bào),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]. 杭州:浙江大學(xué),2004: 14. KE Fujun. Research of 3D human modeling theory and preliminary of dressing simulation[D]. Hangzhou: Zhejiang University, 2004: 14.
[4] 王眉. 面向服裝CAD的三維人體建模與變形技術(shù)研究及實(shí)現(xiàn)[D]. 杭州:浙江大學(xué),2006: 10-13. WANG Mei. 3D human reconstruction and deformation: research and realization for GCAD[D]. Hangzhou: Zhejiang University, 2006: 10-13.
[5] 成思源, 張群瞻. 計(jì)算機(jī)圖形學(xué)[M]. 北京:冶金工業(yè)出版社,2003: 193-287. CHENG Siyuan, ZHANG Qunzhan. Computer Graphics[M]. Beijing: Metallurgical Industry Press, 2003: 193-287.
[6] 李曉久,景曉寧. 基于非接觸式測(cè)量的人體點(diǎn)云簡(jiǎn)化方法[J]. 紡織學(xué)報(bào),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] 徐光榮,平雪良,聶恒衛(wèi),等. 逆向工程中數(shù)據(jù)簡(jiǎn)化方法比較及其誤差分析[J]. 機(jī)械設(shè)計(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òng)態(tài)仿真技術(shù)研究[D]. 廣州:中山大學(xué),2003: 71-76. GAO Chengying. Computer simulation and modeling techniques for 3D virtual garment[D]. Guangzhou: Sun Yat-Sen University, 2003: 71-76.
[10] 楊允出.基于體型分析的女性虛擬人臺(tái)建立于服裝原型樣板定制研究[D]. 上海:東華大學(xué),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—),女,講師,博士。研究方向?yàn)閿?shù)字化服裝技術(shù)。李曉久,通信作者,E-mail:lixiaojiu@tjpu.edu. cn。
TP 391.72
A