周長才,劉 爽,王 昕
(長春工業大學 計算機科學與工程學院,吉林 長春 130012)
顱內出血,即顱骨內發生的出血。它是臨床常見的急重癥,具有極高的致死率或致殘率,對病人的生命健康有極其嚴重的威脅。快速確定病人出血的位置和類型是治療的關鍵。導致顱內出血的病因有多種,常見的有腦部遭受外傷、中風和高血壓等。根據腦中不同的出血部位,顱內出血分為腦實質內出血、腦室內出血、蛛網膜下腔出血、硬膜下出血和硬膜外出血5種亞型[1]。
近幾年,人工智能(Artificial Intelligence)中深度學習算法的火熱給各行各業帶來了福音,作為一種處理大數據的手段,在醫學圖像處理中也得到了廣泛應用。目前只有部分學者嘗試將深度學習應用于顱內出血的研究,Ye H等[2]在3家醫院收集2 836套CT掃描數據用于訓練和測試模型,結合卷積神經網絡VGG-16和雙向GRU作為一個端到端可訓練網絡,用于預測顱內出血和出血亞型種類。Chilamkurthy S等[3]在印度多家醫院收集腦CT圖像數據用于訓練深度學習模型,并驗證其有效性。Tomasz Lewicki等[4]用RSNA提供的數據集對顱內出血的亞型進行分類,每張圖像的準確率是93.3%。Arbabshirani M R等[5]采集約4萬張數據用于訓練,約1萬張數據用于測試,驗證了三維卷積神經網絡在檢測是否顱內出血任務上的有效性。綜上所述,目前多數算法的訓練樣本集數目有限,且只做單一的顱內出血檢測。文中在大樣本數據集上構建深度學習模型,對顱內出血及其亞型進行檢測。
卷積神經網絡(CNN)作為深度學習的一種典型算法,目前已在醫學影像處理中得到了廣泛應用,在肺結節的良惡性識別,皮膚及宮頸癌的探查,視網膜病變檢測,腦腫瘤檢測,以及目前的新冠肺炎篩查等方面表現出良好的計算機輔助診斷性能。它的基本結構包括輸入層、卷積層、池化層、全連接層及輸出層。輸入層即整個神經網絡結構的輸入,卷積層和池化層采取多輪交替設置,接下來是若干個全連接層,輸出層也稱為 Softmax 層,主要用于各種分類問題[6]。
文中選擇的卷積神經網絡是ResNet(Residual Neural Network),即殘差網絡。原因在于ResNet在幾個腦圖像分析項目中得到應用,如用于診斷阿爾茨海默病[7],并具有近乎完美的多類預測的準確性。另一項研究[8]將各種深度學習模型用于大腦異常檢測,發現ResNet具有最佳分類精度。
ResNet是2015年提出的一種神經網絡,按照層數的不同可以分為ResNet18、ResNet34、ResNet50、ResNet101、ResNet152這5種類型,不同深度ResNet的具體結構見表1。

表1 ResNet的結構
ResNet的結構單元如圖1所示。

(a) BasicBlock (b) Bottleneck
根據Block類型,可以將這5種ResNet分為兩類:
1)基于BasicBlock(見圖1(a)),淺層網絡ResNet18、34都由BasicBlock搭成;
2)基于Bottleneck(見圖1(b)),深層網絡ResNet50、101、152乃至更深的網絡都由Bottleneck搭成。Block相當于積木,每個layer都由若干Block搭建而成,再由layer組成整個網絡[9]。
使用ResNet-101中的卷積基作為特征提取器,網絡模型的數據流向如圖2所示。

圖2 網絡模型的數據流向圖
全連接層設計成兩層,包括512個神經元的隱藏層(relu激活)和6個神經元的輸出層(Sigmoid激活)。模型的輸出向量是一個6維向量,有5個值對應診斷每種出血類型的可能性,第6個值對應屬于“任何”類別的可能性,即指出血類型不止一種。在訓練中,使用Adam優化器,學習率為1e-5,通過超參數優化確定,批量大小設置為16。
模型訓練是在處理器為Intel(R) Xeon(R) Gold 6130CPU、顯卡為NVIDIA Tesla P100的硬件平臺上完成的,在Windows 10操作系統下進行環境配置,Cuda版本為11.0,Keras版本為2.4.3。整個實驗的深度學習框架用Keras搭建,一些殘差網絡的結構參數可以直接從Keras導入。
文中數據集來自2019年Kaggle平臺推出的RSNA急性顱內出血檢測競賽(RSNA Intracranial Hemorrhage Detection),該數據集由北美放射學會(RSNA)提供,共包含752 803個標記DCM文件,都是512×512的大腦橫斷面圖像[10]。我們留出20%隨機選擇的樣本作為測試集來測試模型的準確率,其中每個文件都標有一種或多種出血類型,或者根本沒有出血。數據集中可能出現的5種出血類型如圖3所示。

(a) 腦實質內 (b) 腦室內 (c) 蛛網膜下腔 (d) 硬膜下 (e) 硬膜外
標簽以CSV文件的形式給出,每個患者ID包含6行,每行對應一種出血類型,后跟一個布爾值表示該圖像中是否存在該類型的出血。
CT掃描是使用X射線生成的,組織密度越大,X射線衰減越多,從而產生的像素強度越高。文獻[3]指出,對于特征提取,加窗口后可以最大化特征之間的細微差異。因此在預處理階段,原始CT中HU值被3個影像科醫生常用的視窗截斷,即腦窗(窗位40,窗寬80)、骨窗(窗位600,窗寬2 800)和硬膜下窗(窗位80,窗寬200),然后歸一化到[0,1]范圍內,再拼接成輸入圖像的3個通道中,所有輸入圖像將會通過雙線性插值縮小到 224×224,預處理之后的CT圖像如圖4所示。

(a) 無對比掃描 (b) 腦窗 (c) 硬膜下窗 (d) 骨窗
對于模型評估,在訓練完整個網絡后,隨機抽取整個數據集的20%(大約150 000個示例)作為測試集來測試模型的有效性。文中采用分類任務中最常見的一個性能指標——準確率(Accuracy)對顱內腦出血類型進行評價,其定義式如下

(1)
式中:TP、TN、FP、FN——分別表示真陽率、真陰率、假陽率和假陰率。
實驗結果表明,基于ResNet-101構建的深度網絡模型每幅圖像的識別準確率為94.6%。為了進一步證明文中算法的有效性,還與其他兩種顱腦出血分類方法[3-4]及文獻[2]中提到的VGG-16網絡進行了對比實驗,結果見表2。

表2 不同算法的識別準確率對比
從4種不同網絡模型的識別準確率結果可以看出,文中算法的識別準確率更高,相比于VGG-16網絡,在每張圖像準確率上高出2~3個百分點。
研究一種用于顱內出血及其亞類型分類的深度學習方法,該方法基于當前在圖像分類任務上取得優異成果的ResNet網絡,并將該分類模型進行調整,應用于顱內出血檢測任務中。該方法在RSNA顱內出血數據集上進行了大量實驗,使用加窗方法進行預處理,將CT掃描轉換為16位dicom圖像,并轉換為3個通道,浮點數矩陣歸一化處理在[0,1]。最終實驗結果表明,該方法在顱內出血分類上取得了優異性能,模型的分類平均準確率為98.1%,每幅圖像的平均準確率為94.6%,對顱內出血的計算機輔助診斷具有參考價值。