翟岳仙,劉 翔,宋家琳
(1.上海工程技術大學 電子電氣工程學院,上海 201620;2.中國人民解放軍第二軍醫(yī)大學 長征醫(yī)院超聲診療科,上海 200003)
肝纖維化是肝臟內(nèi)結締組織增生異常的病理過程,由各種致病因子誘發(fā)[1]。肝臟損傷修復過程中均會發(fā)生肝纖維化。纖維化持續(xù)發(fā)展將會導致具有彌漫性損害的肝硬化,進而誘發(fā)肝癌等嚴重疾病。對肝纖維化疾病的診斷常用方法有肝活檢、血清檢查和影像學檢查。肝活檢被稱作“金標準”,但其作為一種有創(chuàng)性檢查易引起出血、昏厥等并發(fā)癥。血清檢查則缺乏特異性且檢測效率過低。影像學檢查方法中,CT(Computed Tomography)具有放射性損害;MRI(Magnetic Resonance Imaging)無法實現(xiàn)實時動態(tài)檢查且成本較高。近年來,隨著超聲技術的發(fā)展,其在大規(guī)模篩查和隨訪診斷中具有明顯的優(yōu)勢,且具有無損、無電離輻射等優(yōu)點,尤其適合肝纖維化這種彌漫性疾病的診斷。
對于醫(yī)學影像的分析,主要采用人工解讀的方式,依賴于醫(yī)生的主觀經(jīng)驗和知識水準,易導致主觀誤判,且診斷效率較低。隨著人工智能技術的發(fā)展,計算機輔助診斷的優(yōu)勢得以體現(xiàn)。通過對醫(yī)學影像大數(shù)據(jù)的自主學習,可最大程度地獲取醫(yī)生的經(jīng)驗。這種對醫(yī)學圖像的量化分析方式,避免了主觀因素的影響。同時,計算機輔助診斷系統(tǒng)也可以部署在不同地區(qū),以解決醫(yī)療資源分布不均的難題。
肝纖維化的計算機輔助診斷方法已經(jīng)有諸多研究。文獻[2]依據(jù)高頻超聲圖像下的肝表面形態(tài)特征,采用計算機輔助打分的方式進行肝纖維化診斷,得到重度肝纖維化的診斷敏感度為89.0%,特異度為61.0%。文獻[3]針對肝硬化疾病的高頻超聲圖像中肝包膜提取率低的問題,采用改進的動態(tài)規(guī)劃算法提取肝包膜,并將肝包膜特征用于肝硬化的分類,得到了較高的準確率。文獻[4]將灰度共生矩陣(Gray Level Cooccurrence Matrix, GLCM)的相關參數(shù)作為神經(jīng)網(wǎng)絡的數(shù)據(jù)輸入,分期結果作為輸出,通過神經(jīng)網(wǎng)絡模型診斷肝纖維化,但S1、S2、S3期的準確率不高。文獻[5~8]應用不同的小波變換等方法提取肝實質(zhì)紋理特征,通過CART(Classification and Regression Tree,CART)決策樹或者集成分類器分類肝纖維化。這些方法一般用于是否患病的二分類且準確率不高。目前,基于高頻超聲圖像的肝纖維化分類方法中,利用圖像特征結合計算機輔助打分法尚缺乏統(tǒng)一標準,且易受醫(yī)師的主觀影響。紋理特征提取法多數(shù)只關注到肝實質(zhì)紋理特征,部分特征并不適用于臨床,分類效果也有待提高[9]。
深度學習強大的特征抽取與表達能力使其在圖像分類識別任務中體現(xiàn)出一定的優(yōu)勢。因此,本文基于遷移學習策略采用預訓練的ResNet-34 (Residual Network-34)網(wǎng)絡模型,提取高頻超聲肝纖維化圖像中肝包膜與肝實質(zhì)的高層次特征來代替肝實質(zhì)紋理、邊緣線條等一些低層次特征,以便實現(xiàn)對肝纖維化的分期診斷。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)具有強大的圖像分類、語音識別能力。在ILSVRC(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)圖像分類競賽中,AlexNet和GoogleNet分類的錯誤率分別為16.4%和6.7%,并且采用VGG(Visual Genometry Group)和ResNet也都取得了較好的效果[10-13]。深度神經(jīng)網(wǎng)絡取得較好的分類性能離不開對大數(shù)據(jù)的學習,而醫(yī)學數(shù)據(jù)不僅涉及病人隱私問題,數(shù)據(jù)收集與標定也需要耗費大量時間,所以數(shù)據(jù)集較小且數(shù)量有限。人類視覺神經(jīng)研究表明,低層次提取的圖像特征基本相同,例如顏色、邊緣、線條等,高層次的特征則差異明顯。因此經(jīng)過大量優(yōu)秀訓練集訓練的權重參數(shù)是可以共享的,僅需加入新數(shù)據(jù)集進行權重微調(diào)即可被應用到新的分類任務中。肝纖維化是一種彌漫性疾病,各期變化特征不顯著,尤其是S2與S3期更加難以區(qū)分。在設計網(wǎng)絡結構時,在提取可有效應用于分類的高層次語義特征的同時還要避免誤差累積和梯度彌散問題。針對以上需求,本文基于遷移學習策略,遷移ResNet-34網(wǎng)絡在ImageNet數(shù)據(jù)集上進行訓練分類任務的模型及參數(shù),調(diào)整最后一層的softmax分類器,由原來的1 000分類修改為4分類,并將其結果應用到肝纖維化的分類上。初始化全部層的權值參數(shù),加入肝纖維化數(shù)據(jù)集進行訓練,微調(diào)(Fine Tuning)各類參數(shù),得到新的模型權重。具體流程如圖1所示。
圖1 微調(diào)預訓練模型流程圖Figure 1. Flow chart of fine tuning the pre-training model
原數(shù)據(jù)集為ImageNet數(shù)據(jù)集,包括120萬張訓練集圖片、5萬張驗證集圖片和10萬張測試集圖片。新數(shù)據(jù)集為肝纖維化的patch小塊數(shù)據(jù)集。網(wǎng)絡模型采用ResNet-34網(wǎng)絡[14-15]。
如圖2所示,ResNet引入了一個重要的殘差學習單元。當網(wǎng)絡層數(shù)不斷加深時,將后面的網(wǎng)絡層處理為恒等映射,此時模型退化成一個淺層的網(wǎng)絡,既保證了網(wǎng)絡的深度,提取到了圖像不同層次的語義特征,又避免了梯度爆炸。
圖2 殘差學習單元Figure 2. Residual learning unit
恒等映射函數(shù)為H(x)=x。網(wǎng)絡直接擬合比較困難,若將網(wǎng)絡設計為H(x)=F(x)+x,則F(x)=H(x)-x,網(wǎng)絡改為學習輸入與輸出的差值。當F(x)=0時,得到恒等映射函數(shù)H(x)=x。這種殘差學習單元在不產(chǎn)生額外參數(shù)和計算量的情況下優(yōu)化了網(wǎng)絡,使網(wǎng)絡分類、識別的性能得到有效提升。
本文采用ResNet-34的結構,其結構如圖3和表1所示。
圖3 ResNet-34網(wǎng)絡結構圖Figure 3. Diagram of ResNet-34 network structure
表1 ResNet-34網(wǎng)絡結構
網(wǎng)絡由5大卷積層和全連接層組成,conv2_x、conv3_x、conv4_x和conv5_x均包含殘差結構的building block,全連接層為softmax分類器。由于本文的目標是4分類,所以將ResNet-34網(wǎng)絡預訓練模型的最后一層修改為4分類輸出,然后采用softmax計算概率。本文在優(yōu)化網(wǎng)絡訓練過程中采用的是隨機梯度下降法(Stochastic Gradient Descent,SGD),學習率的設置不再采用單一值法。配合網(wǎng)絡訓練的特點,通過指數(shù)衰減進行學習率的更新,避免學習率過大導致網(wǎng)絡激蕩。分類損失采用交叉熵損失函數(shù)結合結構風險最小化,損失函數(shù)為
(1)
式中,x代表輸入訓練樣本;y代表標簽;q代表預測類別概率;θ代表權重;λ代表權重衰減系數(shù);類別的概率均由softmax計算。
臨床上依據(jù)2000年全國病毒性肝炎病理診斷標準[15]對肝纖維化進行分期:S0代表正常且無纖維化;S1代表匯管區(qū)擴大纖維化;S2代表匯管區(qū)周圍纖維化,有纖維間隔結構;S3代表有大量纖維間隔,小葉結構發(fā)生紊亂,無硬結節(jié);S4代表早期肝硬化。
本文高頻超聲兔子肝纖維化的數(shù)據(jù)來源于第二軍醫(yī)大學上海長征醫(yī)院,其肝纖維化兔子模型的建立采用為:從健康的雄性,體重在1.8~2.1 kg的新西蘭白兔中隨機選取65只注射硫代乙酰胺溶液,其余15只注射生理鹽水的方式獲取肝纖維化和正常肝臟的超聲和病理圖像。注射后第6~19周采集兔子的二維高頻超聲圖像。將麻醉的兔子仰臥位固定,采用11L-D線陣探頭,頻率在4~10 MHz的美國GE Voluson E8超聲診斷儀于劍突下和右側肋間進行掃查,每個至少采集3張高頻超聲圖像備用。處死超聲檢查后的兔子并取相同部位的組織制作病理切片,在未知超聲檢查結果的情況下進行病理判斷,得到4組實驗數(shù)據(jù)。綜合圖像質(zhì)量與臨床醫(yī)學價值因素,最終得到數(shù)據(jù)共有95例,其中S0~S1組有16例;S2組有32例;S3組有24例;S4組有23例像素。圖片平均尺寸為:寬度450 ± 67像素,高度為500 ± 59像素。
為了獲取足夠的數(shù)據(jù),本文將原圖進行90°、180°、270°旋轉,按照大小尺寸為64×64,步長為16進行patch裁剪。通過灰度共生矩陣的圖像對比度指標剔除不合格的小塊。本文保留對比度大于0.005的小塊,剔除對比度小于0.005的小塊,建立patch小塊的訓練集a。對于測試集,對原圖采用不同的角度旋轉(45°、135°、225和315°)。patch小塊裁剪尺寸設置為45×45,步長15,通過灰度共生矩陣指標剔除不合格的小塊,建立patch小塊測試集b。
肝纖維化病程中S0~S4期的典型圖像如圖4所示。圖中可以觀察到隨著病程的加劇,肝包膜與肝實質(zhì)區(qū)域都發(fā)生了改變。圖5為篩選掉的不合格小塊區(qū)域示意圖。
圖4 不同肝纖維化期樣本的高頻超聲圖 (a)S0~S1 (b)S2 (c)S3 (d)S4Figure 4. High frequency ultrasonography of samples with different stages of liver fibrosis(a)S0~S1 (b) S2 (c) S3 (d) S4
圖5 不合格小塊示意圖Figure 5. Diagram of unqualified small patches
本文基于TensorFlow深度學習框架進行研究,計算機硬件配置為AMD CPU 3.80 GHz,4塊GTX1080ti GPU,共64 GB。軟件環(huán)境為:Windows 10 64 bit、Python 3.6.5、CUDA 9.0、CUDNN 7.0以及TensorFlow-GPU 1.12.0。實驗在訓練與測試階段均使用GPU加速,batch-size設置為256,學習率(learning-rate)初始值設置為0.002,學習衰減率為0.000 4,迭代50 000次。
混淆矩陣是評價模型分類結果優(yōu)劣的指標,本文采用混淆矩陣的相關指標對肝纖維化的分類模型進行評價。正例定義為Positive,反例定義為Negative。真實值是Positive且被模型預測為Positive的數(shù)量定義為True Positive(TP);真實值是Positive但被模型預測為Negative的數(shù)量定義為False Negative(FN);真實值是Negative但被模型預測為Positive的數(shù)量定義為False Positive(FP);真實值是Negative且被模型預測為Negative的數(shù)量定義為True Negative(TN)。各指標組成了混淆矩陣,如圖6所示。
圖6 混淆矩陣Figure 6. Confusion matrix
由混淆矩陣得出以下統(tǒng)計指標:
(1)準確率。準確率表示分類模型中判斷正確的數(shù)量占總數(shù)量的比值
(2)
(2)靈敏度。靈敏度表示在真實值為Positive的所有結果中,預測正確的數(shù)量占總數(shù)量的比重
(3)
(3)特異度。特異度表示在真實值為Negative的所有結果中,預測正確的數(shù)量占總數(shù)量的比重
(4)
(4)精確率。精確率表示在預測值為Positive的所有結果中,預測正確的數(shù)量占總數(shù)量的比重
(5)
F1-score為
(6)
式中,P為Precision;R代表Recall。
測試階段采用patch小塊投票策略實現(xiàn)肝纖維化分類。一幅圖像經(jīng)分塊送進網(wǎng)絡進行測試,得出每個小塊的類別以及準確率信息,通過如下投票策略得到整幅圖的類別:
(1)Set the initial value:intk=0,inti=0,
intn=num
(2)fori=1,2,3,…,n:
if(ACC)(i)≥75%
k++
(3)ifk≥n×70% judge success
Else judge failure
設置準確率閾值為0.75,大于0.75的小塊即認為判定正確。所有判別正確的小塊占總小塊數(shù)的概率值大于0.7,則認為該幅圖的類別為占多數(shù)概率的小塊的類別。
采用投票原則對測試集的測試結果如表2和表3所示。
表2 模型測試的混淆矩陣
表3 模型測試的分類性能
表2和表3分別為分類模型的混淆矩陣、特異度、靈敏度和F1-score。由混淆矩陣可以計算得出,對于肝纖維化的S0~S1、S2、S3與S4期的分類靈敏度分別為93.75%、90.63%、87.50%和86.96%;特異度分別為93.75%、87.88%、87.50%和90.91%;F1-score分別為93.75%、89.23%、87.50%和88.90%,相較于其他利用高頻超聲圖像做肝纖維化定量診斷的實驗,達到了較好的效果。由分類性能表格可以看到在F1- score中,S3期與S4期的分數(shù)較低,主要原因在于S3與S4時期肝纖維化病程加劇,肝包膜區(qū)域均發(fā)生斷裂、波浪狀改變,肝實質(zhì)區(qū)域回聲增強,圖像較為相似,模型較難區(qū)分??傮w來說,本文基于遷移學習的ResNet-34分類方法實現(xiàn)了對肝纖維化的高準確率分類,尤其是在S2與S3期中表現(xiàn)良好,具有較強的實用性。
本文分類網(wǎng)絡選取ResNet-34,同時選取了ResNet-18網(wǎng)絡做肝纖維化四分類的對比試驗。
對于肝纖維化的分期研究中,大多數(shù)研究人員采用傳統(tǒng)的提取肝實質(zhì)紋理特征的方法進行分析或者依據(jù)形態(tài)特征變化統(tǒng)計分析差異性。文獻[4]將反映肝纖維化聲像圖紋理特征的GLCM參數(shù)送入神經(jīng)網(wǎng)絡,通過建立神經(jīng)網(wǎng)絡模型對肝纖維化進行分期診斷。文獻[16]采用人工監(jiān)督和梯度優(yōu)化結合的方法提取肝包膜骨架,定義肝包膜輪廓的平滑性和連續(xù)性特征,并統(tǒng)計分析這些特征的差異性,得到平滑性特征中S0~S1組較其余組差異具有統(tǒng)計學意義;連續(xù)性特征中S0~S1組與S4、S2與S4組差異具有統(tǒng)計學意義。
本文選用另外兩組對比實驗,一個是常規(guī)的紋理分析法,一個是基于文獻[16]的肝包膜平滑性、連續(xù)性特征的分類方法。在紋理分析法對比實驗中選取圖像GLCM的ASM(Angular Second Moment)能量、對比度、逆差矩和熵4個參數(shù)指標,將4個參數(shù)指標組合成一組特征向量(p1,p2,p3,p4)輸入到支持向量機(Support Vector Machine,SVM)訓練分類器中,從紋理特征分析的角度對肝纖維化進行分類。文獻[16]只是統(tǒng)計分析了肝纖維化各期特征的差異性,沒有進行分期比較。本文基于肝包膜平滑性、連續(xù)性特征中的線段數(shù)量、熵、線段之間的夾角均值、方差等數(shù)據(jù),采用KNN(K-Nearest Neighbor,KNN)、TSVM等分類器進行分類。對比實驗結果如表4所示。
表4 其他網(wǎng)絡模型分類性能對比試驗
對比實驗中設置了相同的實驗環(huán)境與條件。表中給出了各期分類的準確率。分析可知, ResNet-18網(wǎng)絡分類性能比ResNet-34差,這是因為隨著網(wǎng)絡層數(shù)的增加,高層網(wǎng)絡可以提取到圖像中更加豐富的高層次特征,結合肝包膜與肝實質(zhì)的高級特征更有利于肝纖維化的分期診斷。同時,遷移學習的加入使得網(wǎng)絡訓練更加高效,而采用基于GLCM參數(shù)的紋理分析法和肝包膜特征的分類方法所取得的分類效果并不理想。
本文提出了基于遷移學習策略的ResNet-34網(wǎng)絡用于肝纖維化的四分類任務,采用微調(diào)訓練的方式,實現(xiàn)了纖維化的四分類,具有較高的準確率。同時,與常規(guī)紋理提取分析用于肝纖維化分類的方法進行了對比分析,驗證了本文方法的有效性。但本文方法還存在一些不足,針對S3與S4時期圖像特征相似所導致的分類精度不高的問題仍有待解決,未來將會進一步對相關的模型優(yōu)化問題進行研究。