焦慶磊,朱 明,汪斌全,劉成林
(中國科學技術大學 信息科學技術學院,合肥 230027)
在醫學影像領域,雖然CT技術越來越普及,但是X光片憑借著放射劑量小,成本低等優勢在學生以及職工體檢中仍然占有較大比重.但是由于X光的2D特性,導致肋骨與器官影像重疊,如果疾病位置在這些區域,會給醫生[1]以及針對X光的肺結節檢測系統[2]帶來干擾.
一直以來,基于胸部X光圖片的肺結節智能檢測任務就是智能醫療領域的研究熱點,而肺結節由于其尺寸較小,位置如果與肋骨區域重合,會導致結節在圖片中難以被發現,因此肋骨抑制往往是胸部X光圖片預處理的必要過程.
X光片中,雙能減影[3](Dual Energy Subtraction,DES)技術,可以解決數字X光的肋骨影響.它結合兩個不同能量等級的X射線,然后相減來突出器官組織,抑制骨骼結構成像.但是只有較少醫院配置了這項技術,因為它不僅需要專業的設備,而且與普通的X光相比,DES有著更大的放射劑量,提高成本的同時還影響患者身體健康.在圖像預處理階段用軟件算法來實現X光圖片的肋骨抑制,可以在無成本增加的情況下輔助醫生和肺結節檢測系統工作.

圖1 樣本示例
如圖1(a)所示,肺結節與肋骨有一定程度的重合,因此會對檢測造成干擾,而經過肋骨抑制操作之后,結節特征更為顯著.
本文第1部分闡述肋骨抑制的相關研究,并簡單介紹本文所采用的網絡模型;第2部分詳細介紹網絡結構以及損失函數;文章第3部分是實驗對比與分析,驗證肋骨抑制預處理的有效性;第4部分對全文進行總結,并展望下一步工作.
目前胸片中的肋骨影像抑制算法主要分為兩類:基于監督學習的算法和基于無監督學習的算法.
基于監督學習的算法需要DES胸片產生標簽,模型一般為一個回歸網絡,通過監督學習,讓模型的輸出逼近標簽結果.鑒于肋骨結構較于器官組織更加簡單,如圖1(c)所示,一些基于監督學習的算法會優先選擇訓練模型學習肋骨結構.標簽通過原圖與DES胸片生成,在測試時,將原圖減去生成的骨骼結構圖,得到最終的無肋骨圖像.Chen等人[4]將肺部區域分成多個區域,分別訓練人工神經網絡學習對應區域的骨骼結構,將它們拼接成整幅骨骼圖片,最后將骨骼影像從原圖中分離.Yang等人提出CamsNet[5],使用了多尺度的方法在梯度域上訓練原圖與肋骨圖的映射關系,然后再重建出肋骨圖像,最后生成無肋骨胸片.除此之外,Gusarev等人[6]提出將肋骨作為圖像噪聲,采用編碼器加解碼器的網絡結構,將DES圖像直接作為訓練標簽,能夠直接生成無肋骨圖像,將MSE (Mean Squared Error)與MS-SSIM[7](Multi-Scale Structural Similarity Index)共同作為損失函數,兼顧像素差和結構相似性,取得了良好的效果.
而基于無監督學習的方法則不需要DES圖像作為標簽,但是這些方法都需要分割或者定位肋骨位置,然后再重建那片區域的像素值.Hogeweg等人[8]提出使用主成分分析(Principle Component Analysis,PCA)的方法來建模肋骨的橫截面的形狀分布,然后再將肋骨圖像從原圖中剔除.Li等人[9]先用傳統圖像處理結合基于圖的方法定位肋骨,然后同樣使用PCA對肋骨進行建模,最后由原圖和肋骨模型重建出無肋骨胸片.基于無監督學習的方法雖然不需要DES胸片作為標簽進行訓練,但是對分割肋骨區域或者定位肋骨邊界的精確度有著較高要求.
相較而言,基于監督學習的方法能夠讓網絡自動學習原圖與骨骼圖像或者DES胸片直接的映射關系,在算法設計上更為簡單,而且不依賴肋骨的定位或者分割結果,缺點是比較難以獲得大量的DES胸片數據,但是數據擴充可以一定程度上解決此問題.
本文采用的是監督學習的方法,前文提到對肋骨結構建模要易于直接學習無肋骨的胸片圖像,其實在去噪卷積網絡中也有這種類似的操作,如DnCNN[10](Denoising Convolutional Neural Network)中所采用的殘差訓練策略,這種方式能夠讓網絡更加容易訓練,加速模型收斂.與傳統去噪任務不同的是,肋骨成像和常見的高斯噪聲區別較大,具有更多的語義信息.在醫學影像的語義分割任務中,U-net[11]網絡結構被廣泛使用,它由語義分割網絡FCN[12]改進而來,采用對稱的結構,將圖像到高語義特征的過程看作編碼器,然后將高語義特征到像素級的分類結果視為解碼器,同時在解碼器中使用跳躍連接能夠將淺層特征與深層特征相結合,在提取語義信息的同時,淺層特征還能夠保證圖像細節.本文將這兩種策略相結合,通過實驗驗證了同時采用這兩種策略能夠使模型取得更優的效果.
肋骨抑制的難點在于抑制肋骨影像的同時還要保證原圖的細節紋理.在本文中,我們采用卷積神經網絡作為基礎模型,網絡結構類似U-net,分別驗證跳躍連接、殘差學習以及增加卷積核數量對模型性能的影響.除此之外,依據Zhao等人的實驗結果[13],將MAE (Mean Absolute Error)和MS-SSIM結合共同作為損失函數時能夠兼顧像素誤差以及圖像的結構相似性,使模型表現更加優異.本文采用了與其研究結果相同的損失函數以及二者的權重系數.
由于與相關研究的數據集不同,無法直接通過評估指標進行對比.因此為了驗證模型的有效性,我們分別將原X光圖像與經過肋骨抑制處理后的X光圖像分別用目標檢測網絡RetinaNet[14]進行訓練并測試,實驗結果證明使用經過肋骨抑制處理后的胸片進行訓練和測試,能夠提升肺結節檢測系統的性能表現.
由于肋骨抑制操作只是肺結節檢測系統的預處理步驟,而且大多數醫院沒有GPU集群,所以我們的目標是讓程序能夠在單個GPU機器上運行,為了降低特征層占用的顯卡內存,因此設計了只有6層的CNN模型,如圖2所示,其中Feature為特征圖,代表網絡模型的中間結果,(n1,n2,n3)表示卷積核的數量,特征圖的通道數.網絡結構類似編碼器加解碼器的框架,前3層卷積層后都有池化操作進行下采樣,下采樣能夠提升模型的感受野,在此過程中特征由圖像特征逐漸抽象具有更多的語義信息,同時降低特征圖的尺寸節省顯存空間.雖然空洞卷積操作能夠在擴大感受野的同時更多的保留位置細節信息,但是所有的特征層都是原圖的分辨率,中間結果會占用很大的GPU內存空間,極有可能導致內存溢出.后面3層是步長為2的反卷積層,將特征圖解碼到原圖尺寸.
本文在3層編碼器(卷積層+下采樣)和3層解碼器的基礎上,嘗試了2種改進策略:

