王嘉慶,梅禮曄,張俊華
(云南大學 信息學院,昆明 650500)
醫學上通常將人類骨骼年齡(以下稱為骨齡)作為其生物學年齡,與出生年齡相比,骨齡能更準確地反映人體成熟度。在臨床醫學中,骨齡評估廣泛應用于兒童成長預測與相關疾病輔助診斷,是研究兒童內分泌、遺傳因子和生長障礙的一種常用手段[1-3]。
目前臨床通常采用G&P 方法[4]或TW 方法[5]通過左手(非慣用手)骨X射線圖像進行骨齡人工評估。G&P方法又稱圖譜法,該方法主要通過觀察遠端指骨、中間指骨以及腕部的各種形狀骨樣,將特定感興趣區域(Region of Interest,RoI)的圖像特征與標準圖譜中各年齡段圖像特征進行對比來評估骨齡。TW 方法又稱計分法,該方法主要通過分析骨骺/干骨后端感興趣區域(Epiphysis/Metaphysis Region of Interest,E/MRoI)以及腕骨感興趣區域(Carpal Region of Interest,CRoI)等20 個感興趣區域(Region of Interest,RoI)并分別評分,然后將所有RoI 分數相加得到骨成熟度總評分來評估骨齡。然而G&P 方法和TW 方法耗時較長,以G&P 方法和TW 方法中TW2 方法為例,經驗豐富的醫生使用這兩種方法分別需耗費1.4 min 和7.9 min[6]。此外,上述方法均受醫生主觀因素影響,評估所得骨齡通常存在誤差,其中,G&P 方法的平均誤差為0.96 歲,TW2 方法的平均誤差為0.74 歲[7]。
目前自動化骨齡檢測方法大部分按照TW 方法的原理對手骨X 射線圖像的RoI 特征進行自動化提取。21 世紀初,PIETKA 等人[8-9]提出基于自組織指骨距離提取的E/MRoI 分割方法,并用模糊分類器進行TW 級分配,通過評估360 張0 歲~6 歲兒童的手骨X 射線圖像得到骨齡平均絕對誤差(Mean Absolute Error,MAE)為2.41 歲,經改進分類器處理后得到MAE 為1.93 歲。2007 年,GERTYCH 等人[10]采用模糊邏輯的骨齡評估方法在1 400 張0 歲~18 歲兒童手骨X 射線圖像公共數據集上進行評估,得到骨齡MAE 為2.15 歲。2016 年,SEOK 等人[11]提出一種決策規則的評估方法,在135 張未公布年齡的X 射線圖像非公開數據集上評估得到骨齡均方誤差(Mean Square Error,MSE)為0.19 歲。文獻[12]提出一種BoneXpert 方法,融合G&P 方法和TW 方法建立統一模型進行自動年齡評估,利用生成模型和活動外觀模型自動分割手部和腕部的15 根骨骼,然后根據骨骼的形狀、強度與紋理特征確定其G&P 或TW2 骨齡,在1 559 張7 歲~17 歲兒童的手骨X 射線圖像非公開數據集上評估得到G&P 和TW2 骨齡的MSE 為0.42 歲和0.80 歲。2017 年,SPAMPINATO 等人[13]提出一種基于深度學習的骨齡評估方法BoNet,在0 歲~18 歲涵蓋所有種族和性別的手骨X 射線圖像公共數據集上進行自動化骨齡評估,得到骨齡MAE 為0.8 歲。
在上述研究中,除了基于深度學習的自動化骨齡評估方法,其他方法均基于G&P 方法或TW 方法中的E/MRoI 和CRoI 對手骨X 射線圖像進行分割提取圖像幾何物理特征,并計算出圖像特征來評估骨齡,然而將臨床特征直接作為計算機視覺或機器學習分析處理的對象極大限制了自動化骨齡評估的泛化能力。此外,骨齡評估還存在實驗數據集不公開、數據量較少、針對特定性別或種族,以及大部分受試者因年齡較小骨骼尚未定型等問題,其中BoneXpert方法對圖像質量要求較高。以上因素導致實驗結果不能真實反映自動化評估方法的性能,且評估方法不易驗證與推廣。
針對上述自動化骨齡評估方法存在的問題,本文提出一種基于深度學習的X 射線圖像自動骨齡評估方法,建立改進的端到端深度學習網絡Inception ResNet V2,減少特征提取復雜度與局限性,在不借助任何先驗信息的情況下,將手骨X 射線圖像簡單預處理后作為神經網絡的輸入,通過改進卷積神經網絡自動提取手骨X 射線圖像深層特征進行識別和分類,并采用分層K折交叉驗證法對網絡進行訓練。
深度學習與傳統簡單學習的區別在于,前者通過多層網絡結構自主學習和表征數據特征[14],而后者需要人工提取特征信息。人工提取的特征通常不準確或者不能很好地表征事物本質,難以取得理想的學習效果。與傳統簡單學習相比,深度學習的效果更優異且對數據特征的提取更準確。卷積神經網絡是深度學習在圖像領域的成功應用之一[15]。
近年來,深度卷積神經網絡已成為圖像識別性能優化的關鍵,其中具有代表性的是2014 年ImageNet ILSVRC 圖像識別競賽的冠軍模型GoogleNet[16-17],其以相對較低的計算成本獲得良好的識別精度。GoogleNet 深度學習架構中較先進的Inception V3、Inception V4、Inception ResNet V1 以及Inception ResNet V2 網絡[18]的檢測錯誤率與參數量如表1 所示。可以看出,Inception ResNet V2 網絡的Top-1 和Top-5 錯誤率均低于GoogleNet 系列的其他網絡,因此,本文將Inception ResNet V2 作為基礎網絡用于骨齡評估。

