章 洋,黃常標※,左遠征
(1.華僑大學福建省特種能場制造重點實驗室,福建廈門 361021;2.華僑大學廈門市數字化視覺測量重點實驗室,福建廈門 361021)
研究證明,足部健康狀況與鞋的穿著情況密切相關[1],而長期穿著不合人腳生理情況的鞋,既會產生不舒服感又會嚴重影響人腳骨骼的發育和成形;對于有足部疾病的人,穿著不合適的鞋甚至會惡化其癥狀。因此針對不同個體的個性化定制鞋底研究十分具有必要性。傳統的個性化定制方式主要有純手工定制和基于CAD/CAM軟件輔助定制等方式,這些方式費用昂貴,效率低下。而數字化設計技術的發展使得各種個性化定制的成本大大降低,并使其制作效率極大提高。在現代社會的主觀需求和客觀因素的雙重作用下,針對個性化定制鞋底的研究具有十分重要意義。
個性化定制鞋底主要包括兩大流程:(1)利用3D掃描技術得到個人的腳部模型,再提取腳部模型特征數據驅動標準鞋楦變形獲得個性化鞋楦模型;(2)基于個性化鞋楦模型驅動現有款式的鞋底模型變形獲得個性化定制鞋底模型。目前針對鞋底模型變形的研究較少,絕大多數的模型變形研究主要圍繞模型變形的通用性進行研究,針對鞋底模型個性化定制變形可以分為3 個流程,分別是特征提取、模型匹配和模型變形。在經過特征提取、模型匹配后,鞋楦模型和鞋底模型在空間上滿足一定的位姿約束,使之符合現實情況的匹配要求,隨后在此基礎之上,根據鞋楦模型的相關特征對鞋底模型進行變形,從而達到鞋底個性化定制變形的目的。本文主要圍繞鞋底模型變形部分開展相關研究,在完成特征提取和模型匹配的基礎之上,將徑向基函數插值應用于鞋底模型變形,并通過變形策略優化徑向基函數插值穩定性問題,有效實現了鞋底模型的個性化定制變形。
網格模型的變形一直是研究熱點,并且有了較為成熟的研究成果,常見的變形技術有空間變形技術、骨架驅動變形技術、多分辨率變形技術以及曲面變形技術等。
空間變形技術的基本原理是將模型嵌入幾何空間之中,然后通過變形函數控制幾何空間的頂點移動,間接帶動幾何空間中的模型頂點發生移動,從而實現模型的變形[2-3]。空間變形技術具有操作簡便,靈活性強等優點,然而局部區域的變形精度難以控制,變形較大的場合容易導致幾何細節丟失。
骨架驅動變形技術的基本原理就是為網格模型建立一個骨架,并按照一定權重設計把骨架與模型頂點關聯起來,通過調整骨架位置的方式實現模型變形[4-5]。骨架驅動變形技術簡單直觀,能夠模擬具有骨骼結構的生物動作,但是不適合難以建立骨骼結構的模型,同時對構建骨架時的權重設置敏感性較強。
多分辨率變形技術的基本原理是將模型分為高頻和低頻兩部分,高頻部分保存復雜的幾何細節,低頻部分保存簡單的全局特征,變形時針對低頻部分進行變形,保持高頻部分不變[6-7]。多分辨變形技術能夠較好地保留局部細節,但是處理幾何細節較多的復雜模型時,分解與重構的工作量巨大,難以承受。
曲面變形技術的基本原理是從網格模型中選擇一部分區域作為控制區域,選擇一部分區域作為變形區域,當控制區域發生變形時,根據相應的優化目標函數對變形區域的變形情況進行推導,從而得出變形區域的形變量[8-10]。曲面變形技術的操作更加簡單直觀,可以直接對網格模型進行變形操作,變形精度更高,其次可以通過約束來保持局部的幾何細節。但是曲面變形技術的缺點是它們在計算代價和數值穩定性上與網格的復雜度密切相關。
因為空間變形技術變形精度難以控制,鞋底模型不適合添加骨架,多分辨變形技術計算量大,因此本文采用了基于徑向基函數(Radial Basis Function)插值的變形方法來進行鞋底模型變形,該方法原理與曲面變形技術相似,都是直接對模型進行變形操作,變形精度較高,同時徑向基函數插值形式簡單,相對于引入各種約束的曲面變形技術更加簡潔,計算效率更高。Hardy[11]最早提出了Multiquadric函數,并將其應用于地貌形狀與飛機外形設計的曲面擬合問題,標志著徑向基函數插值應用的開端。現在,徑向基函數插值已經大量的應用于醫學圖像的彈性配準,曲面重建,人臉變形,地質學等方面的研究[12-14]。因此,本文提出了一種基于徑向基函數插值的鞋底模型變形方法,該方法將徑向基函數插值應用于鞋底模型變形之中,先根據鞋楦模型相關特征對鞋底模型部分區域進行變形,然后使用徑向基函數插值擬合鞋底變形曲面,從而實現了鞋底網格模型變形。同時,由于徑向基函數作用半徑難以確定,導致徑向基函數穩定性難以保證,針對徑向基函數這一特點以及鞋底模型變形特點,本文從變形策略的角度出發,通過采用合適的變形策略,解決徑向基函數插值變形方法穩定性不足問題。
本文的鞋楦與鞋底模型為STL 模型,同時采用了半邊數據結構來構建三角網格模型的拓撲信息。
本文所研究的鞋底模型變形是在鞋楦和鞋底模型特征提取、模型匹配的基礎上開展的。因此,鞋楦和鞋底模型的相關特征已經提前提取,鞋楦和鞋底模型的初始位姿狀態也已經提前確定。
在特征提取部分,根據鞋底模型變形算法的要求,針對鞋楦模型,已經提取了鞋楦腳線、鞋楦底面中軸線,如圖1所示;針對鞋底模型,提取了鞋底內仁線、鞋底模口線和鞋底內部中軸線等特征,以鞋底模口線為分界線可以將鞋底模型劃分為內部區域和外部區域,如圖2所示。
圖1 鞋楦模型
圖2 鞋底模型
在模型匹配部分,已經根據相關約束完成了鞋楦模型與鞋底模型的位姿調整,使其符合現實情況下鞋楦和鞋底模型的位姿關系,并且將鞋楦模型和鞋底模型的長、寬、高方向與世界坐標對齊,使之有了具體的參考方向。鞋楦模型和鞋底模型的具體位姿關系如圖3所示。
圖3 鞋楦與鞋底的位姿關系
本文采用徑向基函數插值的方法來進行鞋底變形,但是,徑向基函數插值方法的穩定性將嚴重影響變形的精度,因此,本文根據徑向基函數的特點以及鞋底模型變形的特點,從變形策略的角度出發,通過采用合適的變形策略,解決了徑向基函數插值在鞋底模型變形中所暴露的問題。
直接將徑向基函數插值應用于三維空間中,穩定性難以保證,但是將三維模型在二維空間進行變形,則可以保證另外一個維度的穩定性,因此,本文將鞋底模型的變形拆分為4 個步驟,預先統一設定鞋楦與鞋底內部區域的間隙距離為t,依次變形如下:(1)水平維度的鞋底模型變形;(2)豎直維度的鞋底模型變形;(3)鞋底模型內部區域的變形;(4)鞋底模型外部區域適應性變形。其中,在進行鞋底模型變形前,鞋楦模型和鞋底模型位姿已經匹配,鞋楦模型和鞋底模型的寬度、長度和高度方向已經統一,且與世界坐標O-XYZ方向已經對齊,X對應寬度方向,Y對應長度方向,Z對應高度方向,因此,本文變形步驟中的水平維度為XOY平面,豎直維度為YOZ平面,鞋楦模型底面中軸線和鞋底模型內部區域底面中軸線都在YOZ平面內。
徑向基函數是一種以樣本到數據中心之間的徑向距離為參數的標量函數。基于徑向基函數插值變形原理是根據控制點之間的幾何關系擬合曲面,隨后以變形點與控制點的幾何距離為驅動,代入擬合曲面之中,反求變形點位移量[15,16]。其基本步驟如下:
(1)選擇合適變形區域,選取特征點作為控制點,選取其余點作為變形點;
(2)根據模型變形的要求,計算出控制點的位移量;
(3)選擇合適的徑向基函數作為計算函數;
(4)計算控制點之間的徑向基函數值,根據徑向基函數值與控制點的位移量,建立空間節點位移的徑向基函數插值模型,并求解坐標分量權重系數;
(5)計算控制點與變形點之間的徑向基函數值,根據徑向基函數值和上面求取的坐標分量權重系數反求變形點的位移量;
(6)原變形點加上各自對應的位移量,即可得到變形后的模型。
3.2.1 級放處理
由于鞋楦模型源自用戶腳部數據,而鞋底模型源自企業模型庫,兩者尺寸大小往往存在一定的誤差,需要根據鞋楦模型長度與寬度尺寸對鞋底的尺碼進行校正,進而減少后續變形操作的變形量,提高精確度。
進行級放處理時盡量保持鞋底模型紋理形狀等局部特征和位姿關系不變,因此,將鞋楦模型底面中軸線和鞋底模型內部中軸線投影在水平面,將兩條投影線的首尾余量作為間隙余量,根據間隙余量確定縮放中心和縮放比例,計算方法如下。
(1)在水平面上,點a為鞋底中軸線頭部端點、點b為鞋楦中軸線頭部端點、點c為鞋楦中軸線尾部端點、點d為鞋底中軸線尾部端點。設點o為水平面上的縮放中心點,設l1=a-o、l2=d-o、l3=b-o、l4=c-o、則滿足條件:l1/l3=l2/l4,從而計算出水平面上的縮放中心點o。如圖4所示。
圖4 級放處理
(2)將水平面上的縮放中心點o沿鞋底模型高度方向z投影回鞋底內部區域底面,即可得到三維空間中的縮放中心點p,縮放比例為||l1||/||l3||。
3.2.2 鞋底模型水平維度的變形
該過程以鞋楦模型腳線作為驅動,驅動鞋底模型內仁線和模口線變形,從而帶動整個鞋底模型發生變形,使鞋底模型適應鞋楦腳線水平輪廓特征。具體變形流程如下。
(1)將已提取的鞋楦模型腳線、鞋底模型內仁線與鞋底模型模口線投影到長度方向Y和寬度方向X所組成的水平面上得到三者的水平投影線,如圖5所示。
圖5 鞋底模型水平維度的變形
(2)為提高后續徑向基函數插值的穩定性,對鞋楦腳線的水平投影線上的點進行均勻采樣,經過采樣篩選后的頂點之間的歐氏距離大小相近,分布更加均勻。
(3)設采樣后鞋楦腳線的水平投影線上的點為a,利用PCA 算法可以計算點a的法線方向N并單位化,但是無法確定方向的正負,因此設o為鞋楦腳線點的數據中心點,設向量l1=a-o,若N·l1≥0,則N為正方向,反之則為反方向,需要進行反向處理,如圖5 中N為正方向,不需要反向處理。
(4)由點a計算出鞋底模型內仁線和模口線的控制點和形變量(形變量為向量),具體為:延長鞋楦腳線點a的法線方向N,分別交鞋底模型內仁線和模口線的水平投影線于b和c,如圖5 中A、B兩種情況,A情況時鞋楦與鞋底發生干涉,B情況時鞋楦與鞋底存在間隙。將b作為鞋底模型內仁線的控制點,c作為鞋底模型模口線的控制點,設向量l2=b-a,根據間隙距離值t,計算控制點b的形變量Vb=N×t-l2,為保證鞋底模型內部側壁特征不變,控制點c的形變量保持和控制點b一樣的形變量,則控制點c的形變量Vc=Vb。
(5)重復計算出所有的控制點及其形變量,將鞋底模型的所有頂點作為變形點,根據均化處理時設置的間隔距離,設置合適的徑向基函數作用半徑,本文采用的徑向基函數為Wendland’sC2函數,采用徑向基函數插值計算出變形點水平維度的位移量,鞋底模型頂點加上各自對應的位移量,完成水平維度的鞋底模型變形。
3.2.3 鞋底模型外部區域豎直維度的變形
豎直維度的變形為鞋底模型外部區域的變形。以鞋楦底面中軸線點作為驅動,驅動鞋底外部底面區域的中軸線變形,從而帶動整個鞋底模型外部區域發生變形,使鞋底模型外觀適應鞋楦中軸線特征。具體流程如下。
(1)用平面YOZ切割鞋楦和鞋底模型,得到鞋楦和鞋底在豎直方向上輪廓線,如圖6 所示,圖中紅色線段為鞋楦模型底面中軸線,藍色線段為鞋底模型內部底面中軸線,綠色線段為鞋底模型外部底面輪廓線。
圖6 鞋底模型豎直維度的變形
(2)由于鞋楦模型底面和鞋底模型內部底面在Z方向間隙太大,為避免下一步鞋底內部區域的變形中,對鞋底內部區域結構造成過大的破壞,需要將鞋楦模型沿Z方向移動d。設鞋楦底面中軸線頭部端點為p、鞋底內部底面區域中軸線頭部端點為q、向量l1=p-o、向量l2=p-o,則移動距離d=l1·Z-l2·Z,若d>0,則沿Z方向移動,若d<0,則沿Z反向移動,如圖6(b)所示。
(3)為提高后續徑向基函數插值的穩定性,對鞋楦底面中軸線點進行均勻采樣。
(4)設均勻采樣后鞋楦底面中軸線上的點為a,過點a做平行Z方向的直線與鞋底交于b、c兩點,將點c作為控制點。為保證鞋底厚度盡量不做改變,即控制b、c兩點之間距離不變,設向量l3=b-a,向量Vz為Z方向的單位向量,根據間隙距離t,計算出控制點c的形變量Vc
=Vz×t-l3。
(5)重復計算出所有的控制點及其形變量;將鞋底模型外部區域的所有頂點作為變形點,設置合適的徑向基函數作用半徑,采用徑向基函數插值計算出變形點豎直維度的位移量,鞋底模型外部區域的頂點加上各自對應的位移量,完成豎直維度的鞋底模型外部區域變形。
3.2.4 鞋底模型內部區域的變形
完成鞋底模型外部區域變形后,以鞋楦模型頂點為驅動,驅動鞋底模型內部區域發生變形,使得鞋底模型內部區域符合鞋楦模型的曲面特征約束,具體流程如下。
(1)計算鞋楦模型所有頂點的單位法矢N,篩選有效驅動頂點。對于任一鞋楦頂點,沿其頂點法矢方向N的射線與鞋底模型內部區域有交點,則為有效驅動頂點,如圖7 所示,黑色線為鞋楦模型,藍色線為鞋底內部區域,點a為無效驅動頂點,點b為有效驅動頂點。為提高求交計算效率,對鞋底模型內部區域建立八叉樹數據結構,加速有效驅動頂點的篩選。
圖7 鞋底模型內部區域的變形
(2)為提高后續徑向基函數插值穩定性,對有效驅動頂點進行均勻采樣。
(3)計算采樣頂點b沿其單位法矢方向N的射線與鞋底模型內部區域的交點c,將c作為控制點,設向量l1=c-b,根據間隙距離t,計算控制點c的形變量Vc=N×t-l1。
(4)重復計算出所有的控制點和形變量,將鞋底模型內部區域的所有頂點作為變形點,設置合適的徑向基函數作用半徑,采用徑向基函數插值計算出變形點的位移量,鞋底模型內部區域的頂點加上各自對應的位移量,完成鞋底模型內部區域變形。
3.2.5 鞋底模型外部側壁區域適應性變形
上一步中鞋底內部區域發生了變形,因此鞋底外部側壁區域需要根據內部區域變形情況進行適應性變形。該過程以鞋底模口線為驅動,驅動鞋底外部區域側壁部分發生變形。為保證鞋底側壁高度不變,只在水平維度上進行適應性變形。具體流程如下。
(1)為了提高后續徑向基函數插值的穩定性,對鞋底模型模口線上的點進行均勻采樣。
(2)設鞋底內部變形前的鞋底模型模口線上的頂點為a,將a作為控制點,設變形后的鞋底模型模口線上的頂點為b,設向量l1=b-a,向量Vz為Z方向的單位向量,同時,因為只在水平維度上進行變形,如圖8 所示,則控制點a的形變量Va=l1-Vz×(l1·Vz)。
圖8 鞋底模型外部區域適應性變形
(3)重復計算出所有的控制點和形變量,將鞋底模型外部側壁區域的頂點作為變形點,設置合適的徑向基函數作用半徑,采用徑向基函數插值計算出變形點水平維度的位移量,鞋底模型外部區域的頂點加上各自對應的位移量,完成鞋底模型外部區域適應性變形。
完成所有變形步驟后,無論是鞋底模型的內部區域還是鞋底模型的外部區域都將適應鞋楦模型的特征。
為驗證本文算法的有效性,在Windows 平臺VC++2017 環 境 下,Intel?Core(TM)i7-9700 3.00 GHz CPU,16GB內存PC機上實現本文算法,實驗效果如下所示。
對比圖9 和圖10 可知,級放處理后鞋楦模型與鞋底模型尺碼關系更加準確,同時鞋楦模型與鞋底模型的位姿關系依舊保持良好,但圖10 顯示,鞋底模型與鞋楦模型有著較大的差距。
圖9 級放處理前的模型
圖10 級放處理后的模型
經測試,均化處理時的間隔距離設置為5 mm時,徑向基函數的作用半徑設置為100~150 mm,變形效果和穩定性較好。對比圖11和圖12,在個性化變形后的鞋底模型的外部區域特征更加適應鞋楦模型的形體特征,鞋底模型的整體形狀外觀更符合個性化定制的要求。并且該個性化變形效果良好,鞋底模型不會出現拉伸、撕裂和扭曲等錯誤現象,同時在符合變形要求的基礎之上,盡可能保持了鞋底模型的紋理特征。
圖11 個性化變形前的模型
圖12 個性化變形后的模型
為驗證鞋底模型內部區域能否適應鞋楦模型的特征,對個性化變形后的鞋楦模型和鞋底模型進行切片,如圖13和圖14。圖13中依次為變形后鞋楦模型和鞋底模型在x=-20 mm、x=0 mm、x=20 mm 三個截面上的切片輪廓;圖14中依次為變形后鞋楦模型和鞋底模型在y=60 mm、y=120 mm、y=180 mm 三個截面上的切片輪廓。圖13~14顯示個性化變形后的鞋楦模型和鞋底模型的切片輪廓在兩者接近處的法向間距較為均勻,說明個性化變形后的鞋底模型內部區域更加適應鞋楦模型的曲面特征,達到個性化定制的適應腳部特征的要求。
圖13X方向切片輪廓
圖14Y方向切片輪廓
為進一步驗證算法的健壯性,在同樣實驗環境下做了第二個鞋底模型的個性化定制變形實驗,實驗效果如圖15~18 所示。對比圖15 與圖16,顯示變形后第二個鞋底模型的形體特征也能夠很好地匹配鞋楦模型的特征。
圖15 個性化變形前的模型
圖16 個性化變形后的模型
圖17 中依次為變形后鞋楦模型與鞋底模型在x=-20 mm、x=0 mm、x=20 mm 三個截面上的切片輪廓;圖18 依次為變形后鞋楦模型和鞋底模型在y=-70 mm、y=-20 mm、y=30 mm 三個截面上的切片輪廓。圖17~18顯示個性化變形后的第二個鞋底模型的內部區域也更加適應鞋楦模型的曲面特征。
圖17X方向切片輪廓
圖18Y方向切片輪廓
為進一步驗證鞋楦模型與鞋底模型內部區域的法線方向的間隙余量是否達到變形后的設計要求,在圖12所示鞋底模型變形后,對鞋楦模型頂點進行隨機采樣,計算采樣點沿其法線方向到鞋底模型內部區域的間隙余量,將其作為評價變形效果的指標。如圖19 所示,黃色線段為變形前的間隙余量,差異較大,說明鞋底模型內部區域不符合鞋楦模型曲面特征約束。而藍色、綠色和橙色線段分別為預設的間隙距離值t=2.0 mm、t=3.5 mm 和t=5.0 mm 時變形后的實際間隙余量,可以發現變形后的間隙余量與預先設定的間隙距離值的差值誤差在±1 mm 之內,表明變形后的鞋底模型內部區域比較貼合鞋楦模型的曲面特征,且藍色、綠色和橙色線段的波動性不大,反映變形也較為穩定,因此本文鞋楦特征驅動的鞋底模型個性化定制變形方法能夠根據鞋楦模型的特征有效地實現鞋底模型的個性化定制變形,變形效果較為良好。
圖19 隨機采樣點的法線方向間隙余量
本文提出了一種基于徑向基函數插值的鞋底模型變形方法。由于徑向基函數作用半徑難以確定,導致徑向基函數穩定性難以保證,針對徑向基函數這一特點以及鞋底模型變形特點,本文從變形策略的角度出發,通過采用合適的變形策略,解決徑向基函數插值方法在鞋底模型變形中所暴露的問題。本文為實現鞋楦模型特征數據驅動的鞋底模型復雜變形,在鞋底模型級放后將鞋底模型變形過程分為4個步驟,即鞋底模型水平維度變形、鞋底模型外部區域的豎直維度變形、鞋底模型內部變形、鞋底模型外部側壁部分的變形;每次變形中,選擇合適的控制點及變形量后,利用徑向基函數插值方法進行變形。算法實例表明本文的變形策略能夠有效實現較為精確的鞋底變形控制,使得鞋底模型適應個性化鞋楦特征。
目前針對鞋底模型個性化定制變形的研究較少,但是鞋底個性化定制對于人體健康和提高企業競爭力具有重要意義。本文提出的鞋底模型個性化定制變形方法具有較好的可行性和有效性,但與實際的鞋底模型設計過程中采用特征參數不一樣,因此穿著舒適性有待進一步驗證。