李曉志, 李曉久
(天津工業(yè)大學 藝術與服裝學院, 天津 300387)
基于部位劃分的三維人體曲面模型的構建
李曉志, 李曉久
(天津工業(yè)大學 藝術與服裝學院, 天津 300387)
應用自主開發(fā)的三維人體測量系統(tǒng)獲取人體掃描線點云數(shù)據(jù)。由于人體表面比較復雜,如果直接對整個人體點云進行模型的重構,可能會使人體手臂與人體軀干、左腿與右腿連在一起,或者導致體頭肩部與人體軀干、手臂以及軀干與兩腿之間連接的部分出現(xiàn)較大誤差,為此,首先根據(jù)人體形狀,將人體表面分割為6個部分,并對每部分人體點云分別進行三角網(wǎng)格化處理,然后提出將單輪廓劃分為多輪廓的方法,將人體頭肩部與人體軀干、手臂以及軀干與兩腿進行合成,最終生成完整的人體三角網(wǎng)格曲面模型。
三維人體測量; 掃描線點云; 人體劃分; 單輪廓; 多輪廓; 三角網(wǎng)格模型
應用自主開發(fā)的三維人體掃描系統(tǒng)[1]對人體進行掃描,配準后,可獲取人體掃描線點云數(shù)據(jù)。根據(jù)掃描線點云數(shù)據(jù)的特點[2],可以采用三角曲面片逼近法、參數(shù)曲面建模法來構建人體曲面模型。在參數(shù)曲面建模方法中,NURBS曲面已成為描述物體外形的工業(yè)標準,該方法需將人體至少分割為十幾部分,通過每部分的人體數(shù)據(jù)點反算控制點后構建NURBS曲面,并且還需考慮每部分的光滑拼接問題[3]。三角曲面片逼近法是采用三角形作為基元構成人體的表面[4],算法簡單,能有效解決人體表面形狀的復雜性,并且與OpenGL技術相結合解決了人體數(shù)據(jù)量大的問題[5],因此,本文采用三角曲面片逼近法構建人體曲面模型。
由于人體表面比較復雜,人體軀干與手臂部位的掃描線、人體左腿和右腿部位的掃描線處在相同水平線上,如果直接對整個人體進行模型的構建,可能使人體手臂與軀干、左腿與右腿連在一起,或者導致人體頭肩部與軀干、手臂以及軀干與兩腿之間的連接部位出現(xiàn)較大誤差,為此本文首先將人體表面部位進行分割,分別對每部分點云構建人體三角網(wǎng)格模型,然后對各部分之間進行合成,構建完整的人體曲面模型。
在對人體進行劃分前,先參考文獻[1]中去除第1類和第2類噪聲點的方法去除掃描線點云中的跳點和重疊點。根據(jù)人體的幾何形狀,為減小構建的人體模型的誤差,本文將人體劃分為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,否則繼續(xù)查找。
同理,可識別出另一手臂與人體軀干的分割點p2,如圖2所示手臂與軀干的分割點,p2y>p1y。人體左、右兩手臂與人體頭肩、軀干是在同一水平線上的掃描線進行分割的,本文選取y坐標值較大的分割點p2所在的掃描線將人體頭肩部與其他部位分開,并在該掃描線上查找距離p1最短的一點p3替代p1作為分割點,最終p2點以上的點云為人體頭肩部,p2點與p3點之間的點云為人體軀干,2點外側點云分別為人體兩手臂。
用同樣的方法可求出人體軀干與左、右兩腿的分割點,并將人體軀干、左腿、右腿分割開。
圖2 手臂與軀干的分割點Fig.2 Dividing points of arms and torso
對人體表面部位劃分后,采用文獻[1]中去除第3類噪聲點的方法對點云進行光順處理,采用文獻[6]中的方法對點云進行簡化處理,以及采用三次參數(shù)樣條插值的方法修補人體各部位的漏洞[7],同時,由于手掌及手指內(nèi)側缺失的數(shù)據(jù)較多,用現(xiàn)有的點云數(shù)據(jù)很難重構手的真實模型,因此在修補漏洞的同時以手腕掃描線最細處為分割線,去掉手掌及手指部位的點云,這部分點云不作為本文研究內(nèi)容。經(jīng)過以上的處理后,通過距離采樣法[8]可獲得人體表面各部位完整且密度適當?shù)狞c云數(shù)據(jù),用于構建三維人體模型,圖3示出距離采樣后人體點云圖像。
圖3 距離采樣后人體點云圖像Fig.3 Human body point cloud after distance sampling
2.1 人體各部位三角網(wǎng)格模型的構建
對于人體各部位掃描線點云來說,其相鄰掃描線的間距較小,且相鄰掃描線的幾何中心偏移非常小,因此可以采用平行切面輪廓數(shù)據(jù)點的三角網(wǎng)格化方法來構建人體各部位的三角網(wǎng)格模型[9],其算法的基本原理是采用最小邊長準則。圖4為相鄰掃描線點云的三角網(wǎng)格化,li-1和li是相鄰的2條掃描線,pij分別是這2條掃描線上按一定方向排序的數(shù)據(jù)點。構造三角網(wǎng)格時,為避免狹長三角形的出現(xiàn),每次選擇邊長最短的邊作為新生成的三角網(wǎng)格邊,如假設e2>e3,則選擇邊e3作為新三角形的邊,然后以該邊為初始邊,重復該過程,直到相鄰掃描線上的點都連接成三角形。
圖4 相鄰掃描線點云的三角網(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)格模型是以圖形元素組合來表示物體模型,這種模型是從輪廓上表示一個物體,但不能把物體表面光滑地模仿出來。應用OpenGL技術,可以通過計算三角形的面或點的法向量來達到光滑物體表面的目的,人體各部位三角網(wǎng)格模型如圖5所示。2.2 人體各部位之間的三角網(wǎng)格化
人體各部位之間的三角化是將各部位連接起來,構建完整的人體模型。本文涉及到人體頭肩部與軀干和手臂之間、人體軀干與腿之間三角化,這些部位的三角化是單輪廓與多輪廓之間的三角化。由于人體各部位之間的位置相對固定,因而可以將單輪廓劃分為多輪廓或者將多輪廓合并成一個單輪廓,最終將單對多的三角化問題轉化為單對單的三角化問題。
在文獻[10]中,通過“橋”將多輪廓合并成1個合成輪廓,“橋”之間的部分形成“峽谷”,然后將合成的輪廓線與相鄰的單輪廓線采用單對單輪廓三角化方法。應用該方法獲取完整的人體模型后,人體的腋窩點和襠點分別位于合成輪廓的峽谷區(qū)域內(nèi)。而本文在對人體部位進行劃分時,應用距離閾值法確定分割點,在分割點處,手臂與軀干以及左右腿之間已經(jīng)有一定的距離,因此,腋窩點和襠點應位于分割點之上,可以近似認為它們位于與多輪廓線相鄰的單輪廓線上,為此,本文提出將單輪廓劃分為多輪廓的方法,如圖6所示的單輪廊與相鄰的多輪廓掃描線。設S和Mi(i=0,1,2)分別為單輪廓和相鄰的多輪廓掃描線,掃描線S與掃描線Mi形狀具有相近性,因此,可以根據(jù)Mi的形狀,將單輪廓掃描線S劃分成與多輪廓掃描線Mi相對應的幾部分。在對S進行分割時,分割線的確定以及分割后分割區(qū)域內(nèi)點的插補是需要解決的2個主要問題。
人體頭肩部與手臂、軀干的三角化是單輪廓對3個輪廓之間的三角化,通過圖6,在單輪廓中,手臂與軀干連接處,曲線最凹點為輪廓之間的拐點,可以將該點作為輪廓線的分割點,確定該點的具體算法為:1) 縮小拐點所在的范圍,避免受其他拐點的影響。將單輪廓掃描線上的點投影到二維平面上,設定x值的范圍分別為[p2·x-dε,p2·x+dε]、[p3·x-dε,p3·x+dε],其中p2、p3分別為劃分人體時左右手臂與軀干的分割點,dε為劃分人體時的距離閾值。2) 計算該范圍內(nèi)點的z坐標的平均值avez,根據(jù)該值將點分為上下兩部分,對每部分點云進行三次參數(shù)樣條插值擬合,結果如圖7所示的分割點所在的曲線。3) 求每條曲線的拐點。用三次參數(shù)樣條插值的方法求得曲線方程f(x),該方程存在二階導數(shù),判斷點p是否為拐點的充要條件為①f″(x0)=0,x0為點p的x坐標值;② 對該點兩旁f″(x)變號,即在[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 單輪廓與相鄰的多輪廓掃描線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個分割點形成分割線,將分割線兩側的數(shù)據(jù)分成2部分,如圖8所示的“單輪廓的分割”。
圖8 單輪廓的分割Fig.8 Split of single contour. (a) At armpit point; (b) At crotch point
分割后的輪廓在分割線處形成孔洞,對孔洞的修補,本文采用線性插值的方法,即在分割線上按相等的間隔線性插補數(shù)據(jù)點,并將這些點作為分割后相鄰輪廓線的公共點,點的間隔為對人體點云重采樣時的距離值,插補后輪廓線上的點如圖9所示的分割線處孔洞的修補。
圖9 分割線處孔洞的修補Fig.9 Repairing holes at split lines. (a) At armpit point; (b) At crotch point
單輪廓被分割為多輪廓后,將單對多輪廓的三角化轉化為多個單對單輪廓的三角化,可以直接按2.1的方法構建三角網(wǎng)格模型。圖10示出腋下和襠部三角網(wǎng)格化結果,圖11(a)為人體全身三角網(wǎng)格模型。全身人體三角網(wǎng)格模型以及應用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
1)針對人體形狀的復雜性,首先通過遍歷點的方法對人體表面部位進行劃分,減小人體頭肩部與手臂、軀干以及軀干與左腿、右腿之間的誤差,算法時間復雜度為O(1)。
2)對每個部位采用平行切面輪廓數(shù)據(jù)點的三角網(wǎng)格化方法構建三角網(wǎng)格模型,該方法適用于掃描線線點云,效率高,對構建的人體三角網(wǎng)格模型精度不會產(chǎn)生影響。
3)提出將多輪廓劃分為單輪廓進而將單對多問題轉化為多個單對單輪廓的三角化方法構建全身人體三角網(wǎng)格模型,涉及到的部位包括腋窩點和襠點處的掃描線。與已有的方法相比較,應用該方法構建人體模型后,不會影響腋窩點和襠點的位置,并且該方法原理簡單,算法的時間復雜度為O(x3),該方法不能準確地重構腋窩的結構形態(tài),但是由點云模型到曲面模型,人體模型的精度未發(fā)生變化,并且該曲面模型能滿足服裝行業(yè)的需求。
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的三維人體建模與變形技術研究及實現(xiàn)[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]. 北京:冶金工業(yè)出版社,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] 徐光榮,平雪良,聶恒衛(wèi),等. 逆向工程中數(shù)據(jù)簡化方法比較及其誤差分析[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] 高成英. 三維虛擬服裝造型與動態(tài)仿真技術研究[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—),女,講師,博士。研究方向為數(shù)字化服裝技術。李曉久,通信作者,E-mail:lixiaojiu@tjpu.edu. cn。
TP 391.72
A