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