圖2 卷積神經網絡結構圖
(1)殘差學習,如圖2中第I部分所示,其與殘差網絡[15]的思想相近,不同的是整個網絡變為一個殘差塊,輸入和理想輸出的殘差作為模型的預測目標.前文中提到,骨骼結構要比無肋骨胸片更加簡單,模型對輸入和輸出的殘差也更容易擬合.
(2)增加彈跳連接,如圖2中第II部分所示,將淺層特征圖合并到反卷積后的特征圖中,然后再進行下一步反卷積操作.這種方式一定程度上彌補了下采樣帶來的空間信息損失,在不增加額外特征層的基礎上,充分利用了淺層特征,提高了特征層的利用率.
在后面的實驗中,基礎網絡結合兩個策略,本文實現了5個網絡模型進行性能對比.分別為基礎網絡卷積核數量(n1,n2,n3)分別為(16,32,64)和(32,64,128),然后在n1=32的基礎網絡上分別單獨加入彈跳連接和殘差學習,以及同時使用.最后的實驗證明了同時使用這兩種策略,能夠最大程度提升模型的性能.
網絡是一個回歸模型,最常用的是MSE和MAE損失函數,MSE由于平方的關系,對大誤差的懲罰力度較大,但是對小誤差比較容忍.有研究[13]表明,在圖像重建領域MAE比MSE有著更優的性能.

式(1)和式(2)分別為MAE與MSE的定義,其中N為一張圖像種的像素個數,I為輸出圖像,G為標簽圖像.這兩種誤差只關注對應像素點之間的誤差,并未考慮到人的視覺特性,因為我們的最終目的是抑制胸片中的肋骨成像,同時在肋骨處保持原有的細節,所以我們并不非常在意比如整體的亮度偏移,人眼對一個區域的感知容易受到周圍區域影響,因此僅僅關注像素誤差可能會造成與視覺感知不一致的效果.
而SSIM (Structural Similarity Index)[16]分別從亮度、對比度和結構3方面度量圖像的相似性,更加符合人眼的視覺特性.SSIM定義如式(3)所示:

其中,μ為圖像均值,σ2I與 σG2為圖像方差,σIG為兩幅圖像的協方差,前一個分式為亮度對比因子l(I,G),后一個分式為對比度和結構對比因子cs(I,G).
MS-SSIM在此基礎上,額外考慮了分辨率的因素,在多個尺度上對圖像相似性進行評估.由于MS-SSIM同樣可微,因此可以將其作為損失函數,直接用來訓練模型.MS-SSIM定義如式(4)所示:

其中,M和j為尺度,當尺度為1時表示原圖,當尺度為2時,就是原圖一半大小.MS-SSIM指標越大,代表兩幅圖片越相似,范圍在0到1之間,其損失函數定義如式(5)所示:

同時使用MAE損失函數和MS-SSIM損失函數能夠兼顧像素差異和結構差異,總的損失函數定義如式(6)所示:

本文的實驗數據有240對胸片原圖與其對應的DES結果,我們隨機選取220例樣本作為訓練集,剩余20例樣本作為測試集.在生成訓練樣本時,我們對原數據進行數據擴充,我們使用了隨機平移、裁剪、旋轉、水平對稱等操作.這些操作能夠一定程度上彌補數據樣本量的不足.
此外為了讓模型在不同的機器上拍出的胸片都有效,我們還使用隨機伽馬變換讓訓練數據有著不同的對比度,其中伽馬參數范圍是[0.5,2].
我們將原圖尺寸限制為1024×1024,既保證了圖像的分辨率,同時也能讓顯存能夠容納整個模型以及中間結果.
評估模型輸出結果與DES標簽的相似性,我們采用了峰值信噪比PSNR(Peak Signal to Noise Ratio)以及SSIM兩個評估指標,其中SSIM如前文中介紹,更接近人類視覺系統,定義見式(3).而PSNR是最廣泛使用的評價圖像質量的方法,其定義如式(7):

其中,MSE定義見式(2),我們使用PSNR來評估兩幅圖像之間的像素值差距.
首先我們將2.1節中提到的5個網絡模型用同樣的訓練數據進行訓練,初始學習率都設置為0.001,每50個周期學習率衰減為原來的0.2,總共訓練200個周期,取測試集損失函數最低的模型作為每個網絡的最終模型.然后我們計算每個模型生成的20個結果圖像與DES標簽的SSIM和PSNR平均值,具體數據如表1所示.

表1 模型性能對比
PSNR和SSIM都是數值越大表明兩個圖像相似度越高,實驗數據表明,彈跳連接和殘差學習都能夠提升模型性能,如果同時使用,模型更優.除此之外,網絡的卷積核數量提升也能提升性能.在Gusarev等人[6]的實驗中也驗證了加深模型深度也可以提升模型性能.增加卷積核數量以及增加模型深度都會增加模型復雜度,也會增加模型中特征圖的內存占用,因此本文并沒有盲目將網絡加寬加深.
我們我們從測試集中選取一例樣本,選取最優的模型:(32,64,128)的卷積核數目,同時用跳躍連接和殘差學習.將其輸出結果展示,如圖3所示,能夠看出肋骨抑制操作能夠一定程度上剔除胸片中的肋骨結構,使得結節特征更加顯著.

圖3 胸片原圖與本文模型輸出圖像
由于與先前的研究沒有使用同樣的數據集,因此不能直接比較評估指標.最后為了驗證肋骨抑制的有效性,我們使用目標檢測網絡RetinaNet[14]作為肺結節檢測模型,在2954張有肺結節的胸片數據集上驗證肋骨抑制對肺結節檢測的影響.我們隨機選取148張胸片作為測試集,其余2806張用來訓練模型.RetinaNet中的錨點(anchor)長寬比為[0.8,1,1.25],為了使得尺度更加緊湊,每一個長寬比都有5個不同的尺度分別為[20,21/5,22/5,23/5,24/5],以較高的尺度密度,盡可能地覆蓋所有的肺結節.然后我們使用前面得到的卷積核數目為(32,64,128)并且同時有彈跳連接和殘差學習的網絡模型對胸片數據進行預處理,數據擴充使用3.1節所述的方法,用目標檢測常用評估指標mAP作對比,結果如表2所示.

表2 肋骨抑制對檢測結果的影響
從結果看出,胸片原圖經過肋骨抑制之后,檢測模型更容易取得更優的效果.
本文基于U-net設計了一個能夠抑制胸片中肋骨干擾的卷積神經網絡,通過實驗證明了U-net中的彈跳連接,以及去噪網絡中多采用的殘差學習策略能夠對網絡性能有較大的提升.此外,經過肋骨抑制處理后的胸片,作為肺結節檢測模型的訓練和測試數據,有助于肺結節檢測任務.
下一步的研究工作在肋骨抑制后的胸片數據上,設計更優的肺結節檢測模型,使其能夠在保證檢出率的基礎上盡可能降低假陽性樣本率,然后構成一個完整的肺結節檢測系統,輔助醫生的日常診斷.