表1 不同網絡的檢測錯誤率與參數量Table 1 Detection error rate and parameter quantity of different networks
Inception ResNet V2 網絡的原始結構由Stem 模塊、Inception-ResNet模塊、Reduction 模塊以及Softmax 層組成。Inception-ResNet 模塊使用1×1 卷積和降維的方法減少參數量,在增加網絡深度的同時使用Shortcut 可有效避免梯度消失的問題,提高識別速度并加快收斂。
使用Inception ResNet V2 網絡進行骨齡評估的具體過程為:利用深度卷積神經網絡進行特征學習,將手骨X 射線圖像的低層特征和高層特征進行融合,同時重復利用手骨特征有效性,并刪減Inception ResNet V2 網絡中Softmax 層以優化Inception ResNet V2 網絡結構,如圖1 所示(彩色效果參見《計算機工程》官網HTML 版)。

圖1 優化的Inception ResNet V2 網絡結構Fig.1 Optimized structure of Inception ResNet V2 network
1.1.1 優化的Inception 模塊
Inception 模塊使用多層感知器代替傳統卷積神經網絡中的通用線性結構,多層感知器具有良好的非線性分類能力,在分類精度和收斂速度方面具有更好的效果,適用于骨齡評估等非線性分類問題。Inception 模塊原始結構如圖2(a)所示,該模塊利用1×1、3×3、5×5 卷積核和3×3 最大池化操作擴展網絡的深度與寬度,將不同規模卷積核的結果聯合濾波獲得輸出,以提取更豐富的手骨X 射線圖像深層特征。考慮到5×5 卷積核需要大量計算,采用3×3 卷積核代替5×5 卷積核[19]對Inception 模塊進行優化,獲得Inception-A 模塊,其結構如圖2(b)所示。為進一步減少計算量,引入非對稱卷積核,使用1×n卷積核與n×1 卷積核代替n×n卷積核,在卷積核感受野不變的情況下節約計算資源。非對稱卷積核在中等大小的特征圖上分類精度更高,經過測試得到卷積優化后的Inception-B 模塊和Inception-C 模塊,其結構分別如圖2(c)和圖2(d)所示。

圖2 原始模塊和卷積優化后的Inception 模塊結構Fig.2 Structure of original module and convolution optimized Inception modules
1.1.2 殘差連接的Inception 模塊
Inception 模塊的引入使網絡寬度與深度增加,卷積優化后的Inception 模塊可降低計算量并提取到手骨X 射線圖像不同層次的特征,有利于提高骨齡預測精度,但也會造成梯度消失或梯度爆炸等問題。因此,通過在卷積優化后的Inception 模塊中加入殘差連接[20]結構可解決卷積神經網絡深度增加帶來的副作用,殘差連接結構如圖3 所示。

圖3 殘差連接結構Fig.3 Residual connection structure
殘差連接結構的輸入和輸出關系表示為:

其 中,xl為殘差塊的輸入,xl+1、xl+2和xL分別為xl后第1 層、第2 層和第L層殘差塊的輸出,F(·) 為激活函數,w為卷積操作。
根據反向傳播算法中的鏈式法則,損失函數c關于xl的梯度表示為:

