呂超凡, 言穎杰, 林 力,3, 柴 崗, 鮑勁松
(1. 東華大學(xué) 機械工程學(xué)院,上海 201620; 2. 上海交通大學(xué)醫(yī)學(xué)院附屬第九人民醫(yī)院 整復(fù)外科,上海 200011; 3. 上海交通大學(xué) 塑性成形技術(shù)與裝備研究院,上海 200030)
下頜角截骨手術(shù)用于解決患者的下頜角肥大、左右兩側(cè)不對稱和面部上下寬度比例不協(xié)調(diào)等問題,是近年來較為熱門的顱面整形手術(shù).醫(yī)生獲取患者的下頜骨三維模型后,在考慮手術(shù)安全性的前提下,結(jié)合面部協(xié)調(diào)性和患者的美觀需求,確認下頜角截骨平面,并基于此設(shè)計個性化截骨定位導(dǎo)板.在手術(shù)過程中,醫(yī)生在截骨定位導(dǎo)板的輔助下,沿著截骨平面切除患者的下頜骨突出肥大區(qū)域,改善患者的下頜角形態(tài),以達到美觀效果.若截骨平面定位不理想, 術(shù)中可能會發(fā)生下頜骨升支意外骨折、下牙槽神經(jīng)受損和雙側(cè)不對稱等問題[1].截骨平面的設(shè)計需要醫(yī)師有豐富的臨床經(jīng)驗,并且耗時較長,平均每個病人需要花費26 min.因此,快速準確的截骨平面自動設(shè)計對于下頜角整形手術(shù)具有重要意義.
不同患者的下頜骨形態(tài)差異較大,難以通過數(shù)學(xué)建模的方式得到特定患者的截骨平面.而深度學(xué)習方法能夠?qū)W習樣本數(shù)據(jù)的內(nèi)在規(guī)律,解決復(fù)雜的模式識別難題,因此,本文利用深度學(xué)習實現(xiàn)截骨平面的自動設(shè)計.截骨平面設(shè)計可以視為一個回歸問題,即輸入一個三維模型,輸出截骨平面參數(shù).然而該任務(wù)難以訓(xùn)練,因此本文先對輸入的三維模型進行語義分割,即從病人的下頜角三維模型中找到突出肥大區(qū)域,然后由語義分割結(jié)果得到截骨平面.目前,基于深度學(xué)習的三維模型語義分割方法可分為基于體素、基于多視圖和基于點云的方法.基于體素的方法[2-3]主要瓶頸是低分辨率體素會丟失較多信息,而高分辨率體素會導(dǎo)致計算和存儲成本急劇增加.基于多視圖的方法[4-5]主要局限是三維到二維的信息丟失問題.而基于點云的方法[6-12]能夠最大程度地保留三維模型的空間位置信息和幾何結(jié)構(gòu)信息.因此,本文采用基于點云的語義分割算法實現(xiàn)下頜角截骨平面設(shè)計.
基于點云的算法是直接在點云上進行三維處理任務(wù).文獻[6]開創(chuàng)了點云深度學(xué)習的先河,提出了利用共享多層感知機(MLP)提取逐點特征,并通過最大池化聚合全局特征,從而解決點云的無序性問題, 但是其缺乏提取局部特征的能力.為了提取潛在的幾何形狀,文獻[7]利用最遠點采樣和分組策略來提取本地特征; 文獻[8]通過邊卷積來聚合局部特征;文獻[9]對三維點云之間的幾何關(guān)系編碼方式進行研究.盡管這些方法能夠捕獲局部上下文信息,但是在不同類別點的交界處仍不能產(chǎn)生細粒度的分割,原因為這些特征聚合模塊通常采用最大池化或平均池化來聚合特征,使得區(qū)域內(nèi)的點具有語義一致性.為了提升邊界的分割性能,文獻[10-11]在聚合局部特征時引入了注意力機制,但是非本地特征的提取能力較差.
本文結(jié)合下頜骨點云語義分割任務(wù)的特點,即要求截骨區(qū)與非截骨區(qū)過渡區(qū)域的精細化分割,提出一種基于Transformer的點云語義分割網(wǎng)絡(luò).利用基于注意力機制的本地特征提取層,網(wǎng)絡(luò)能夠提取下頜骨點云中的局部精細結(jié)構(gòu),從而對截骨平面附近點云進行細粒度分割;利用基于 Transformer的非本地特征提取層,網(wǎng)絡(luò)能夠提取點云的全局上下文信息,并將逐點特征映射到一個高維的語義分割特征空間,進一步提高了下頜骨語義分割精度.試驗結(jié)果表明,與其他算法相比,本文算法能夠較好地預(yù)測下頜骨點云的截骨區(qū)域,截骨區(qū)與非截骨區(qū)的過渡區(qū)域最為平整,分割結(jié)果更好.
針對下頜角整形手術(shù),醫(yī)生在獲取顱骨電子計算機斷層掃描(CT)數(shù)據(jù)后,利用CT三維重建技術(shù)得到患者下頜骨的三維模型;其次,手工標記下頜角中的重要解剖點、線、面和下牙槽神經(jīng)位置,作為截骨手術(shù)規(guī)劃的參考;再次,在考慮手術(shù)安全性的前提下,結(jié)合面部協(xié)調(diào)性和患者的美觀需求,確認下頜角截骨位置;最后,根據(jù)患者的下頜角切除區(qū)域設(shè)計相應(yīng)的手術(shù)導(dǎo)板[13].整個流程如圖1(橙色部分)所示.
在下頜角整形手術(shù)術(shù)前規(guī)劃中,截骨平面的設(shè)計是最為關(guān)鍵且耗時的環(huán)節(jié).本文利用深度神經(jīng)網(wǎng)絡(luò)自動預(yù)測截骨平面,截骨平面的智能規(guī)劃流程如圖1(藍色部分)所示.首先,本文利用表面點采樣獲取下頜骨和下牙槽神經(jīng)的點云數(shù)據(jù);然后,利用點云語義分割網(wǎng)絡(luò)預(yù)測下頜骨點云中的截骨區(qū)域,并計算截骨平面;最后,以下牙槽神經(jīng)點云作為參考,對截骨平面進行調(diào)整,以確保截骨平面不會切到神經(jīng),從而保證手術(shù)的安全性.
圖1 下頜角截骨術(shù)前規(guī)劃的總體流程Fig.1 Overall process of preoperative planning for mandibular angle osteotomy
圖2 下頜骨點云語義分割網(wǎng)絡(luò)Fig.2 Semantic segmentation network for mandibular point clouds
在獲取患者下頜骨和下牙槽神經(jīng)的三維模型后,首先利用表面點采樣將其轉(zhuǎn)換為固定點數(shù)的點云數(shù)據(jù),然后對下頜骨點云進行歸一化處理:將點云重心平移至坐標原點,并對其進行縮放,使點云中x、y和z方向上的最值在[-1,1]之間.點云分割網(wǎng)絡(luò)的輸入為歸一化后的下頜骨點云,在得到預(yù)測結(jié)果后將點云縮放至原比例,用于后續(xù)截骨平面的調(diào)整.
1.2.1網(wǎng)絡(luò)結(jié)構(gòu) 下頜骨點云語義分割算法的總體框架如圖2所示.該網(wǎng)絡(luò)旨在將輸入點云(點的數(shù)量為N)轉(zhuǎn)換為新的高維特征向量,以獲取語義豐富、互相關(guān)聯(lián)的逐點特征,并基于此進行點云語義分割任務(wù).首先,通過局部特征提取模塊對各個點的局部幾何結(jié)構(gòu)信息進行編碼;其次,將這些特征輸入到Transformer層中,學(xué)習不同點特征之間的依賴關(guān)系,豐富點特征的語義信息,并通過共享MLP將點特征轉(zhuǎn)換為1 024維;再次,將最大池化與平均池化分別應(yīng)用于逐點特征,并將兩個池化操作的輸出結(jié)果連接在一起,以得到一個有效表示輸入點云的全局特征;最后,對全局特征進行復(fù)制后,將其與逐點特征連接,并通過共享MLP(512,256, 3)(數(shù)值表示各層神經(jīng)元個數(shù))和Softmax激活函數(shù)得到各個點的預(yù)測類別.
1.2.2局部特征提取模塊 給定點云P={Pi|i=1, 2, …,N},各個點Pi的屬性為其三維坐標pi∈R1×3(文中R的上標為矢量和張量的維度),也可以包含一些額外屬性(例如顏色和法向量,本文試驗中只輸入點的坐標),記為qi∈R1×d.
局部特征提取模塊作用于點云P中的每個點如圖3所示,該模塊將逐點特征升維至de.對于點Pi,首先通過K最近鄰(KNN)算法獲取該點的鄰域A(i)=Pj,j=1, 2, …,k;然后對點Pi及其鄰近點進行空間關(guān)系編碼.文獻[9]的研究表明,將中心點與鄰近點的關(guān)系編碼為如下形式,其對于分類和分割等任務(wù)的效果最好.
ei,j=concat(pi,pj,pi-pj,di,j)
(1)
式中:pj為點的坐標;di,j為點Pi和點Pj的歐氏距離;concat為向量的連接.
編碼鄰域的空間關(guān)系后得到十維的向量ei,j,將其與點Pj的額外信息qj連接,然后通過映射函數(shù)ρ對其進行特征提取,最后聚集該鄰域的特征,得到指定維度的特征向量.局部特征提取函數(shù)表示為
Fi=R{fi,1,fi,2, …,fi,k}=
R{ρ(concat(ei,j,qj)) |Pj∈A(i)}
(2)
式中:Fi∈R1×de為聚合后的局部特征;ρ由共享MLP、批標準化和ReLU激活函數(shù)組成;R{·}為特征的聚合函數(shù),用于匯總鄰近點的特征;fi,k∈R1×de為邊特征.
圖3 局部特征提取模塊Fig.3 Module of local feature aggregation
以往研究多用最大池化[7]或平均池化[14]聚合相鄰特征,但這樣會丟失許多信息.因此,有研究嘗試將注意力機制應(yīng)用于相鄰特征的聚合,自動學(xué)習鄰域中各個點對于當前點的重要程度[10-11].
邊緣點是不同類別點云之間的過渡區(qū)域.在下頜骨語義分割任務(wù)中,邊緣點預(yù)測標簽是否正確比較重要,原因為下頜骨分割面是利用邊緣點得到的.然而邊界上的特征提取通常不明確,原因為其混合了不同類別點的特征,不同類別的特征跨邊界傳播將會導(dǎo)致邊緣點的分割結(jié)果不佳.語義分割算法的本質(zhì)是利用深度神經(jīng)網(wǎng)絡(luò)將原始數(shù)據(jù)映射到一個高維的特征空間.在這個特征空間中,同類別點的特征向量應(yīng)盡可能接近,不同類別點的特征向量應(yīng)盡可能遠離.因此,可以利用注意力池化來聚合鄰域A(i) 的特征集合{fi,1,fi,2, …,fi,k}, 如圖4所示.
利用注意力池化可以學(xué)習鄰域中各個點對于中心點的注意力得分,從而減緩特征的跨區(qū)域傳播,使過渡區(qū)域的分割結(jié)果更好.注意力池化分為計算注意力得分和加權(quán)求和兩個步驟.
在點Pi的鄰域A(i)中,任意鄰近點特征fi,j的注意力權(quán)重αi,j是通過MLP學(xué)習到的逐通道注意力得分,表示為
αi,j=μ(concat(fi,j,pi-pj)),Pj∈A(i)
(3)
式中:μ由共享MLP、批標準化和激活函數(shù)組成;αi,j與fi,j的維度相同.
在獲得各個鄰近點特征的注意力權(quán)重后,通過加權(quán)求和匯總鄰近點特征為
(4)
1.2.3Transformer層 在下頜骨點云語義分割任務(wù)中,為了完成細粒度的分割,需要提取各個點的本地特征和非本地特征.本地特征能夠提供局部區(qū)域的幾何形狀信息和位置信息;非本地特征能夠提供點的全局信息,建立點云中任意點與當前點的依賴關(guān)系,使同類別的點在特征空間中盡可能接近.
Transformer具有全局信息建模能力,且對輸入數(shù)據(jù)或特征具有順序無關(guān)性,因此被廣泛應(yīng)用于自然語言處理和時序數(shù)據(jù)處理等任務(wù)[15-17].點云作為三維空間中的一組無序點集可用Transformer處理.使用局部特征提取模塊提取各個點的本地特征后,通過Transformer層提取點的非本地特征,具體如下所述.
Transformer由自注意力機制、前饋層和殘差連接組成,如圖5所示.通過局部特征提取模塊提取的點特征記為Fe∈RN×de.Transformer層的輸入為點云P中各個點的坐標和特征.
圖5 Transformer層Fig.5 Transformer layer
自注意力機制是注意力機制的一種形式,用于計算輸入數(shù)據(jù)內(nèi)部的語義關(guān)聯(lián).自注意力機制主要由查詢向量Q、鍵向量K和值向量V組成,計算方式如下:
(Q,K,V)=Fe(θq,θk,θv)
(5)
Q,K∈RN×da,V∈RN×de
式中:θq,θk和θv是共享MLP的可學(xué)習參數(shù),為提高計算效率,在試驗中設(shè)置da=de/4.
注意力機制不會保留輸入數(shù)據(jù)的位置信息,因此需要通過位置編碼使注意力層適應(yīng)輸入數(shù)據(jù)的空間位置關(guān)系.在自然語言處理和圖像領(lǐng)域中,常用的位置編碼方式為絕對位置編碼[15]和相對位置編碼[18].在三維點云的處理任務(wù)中,點的坐標本身包含空間位置信息,但是單獨一個點的坐標并不能體現(xiàn)該點在整個點云中的位置,因此本文把點云P的重心pc作為參考點,建立各個點與整個點云的相對位置關(guān)系,即
(6)
β=δ(pi-pc), ?pi∈P
(7)
式中:β為位置編碼;δ為一個R1×3→R1×da的共享MLP.經(jīng)過試驗發(fā)現(xiàn)位置編碼對于注意力得分的生成比較重要,因此本文將位置編碼β分別與矩陣Q和K相加,即
Q′=Q+β
(8)
K′=K+β
(9)
Fout=ρ(Fe-Fa)+Fe
(10)
下頜神經(jīng)管位于術(shù)區(qū)附近,神經(jīng)管內(nèi)有下牙槽神經(jīng)和伴行血管.下牙槽神經(jīng)損傷是嚴重的術(shù)后并發(fā)癥之一,若截骨過程中不慎傷及神經(jīng),將導(dǎo)致下頜、下唇部位,甚至牙齦感覺的喪失.因此,一個合格的術(shù)前設(shè)計方案,其截骨面與神經(jīng)的最近距離必須控制在安全范圍內(nèi).
利用深度學(xué)習算法預(yù)測的結(jié)果可能不符合截骨手術(shù)規(guī)劃要求,尤其是截骨方案的安全性問題.因此,利用所述算法預(yù)測截骨區(qū)域后,本文以下頜骨神經(jīng)點云為參考,判斷截骨平面是否需要進行調(diào)整.左右兩邊的計算方式相同,因此以左截骨平面為例.對于截骨區(qū)中的每個點,計算其到非截骨區(qū)的最小距離,若該距離小于安全距離閾值ds,則將該點視為截骨平面附近的點.在得到截骨平面附近的點集PB后,利用平面擬合得到截骨平面L.最后計算L到神經(jīng)管的距離dmin,若該距離大于ds,則平移L.算法的具體描述如下.
輸入:左截骨區(qū)點云Pα∈RN1×3,非截骨區(qū)點云Pε∈RN2×3,左神經(jīng)點云Pe,截骨面到神經(jīng)的安全距離閾值ds.
輸出:截骨平面L.
1.計算Pα和Pε的逐點距離,得到距離矩陣D∈RN1×N2.
2.建立空集PB=?,來保存截骨平面附近的點.
3.fori←1 toN1do
4.di=100
5. forj←1 toN2do
6. ifDi,j 7.di=Di,j 8. ifdi<0.1 then 9. 將點Pα,i加入到集合PB中. 10.對點集PB進行平面擬合,得到截骨平面L={ax+by+cz+m=0}. 11.計算點集Pe到L的最小距離dmin. 12.ifdmin 本文數(shù)據(jù)集為上海交通大學(xué)醫(yī)學(xué)院附屬第九人民醫(yī)院整復(fù)外科提供的240個病例,每個病例的數(shù)據(jù)包含術(shù)前下頜骨、左右兩側(cè)的截骨區(qū)域和下牙槽神經(jīng),其數(shù)據(jù)格式為立體光刻(STL)模型.制作帶標簽數(shù)據(jù)集的過程為:① 對輸入數(shù)據(jù)進行表面點采樣;② 對截骨區(qū)點云進行平面擬合,以獲取兩側(cè)的截骨平面;③ 利用截骨平面將術(shù)前下頜骨點云分為3個部分,并對各個區(qū)域的點賦予不同的標簽,術(shù)前下頜骨區(qū)域標記為0,左、右截骨區(qū)域分別標記為1和2;④ 對點云進行歸一化處理. 當點數(shù)較多時,訓(xùn)練時占用的顯存和訓(xùn)練時間都會急劇增加;當點數(shù)較少時,會給截骨平面的擬合帶來誤差.因此,本文將下頜骨點云的點數(shù)設(shè)為 4 096,下牙槽神經(jīng)的點數(shù)設(shè)為500,處理后的點云如圖6所示.下牙槽神經(jīng)點云是訓(xùn)練時的安全性參考指標,不作為點云語義分割網(wǎng)絡(luò)的輸入.按照比例4∶1∶1將原始數(shù)據(jù)分為訓(xùn)練集、驗證集以及測試集. 圖6 帶標簽的下頜骨點云Fig.6 Mandible point cloud with labels 本文試驗在Ubuntu16.04操作系統(tǒng)、Tesla V100顯卡(32 GB顯存)的服務(wù)器上進行.采用 Pytorch 實現(xiàn)所述框架,使用交叉熵損失函數(shù).訓(xùn)練批次設(shè)為8,迭代次數(shù)為200次,采用Adam優(yōu)化器,初始學(xué)習率為0.001,學(xué)習率衰減方式為余弦退火,權(quán)重衰減為0.000 1. 試驗中對分割網(wǎng)絡(luò)的評價指標為準確率、精確率、召回率和F1值.本文將截骨區(qū)點云作為正類,非截骨區(qū)點云作為負類,在下頜骨點云數(shù)據(jù)中,正負類樣本比例約為1∶10,因此相比于精確率,F(xiàn)1值對于預(yù)測結(jié)果的評價更為準確.選取PointNet++、DGCNN和PCT等點云語義分割網(wǎng)絡(luò)與本文算法進行對比.在進行算法的對比試驗時,試驗環(huán)境保持一致. 下頜角截骨方案的主要評價指標為截骨對稱性、安全性和美觀性[19].測量過程中涉及的幾個解剖標志點如圖7所示,各評價指標的定義和測量方式如下. 截骨對稱性:下頜角點是評價面部輪廓外觀的關(guān)鍵點,在評價截骨對稱性時,可以在下頜骨雙側(cè)測量點C與點G的距離,兩側(cè)dC G的差值為ΔdC G,若ΔdC G<3 mm, 則左右兩邊對稱,否則不對稱. 截骨安全性:在截骨手術(shù)時要保證截骨區(qū)域離下頜角神經(jīng)有一定距離,避免手術(shù)過程中對神經(jīng)造成損傷.在評價截骨安全性時,可以測量截骨平面到神經(jīng)的最小距離ds,若ds>4 mm,則視為安全,否則不安全. 截骨美觀性:下頜角美觀性的評價依據(jù)是下頜角角度θ(髁頂點、下頜角點和頦下點的夾角),θ在115° 左右為正常,下頜角肥大患者的θ在110° 左右,θ在120° 左右為美觀.因此,當θ∈(115°, 125°)時,視為美觀. 圖7 下頜骨的解剖標志點Fig.7 Anatomical landmarks of mandible 不同算法的各項評估指標在表1中列出.試驗結(jié)果表明,所提方法的各項評估指標均達到最佳性能,在下頜骨語義分割試驗中,本文所述方法優(yōu)于先前的網(wǎng)絡(luò)框架. 表1 不同方法在下頜骨語義分割測試集上的評估結(jié)果 本文根據(jù)測試集中40個病例的截骨方案預(yù)測結(jié)果,在醫(yī)學(xué)影像控制系統(tǒng)中對下頜角模型進行虛擬截骨后, 對相關(guān)數(shù)據(jù)進行測量,結(jié)果如表2所示. 表2 預(yù)測截骨方案的評價指標Tab.2 Evaluation index of predicted osteotomy plan 在40個病例的預(yù)測結(jié)果中,只有2個不符合要求,試驗結(jié)果表明本文算法的截骨手術(shù)規(guī)劃效果良好. 在測試集中選取1個病例,不同方法對該病例的預(yù)測結(jié)果如圖8所示(未做截骨平面微調(diào)),圖中紅點為預(yù)測錯誤的點.可知,在DGCNN和PCT算法的預(yù)測結(jié)果中,預(yù)測標簽錯誤的點大多集中在截骨區(qū)與下頜骨主體的過渡區(qū)域,原因是這些點在局部特征聚合時混合了不同類別點的特征,而本文算法通過注意力池化減緩了特征的跨區(qū)域傳播.此外,加入相對位置編碼的Transformer層也能更好地建立點與點之間的依賴關(guān)系,使得同類點在特征空間中盡可能接近,提高其語義一致性,從而提高下頜骨點云的分割精度.試驗結(jié)果表明,與其他兩種模型相比,本文算法的語義分割精度最高,非截骨區(qū)與下頜骨主體的過渡區(qū)域也最平整. 圖8 不同點云語義分割算法的預(yù)測結(jié)果可視化Fig.8 Visualization of prediction results of different point cloud semantic segmentation algorithms (1) 鄰近點的數(shù)量.鄰近點的數(shù)量k用于確定提取局部特征時局部區(qū)域中點的數(shù)量,結(jié)果如表3所示.當k=16時,模型性能最佳.當鄰域較小(k=4)時,模型可能沒有足夠的上下文信息以準確預(yù)測各個點的標簽;當鄰域較大(k=64)時,每個點特征中包含較多鄰近點的信息,可能會引入過多的噪聲,導(dǎo)致模型的準確性下降.因此,k選取16最為合適. 表3 不同鄰近點數(shù)量的比較 (2) 特征聚合函數(shù).特征聚合函數(shù)用于聚合局部區(qū)域中鄰近點的特征.本文將注意力池化與平均池化和最大池化進行比較,試驗結(jié)果如表4所示.試驗結(jié)果表明,注意力池化能夠提高點云語義分割的性能. (3) 位置編碼.進行3組對比試驗,即沒有位置編碼、使用絕對位置編碼和使用相對位置編碼.相對位置編碼如前文所述,絕對位置編碼是將式(7)中的δ(pi-pc)改為δ(pi),結(jié)果如表5所示.試驗結(jié)果表明,如果沒有位置編碼,性能將大大下降;使用絕對位置編碼,精度比不使用絕對位置編碼高;相對位置編碼產(chǎn)生最佳結(jié)果. 表4 不同特征聚合函數(shù)的比較Tab.4 Comparison of different feature aggregation functions % 表5 不同位置編碼方式的比較Tab.5 Comparison of different position encoding methods % 提出一個結(jié)合本地特征提取模塊和非本地特征提取模塊的下頜骨點云語義分割網(wǎng)絡(luò),并基于下頜角整形手術(shù)的診斷病例,構(gòu)造了下頜骨語義分割數(shù)據(jù)集,訓(xùn)練出一個能有效預(yù)測截骨區(qū)域的語義分割模型.引入注意力機制的局部特征提取模塊能夠獲取精細的局部特征,減緩特征的跨區(qū)域傳播,使得截骨區(qū)與非截骨區(qū)的過渡區(qū)域更為平滑.加入相對位置編碼的Transformer層能夠獲取下頜骨點云的全局上下文信息,自動學(xué)習點特征間的依賴關(guān)系,進一步提高分割精度.試驗結(jié)果表明,本文算法預(yù)測的截骨區(qū)域十分接近醫(yī)師手動標記的截骨區(qū)域,可以作為醫(yī)師進行截骨手術(shù)規(guī)劃的參考.2 試驗驗證
2.1 數(shù)據(jù)集構(gòu)建
2.2 試驗環(huán)境設(shè)置
2.3 網(wǎng)絡(luò)性能評估指標
2.4 臨床驗證評估指標
3 試驗結(jié)果與分析
3.1 網(wǎng)絡(luò)性能分析
3.2 臨床驗證結(jié)果分析
3.3 預(yù)測結(jié)果可視化
3.4 消融研究
4 結(jié)語