沈旭東 ,樓平* ,吳湘蓮 ,朱立妙 ,雷英棟
(1.嘉興職業(yè)技術學院智能制造學院,浙江 嘉興 314036;2.同濟大學浙江學院機械與汽車系,浙江 嘉興 314051)
氣胸是指氣體進入胸膜腔,造成積氣狀態(tài),氣胸對于人類的生命是很大的危險,一般判斷正確率僅在50%,其中通常的方法是通過X 光片進行診斷,但是X 光片須有經(jīng)驗豐富的醫(yī)生才能判斷。當前隨著深度學習技術[1]的不斷發(fā)展,通過深度學習模型就可以很快地識別出是否患有氣胸疾病,并且能夠判斷出病灶的位置,而且通過網(wǎng)絡模型預測病人是否患有氣胸也將很大程度上減輕醫(yī)生的負擔,可以提供有效的輔助手段。
在使用傳統(tǒng)Unet 模型[2-3]進行語義分割的過程中,遇到的第一個問題是,正樣本召回率低,如圖1 所示,X 光片有氣胸病灶,但是通過語義分割模型預測的過程,沒有識別出來;第二個問題是,能否在原有的基礎上,設計更好的網(wǎng)絡結(jié)構(gòu),進一步提高語義分割的精度。第一個問題原因在于Unet 是針對點對點的像素級別的語義分割模型,不能從全局的角度進行有無病灶的判斷,因此對于小的病灶,單純地使用Unet網(wǎng)絡進行分割,無法得到很好的預測結(jié)果,本文在經(jīng)典Unet 網(wǎng)絡的基礎上做了改進,引入“分類”和“分割”多任務策略進行學習,通過對不同的圖像在全局上進行有無病灶二分類學習,再對每個圖像上的單個像素進行語義分割,將兩者的損失函數(shù)進行融合,通過這種方法可以提高正樣本預測的準確率。對于第二個問題,傳統(tǒng)的解決方式是增加網(wǎng)絡的體積,但是調(diào)大神經(jīng)元的數(shù)量來設計更深層次的網(wǎng)絡結(jié)構(gòu),將會導致占用非常大的硬件資源,而且也會使得訓練變得非常困難[4],本文在網(wǎng)絡結(jié)構(gòu)的改進上,采用Resnet34[5-6]作為編碼框架,設計了空間通道壓縮與激發(fā)(Spatial-Channel Sequeeze & Excitation,SCSE)模塊進行修正,提高訓練預測的精度。
圖1 氣胸CT 圖像預測錯誤
本文設計了一種針對氣胸CT 圖像的端到端語義分割模型,采用編碼、解碼的網(wǎng)絡結(jié)構(gòu),在設計二分類網(wǎng)絡和語義分割網(wǎng)絡時,其中編碼階段的基礎特征提取網(wǎng)絡是很重要的一部分,由于獲取海量氣胸CT 圖像的難度比較大,本文采用以Resnet34 為框架的帶預訓練參數(shù)的Unet 模型作為特征提取網(wǎng)絡,因為它通過在網(wǎng)絡中增加殘差網(wǎng)絡的方法,解決了網(wǎng)絡深度到一定程度,誤差升高,效果變差,梯度消失現(xiàn)象明顯[7],使得網(wǎng)絡反向傳播求最小損失難以實現(xiàn)的問題。在編碼階段,引入SCSE 模塊結(jié)構(gòu),得到圖像二分類損失,解碼時融合編碼階段各層特征信息,進行上采樣,對上采樣的各層特征信息再進行融合,得到語義分割圖像,再對圖像二分類和圖像語義分割兩者的損失函數(shù)進行融合,調(diào)整權重關系,得到全局損失函數(shù),再進行優(yōu)化,最終得到預測圖像。具體結(jié)構(gòu)如圖2 所示。
圖2 網(wǎng)絡模型結(jié)構(gòu)設計
假設輸入圖像X∈?H×W×C,通過編碼模塊Resnet34 和解碼模塊上采樣生成輸出特征圖U∈?H×W×C′,H和W表示圖像的空間高度和寬度,C和C′表示輸入和輸出的通道數(shù)量,通過卷積和非線性變換操作后,U中包含了X中空間和通道信息,我們在每次編碼或解碼操作后,引入SCSE 模塊,將U修正為U′,SCSE 模塊實現(xiàn)方式如圖3 所示,主要有空間壓縮模塊和通道壓縮模塊兩部分組成。
圖3 SCSE 模塊結(jié)構(gòu)圖
空間壓縮模塊設計如下,假設輸入特征圖U=[u1,u2,…uC],其中ui∈?H×W代表每個通道的特征圖,通過全局平均池化[8-9](global average pooling,GAP)操作,得到向量z∈?1×1×C,對于第k個通道特征圖變換如式(1):
該變換在z中引入了全局空間特征信息,再通過z′=W1(δ(W2z)),得到z′,其中W1∈,W2∈為兩個全連接網(wǎng)絡,δ(·)為ReLU[10]操作。再通過sigmoid 變換,得到歸一化修正系數(shù)σ(z′)∈[0,1],最終通過修正系數(shù)乘以輸入特征圖U,得到,如式(2):
通過該模塊,不重要的通道內(nèi)信息會減小,被抑制,而重要通道內(nèi)的信息幾乎保持不變,變相得到增強。
通過上述空間壓縮信息,從而獲得衡量通道重要性的指標,我們也可以通過壓縮通道信息,獲取衡量空間位置重要性的指標。同樣對于輸入特征圖U=[u1,u2,…uC],通過轉(zhuǎn)換得到
式中:ui,j∈?1×1×C代表對應的空間位置(i,j),通過q=Wsq*U卷積操作實現(xiàn)空間擠壓操作,再通過sigmoid變換,得到歸一化修正系數(shù)σ(q)∈[0,1],最終通過修正系數(shù)乘以輸入特征圖U,得到,如式(4):
通過相加得到兩者的融合信息,最后得到對空間信息和通道信息重要性都做了權重處理的輸出。如式(5):
在對氣胸CT 圖像進行語義分割時,為了減少噪聲干擾,當分割得到的圖像像素點求和小于一定數(shù)量時,預測該圖像為無病灶特征,因此相當于用語義分割算法做了二分類操作,但是語義分割模型以及損失函數(shù)只考慮了單個像素點的分類,沒有考慮整張圖片所有像素點求和的整體分類[11-12],因此在優(yōu)化的過程中只是針對局部進行優(yōu)化,沒有考慮到對整體進行優(yōu)化,針對這個問題,本文引入了多任務學習策略,直接使分類和語義分割兩個網(wǎng)絡共用同一個網(wǎng)絡結(jié)構(gòu),提取特征圖,而不是分別使用兩個獨立的網(wǎng)絡,結(jié)構(gòu)如圖4 所示,在保證整個網(wǎng)絡結(jié)構(gòu)不變的情況下,設置多個任務“分類”和“分割”,對于二分類,本文引入邏輯斯特損失函數(shù)loss1,對于分割任務,本文引入交叉熵損失函數(shù)loss2,在訓練時,首先通過單獨的兩個損失函數(shù)分別計算分類和分割兩個輸出的損失,再計算這兩個損失的加權和作為網(wǎng)絡的損失,最終得到融合的損失函數(shù)loss=a×loss1+b×loss2,其中a、b為兩者的權重值。
圖4 多任務學習結(jié)構(gòu)圖
本文所用數(shù)據(jù)集包含了原始圖像及標注的分割圖像,標注的分割圖像由RLE(Run Length Encoding)編碼,整個數(shù)據(jù)集包含12 047 張原始圖像及標注好的分割圖像,如圖5 所示,尺寸為1 024×1 024 pixel,將所有圖像分為訓練集數(shù)據(jù)和驗證集數(shù)據(jù),其中訓練集占90%,驗證集占10%。由于GPU 容量的限制,將原始1 024×1 024 pixel 圖像重新整形為512×512 pixel,為了進一步擴大數(shù)據(jù)集的容量和提高網(wǎng)絡模型的泛化能力,將圖片進行隨機水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、旋轉(zhuǎn)、亮度變換,高斯模糊,透視變化等操作,隨機比例為50%。
圖5 帶標注的數(shù)據(jù)集
評價指標用于衡量網(wǎng)絡模型的好壞,可以說明模型的性能,辨別模型的結(jié)果。本文所采用的模型使用Dice 作為評價指標[13],Dice 系數(shù)是一種集合相似度度量指標,通常用于計算兩個樣本的相似度,取值范圍為[0,1],分割結(jié)果最好時值為1,最差時值為0,在該模型中,用于檢測預測病灶和真實病灶的相似度,如式(6):
本文在設計相關實驗時,采用pytorch 框架進行設計,實驗所用圖形工作站配置為:4 核CPU,內(nèi)存16G,GeForceGTX1080Ti GPU,顯存16G,操作系統(tǒng)Ubuntu 16.04,網(wǎng)絡模型配置如下:優(yōu)化器采用隨機梯度下降,momentum=0.9,weight_decay=0.0001,LearningRate=0.002,由于單張圖片為512×512 pixel,圖片較大,批處理大小設置為4,為了增加批處理大小,本文采用梯度累加實現(xiàn)“顯存擴大”,進行N次前向后反向更新一次參數(shù),相當于擴大了N倍的batchsize,即每次獲取1 個批處理的數(shù)據(jù),通過梯度下降法,計算梯度,梯度不清空,不斷累加,累加一定次數(shù)后,根據(jù)累加的梯度更新網(wǎng)絡參數(shù),然后清空梯度,進行下一次循環(huán)。一定條件下,batchsize 越大訓練效果越好,梯度累加則實現(xiàn)了批處理量的變相擴大,本文設置累加次數(shù)為4 倍,相當于將批處理大小設置為16。
(1)多任務學習策略對比分析
本文在多任務學習策略中,采用對“分類”和“分割”兩種損失函數(shù)進行加權平均的方式,根據(jù)多任務損失函數(shù)loss=a×loss1+b×loss2,a、b為兩者的權重值,對a、b兩者取不同的值進行對比分析,實驗結(jié)果如表1 所示,a、b實際為氣胸圖像良惡性判別和語義分割的損失權重之比,在訓練時,有可能出現(xiàn)某一任務的偏重明顯大于其他任務的情況,這樣可能使有些任務的訓練效果較差,所以在這里加入損失權重,來對每個任務的比重進行調(diào)節(jié),以防止某個任務的訓練效果較差。針對不同的權重系數(shù),采用Unet+Resnet34+SCSE 網(wǎng)絡模型進行對比分析,實驗表明對于該任務,分類loss 權重a=0.1,語義分割loss 權重b=0.9 時預測效果最好。
表1 不同權重系數(shù)預測對比結(jié)果分析
(2)不同網(wǎng)絡模型對比分析
不同網(wǎng)絡模型對比分析結(jié)果如表2 所示,本文設計的模型在預測氣胸CT 圖像時,其中Dice 相似系數(shù)得分達到85.3%,成績與目前最好“五折交叉驗證訓練模型”接近,但簡化了模型結(jié)構(gòu)和訓練復雜度,實驗表明采用Resnet34 作為編碼框架,引入SCSE 模塊將比單Unet 網(wǎng)絡提高約4%,采用二分類和語義分割雙任務進行預測比單任務進行預測在預測精度上也提高1.2%。由此可以分析,引入SCSE模塊對圖像特征信息進行修正,從空間和通道兩個方向獲取圖像的全局信息,比傳統(tǒng)的Unet+Resnet34模型對于特征的獲取更加有效,損失函數(shù)采用“分類”和“分割”融合的多任務策略對氣胸醫(yī)學圖像進行語義分割,可以更好地優(yōu)化訓練過程,避免了只是針對局部優(yōu)化,沒有考慮到對整體進行優(yōu)化的缺點。
表2 不同網(wǎng)絡模型對比結(jié)果分析
(3)預測效果
根據(jù)訓練得到的最優(yōu)網(wǎng)絡模型Unet+Resnet34+SCSE+Multi-Task 組合,對實際醫(yī)學圖像進行分割,以3 個病人為例進行預測,預測效果如圖6 所示。
圖6 實驗預測效果
深度學習模型是醫(yī)學圖像檢測領域非常強大的工具,使用語義分割預測氣胸CT 圖像病灶位置對醫(yī)生判別疾病將起到很好的輔助作用,本文設計的語義分割模型采用Resnet34 作為框架,解決了網(wǎng)絡深度到一定程度,梯度消失的問題;引入SCSE 模塊,從空間和通道兩個方向獲取圖像的信息,提高了語義分割的精度;損失函數(shù)采用“分類”和“分割”多任務策略進行學習,從局部像素點和全局圖像的分類上進行融合,進一步提高了語義分割的精度。