在殘差連接結構中,當更新某個節點的參數時,由于xL=F(x)+xl,因此鏈式求導后即使數值再小,其左側1 的存在使原鏈式求導中連乘運算變為連加運算,從而保證該節點參數更新時不出現梯度消失或梯度爆炸現象。
利用殘差連接結構的優勢,將改進后的Inception 模塊與殘差連接結合[17]分別得到Inception-ResNet-A 模塊、Inception-ResNet-B 模塊和Inception-ResNet-C 模塊,其結構如圖4 所示。

圖4 3 種模塊的結構Fig.4 Structure of three modules
本文采用固定學習率訓練優化后的Inception ResNet V2 網絡,考慮到固定學習率下網絡模型不易收斂,采用MSE 損失函數。由于MSE 損失梯度隨損失減小而降低,當梯度下降即將結束時不易錯過最小值,因此訓練網絡采用MSE 損失函數較其他損失函數所得效果更精確。
將骨齡評估損失定義為手骨X 射線圖像評估所得骨齡讀數與標簽(真實)值的均方誤差,計算公式為:

其中,N為樣本數,ytrue為骨齡真實值,ypred為骨齡預測值。MSE 值越大,表示骨齡預測結果越差。
對于骨齡數值回歸預測結果,本文采用平均絕對誤差作為評價指標,MAE 值越小,說明預測精度越高,計算公式為:

本文實驗數據集采用一種骨骼年齡自動基準測量的公共綜合X 射線數據集Digital Hand Atlas Database System。該數據集包含1 391 張18 歲以下兒童左手骨X 射線圖像,涵蓋亞洲人、非洲人、高加索人、西班牙人4 個種族,每張圖像都由醫學專家提供骨齡值,兒童的種族、年齡、性別分布情況如表2所示。由于該數據集為公共數據集,適用性較強,涵蓋種族數量多、年齡范圍廣,因此其訓練的網絡可應用于各年齡段及各種族的骨齡評估,在一定程度上彌補了目前自動骨齡評估方法的不足。

表2 數據集中兒童的種族、年齡和性別分布情況Table 2 Race,age and gender distribution of children in the dataset
利用深度學習處理圖像時,需采用大量數據進行訓練,然而數據集樣本不足,因此,需擴增數據集樣本數量。由于不能改變手骨X 射線圖像RoI 特征的原始樣貌,因此未選用隨機拉伸等數據增強方法,而是通過將圖像上下翻轉180°使數據集圖像數量擴大為原來的兩倍。然后對數據增強后的手骨X 射線圖像進行Z-Score 標準化處理,經過處理的數據均值為0,標準差為1,最終將不同量級的數據轉化為統一度量,從而提高數據可比性并削弱數據解釋性。
本文實驗所用數據集包括亞洲人、非洲人、高加索人和西班牙人4 個種族,不同種族手骨X 射線圖像的特征區域存在差異。采用標準K折交叉驗證法(見圖5(a))將數據集按順序分為K等份,對于每一次模型的訓練測試(共K次),都有(K-1)份做訓練集,剩下1 份做測試集,K次訓練測試后共得到K個結果,對該結果取平均值作為最終結果。由于此方法按順序將數據集劃分等份,可能存在樣本類別分配不均衡造成驗證效果無意義,因此本文實驗采用分層K折交叉驗證法(見圖5(b))對數據分層采樣,確保訓練集和測試集中樣本類別的比例與原始數據集相同,避免分類不均衡,以彌補標準K折交叉驗證法的不足,使實驗結果更準確。

圖5 2 種交叉驗證方法Fig.5 Two cross validation methods
本文實驗在安裝Windows10 系統的GPU 計算平臺上進行,采用Intel?CoreTMi7-8700K CPU、16 GB×2內存以及NVIDIA GeForce GTX 1080Ti GPU,所有程序通過以Tensorflow 為后端的開源框架Keras 及其Python 接口實現。
本文采用MSE 損失函數和Adam 優化算法[21]訓練模型,批量大小設置為32,初始學習速率為0.1,以每次縮小為原速率1/5 或1/10 的速率依次遞減進行學習速率調參,并在取得較高骨齡評估精度時通過微調學習速率取得最優結果。使用骨齡標簽值作為模型訓練目標,在增強后的數據集上使用分層5 折交叉驗證法評估網絡模型對骨齡的預測精度,每折進行200 次迭代,并計算骨齡預測值和骨齡真實值的MAE 作為模型輸出。
神經網絡權值的變化基于損失梯度的調整,而學習速率控制神經網絡權值變化的速度。若學習速率過高,則梯度降幅較大,易越過最優解;若學習速率過低,則梯度降幅較小,將會延長收斂時間。在采用改進的Inception ResNet V2 網絡進行骨齡評估過程中,為取得最優學習速率,本文在不同學習速率下進行實驗,所得結果如圖6所示。可以看出,改進的Inception ResNet V2網絡在評估骨齡過程中,當學習速率小于0.005時MAE值開始收斂,并在學習速率為0.001 時MAE 達到最小值,得到模型訓練后的最優結果。

