王嘉慶,梅禮曄,張俊華
(云南大學(xué) 信息學(xué)院,昆明 650500)
醫(yī)學(xué)上通常將人類骨骼年齡(以下稱為骨齡)作為其生物學(xué)年齡,與出生年齡相比,骨齡能更準(zhǔn)確地反映人體成熟度。在臨床醫(yī)學(xué)中,骨齡評估廣泛應(yīng)用于兒童成長預(yù)測與相關(guān)疾病輔助診斷,是研究兒童內(nèi)分泌、遺傳因子和生長障礙的一種常用手段[1-3]。
目前臨床通常采用G&P 方法[4]或TW 方法[5]通過左手(非慣用手)骨X射線圖像進(jìn)行骨齡人工評估。G&P方法又稱圖譜法,該方法主要通過觀察遠(yuǎn)端指骨、中間指骨以及腕部的各種形狀骨樣,將特定感興趣區(qū)域(Region of Interest,RoI)的圖像特征與標(biāo)準(zhǔn)圖譜中各年齡段圖像特征進(jìn)行對比來評估骨齡。TW 方法又稱計分法,該方法主要通過分析骨骺/干骨后端感興趣區(qū)域(Epiphysis/Metaphysis Region of Interest,E/MRoI)以及腕骨感興趣區(qū)域(Carpal Region of Interest,CRoI)等20 個感興趣區(qū)域(Region of Interest,RoI)并分別評分,然后將所有RoI 分?jǐn)?shù)相加得到骨成熟度總評分來評估骨齡。然而G&P 方法和TW 方法耗時較長,以G&P 方法和TW 方法中TW2 方法為例,經(jīng)驗(yàn)豐富的醫(yī)生使用這兩種方法分別需耗費(fèi)1.4 min 和7.9 min[6]。此外,上述方法均受醫(yī)生主觀因素影響,評估所得骨齡通常存在誤差,其中,G&P 方法的平均誤差為0.96 歲,TW2 方法的平均誤差為0.74 歲[7]。
目前自動化骨齡檢測方法大部分按照TW 方法的原理對手骨X 射線圖像的RoI 特征進(jìn)行自動化提取。21 世紀(jì)初,PIETKA 等人[8-9]提出基于自組織指骨距離提取的E/MRoI 分割方法,并用模糊分類器進(jìn)行TW 級分配,通過評估360 張0 歲~6 歲兒童的手骨X 射線圖像得到骨齡平均絕對誤差(Mean Absolute Error,MAE)為2.41 歲,經(jīng)改進(jìn)分類器處理后得到MAE 為1.93 歲。2007 年,GERTYCH 等人[10]采用模糊邏輯的骨齡評估方法在1 400 張0 歲~18 歲兒童手骨X 射線圖像公共數(shù)據(jù)集上進(jìn)行評估,得到骨齡MAE 為2.15 歲。2016 年,SEOK 等人[11]提出一種決策規(guī)則的評估方法,在135 張未公布年齡的X 射線圖像非公開數(shù)據(jù)集上評估得到骨齡均方誤差(Mean Square Error,MSE)為0.19 歲。文獻(xiàn)[12]提出一種BoneXpert 方法,融合G&P 方法和TW 方法建立統(tǒng)一模型進(jìn)行自動年齡評估,利用生成模型和活動外觀模型自動分割手部和腕部的15 根骨骼,然后根據(jù)骨骼的形狀、強(qiáng)度與紋理特征確定其G&P 或TW2 骨齡,在1 559 張7 歲~17 歲兒童的手骨X 射線圖像非公開數(shù)據(jù)集上評估得到G&P 和TW2 骨齡的MSE 為0.42 歲和0.80 歲。2017 年,SPAMPINATO 等人[13]提出一種基于深度學(xué)習(xí)的骨齡評估方法BoNet,在0 歲~18 歲涵蓋所有種族和性別的手骨X 射線圖像公共數(shù)據(jù)集上進(jìn)行自動化骨齡評估,得到骨齡MAE 為0.8 歲。
在上述研究中,除了基于深度學(xué)習(xí)的自動化骨齡評估方法,其他方法均基于G&P 方法或TW 方法中的E/MRoI 和CRoI 對手骨X 射線圖像進(jìn)行分割提取圖像幾何物理特征,并計算出圖像特征來評估骨齡,然而將臨床特征直接作為計算機(jī)視覺或機(jī)器學(xué)習(xí)分析處理的對象極大限制了自動化骨齡評估的泛化能力。此外,骨齡評估還存在實(shí)驗(yàn)數(shù)據(jù)集不公開、數(shù)據(jù)量較少、針對特定性別或種族,以及大部分受試者因年齡較小骨骼尚未定型等問題,其中BoneXpert方法對圖像質(zhì)量要求較高。以上因素導(dǎo)致實(shí)驗(yàn)結(jié)果不能真實(shí)反映自動化評估方法的性能,且評估方法不易驗(yàn)證與推廣。
針對上述自動化骨齡評估方法存在的問題,本文提出一種基于深度學(xué)習(xí)的X 射線圖像自動骨齡評估方法,建立改進(jìn)的端到端深度學(xué)習(xí)網(wǎng)絡(luò)Inception ResNet V2,減少特征提取復(fù)雜度與局限性,在不借助任何先驗(yàn)信息的情況下,將手骨X 射線圖像簡單預(yù)處理后作為神經(jīng)網(wǎng)絡(luò)的輸入,通過改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)自動提取手骨X 射線圖像深層特征進(jìn)行識別和分類,并采用分層K折交叉驗(yàn)證法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
深度學(xué)習(xí)與傳統(tǒng)簡單學(xué)習(xí)的區(qū)別在于,前者通過多層網(wǎng)絡(luò)結(jié)構(gòu)自主學(xué)習(xí)和表征數(shù)據(jù)特征[14],而后者需要人工提取特征信息。人工提取的特征通常不準(zhǔn)確或者不能很好地表征事物本質(zhì),難以取得理想的學(xué)習(xí)效果。與傳統(tǒng)簡單學(xué)習(xí)相比,深度學(xué)習(xí)的效果更優(yōu)異且對數(shù)據(jù)特征的提取更準(zhǔn)確。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)在圖像領(lǐng)域的成功應(yīng)用之一[15]。
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)已成為圖像識別性能優(yōu)化的關(guān)鍵,其中具有代表性的是2014 年ImageNet ILSVRC 圖像識別競賽的冠軍模型GoogleNet[16-17],其以相對較低的計算成本獲得良好的識別精度。GoogleNet 深度學(xué)習(xí)架構(gòu)中較先進(jìn)的Inception V3、Inception V4、Inception ResNet V1 以及Inception ResNet V2 網(wǎng)絡(luò)[18]的檢測錯誤率與參數(shù)量如表1 所示。可以看出,Inception ResNet V2 網(wǎng)絡(luò)的Top-1 和Top-5 錯誤率均低于GoogleNet 系列的其他網(wǎng)絡(luò),因此,本文將Inception ResNet V2 作為基礎(chǔ)網(wǎng)絡(luò)用于骨齡評估。
表1 不同網(wǎng)絡(luò)的檢測錯誤率與參數(shù)量Table 1 Detection error rate and parameter quantity of different networks
Inception ResNet V2 網(wǎng)絡(luò)的原始結(jié)構(gòu)由Stem 模塊、Inception-ResNet模塊、Reduction 模塊以及Softmax 層組成。Inception-ResNet 模塊使用1×1 卷積和降維的方法減少參數(shù)量,在增加網(wǎng)絡(luò)深度的同時使用Shortcut 可有效避免梯度消失的問題,提高識別速度并加快收斂。
使用Inception ResNet V2 網(wǎng)絡(luò)進(jìn)行骨齡評估的具體過程為:利用深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征學(xué)習(xí),將手骨X 射線圖像的低層特征和高層特征進(jìn)行融合,同時重復(fù)利用手骨特征有效性,并刪減Inception ResNet V2 網(wǎng)絡(luò)中Softmax 層以優(yōu)化Inception ResNet V2 網(wǎng)絡(luò)結(jié)構(gòu),如圖1 所示(彩色效果參見《計算機(jī)工程》官網(wǎng)HTML 版)。
圖1 優(yōu)化的Inception ResNet V2 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Optimized structure of Inception ResNet V2 network
1.1.1 優(yōu)化的Inception 模塊
Inception 模塊使用多層感知器代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中的通用線性結(jié)構(gòu),多層感知器具有良好的非線性分類能力,在分類精度和收斂速度方面具有更好的效果,適用于骨齡評估等非線性分類問題。Inception 模塊原始結(jié)構(gòu)如圖2(a)所示,該模塊利用1×1、3×3、5×5 卷積核和3×3 最大池化操作擴(kuò)展網(wǎng)絡(luò)的深度與寬度,將不同規(guī)模卷積核的結(jié)果聯(lián)合濾波獲得輸出,以提取更豐富的手骨X 射線圖像深層特征??紤]到5×5 卷積核需要大量計算,采用3×3 卷積核代替5×5 卷積核[19]對Inception 模塊進(jìn)行優(yōu)化,獲得Inception-A 模塊,其結(jié)構(gòu)如圖2(b)所示。為進(jìn)一步減少計算量,引入非對稱卷積核,使用1×n卷積核與n×1 卷積核代替n×n卷積核,在卷積核感受野不變的情況下節(jié)約計算資源。非對稱卷積核在中等大小的特征圖上分類精度更高,經(jīng)過測試得到卷積優(yōu)化后的Inception-B 模塊和Inception-C 模塊,其結(jié)構(gòu)分別如圖2(c)和圖2(d)所示。
圖2 原始模塊和卷積優(yōu)化后的Inception 模塊結(jié)構(gòu)Fig.2 Structure of original module and convolution optimized Inception modules
1.1.2 殘差連接的Inception 模塊
Inception 模塊的引入使網(wǎng)絡(luò)寬度與深度增加,卷積優(yōu)化后的Inception 模塊可降低計算量并提取到手骨X 射線圖像不同層次的特征,有利于提高骨齡預(yù)測精度,但也會造成梯度消失或梯度爆炸等問題。因此,通過在卷積優(yōu)化后的Inception 模塊中加入殘差連接[20]結(jié)構(gòu)可解決卷積神經(jīng)網(wǎng)絡(luò)深度增加帶來的副作用,殘差連接結(jié)構(gòu)如圖3 所示。
圖3 殘差連接結(jié)構(gòu)Fig.3 Residual connection structure
殘差連接結(jié)構(gòu)的輸入和輸出關(guān)系表示為:
其 中,xl為殘差塊的輸入,xl+1、xl+2和xL分別為xl后第1 層、第2 層和第L層殘差塊的輸出,F(xiàn)(·) 為激活函數(shù),w為卷積操作。
根據(jù)反向傳播算法中的鏈?zhǔn)椒▌t,損失函數(shù)c關(guān)于xl的梯度表示為:
在殘差連接結(jié)構(gòu)中,當(dāng)更新某個節(jié)點(diǎn)的參數(shù)時,由于xL=F(x)+xl,因此鏈?zhǔn)角髮?dǎo)后即使數(shù)值再小,其左側(cè)1 的存在使原鏈?zhǔn)角髮?dǎo)中連乘運(yùn)算變?yōu)檫B加運(yùn)算,從而保證該節(jié)點(diǎn)參數(shù)更新時不出現(xiàn)梯度消失或梯度爆炸現(xiàn)象。
利用殘差連接結(jié)構(gòu)的優(yōu)勢,將改進(jìn)后的Inception 模塊與殘差連接結(jié)合[17]分別得到Inception-ResNet-A 模塊、Inception-ResNet-B 模塊和Inception-ResNet-C 模塊,其結(jié)構(gòu)如圖4 所示。
圖4 3 種模塊的結(jié)構(gòu)Fig.4 Structure of three modules
本文采用固定學(xué)習(xí)率訓(xùn)練優(yōu)化后的Inception ResNet V2 網(wǎng)絡(luò),考慮到固定學(xué)習(xí)率下網(wǎng)絡(luò)模型不易收斂,采用MSE 損失函數(shù)。由于MSE 損失梯度隨損失減小而降低,當(dāng)梯度下降即將結(jié)束時不易錯過最小值,因此訓(xùn)練網(wǎng)絡(luò)采用MSE 損失函數(shù)較其他損失函數(shù)所得效果更精確。
將骨齡評估損失定義為手骨X 射線圖像評估所得骨齡讀數(shù)與標(biāo)簽(真實(shí))值的均方誤差,計算公式為:
其中,N為樣本數(shù),ytrue為骨齡真實(shí)值,ypred為骨齡預(yù)測值。MSE 值越大,表示骨齡預(yù)測結(jié)果越差。
對于骨齡數(shù)值回歸預(yù)測結(jié)果,本文采用平均絕對誤差作為評價指標(biāo),MAE 值越小,說明預(yù)測精度越高,計算公式為:
本文實(shí)驗(yàn)數(shù)據(jù)集采用一種骨骼年齡自動基準(zhǔn)測量的公共綜合X 射線數(shù)據(jù)集Digital Hand Atlas Database System。該數(shù)據(jù)集包含1 391 張18 歲以下兒童左手骨X 射線圖像,涵蓋亞洲人、非洲人、高加索人、西班牙人4 個種族,每張圖像都由醫(yī)學(xué)專家提供骨齡值,兒童的種族、年齡、性別分布情況如表2所示。由于該數(shù)據(jù)集為公共數(shù)據(jù)集,適用性較強(qiáng),涵蓋種族數(shù)量多、年齡范圍廣,因此其訓(xùn)練的網(wǎng)絡(luò)可應(yīng)用于各年齡段及各種族的骨齡評估,在一定程度上彌補(bǔ)了目前自動骨齡評估方法的不足。
表2 數(shù)據(jù)集中兒童的種族、年齡和性別分布情況Table 2 Race,age and gender distribution of children in the dataset
利用深度學(xué)習(xí)處理圖像時,需采用大量數(shù)據(jù)進(jìn)行訓(xùn)練,然而數(shù)據(jù)集樣本不足,因此,需擴(kuò)增數(shù)據(jù)集樣本數(shù)量。由于不能改變手骨X 射線圖像RoI 特征的原始樣貌,因此未選用隨機(jī)拉伸等數(shù)據(jù)增強(qiáng)方法,而是通過將圖像上下翻轉(zhuǎn)180°使數(shù)據(jù)集圖像數(shù)量擴(kuò)大為原來的兩倍。然后對數(shù)據(jù)增強(qiáng)后的手骨X 射線圖像進(jìn)行Z-Score 標(biāo)準(zhǔn)化處理,經(jīng)過處理的數(shù)據(jù)均值為0,標(biāo)準(zhǔn)差為1,最終將不同量級的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一度量,從而提高數(shù)據(jù)可比性并削弱數(shù)據(jù)解釋性。
本文實(shí)驗(yàn)所用數(shù)據(jù)集包括亞洲人、非洲人、高加索人和西班牙人4 個種族,不同種族手骨X 射線圖像的特征區(qū)域存在差異。采用標(biāo)準(zhǔn)K折交叉驗(yàn)證法(見圖5(a))將數(shù)據(jù)集按順序分為K等份,對于每一次模型的訓(xùn)練測試(共K次),都有(K-1)份做訓(xùn)練集,剩下1 份做測試集,K次訓(xùn)練測試后共得到K個結(jié)果,對該結(jié)果取平均值作為最終結(jié)果。由于此方法按順序?qū)?shù)據(jù)集劃分等份,可能存在樣本類別分配不均衡造成驗(yàn)證效果無意義,因此本文實(shí)驗(yàn)采用分層K折交叉驗(yàn)證法(見圖5(b))對數(shù)據(jù)分層采樣,確保訓(xùn)練集和測試集中樣本類別的比例與原始數(shù)據(jù)集相同,避免分類不均衡,以彌補(bǔ)標(biāo)準(zhǔn)K折交叉驗(yàn)證法的不足,使實(shí)驗(yàn)結(jié)果更準(zhǔn)確。
圖5 2 種交叉驗(yàn)證方法Fig.5 Two cross validation methods
本文實(shí)驗(yàn)在安裝Windows10 系統(tǒng)的GPU 計算平臺上進(jìn)行,采用Intel?CoreTMi7-8700K CPU、16 GB×2內(nèi)存以及NVIDIA GeForce GTX 1080Ti GPU,所有程序通過以Tensorflow 為后端的開源框架Keras 及其Python 接口實(shí)現(xiàn)。
本文采用MSE 損失函數(shù)和Adam 優(yōu)化算法[21]訓(xùn)練模型,批量大小設(shè)置為32,初始學(xué)習(xí)速率為0.1,以每次縮小為原速率1/5 或1/10 的速率依次遞減進(jìn)行學(xué)習(xí)速率調(diào)參,并在取得較高骨齡評估精度時通過微調(diào)學(xué)習(xí)速率取得最優(yōu)結(jié)果。使用骨齡標(biāo)簽值作為模型訓(xùn)練目標(biāo),在增強(qiáng)后的數(shù)據(jù)集上使用分層5 折交叉驗(yàn)證法評估網(wǎng)絡(luò)模型對骨齡的預(yù)測精度,每折進(jìn)行200 次迭代,并計算骨齡預(yù)測值和骨齡真實(shí)值的MAE 作為模型輸出。
神經(jīng)網(wǎng)絡(luò)權(quán)值的變化基于損失梯度的調(diào)整,而學(xué)習(xí)速率控制神經(jīng)網(wǎng)絡(luò)權(quán)值變化的速度。若學(xué)習(xí)速率過高,則梯度降幅較大,易越過最優(yōu)解;若學(xué)習(xí)速率過低,則梯度降幅較小,將會延長收斂時間。在采用改進(jìn)的Inception ResNet V2 網(wǎng)絡(luò)進(jìn)行骨齡評估過程中,為取得最優(yōu)學(xué)習(xí)速率,本文在不同學(xué)習(xí)速率下進(jìn)行實(shí)驗(yàn),所得結(jié)果如圖6所示??梢钥闯?,改進(jìn)的Inception ResNet V2網(wǎng)絡(luò)在評估骨齡過程中,當(dāng)學(xué)習(xí)速率小于0.005時MAE值開始收斂,并在學(xué)習(xí)速率為0.001 時MAE 達(dá)到最小值,得到模型訓(xùn)練后的最優(yōu)結(jié)果。
圖6 改進(jìn)Inception ResNet V2 網(wǎng)絡(luò)在不同學(xué)習(xí)速率下的MAE 值Fig.6 MAE values of improved Inception ResNet V2 network at different learning rates
為驗(yàn)證本文提出的改進(jìn)Inception ResNet V2 網(wǎng)絡(luò)(以下稱為本文網(wǎng)絡(luò))的檢測性能,將其與基于深度學(xué)習(xí)的BoNet[13]骨齡評估網(wǎng)絡(luò)(以下稱為BoNet 網(wǎng)絡(luò))在同一數(shù)據(jù)集上進(jìn)行對比。BoNet 網(wǎng)絡(luò)由5 個卷積層和位于第4個卷積層后的1個變形層組成,由含有2 048個神經(jīng)元的全連接層與用于估計的單神經(jīng)元組成回歸網(wǎng)絡(luò)。在對比實(shí)驗(yàn)中,本文網(wǎng)絡(luò)采用分層K折交叉驗(yàn)證法,BoNet 網(wǎng)絡(luò)采用標(biāo)準(zhǔn)K折交叉驗(yàn)證法,結(jié)果如表3所示。可以看出,本文網(wǎng)絡(luò)的MAE 值較BoNet 網(wǎng)絡(luò)更低,骨齡預(yù)測精度更高。由此可見,在包括多個種族、不同年齡和性別的公共數(shù)據(jù)集上,本文方法能提取更具區(qū)分性的特征,對骨骼圖像的識別率更高,具有較好的魯棒性與泛化能力。
表3 2 種網(wǎng)絡(luò)的MAE 值Table 3 MAE values of two networks
為驗(yàn)證Inception ResNet V2 網(wǎng)絡(luò)在骨齡評估方面的優(yōu)異性能,對比Inception V3、Inception V4、Inception ResNet V1 網(wǎng)絡(luò)(上述網(wǎng)絡(luò)均已刪去Softmax 層以便骨齡評估)的骨齡評估情況,采用MSE 損失函數(shù)和MAE指標(biāo)并利用分層K折交叉驗(yàn)證法進(jìn)行實(shí)驗(yàn),批處理圖像數(shù)量為32,通過調(diào)參得到各網(wǎng)絡(luò)的最優(yōu)學(xué)習(xí)速率,不同網(wǎng)絡(luò)的學(xué)習(xí)速率調(diào)參結(jié)果如圖7 所示。結(jié)合圖6 可以看出,Inception V3、Inception V4、Inception ResNet V1與Inception ResNet V2 網(wǎng)絡(luò)的最優(yōu)學(xué)習(xí)速率分別為0.001 0、0.010 0、0.000 5 和0.001 0。4 種網(wǎng)絡(luò)在最優(yōu)學(xué)習(xí)速率下所得MAE 值如表4 所示。
圖7 不同網(wǎng)絡(luò)的學(xué)習(xí)速率調(diào)參結(jié)果Fig.7 Results of parameter adjustments of learning rate of different networks
表4 4 種網(wǎng)絡(luò)在最優(yōu)學(xué)習(xí)速率下的MAE 值Table 4 MAE values of four networks at optimal learning rates
可以看出,Inception 系列網(wǎng)絡(luò)的骨齡預(yù)測精度均優(yōu)異于BoNet 網(wǎng)絡(luò),說明Inception 系列模塊在手骨X 射線圖像特征提取上具有優(yōu)異的效果。Inception ResNet V1 在Inception V3 的基礎(chǔ)上加入殘差連接結(jié)構(gòu),Inception ResNet V2 在Inception V4 的基礎(chǔ)上加入殘差連接結(jié)構(gòu),Inception V4 在Inception V3 基礎(chǔ)上對網(wǎng)絡(luò)進(jìn)行優(yōu)化,與Inception V3 相比,Inception V4 的網(wǎng)絡(luò)結(jié)構(gòu)更精簡且Inception 模塊更多,上述網(wǎng)絡(luò)中前者的MAE 值均低于后者,骨齡預(yù)測精度更高。以上實(shí)驗(yàn)結(jié)果表明,殘差網(wǎng)絡(luò)的連接結(jié)構(gòu)對骨齡評估有正向促進(jìn)作用。殘差網(wǎng)絡(luò)結(jié)構(gòu)使深度神經(jīng)網(wǎng)絡(luò)在前向傳播時的輸入信號從任意層直接傳播到高層,在一定程度上解決網(wǎng)絡(luò)退化問題,且深度神經(jīng)網(wǎng)絡(luò)在反向傳播時的錯誤信號可不經(jīng)過任何中間權(quán)重矩陣變換直接傳播到低層,在一定程度上緩解梯度彌散問題,從而提升網(wǎng)絡(luò)模型對手骨X線圖像特征的處理性能,得到更高的預(yù)測精度。
本文提出一種基于深度學(xué)習(xí)的改進(jìn)Inception ResNet V2 網(wǎng)絡(luò)骨齡評估方法。通過去除Softmax 層優(yōu)化深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在Inception 模塊中加入非對稱卷積核和殘差連接結(jié)構(gòu)提高分類精度,擴(kuò)展數(shù)據(jù)集避免深度學(xué)習(xí)算法出現(xiàn)過擬合現(xiàn)象,采用分層K折交叉驗(yàn)證法對數(shù)據(jù)均衡采樣。實(shí)驗(yàn)結(jié)果表明,與采用BoNet 網(wǎng)絡(luò)的方法相比,該方法骨齡預(yù)測精度更高,具有較好的魯棒性和泛化能力。后續(xù)將對卷積神經(jīng)網(wǎng)絡(luò)的特征提取區(qū)域進(jìn)行可視化研究,并與G&P 方法和TW 方法的特征提取區(qū)域進(jìn)行對比,進(jìn)一步提高本文方法的骨齡評估性能。