武力,周偉,關天民
(大連交通大學 機械工程學院 ,遼寧 大連 116028)*
國內外青少年脊柱側彎發病率為1.06%~13.6%.目前普遍采用手工方法制造矯形支具,利用石膏完成陽模取型、陰模修型和矯形器成型,制作經驗要求高,生產周期長,石膏材料消耗嚴重,甚至會因操作不當造成對患者的二次傷害[1].隨著計算機輔助設計技術在康復醫療領域的應用,矯形器的設計方法也在不斷改善.Julien等利用人體的脊柱、盆骨、胸腔和腹腔部位進行矯形器曲面的設計,但是未考慮人體皮膚和軟組織對矯形壓力的承受能力[2];劉建輝等實現了依據掃描數據對腿部矯形器的設計[3];Frederique等利用計算機輔助設計軟件Rodin4D實現了矯形器曲面設計,但仍需建造陽模模型[4];Daniel等將幾何模型分成若干層,將三維問題變成二維問題,通過對每層的變形完成矯形器曲面設計[5].
點云庫PCL(Point Cloud Library)是一個開源庫,隨著庫內算法模塊的不斷更新與發展,應用領域不斷拓寬,能夠實現點云數據的濾波、分割和重建等多種處理操作[6].Janusz等使用PCL開發了機器人操作系統的3D制圖框架;Hsieh和Jerbi等利用PCL實現了點云數據對象的配準[8- 9];王增濤利用PCL建立了點云數據平臺,實現了濾波、拼接和曲面重建功能,驗證了PCL在點云數據處理領域的實用性[10];馬旋等提出的基于kinect的人體重建方法,通過定位點云數據中的特征點實現了參數化人體建模[11];崔微等提出的依據點云數據完成的人臉修復,效果良好[12];Xiao Jun等提出了基于PCL的巖體三維重建方法,重建精度和速度良好[13].
本文提出基于點云數據的人體模型曲面設計方法并編寫設計軟件,為脊柱側凸支具自動化設計打下基礎.
人體修形曲面設計基于人體掃描點云數據,主要包括以下步驟:
(1)點云數據的濾波,包括移除點云數據的離散點和孤島,優化點云數據;
(2)點云數據的分塊分割,將點云數據分割成骨盆、腹腔和胸腔三部分,以便完成對每塊點云的數據變形;
(3)點云數據的變形與修正,利用變形原理分別在三塊點云內找出需要變形的數據并實現變形操作,此步為該修形方法關鍵;
(4)點云數據的拼接,將變形后的各部分點云數據拼接成完整的點云數據,為人體修形曲面創建做準備;
(5)曲面創建,建立點云數據中點與點之間的連接,生成三角網格,得到曲面模型.
掃描人體尾骨至肩胛骨之間的人體表面點云數據.數據采集時需要在特殊部位標記熒光點,如脊柱彎曲部位、骨盆髂脊走向、胸部標志點等,以便對點云數據進行后續處理.
點云數據的濾波包括離散點、噪聲點和孤島的刪除.離散點和噪聲點的刪除使用類pcl::RadiusOutlier Removal
分割是沿額狀面進行的,因患者脊柱側彎位置的不同,具體的分割位置也不同,但一般分為三個部分:骨盆部位、腹腔部位和軀干部位.其中,軀干部分的上限在彎曲頂椎的上方1~2個椎體;軀干部位與腹腔部位的分界點在距離正中線最近的位置;腹腔部位與骨盆部位的分界點在骶椎附近位置,如圖1所示.

圖1 某脊柱側彎患者的部位分割圖
分割功能的實現需要使用到兩個功能類:其中類pcl::visualization::PCLVisualizer的作用是利用區域選取回調函數registerPointPickingCallback,獲取分割位置的點云臨界點坐標值;類pcl::PassThrough
2.4.1 點云數據的提取
點云數據的提取在整個變形中發揮著中樞的關鍵作用,點云數據的提取包括:提取用于設置伸展空間的點云數據;提取需要施加矯形壓力的點云數據.提取過程包括:利用類pcl:: visualization::PCLVisualizer的點云拾取回調函數registerPointPicking Callback獲取控制點的坐標值;利用類pcl:: ConvexHull
2.4.2 點云數據的矩陣變換
點云數據的變形是依據脊柱側彎矯形原理,即矯形常用的“三點力學”原理并配合使用轉矩的施加方法(如圖2所示),利用矩陣變換實現矯形壓力的施加和免壓部位間隙的調整,使矯形器的穿戴不影響人體自身的生理行為.

圖2 矯形原理圖
利用點云庫PCL中的類Eigen::Matrix4f實現變形功能,需要設置4×4矩陣的相應參數實現平移變換或者比例變換.變形量需要結合患者的年齡、Cobb角度和骨質等具體因素確定,其中,青少年由于在骨骼發育期,可以適當加大矯正力度.
點云數據的拼接包括每塊內點云數據拼接和各塊間點云數據的拼接.點云拼接通過數據地址傳遞實現.
曲面創建的本質是建立相鄰點之間的聯系,利用PCL中的類pcl::GreedyProjectionTriangulation
因分割后每一部分點云處理方法大致相同,故以分割后腹腔部位點云數據為例,驗證人體模型自動化修形方法的可行性.編寫了自動化修形程序界面,如圖3所示,窗口內數據為待處理的腹腔部位點云,點云總量為117 743個.

圖3 自動化修形案例
該軟件中的參數設置與獲取的點云數據密度等屬性有關,需要在處理的過程中找尋最佳值,圖4~6中的參數設置值可作為參考.利用臨界點個數和閾值兩個參數控制去除點云數據中的孤島點云、噪點和離散點,圖4(a)為刪除離散點云數據的參數設置以及圖4(b)為離散點刪除后的點云數據.利用曲面截取和點云變形兩個功能模塊提取點云數據進行變形,圖5為該過程處理使用的參數設置和圖6(a)為變形后的點云數據.利用曲面重建功能模塊將變形后的點云數據創建成曲面,圖6(b)為曲面創建時的參數設置和圖6(c)為修形后創建的曲面.

(a)離散點去除參數設置 (b)除去離散點云后的數據
圖4離散點處理

圖5 點云數據變形參數設置

(a)變形后的點云數據(b)曲面創建參數設置 (c)創建后的曲面
圖6曲面創建過程
提出了人體模型自動化修形的設計方法,以人體腹腔部位點云數據為例,利用PCL中的濾波、點云數據提取、點云數據變形和曲面創建等算法完成了人體修形曲面設計,驗證了該修形設計方法的可行性.從三維層面直接處理和變形點云數據,為脊柱側凸支具的曲面設計和制造奠定基礎.