圖6 改進Inception ResNet V2 網絡在不同學習速率下的MAE 值Fig.6 MAE values of improved Inception ResNet V2 network at different learning rates
為驗證本文提出的改進Inception ResNet V2 網絡(以下稱為本文網絡)的檢測性能,將其與基于深度學習的BoNet[13]骨齡評估網絡(以下稱為BoNet 網絡)在同一數據集上進行對比。BoNet 網絡由5 個卷積層和位于第4個卷積層后的1個變形層組成,由含有2 048個神經元的全連接層與用于估計的單神經元組成回歸網絡。在對比實驗中,本文網絡采用分層K折交叉驗證法,BoNet 網絡采用標準K折交叉驗證法,結果如表3所示。可以看出,本文網絡的MAE 值較BoNet 網絡更低,骨齡預測精度更高。由此可見,在包括多個種族、不同年齡和性別的公共數據集上,本文方法能提取更具區分性的特征,對骨骼圖像的識別率更高,具有較好的魯棒性與泛化能力。

表3 2 種網絡的MAE 值Table 3 MAE values of two networks
為驗證Inception ResNet V2 網絡在骨齡評估方面的優異性能,對比Inception V3、Inception V4、Inception ResNet V1 網絡(上述網絡均已刪去Softmax 層以便骨齡評估)的骨齡評估情況,采用MSE 損失函數和MAE指標并利用分層K折交叉驗證法進行實驗,批處理圖像數量為32,通過調參得到各網絡的最優學習速率,不同網絡的學習速率調參結果如圖7 所示。結合圖6 可以看出,Inception V3、Inception V4、Inception ResNet V1與Inception ResNet V2 網絡的最優學習速率分別為0.001 0、0.010 0、0.000 5 和0.001 0。4 種網絡在最優學習速率下所得MAE 值如表4 所示。

圖7 不同網絡的學習速率調參結果Fig.7 Results of parameter adjustments of learning rate of different networks

表4 4 種網絡在最優學習速率下的MAE 值Table 4 MAE values of four networks at optimal learning rates
可以看出,Inception 系列網絡的骨齡預測精度均優異于BoNet 網絡,說明Inception 系列模塊在手骨X 射線圖像特征提取上具有優異的效果。Inception ResNet V1 在Inception V3 的基礎上加入殘差連接結構,Inception ResNet V2 在Inception V4 的基礎上加入殘差連接結構,Inception V4 在Inception V3 基礎上對網絡進行優化,與Inception V3 相比,Inception V4 的網絡結構更精簡且Inception 模塊更多,上述網絡中前者的MAE 值均低于后者,骨齡預測精度更高。以上實驗結果表明,殘差網絡的連接結構對骨齡評估有正向促進作用。殘差網絡結構使深度神經網絡在前向傳播時的輸入信號從任意層直接傳播到高層,在一定程度上解決網絡退化問題,且深度神經網絡在反向傳播時的錯誤信號可不經過任何中間權重矩陣變換直接傳播到低層,在一定程度上緩解梯度彌散問題,從而提升網絡模型對手骨X線圖像特征的處理性能,得到更高的預測精度。
本文提出一種基于深度學習的改進Inception ResNet V2 網絡骨齡評估方法。通過去除Softmax 層優化深度卷積神經網絡結構,在Inception 模塊中加入非對稱卷積核和殘差連接結構提高分類精度,擴展數據集避免深度學習算法出現過擬合現象,采用分層K折交叉驗證法對數據均衡采樣。實驗結果表明,與采用BoNet 網絡的方法相比,該方法骨齡預測精度更高,具有較好的魯棒性和泛化能力。后續將對卷積神經網絡的特征提取區域進行可視化研究,并與G&P 方法和TW 方法的特征提取區域進行對比,進一步提高本文方法的骨齡評估性能。