武力,周偉,關(guān)天民
(大連交通大學(xué) 機械工程學(xué)院 ,遼寧 大連 116028)*
國內(nèi)外青少年脊柱側(cè)彎發(fā)病率為1.06%~13.6%.目前普遍采用手工方法制造矯形支具,利用石膏完成陽模取型、陰模修型和矯形器成型,制作經(jīng)驗要求高,生產(chǎn)周期長,石膏材料消耗嚴重,甚至?xí)虿僮鞑划斣斐蓪颊叩亩蝹1].隨著計算機輔助設(shè)計技術(shù)在康復(fù)醫(yī)療領(lǐng)域的應(yīng)用,矯形器的設(shè)計方法也在不斷改善.Julien等利用人體的脊柱、盆骨、胸腔和腹腔部位進行矯形器曲面的設(shè)計,但是未考慮人體皮膚和軟組織對矯形壓力的承受能力[2];劉建輝等實現(xiàn)了依據(jù)掃描數(shù)據(jù)對腿部矯形器的設(shè)計[3];Frederique等利用計算機輔助設(shè)計軟件Rodin4D實現(xiàn)了矯形器曲面設(shè)計,但仍需建造陽模模型[4];Daniel等將幾何模型分成若干層,將三維問題變成二維問題,通過對每層的變形完成矯形器曲面設(shè)計[5].
點云庫PCL(Point Cloud Library)是一個開源庫,隨著庫內(nèi)算法模塊的不斷更新與發(fā)展,應(yīng)用領(lǐng)域不斷拓寬,能夠?qū)崿F(xiàn)點云數(shù)據(jù)的濾波、分割和重建等多種處理操作[6].Janusz等使用PCL開發(fā)了機器人操作系統(tǒng)的3D制圖框架;Hsieh和Jerbi等利用PCL實現(xiàn)了點云數(shù)據(jù)對象的配準[8- 9];王增濤利用PCL建立了點云數(shù)據(jù)平臺,實現(xiàn)了濾波、拼接和曲面重建功能,驗證了PCL在點云數(shù)據(jù)處理領(lǐng)域的實用性[10];馬旋等提出的基于kinect的人體重建方法,通過定位點云數(shù)據(jù)中的特征點實現(xiàn)了參數(shù)化人體建模[11];崔微等提出的依據(jù)點云數(shù)據(jù)完成的人臉修復(fù),效果良好[12];Xiao Jun等提出了基于PCL的巖體三維重建方法,重建精度和速度良好[13].
本文提出基于點云數(shù)據(jù)的人體模型曲面設(shè)計方法并編寫設(shè)計軟件,為脊柱側(cè)凸支具自動化設(shè)計打下基礎(chǔ).
人體修形曲面設(shè)計基于人體掃描點云數(shù)據(jù),主要包括以下步驟:
(1)點云數(shù)據(jù)的濾波,包括移除點云數(shù)據(jù)的離散點和孤島,優(yōu)化點云數(shù)據(jù);
(2)點云數(shù)據(jù)的分塊分割,將點云數(shù)據(jù)分割成骨盆、腹腔和胸腔三部分,以便完成對每塊點云的數(shù)據(jù)變形;
(3)點云數(shù)據(jù)的變形與修正,利用變形原理分別在三塊點云內(nèi)找出需要變形的數(shù)據(jù)并實現(xiàn)變形操作,此步為該修形方法關(guān)鍵;
(4)點云數(shù)據(jù)的拼接,將變形后的各部分點云數(shù)據(jù)拼接成完整的點云數(shù)據(jù),為人體修形曲面創(chuàng)建做準備;
(5)曲面創(chuàng)建,建立點云數(shù)據(jù)中點與點之間的連接,生成三角網(wǎng)格,得到曲面模型.
掃描人體尾骨至肩胛骨之間的人體表面點云數(shù)據(jù).數(shù)據(jù)采集時需要在特殊部位標記熒光點,如脊柱彎曲部位、骨盆髂脊走向、胸部標志點等,以便對點云數(shù)據(jù)進行后續(xù)處理.
點云數(shù)據(jù)的濾波包括離散點、噪聲點和孤島的刪除.離散點和噪聲點的刪除使用類pcl::RadiusOutlier Removal
分割是沿額狀面進行的,因患者脊柱側(cè)彎位置的不同,具體的分割位置也不同,但一般分為三個部分:骨盆部位、腹腔部位和軀干部位.其中,軀干部分的上限在彎曲頂椎的上方1~2個椎體;軀干部位與腹腔部位的分界點在距離正中線最近的位置;腹腔部位與骨盆部位的分界點在骶椎附近位置,如圖1所示.
圖1 某脊柱側(cè)彎患者的部位分割圖
分割功能的實現(xiàn)需要使用到兩個功能類:其中類pcl::visualization::PCLVisualizer的作用是利用區(qū)域選取回調(diào)函數(shù)registerPointPickingCallback,獲取分割位置的點云臨界點坐標值;類pcl::PassThrough
2.4.1 點云數(shù)據(jù)的提取
點云數(shù)據(jù)的提取在整個變形中發(fā)揮著中樞的關(guān)鍵作用,點云數(shù)據(jù)的提取包括:提取用于設(shè)置伸展空間的點云數(shù)據(jù);提取需要施加矯形壓力的點云數(shù)據(jù).提取過程包括:利用類pcl:: visualization::PCLVisualizer的點云拾取回調(diào)函數(shù)registerPointPicking Callback獲取控制點的坐標值;利用類pcl:: ConvexHull
2.4.2 點云數(shù)據(jù)的矩陣變換
點云數(shù)據(jù)的變形是依據(jù)脊柱側(cè)彎矯形原理,即矯形常用的“三點力學(xué)”原理并配合使用轉(zhuǎn)矩的施加方法(如圖2所示),利用矩陣變換實現(xiàn)矯形壓力的施加和免壓部位間隙的調(diào)整,使矯形器的穿戴不影響人體自身的生理行為.
圖2 矯形原理圖
利用點云庫PCL中的類Eigen::Matrix4f實現(xiàn)變形功能,需要設(shè)置4×4矩陣的相應(yīng)參數(shù)實現(xiàn)平移變換或者比例變換.變形量需要結(jié)合患者的年齡、Cobb角度和骨質(zhì)等具體因素確定,其中,青少年由于在骨骼發(fā)育期,可以適當加大矯正力度.
點云數(shù)據(jù)的拼接包括每塊內(nèi)點云數(shù)據(jù)拼接和各塊間點云數(shù)據(jù)的拼接.點云拼接通過數(shù)據(jù)地址傳遞實現(xiàn).
曲面創(chuàng)建的本質(zhì)是建立相鄰點之間的聯(lián)系,利用PCL中的類pcl::GreedyProjectionTriangulation
因分割后每一部分點云處理方法大致相同,故以分割后腹腔部位點云數(shù)據(jù)為例,驗證人體模型自動化修形方法的可行性.編寫了自動化修形程序界面,如圖3所示,窗口內(nèi)數(shù)據(jù)為待處理的腹腔部位點云,點云總量為117 743個.
圖3 自動化修形案例
該軟件中的參數(shù)設(shè)置與獲取的點云數(shù)據(jù)密度等屬性有關(guān),需要在處理的過程中找尋最佳值,圖4~6中的參數(shù)設(shè)置值可作為參考.利用臨界點個數(shù)和閾值兩個參數(shù)控制去除點云數(shù)據(jù)中的孤島點云、噪點和離散點,圖4(a)為刪除離散點云數(shù)據(jù)的參數(shù)設(shè)置以及圖4(b)為離散點刪除后的點云數(shù)據(jù).利用曲面截取和點云變形兩個功能模塊提取點云數(shù)據(jù)進行變形,圖5為該過程處理使用的參數(shù)設(shè)置和圖6(a)為變形后的點云數(shù)據(jù).利用曲面重建功能模塊將變形后的點云數(shù)據(jù)創(chuàng)建成曲面,圖6(b)為曲面創(chuàng)建時的參數(shù)設(shè)置和圖6(c)為修形后創(chuàng)建的曲面.
(a)離散點去除參數(shù)設(shè)置 (b)除去離散點云后的數(shù)據(jù)
圖4離散點處理
圖5 點云數(shù)據(jù)變形參數(shù)設(shè)置
(a)變形后的點云數(shù)據(jù)(b)曲面創(chuàng)建參數(shù)設(shè)置 (c)創(chuàng)建后的曲面
圖6曲面創(chuàng)建過程
提出了人體模型自動化修形的設(shè)計方法,以人體腹腔部位點云數(shù)據(jù)為例,利用PCL中的濾波、點云數(shù)據(jù)提取、點云數(shù)據(jù)變形和曲面創(chuàng)建等算法完成了人體修形曲面設(shè)計,驗證了該修形設(shè)計方法的可行性.從三維層面直接處理和變形點云數(shù)據(jù),為脊柱側(cè)凸支具的曲面設(shè)計和制造奠定基礎(chǔ).