顧霄瑩 張俊華 王嘉慶
(云南大學信息學院 云南 昆明 650500)
脊柱側(cè)凸是一種常見的脊柱三維畸形,脊椎的軸向旋轉(zhuǎn)是脊柱側(cè)凸的基本畸形之一[1-2]。目前,X線是醫(yī)學上診斷脊柱側(cè)凸主要的成像方式[3],已有方法通過測量X線正位相中的椎弓根影相對于椎體中心產(chǎn)生的偏移量實現(xiàn)對椎體旋轉(zhuǎn)度的測量,進而完成脊柱側(cè)凸的系列評估工作[4-6]。椎弓根影在X線正位相和側(cè)位相中均可見,因此也常作為脊柱X線圖像三維重建的界標之一[7]。椎弓根作為椎弓的一部分,它起于椎體后上部,與椎體方向垂直向后方凸起,外形呈弧形。在X線圖像中椎弓根影顯示面積小且對比度不高,這給它的分割工作帶來了難度。
現(xiàn)有的椎弓根影分割方法按自動化程度分為手工分割、半自動分割和自動分割三種。手工分割靠醫(yī)師人工對脊柱X線圖像進行標注,耗時費力且精確的結(jié)果受到人工的主觀因素制約,操作者的誤差會直接影響后期椎體旋轉(zhuǎn)角測量結(jié)果的準確度。對此,一系列半自動分割方法被提出。Dore等[8]提出一種引入椎弓根圖像統(tǒng)計形狀作為先驗信息的水平集X線圖像椎弓根影分割方法,由于嚴重依賴于圖像的質(zhì)量,該方法不易推廣。Zhang等[9]提出一種基于橢圓形狀約束的梯度矢量流(GVF) Snake模型的X線圖像椎弓根影分割方法,此方法需要由用戶選擇矩形感興趣區(qū)域生成初始橢圓輪廓,過程煩瑣。Kumar等[10]提出一種數(shù)學形態(tài)學增強的圖像預處理結(jié)合GVF Snake模型的X線圖像椎弓根影分割方法,該方法仍然需要用戶標記初始化輪廓。半自動分割方法只能有限地降低人為干預,最終分割精度還是取決于分割者自身的技術(shù)和經(jīng)驗。鑒于人工方法和半自動方法的局限性,Cunha等[11]提出一種基于支持向量機的從平面X線圖像中全自動分割椎弓根影的新方法,但此方法難以實現(xiàn)大規(guī)模樣本的訓練且最佳分類器的檢測準確率僅為48%。Ebrahimi等[12]提出了一種基于隨機森林分類器的自動檢測X線圖像椎弓根影的方法,檢測精確度為84%,該方法效果雖不錯但在檢測一些不明顯的椎弓根影時,仍然會產(chǎn)生較大的檢測誤差。
針對上述人工、半自動、全自動方法的局限性,本文采用深度學習的方法實現(xiàn)X線圖像椎弓根影的全自動分割,提出一種端到端的基于注意力機制的U-Net神經(jīng)網(wǎng)絡(luò)模型。該方法不需要人工進行干預,對脊柱X線圖像作簡單預處理后輸入到神經(jīng)網(wǎng)絡(luò)中,通過網(wǎng)絡(luò)對標簽特征的學習,從而實現(xiàn)對X線圖像椎弓根影的高精度自動化分割。
U-Net神經(jīng)網(wǎng)絡(luò)[13]是一種U型架構(gòu)網(wǎng)絡(luò),是從全卷積網(wǎng)絡(luò)[14](Full Convolution Network, FCN)演變而來。U-Net網(wǎng)絡(luò)通過引入跳躍連接的方式將用于像素定位的高分辨率層與用于精確分割的低分辨率層結(jié)合起來,這種方式使分割結(jié)果更加準確,其結(jié)構(gòu)如圖1所示。
圖1 U-Net網(wǎng)絡(luò)架構(gòu)
圖1中,左半部分是特征提取過程,每經(jīng)過一個池化層,圖片大小就縮減一半;右半部分是上采樣過程,每上采樣一次,就將下采樣中的高分辨率特征與上采樣特征連接起來。下采樣路徑中每一層的寬度自上而下依次是(64,128,256,512,1 024),對應(yīng)有自下而上的上采樣路徑,共18個卷積層。
考慮到X線圖像中椎弓根影面積小且對比度不高,本文對原始U-Net網(wǎng)絡(luò)進行優(yōu)化,提出一種基于注意力機制的U-Net神經(jīng)網(wǎng)絡(luò)模型,其模型如圖2所示。
圖2 基于注意力機制的U-Net神經(jīng)網(wǎng)絡(luò)模型
由圖2可知,改進的網(wǎng)絡(luò)由9個Block組成,改進網(wǎng)絡(luò)里的每個卷積層后都添加了規(guī)范層BN(Batch_Normalization),對前一層的激活值進行批標準化處理,避免網(wǎng)絡(luò)過擬合,加速網(wǎng)絡(luò)訓練,之后使用ReLU(R-ectified Linear Units)激活。改進網(wǎng)絡(luò)的每個Block后都加入通道注意力模塊[15](Channel Attention module,CA)以及在每個跳躍連接之前都增加注意力門模塊[16](Attention Gates module, AGs),既提高了網(wǎng)絡(luò)對目標區(qū)域提取的準確性又解決了模型跳躍連接的冗余問題。在網(wǎng)絡(luò)的最后,通過1×1的卷積和Sigmoid激活層將多通道特征圖譜映射到目標的分割。
各模塊內(nèi)部結(jié)構(gòu)如圖3所示。圖3(a)表示Block1—Block9內(nèi)部結(jié)構(gòu),圖3(b)表示Conv內(nèi)部結(jié)構(gòu)。
(a) Block1-Block9 (b) Conv圖3 各模塊內(nèi)部結(jié)構(gòu)
除最后一層是1×1的卷積層外,其他所有的卷積層都采用3×3的卷積核。神經(jīng)網(wǎng)絡(luò)的參數(shù)主要由卷積核大小和卷積核數(shù)量決定,5×5的卷積核有25個參數(shù),而3×3的卷積核只有9個參數(shù),能顯著減少神經(jīng)網(wǎng)絡(luò)的計算量,同時分割效果也不會降低;網(wǎng)絡(luò)下采樣路徑中每一層的卷積核數(shù)量自頂向下依次是(32,64,128,256,512),大大減少了網(wǎng)絡(luò)的參數(shù)量。網(wǎng)絡(luò)的參數(shù)及輸出尺寸如表1所示。
表1 網(wǎng)絡(luò)參數(shù)
1.2.1注意力門模塊
圖4 AGs模塊
圖4中注意力系數(shù)(α)通過元素乘積來縮放輸入特征(xl)。AGs通過分析門控信號(g)和上下層信息來選擇目標空間區(qū)域,α在目標區(qū)域取得大的值,在背景區(qū)域取得較小的值。g通過簡單的1×1卷積層、BN層和ReLU激活層獲得,xl經(jīng)過步長為2的卷積下采樣得到與g相同的特征尺度。采用雙線性插值法對特征圖進行重采樣。
1.2.2通道注意力模塊
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=
F1=Mc(F)?F
(4)
圖5 AC模塊
分割框架設(shè)計如圖6所示,分為3個主要部分。
圖6 X線圖像椎弓根影分割框架
1) 圖像預處理:將原始脊柱正位相X線圖像裁剪為小的脊椎圖像,之后使用labelme對脊椎圖像打標簽構(gòu)建數(shù)據(jù)集:訓練集和測試集。訓練中使用圖片生成器(翻轉(zhuǎn)、平移等操作)實現(xiàn)數(shù)據(jù)實時擴充。
2) 神經(jīng)網(wǎng)絡(luò)訓練:將訓練集輸入到神經(jīng)網(wǎng)絡(luò)中訓練,通過不斷迭代來優(yōu)化網(wǎng)絡(luò)參數(shù),將最優(yōu)的網(wǎng)絡(luò)模型保存下來。
3) 測試階段:將測試集輸入到保存的最優(yōu)網(wǎng)絡(luò)模型中,得到目標分割結(jié)果,然后使用Photoshop將分割結(jié)果在脊椎X線圖像上標注。
實驗數(shù)據(jù)是由云南省昆華醫(yī)院提供的195幅脊柱正位相X線圖像。為了從脊椎X線圖像中分割出椎弓根影,本文將原始195幅脊柱正位相X線圖像裁剪成863幅脊椎圖像(包括胸椎和腰椎),圖7(a)所示是脊柱正位相X線圖像,圖7(b)為裁剪后的脊椎圖像。由于U-Net網(wǎng)絡(luò)要求輸入圖像尺寸一致,同時為了不使脊椎圖像變形,本文用黑色背景色將裁剪后的圖像填充成統(tǒng)一尺寸(128×128),如圖7(c)所示。訓練標簽由人工完成且得到醫(yī)生認可,標簽圖如圖7(d)所示。
圖7 圖像預處理
網(wǎng)絡(luò)訓練使用自適應(yīng)Adam優(yōu)化器,Adam優(yōu)化器結(jié)合了AdaGrad和RMSProp兩種優(yōu)化算法的優(yōu)點,使參數(shù)的更新不受梯度伸縮的變換影響,實現(xiàn)簡單,計算高效。Adam優(yōu)化器還可以解決其他優(yōu)化器中存在的問題,如學習率消失、網(wǎng)絡(luò)收斂速度慢或是SGD參數(shù)更新比較頻繁導致?lián)p失函數(shù)震動過大等。
由于分割X線圖像椎弓根影是二分類問題,網(wǎng)絡(luò)選取二元交叉熵(binary_cross_entropy)作為損失函數(shù),損失函數(shù)越小,則模型效果越好。樣本的真實標簽為yt,該樣本的yt=1的概率為yp,則該樣本的二進制交叉熵損失公式定義如下:
log(yt/yp)=-(yt×log(yp)+(1-yt)×log(1-yp))
(5)
1) 采用精確度(Precision,P)、召回率(Recall,R)和準確率(Accuracy,Acc)對分割結(jié)果進行評價,定義為:
式中:Tp表示正確分割椎弓根影的部分;Fp表示將背景預測為椎弓根影的部分;FN表示將椎弓根影預測為背景的部分;TN表示算法分割和人工分割外部公共區(qū)域的部分。
2) 使用Dice相似性系數(shù)來對分割結(jié)果進行評價,定義為:
式中:A表示椎弓根影分割結(jié)果;B表示與其對應(yīng)的真實標簽,A∩B代表椎弓根影分割結(jié)果與真實標簽像素點的交集,Dice值越接近1,表示X線圖像椎弓根影分割結(jié)果越準確。
3) 采用Hausdorff距離對分割結(jié)果進行評價。由于Dice系數(shù)的關(guān)注點主要集中在分割結(jié)果的內(nèi)部,對分割邊界的刻畫不敏感,而Hausdorff距離作為形狀相似性的一種度量,能夠為Dice系數(shù)做出較好的補充。Hausdorff距離定義如下:
式中:X表示椎弓根影分割結(jié)果;Y表示與其對應(yīng)的真實標簽;d表示歐氏距離。dH越高,表示樣本的匹配度越低。
本文實驗是在Windows10的計算平臺上進行,In-tel(R) Core(TM) i7-8700K CPU,16 GB×2內(nèi)存,NVID-IA GeForce GTX 1080Ti GPU;開發(fā)環(huán)境為Python3.6,神經(jīng)網(wǎng)絡(luò)的訓練使用以TensorFlow為后端的Keras深度學習框架。實驗從863幅脊椎X線圖像中選取750幅作為訓練集,剩下的113幅作為測試集。
為了更好地驗證本文網(wǎng)絡(luò)在分割X線圖像椎弓根影上的優(yōu)勢,將網(wǎng)絡(luò)與傳統(tǒng)的FCN-16s、FCN-8s、U-Net和Attn U-Net[14]進行對比。
參數(shù)設(shè)置:實驗中基于注意力機制的U-Net和A-ttn U-Net采用的初始學習率為0.000 1,batch_size為8,epoch為200;原始U-Net采用初始學習率為0.000 1、batch_size為4,epoch為200;FCN-8s、FCN-16s在學習率為0.000 1時訓練,網(wǎng)絡(luò)損失下降很慢,難以收斂,因此考慮選取較大的學習率訓練,采用lr=0.001,epoch為100就可達到較高的準確率。
3.2.1不同分割算法的比較
本實驗根據(jù)113幅測試圖像的自動分割結(jié)果分別計算P、R和Acc的平均值來綜合評價不同網(wǎng)絡(luò)模型在X線圖像椎弓根影上的分割性能,結(jié)果對比如表2所示。
表2 不同網(wǎng)絡(luò)預測結(jié)果指標(ACC/P/R)對比
可以看出,U-Net網(wǎng)絡(luò)和Attn U-Net網(wǎng)絡(luò)的P值雖高,但R值相對較低;基于注意力機制的U-Net網(wǎng)絡(luò)無論是Acc值還是P值、R值都高于其他分割方法。本文提出的基于注意力機制的U-Net網(wǎng)絡(luò)較其他網(wǎng)絡(luò)表現(xiàn)出更加優(yōu)異的性能,且平均分割一幅圖像僅需19 ms。
為更好地評價本文網(wǎng)絡(luò)在分割X線圖像椎弓根影上的優(yōu)越性,使用Dice系數(shù)和Hausdorff距離作為評價指標,如表3所示??梢钥闯?,U-Net網(wǎng)絡(luò)和Attn U-Net網(wǎng)絡(luò)的Dice系數(shù)比傳統(tǒng)的FCN-8s網(wǎng)絡(luò)、FCN-16s網(wǎng)絡(luò)高,但是它們的Hausdorff距離卻大于FCN網(wǎng)絡(luò),這表明無論是U-Net網(wǎng)絡(luò)還是Attn U-Net網(wǎng)絡(luò),它們的圖像分割結(jié)果與真實圖像的匹配度并不是很高。本文提出的基于注意力機制的U-Net網(wǎng)絡(luò)不僅在Dice系數(shù)上優(yōu)于其他的分割網(wǎng)絡(luò),Hausdorff距離也明顯小于其他4種方法。
表3 不同網(wǎng)絡(luò)預測結(jié)果指標(Dicel Hausdorff)對比
3.2.2不同分割算法訓練時間的比較
為進一步分析算法在運行效率方面的性能,本文將不同分割算法在每一輪次上的訓練時間進行對比,如表4所示??梢钥闯?,原始U-Net網(wǎng)絡(luò)每一輪的訓練時間平均為150 s,本文網(wǎng)絡(luò)平均為每輪73 s,遠遠低于原始U-Net網(wǎng)絡(luò)訓練時間。本文算法在運行效率方面顯著優(yōu)于原始U-Net網(wǎng)絡(luò)。由表4可知本文網(wǎng)絡(luò)平均每輪訓練時間比Attn U-Net網(wǎng)絡(luò)的訓練時間稍長,但考慮到在醫(yī)學影像處理任務(wù)中精度比速度更為重要,因此本文網(wǎng)絡(luò)是最優(yōu)的選擇。
表4 算法訓練時間對比
3.2.3不同優(yōu)化器對實驗結(jié)果的影響
在神經(jīng)網(wǎng)絡(luò)中,優(yōu)化器通過更新計算影響模型訓練和模型輸出的網(wǎng)絡(luò)參數(shù),使網(wǎng)絡(luò)參數(shù)逼近或達到最優(yōu)值,從而最小化損失函數(shù)。為了證明使用Adam優(yōu)化器能夠有效提高分割性能,本文在基于注意力機制的U-Net網(wǎng)絡(luò)下,將Adam優(yōu)化器與SGD優(yōu)化器進行對比,如表5所示。
表5 本文網(wǎng)絡(luò)下優(yōu)化器對比
可以看出,雖然在召回率上Adam優(yōu)化器略低于SGD,但在其他四種評價指標上,Adam優(yōu)化器皆優(yōu)于SGD,進一步驗證了本文網(wǎng)絡(luò)選取Adam優(yōu)化器的正確性。
3.2.4算法分割結(jié)果的比較
為了更加直觀地表達各網(wǎng)絡(luò)模型的分割性能,本文將不同網(wǎng)絡(luò)的預測結(jié)果進行對比,如圖8所示。由圖8可知本文網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的預測值相比,不僅將脊椎X線圖像中右側(cè)的椎弓根影準確地分割出來,還將左側(cè)不清晰且形狀變異的椎弓根影較完整地預測出來,能夠做到X線圖像椎弓根影的完整分割。
圖8 預測結(jié)果對比
接著將本文網(wǎng)絡(luò)的預測值與標簽的真實值在脊椎X線圖像中標注,進一步觀測本文網(wǎng)絡(luò)的分割性能,如圖9所示??梢钥闯霰疚木W(wǎng)絡(luò)在分割X線圖像椎弓根影時有較高的分割準確率,能夠?qū)崿F(xiàn)椎弓根影的完整分割。
圖9 X線椎弓根影分割結(jié)果(白色為標簽的真實值,黑色為本文網(wǎng)絡(luò)的預測值,灰色為重疊部分)
基于注意力機制的U-Net網(wǎng)絡(luò)自動分割方法能夠完整地將椎弓根影從脊椎X線圖像中分割出來,無論是從定量還是定性角度來看,都證實了該方法在自動分割X線圖像椎弓根影上的可行性與優(yōu)越性?;谧⒁饬C制的U-Net網(wǎng)絡(luò)不僅提高了分割精度,還大大縮減了分割圖像的速度。
脊柱X線圖像中的椎弓根影分割對后期椎體旋轉(zhuǎn)度測量以及脊柱三維重建都有重大意義。針對現(xiàn)有X線圖像椎弓根影分割方法中的不足,本文提出一種基于注意力機制的U-Net網(wǎng)絡(luò)。在原始U-Net基礎(chǔ)上增加CA與AGs兩種不同的注意力機制輕量模塊,不僅提高了神經(jīng)網(wǎng)絡(luò)模型的特征提取能力,還在AGs模塊作用下,消除了跳躍連接中不相關(guān)的信息和噪聲信息,大大簡化了模型的訓練。實驗結(jié)果表明,基于注意力機制的U-Net網(wǎng)絡(luò)在分割X線圖像椎弓根影時可以得到良好的分割效果,在脊柱畸形疾病診斷治療中具有很好的應(yīng)用前景。但本文方法在分割一些噪音較大、圖像質(zhì)量很差的脊椎X線圖像時,依舊存在分割精度較低的問題,因此仍需進一步改進。