,,,
(西安工程大學(xué) 電子信息學(xué)院,西安 710048)
在信息化和全球化時代,隨著科技的迅猛發(fā)展,鞋業(yè)市場對產(chǎn)品的性能、生產(chǎn)周期要求更加嚴格,而傳統(tǒng)的設(shè)計方法已經(jīng)不足以滿足市場的變化需求,不能滿足人們個性化的思想,因此提高鞋類設(shè)計的科技性是鞋業(yè)發(fā)展的必然。定制鞋不僅能滿足人們個性化需求的心理,而且也應(yīng)用在如運動、醫(yī)學(xué)等多個領(lǐng)域。
鞋楦的制作是制鞋中不可或缺的一部分,隨著人們個性化思想的發(fā)展,鞋子的美觀性和舒適度成為消費者選購鞋子的依據(jù)。要實現(xiàn)定制鞋,個性定制鞋楦是技術(shù)核心和關(guān)鍵之處。傳統(tǒng)的定制鞋需要鞋楦的設(shè)計人員具有完善的理論知識,一定的藝術(shù)修養(yǎng)和豐富的實踐經(jīng)驗,需要準確的掌握腳型的測量,足部結(jié)構(gòu)分析以及腳型與鞋楦的匹配規(guī)律等等,效率較低,不利于制鞋大規(guī)模工業(yè)化的推進[1]。
隨著虛擬現(xiàn)實技術(shù)的不斷發(fā)展,使用人機智能交互設(shè)計完成定制鞋的制作已經(jīng)成為發(fā)展潮流[2]。目前,國內(nèi)外對定制鞋的研究主要依靠CAD/CAM軟件,如英國的Delcam公司,研發(fā)的CRISPIN制鞋CAD/CAM系統(tǒng)能夠自如地進行鞋楦和鞋款的設(shè)計制作。英國CSM3D公司設(shè)計的Shoemaster Custom軟件,能夠通過顧客腳的三維數(shù)據(jù)與鞋楦數(shù)據(jù)庫中的數(shù)據(jù)進行匹配,為顧客生成定制的鞋楦[3]。國外目前的方法需要標準的數(shù)據(jù)庫進行鞋楦的設(shè)計,大大制約了定制鞋再設(shè)計發(fā)展。德國的著名品牌Adidas在其官網(wǎng)推出了個性化定制服務(wù),讓消費者自己當設(shè)計師,進入系統(tǒng),選擇需要定制的款式,選擇顧客喜歡鞋面的材質(zhì)和顏色,以及后跟、鞋舌、鞋帶、鞋底、內(nèi)襯等鞋各個部件的顏色,最后選擇所需鞋子的尺碼以及個性化刻字,完成miadidas的個性定制。個性ID產(chǎn)品更能體現(xiàn)消費者的個性化,通過自身行動實現(xiàn)自己的個性和想法。同樣耐克公司也早已推出這種個性化定制服務(wù),稱為“個性ID”。而目前國內(nèi)的大型制鞋企業(yè)和品牌,還沒有推出這種個性化定制平臺,嚴重制約國內(nèi)鞋業(yè)品牌的發(fā)展,以及消費者個性化需求不能得以實現(xiàn)。
基于以上分析,依據(jù)人體足部結(jié)構(gòu)特征,從足部生理功能角度出發(fā),結(jié)合Kinect和Unity3D引擎實現(xiàn)定制鞋。應(yīng)用Kinect獲取足部點云數(shù)據(jù),提出采用kd-tree算法進行點云預(yù)處理,并采用貪婪投影三角化算法進行點云重建。根據(jù)足部特征測量數(shù)據(jù),完成鞋楦的制作,最終通過Unity引擎完成定制鞋系統(tǒng)。
個性化三維定制鞋系統(tǒng)的設(shè)計流程主要由三大部分組成,第一部分是根據(jù)顧客雙足分析足部性能,確定需要采集的足部數(shù)據(jù)。第二部分采用Kinect三維攝像機獲取顧客足部的點云數(shù)據(jù),經(jīng)過數(shù)據(jù)預(yù)處理、點云重建得到重構(gòu)圖像,采用Meshlab測量足部特征數(shù)據(jù),結(jié)合MAYA軟件生成定制的個性化三維鞋樣。第三部分結(jié)合Unity引擎,完成貼圖渲染,交互界面設(shè)計等工作,實現(xiàn)三維定制鞋系統(tǒng)。
在該定制鞋系統(tǒng)中,Kinect獲取足部深度信息,點云的去噪和三維重建是技術(shù)核心,直接決定最終定制鞋的適應(yīng)匹配度。這一部分是該系統(tǒng)的研究重點。
鞋楦是以腳型為依據(jù)的,決定著鞋的樣式以及穿著的舒適度[4]。因此,準確的根據(jù)腳型以及足部數(shù)據(jù)制作相應(yīng)的鞋楦是定制鞋的重點之一。鞋楦的制作過程分為以下幾個方面:首先進行人體足部數(shù)據(jù)采集,該部分使用Kinect獲取雙足點云信息,對點云圖像進行預(yù)處理和重建過程,使用Meslab軟件獲取鞋楦的數(shù)據(jù)信息。最后在此基礎(chǔ)上,使用MAYA軟件進行鞋的建模。
足部是人體的重要的負重器官和運動器官,共有26塊骨骼組成并分為跟部、腰部、前掌部,而鞋子可幫助腳進行跑步,跳躍以保證腳不受到傷害。因此,人體足部數(shù)據(jù)采集時,需要測量足部各個部位的數(shù)據(jù)信息[5],根據(jù)Kinect掃描處理后的圖像,獲得如圖1所示的基本數(shù)據(jù),根據(jù)數(shù)據(jù)完成鞋子的建模。
圖1 人體足部測量示意圖
2.1.1 Kinect獲取雙足點云信息
Kinect是由微軟開發(fā)的一款三維體感攝影機,有3個鏡頭,中間為RGB彩色攝影機,用來采集彩色圖像。左右兩邊為紅外線發(fā)射器和紅外線CMOS攝影機所構(gòu)成的3D結(jié)構(gòu)光深度感應(yīng)器[6],用來采集深度數(shù)據(jù),可設(shè)置采集的分辨率。Kinect獲取圖像使用的是光編碼(light coding)技術(shù),就是使用光源照明編碼測量空間,打出的光源是激光照射粗糙表面形成的衍射斑點,得到“體編碼”,最終得到場景的三維形狀。
在獲取點云圖像時,無論是接觸測量還是非接觸測量,在掃描過程中都會因為設(shè)備精度,操作者經(jīng)驗以及環(huán)境因素,視線受到阻礙等影響,不可避免出現(xiàn)一些數(shù)據(jù)誤差以及遠離主體點云的點,在點云數(shù)據(jù)中表現(xiàn)為噪聲點[7]。Kinect獲取點云數(shù)據(jù),首先獲取圖像的深度數(shù)據(jù)和顏色數(shù)據(jù),然后將深度數(shù)據(jù)和顏色數(shù)據(jù)轉(zhuǎn)換為點云數(shù)據(jù)。
圖2中足部的深度圖像是通過Kinect3D攝像機獲取的,可以看出除了想要的足部的點云數(shù)據(jù)外,由于各種因素的影響,出現(xiàn)很多不需要的噪聲點,在后序工作中進行點云預(yù)處理,實現(xiàn)除噪處理。
圖2 Kinect掃描獲得的足部深度圖
2.1.2 點云圖像預(yù)處理
目前現(xiàn)有的點云去噪都是根據(jù)濾波進行處理的,一般采用的算法有高斯濾波、平均濾波或中值濾波,這種方法只是針對有序點云效果很好,針對無序點云效果卻不盡人意。因此,對于足部點云數(shù)據(jù)存在的明顯的噪聲點,使用kd-tree算法進行無序點云去噪[8]。
kd-tree算法是基于二叉樹的坐標軸建立拓撲關(guān)系的。首先根據(jù)X軸尋找分割線,計算X的平均值,尋找最接近平均值的點的X值分割空間,然后在子空間按照Y軸再尋找分割線,將其空間分為兩部分;分割好的空間再按X軸分割,以此類推,直到最后的分割區(qū)域只有一個點為止,這樣的分割過程就相當于一個二叉樹。二叉樹的分支節(jié)點就是一條分割線,二叉樹的每個葉子節(jié)點就是一個點,這就是拓撲關(guān)系的建立。kd-tree還具備點分布均勻的特點,所以搜索率較高[9]。
kd-tree算法的具體步驟如下:
1)讀入點云數(shù)據(jù),根據(jù)點云數(shù)據(jù)生成k-d樹,建立點云的拓撲關(guān)系;
2)查找任一點pi∈S的的鄰域Nb(p);
3)計算該點與鄰域內(nèi)各點的距離取平均值,即:
(1)
4)判斷式(1)中平均值Dmid(pi)是否超過閾值Dα,若超過,則Dmid(pi)>Dα,則判定該點為噪點,進行去除;
5)重復(fù)2)~4),直至處理完所有的噪聲點。
實驗結(jié)果表明,使用kd-tree算法進行點云去噪的效果還是不錯的,能夠把無關(guān)的點去去除,為后續(xù)的點云重建提供保證。
圖3 kd-tree去噪處理后的點云圖
2.1.3 點云圖像重建
三維模型的曲面重建是點云處理的關(guān)鍵步驟,也是三維重建技術(shù)中的難點和重點。點云重建的方法有貪婪三角形算法、泊松重建、移動立方體等多種算法[10]。本課題中提出用貪婪三角形算法對點云數(shù)據(jù)進行重建。點云重建過程中,首先獲取點云圖像,讀取點云文件,然后計算點云法向量,使法向量與點云坐標進行融合,最后通過貪婪投影三角化算法進行點云重建,得到重構(gòu)圖像。
貪婪投影三角化算法原理是處理一系列可以使網(wǎng)格“生長擴大”的點(邊緣點),延伸這些點直到所有符合幾何正確性和拓撲正確性的點都被連上,該算法的優(yōu)點是可以處理來自一個或者多個掃描儀掃描得到并且有多個連接處的散亂點云[11]。但該算法也有一定的局限性,它更適用于采樣點云來自于表面連續(xù)光滑的曲面并且點云密度變化比較均勻的情況。
貪婪投影三角化算法是對有向點云進行三角化[12],具體方法是:
1)投影點云到某局部二維坐標平面中;
2)平面三角化在坐標平面中進行;
3)根據(jù)平面內(nèi)三點形成拓撲關(guān)系,得到一個三角網(wǎng)格曲面模型。
該算法進行三角化是局部進行的,沿著一個點的法線,在局部二維平面內(nèi)投影該點,并且連接其他的點,然后再進行下一個點的投影。需要設(shè)置的函數(shù)有:SetMaximumNearestNeighbor和SetMu,SetSearchRadius,SetMinimumAngle和SetMaximumAngle,SetMaximumSurfaceAngle和SetNormalConsistency函數(shù),調(diào)節(jié)搜索鄰域大小,設(shè)置三角化后每個三角形的最大可能邊長以及最大角和最小角,處理邊緣或尖銳以及兩邊非常靠近的問題。
通過貪婪投影三角化算法可以得到如圖4所示的點云重構(gòu)圖像。結(jié)果顯示,貪婪投影三角化算法可以較好的完成點云重構(gòu),獲得鞋楦模型。
圖4 用貪婪三角形法進行點云圖像重構(gòu)
2.1.4 進行圖像測量,獲得足部數(shù)據(jù)特征
Meshlab是一種開源,可擴展和便攜的處理和三維非結(jié)構(gòu)三角網(wǎng)格處理系統(tǒng)??蛇M行對點云圖像的測量,填充,重建等工作。根據(jù)人體足部測量示意圖1,使用Meshlab中measuring tool對圖像進行測量,測量圖如圖5所示,得到掃描的足部信息數(shù)據(jù),如表1所示。
圖5 數(shù)據(jù)測量圖
腳長第1跖趾關(guān)節(jié)高度前跗骨高度后跟突點高度外踝骨高度舟上彎點高度260.30337.15261.15142.82787.03782.797
三維建模軟件有MAYA,3dsmax,U4D,UG等多種軟件,而MAYA作為一種強大的三維建模軟件,應(yīng)用在動畫,影視,醫(yī)學(xué)等各個領(lǐng)域的建模。MAYA軟件建模方法有NURBS曲面建模、多邊形建模及細分建模三大類。NURBS(非統(tǒng)一有理B樣條曲線)建模方法是建模中常用的方式之一,它能快速地搭建想要的模型,通過較少的點控制平滑的曲線或曲面,NURBS對象是有嚴格UV走向的參數(shù)化曲面,除了剪切邊,NURBS只能出現(xiàn)四邊面的對象,但建模精度不高。多邊形建模通過控制三維空間中的點、線、面對物體進行建模,在構(gòu)建模型過程中,可直觀的對物體進行修改,對象是三維空間中一系列構(gòu)成拓撲結(jié)構(gòu)的離散點,精度高,編輯更容易,適用于各個行業(yè)。細分建模介于NURBS建模和多邊形建模之間,結(jié)合兩者的優(yōu)勢,適用于靜貞以及細致的模型。根據(jù)鞋的樣式以及細節(jié),采用多邊形建模與細分建模相結(jié)合的方式進行鞋的建模,依據(jù)圖5的測量數(shù)據(jù),在MAYA軟件中建模適合顧客足部的鞋子,實現(xiàn)個性化制鞋。
圖6 根據(jù)測量數(shù)據(jù)建模的鞋子
Unity引擎是一種跨平臺的游戲開發(fā)及虛擬現(xiàn)實引擎,支持多平臺開發(fā),節(jié)省開發(fā)時間和精力,支持C#和JavaScript兩種腳本語言,支持幾乎所有的文件格式,并具備多通道Shader渲染,方便快速地進行渲染。Unity的UGUI界面開發(fā),也可直觀快捷的進行人機交互界面設(shè)計和開發(fā),具有強大的可視化編輯器,提高開發(fā)效率,滿足各種制作需求。
圖7 三維定制鞋界面
基于Unity引擎的多種優(yōu)勢,三維定制鞋系統(tǒng)基于Unity游戲引擎開發(fā),首先將MAYA建模鞋的三維模型轉(zhuǎn)換為FBX文件,將該文件導(dǎo)入Unity引擎中,然后通過shader渲染和UGUI界面設(shè)計,實現(xiàn)三維旋轉(zhuǎn)展示、渲染、各部位顏色實時更換以及人機交互,完成定制鞋系統(tǒng),最后將定制鞋系統(tǒng)發(fā)布至客戶端、互聯(lián)網(wǎng)等多種平臺。
描述鞋子的指標有鞋型、鞋面、鞋帶、鞋舌、鞋幫、鞋里、鞋底等,每種指標需要不同的表示。使用UGUI進行交互界面設(shè)計時,需考慮各個指標,在人機交互界面上顯示,實現(xiàn)用戶個性化定制及選擇。
隨著計算機技術(shù)和VR的不斷發(fā)展,今后的軟件開發(fā)會更加的人性化,利用虛擬現(xiàn)實環(huán)境為用戶提供更加方便快捷地應(yīng)用條件。本系統(tǒng)以當今人個性化需求的心理以及制鞋業(yè)的發(fā)展,研究分析雙足,提出運用Kinect完成對雙足點云數(shù)據(jù)的獲取,對獲取的點云數(shù)據(jù)進行預(yù)處理和重建。然后,使用kd-tree算法進行點云預(yù)處理,采用貪婪三角投影化算法進行點云重建,獲得雙足的規(guī)則點云圖像,在Meshlab中對圖像進行數(shù)據(jù)測量,獲得顧客足部數(shù)據(jù),最終根據(jù)數(shù)據(jù)完成鞋的建模。通過Unity3D引擎,完成定制鞋系統(tǒng)的界面設(shè)計、渲染以及實現(xiàn)人機交互。該系統(tǒng)的提出和實現(xiàn),為制鞋業(yè)的發(fā)展提供了有力的支撐,同時,人的個性化需求心理得以實現(xiàn),促進了制鞋業(yè)的進步。
目前研究中還存在一些問題,如建模鞋子的多樣性,Kinect獲取點云的精確性等問題還需要加強考慮。增加多種模型支持系統(tǒng)的構(gòu)建,發(fā)布系統(tǒng)到各個平臺是未來研究中需要做的工作。
參考文獻:
[1] 任懷藝,王伯雄,羅秀芝.鞋楦定制CAD中NURBS特征曲線的弧長約束變形[J].清華大學(xué)學(xué)報(自然科學(xué)版),2014,54(2):217-222.
[2]Jackson B,Keefe D F.Lift-Off:using reference imagery and freehand sketching to create 3D models in VR[J].IEEE Transactions on Visualization and Computer Graphics,2016,22(4):1442-1451.
[3]任懷藝,王伯雄,劉 輝,等.鞋楦定制中非均勻有理B樣條特征曲線的自適應(yīng)變形[J].光學(xué)精密工程,2013,21(1):181-188.
[4] Langley B, Cranp M,Morrison Stewart C.Selected static foot assessments do not predict medial longitudinal arch motion during running[J].Journal of Foot and Ankle Reasearch,2015,8(1):1-6.
[5]盧致文,蔣高明,叢紅蓮,等.基于人體足部特征的鞋面樣板設(shè)計及編制成形方法[J].紡織學(xué)報,2015,36(4):65-70.
[6]Neto L B,et al. A Kinect-Based wearable face recognition System to Aid Visually Impatred Users[J].IEEE Transactions on Human-Machine Systems,2017,47(1):52-64.
[7] 王 勇,唐 靖,饒勤菲,等.一種新的散亂點云快速去噪算法[J].計算機應(yīng)用與軟件,2015,32(7):74-78.
[8] Bai X X,DongX S, Su Y Q.Edge propagation KD-Trees:computing approximate nearest neighbor fields[J].IEEE Signal Processing Letters,2015,22(12):2209-2213.
[9] 丁 帆.點云數(shù)據(jù)三維網(wǎng)格構(gòu)造方法研究[D].武漢:華中科技大學(xué),2007.
[10] 龔 珍,胡友健,董 恒,等.無序三維點云重建技術(shù)研究[J].測繪通報,2016,(9):17-19
[11] 張 霞,趙吉賓,劉偉軍.散亂點云的三角網(wǎng)格曲面重建算法[J].機械設(shè)計與制造,2011,13(12):31-33.
[12] 徐立洲.基于Kinect的三維重建技術(shù)研究[D].南京:東南大學(xué),2016.