近日,Neuromation 團隊在 Medium 上撰文介紹其最新研究成果:利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)評估兒童骨齡,這一自動骨齡評估系統(tǒng)可以得到與放射科專家相似或更好的結(jié)果。該團隊評估了手骨不同區(qū)域,發(fā)現(xiàn)僅對掌骨和近端指骨進行評估,得到的結(jié)果與對整個手骨進行評估的結(jié)果相差無幾。為了克服放射圖像的質(zhì)量和多樣性問題,該團隊引入了嚴格的清理和標準化過程,以增強模型的魯棒性和準確率,提升骨齡評估的準確率、提高結(jié)果的可復(fù)現(xiàn)性以及臨床醫(yī)生的效率。
Alexander 的論文《Pediatric Bone Age Assessment Using Deep Convolutional Neural Networks》(Vladimir Iglovikov、Alexander Kalinin 以及 Alexey Shvets 聯(lián)合完成的一項工作)已經(jīng)發(fā)表在第 4 屆 Deep Learning in Medical Image Analysis(DLMIA 2018)Workshop 上。這不是 Neuromation 在醫(yī)學影像方面發(fā)表的第一篇論文,但這是一個深入了解該研究細節(jié)的好機會。與我們之前發(fā)表的關(guān)于醫(yī)療概念規(guī)范化的文章(https://medium.com/neuromation-io-blog/neuromation-research-medical-concept-normalization-in-social-media-posts-f06504200cec)相似,這是一件嚴肅且相當復(fù)雜的事。
骨齡反映了你的年齡:骨齡評估
骨齡,基本上就是指你的骨頭看起來多大了。隨著孩子的成長,他的骨骼也在逐漸成長。這就意味著你可以通過觀察兒童的骨骼,根據(jù)具備此類骨骼的兒童的平均年齡來了解這個孩子多大了。這時候你可能會想這是不是一篇考古學方面的文章:畢竟活著的小孩應(yīng)該并不怎么拍 X 光。
這么想是對的,但是也不對。正常發(fā)育的話,兒童的骨齡應(yīng)該在生理年齡(日歷年齡)的上下 10% 區(qū)間內(nèi)波動。但也有例外,例如,孩子青春期的生長突增可能會影響骨齡。因此,如果骨齡比生理年齡大幾年的話,該兒童就會提前停止生長,而如果骨骼比較「年輕」的話,則可能會出現(xiàn)延遲的生長突增。此外,在給定身高和骨齡的情況下,你可以準確預(yù)測這個孩子的成年身高,這也可以派上一些用場:如果你的孩子喜歡籃球,你可能想知道他未來身高能否超過 7 英尺。
還有一些例外情況:骨齡和生理年齡嚴重不匹配是預(yù)示著身體出現(xiàn)問題,如成長障礙和內(nèi)分泌問題等。骨齡只能告訴醫(yī)生患者在特定時間時骨骼的相對成熟度,還要和其他臨床指標結(jié)合才能區(qū)分出是正常生長還是生長相對提前或遲緩。連續(xù)的骨齡讀數(shù)可以說明兒童的發(fā)育方向或治療進展。通過評估骨齡,兒科醫(yī)生可以診斷兒童發(fā)育過程中的內(nèi)分泌和代謝紊亂問題,如骨發(fā)育不良或受營養(yǎng)、代謝或其他未知因素影響的生長缺陷,這可能會損害骨骺或骨質(zhì)成熟。在這種生長遲緩情況下,骨齡和身高可能會有相同程度的延遲,但是經(jīng)過治療,此類兒童仍可達到正常成年人的身高。
綜上所述,兒科醫(yī)生常常會用 X 光照射兒童手部來評估其骨齡……所以自動化是一個很大的問題。
讀手骨:從手掌和手腕評估骨齡
骨骼成熟度主要是通過骨骺中次級骨化中心的發(fā)育和骨化程度來評估的。幾十年來,評估骨骼成熟度通常是根據(jù)對手骨和手腕的骨骼發(fā)育情況進行可視化評估來進行的。以下是放射科醫(yī)生在查看手部 X 光片時看到的內(nèi)容:
現(xiàn)在評估骨齡的兩種最常用的技術(shù)是 Greulich-Pyle 法和 Tanner-Whitehouse(TW2)法。這兩種方法都是根據(jù)成熟度指標,用左手手掌和手腕的放射圖像評估骨骼成熟度,即管狀骨的骨骺從骨化的最早階段到它們和骨干融合的過程中放射影像呈現(xiàn)出的變化,或者是扁骨在變成成年人骨骼形狀之前在放射影像上呈現(xiàn)出來的變化……別擔心,我們在此之前也沒聽過這些。我們將這一過程展示在下圖中:
像 GP 或 TW2 這樣的傳統(tǒng)評估骨骼成熟度的技術(shù)耗時較久,從一定程度上說也太過主觀,因此一些高級的放射科醫(yī)生也不總是認可這些結(jié)果。因此,使用計算機輔助診斷系統(tǒng)提升骨齡評估的準確率、提高結(jié)果的可復(fù)現(xiàn)性以及臨床醫(yī)生的效率就變得很誘人了。
近期,一些基于深度學習的方法已經(jīng)證明在解決生物醫(yī)學領(lǐng)域的多個問題時性能優(yōu)于傳統(tǒng)的機器學習方法。而在醫(yī)學成像領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于糖尿病視網(wǎng)膜病變篩查、乳腺癌組織學成像分析、骨骼疾病預(yù)測以及一些其他問題中。如果你想深入了解這些應(yīng)用,請參閱我們之前的文章(https://medium.com/neuromation-io-blog/artificial-intelligence-technologies-could-help-solve-the-global-healthcare-crisis-441a51ac45b8)。
因此我們試著將現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)架構(gòu)應(yīng)用于骨齡評估。下文將描述用全自動深度學習方法解決骨齡評估問題的完整過程,我們所用的數(shù)據(jù)來自兒科骨齡估計挑戰(zhàn)賽(http://rsnachallenges.cloudapp.net/competitions/4),該比賽由北美放射學會(RSNA)舉辦。盡管我們的主要目標是要獲得盡可能高的準確率,但還是要保持系統(tǒng)的魯棒性,克服不同醫(yī)療中心的不同硬件所生成 X 光片的質(zhì)量問題和多樣性問題。
數(shù)據(jù)
數(shù)據(jù)集來自于舉辦了兒科骨齡挑戰(zhàn)賽 2017 的 RSNA。他們從斯坦福兒童醫(yī)院和科羅拉多兒童醫(yī)院獲取了放射圖像,這些圖像是在不同時間不同條件下用不同設(shè)備拍出來的。專業(yè)的兒科放射醫(yī)師對這些圖像進行注釋,他們將這些圖像與 Greulich 和 Pyle 所著《手部骨骼發(fā)育放射圖解》進行比較,并在報告中記錄骨齡。大賽組委會從這些報告中提取了骨齡信息,并將其作為模型訓(xùn)練的真值。
放射圖像在比例、方向、曝光等方面各不相同,而且通常會帶有特定的標記。完整的 RSNA 數(shù)據(jù)集包含 12,611 個訓(xùn)練圖像、1,425 個驗證圖像以及 200 個測試圖像。顯而易見測試集特別小,且在開發(fā)階段我們并不知道其標簽,因此我們從訓(xùn)練集中取出 1000 張放射圖像,在這些圖像上對模型進行測試。
訓(xùn)練數(shù)據(jù)包含 5778 名女性和 6833 名男性的放射圖像。他們的年齡從 1 個月到 228 個月不等,受試者多為 5 到 15 歲的兒童:
預(yù)處理 I:分割和對比
我們工作的關(guān)鍵貢獻之一是進行了嚴格的預(yù)處理。為了防止模型因圖像偽影學習到錯誤信息,我們首先通過圖像分割來移除圖像背景。
我們用 U-Net 深度架構(gòu)(https://arxiv.org/abs/1505.04597)進行圖像分割。自 2015 年 U-Net 出現(xiàn)以來,它就成為分割任務(wù)中的主力。它由一個獲取上下文信息的收縮路徑(contracting path)和一個用于精準定位的對稱擴張路徑(symmetric expanding path)組成;因為本文主題不是 U-Net,我們簡單地展示一下其架構(gòu)即可,細節(jié)請參閱論文。
我們還在訓(xùn)練過程中使用了批歸一化使函數(shù)收斂。我們的算法使用的是廣義損失函數(shù)(generalized loss function)式中 H 是標準的二進制交叉熵損失函數(shù),式中 y_i 是像素 i 的真值,是像素的預(yù)測概率,J 是 Jaccard 系數(shù)的可微泛化:。
我們通過移除小的無關(guān)的連接組件和均衡對比度完成了分割步驟。下圖是我們進行預(yù)處理的流程:
如你所見,放射圖像的質(zhì)量和對比度有了顯著的提升。你可以到這里停止預(yù)處理,用我們的預(yù)處理方法和標準技術(shù)(如縮放和旋轉(zhuǎn))來增強訓(xùn)練集,然后訓(xùn)練一個標準的卷積神經(jīng)網(wǎng)絡(luò)用于分類或回歸。我們試了這種方法,盡管結(jié)果不如我們的最終模型,但是也很令人滿意。
之前的 GP 和 TW 方法關(guān)注的是手骨的特定部位(包括指骨、掌骨和腕骨)。我們決定試著用這些信息,針對幾個解析度較高的特定區(qū)域分別訓(xùn)練模型,再評估和比較它們的性能。為了正確定位這些區(qū)域,我們要將所有圖的大小和位置轉(zhuǎn)換成一樣的,也就是說將它們放在相同的坐標空間中,該過程通常被稱為圖像配準(image registration)。
預(yù)處理 II:基于特征點進行圖像配準
我們的圖像配準策略很簡單:檢測手骨中幾個特征點的坐標,然后計算仿射變換參數(shù)(縮放、旋轉(zhuǎn)、平移和反射),使圖像與標準位置一致。
為了創(chuàng)建特征點模型的訓(xùn)練集,我們用 VGG 圖像注釋器(VIA)手動標注了 800 張放射影像。我們選擇了三個特征點:第三根手指遠端指骨的頂端,拇指遠端指骨的頂端以及頭狀骨的中心。我們將特征點的像素坐標作為回歸模型的訓(xùn)練目標。
再說一次,特征點模型是受一系列 VGG 族模型啟發(fā)、通過深度卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)的回歸模型。VGG 模塊由兩個帶有指數(shù)線性單元激活、批歸一化和最大池化的卷積層組成。下圖是其架構(gòu):
該模型使用均方誤差(MSE)損失和 Adam 優(yōu)化器訓(xùn)練得到:
為了提升泛化性能,我們對輸入應(yīng)用了包括旋轉(zhuǎn)、平移和縮放在內(nèi)的標準增強。模型輸出 6 個坐標,即 3 個特征點中每個特征點有 2 個坐標。
找到特征點后,我們就可以計算所有放射影像的仿射變換(縮放、旋轉(zhuǎn)、平移)。我們的目標是在保持圖像縱橫比的情況下,將其調(diào)整到統(tǒng)一的位置:
1. 中指頂端水平對齊,在圖像上邊緣以下約 100 個像素處。
2. 頭狀骨水平對齊,在圖像下邊緣以上約 480 個像素處。
通常用左手的放射影像評估骨齡,但有時候數(shù)據(jù)集中的圖像會呈鏡像。為了檢測這些圖像并對其進行適當調(diào)整,我們使用拇指作為特征點。
來看一個圖像配準模型起作用的例子。如你所見,手骨成功地旋轉(zhuǎn)到我們希望的標準位置了:
此處展示了更多經(jīng)過完整預(yù)處理的樣本。分割、歸一化以及配準結(jié)果見第四行:
骨齡評估模型
遵循 Gilsanz 和 Ratib 的《Hand Bone Age: a Digital Atlas of Skeletal Maturity》,我們從經(jīng)過配準的放射影像中選擇了三個特定區(qū)域,針對每一個區(qū)域訓(xùn)練了一個單獨的模型:
1. 完整的手骨;
2. 腕骨;
3. 掌骨和近端指骨。
下圖是真實放射影像中的上述區(qū)域以及相對應(yīng)的分割樣本:
卷積神經(jīng)網(wǎng)絡(luò)常用于分類任務(wù),但是骨齡評估本質(zhì)上是一個回歸問題:我們必須要預(yù)測年齡,而年齡是一個連續(xù)的變量。因此,我們需要比較兩種 CNN 架構(gòu)設(shè)置——回歸和分類。我們分別實現(xiàn)了二者,它們的參數(shù)和訓(xùn)練方法類似,區(qū)別只在于最后兩層。
我們的第一個模型是自定義的 VGG 架構(gòu),其輸出結(jié)果是回歸結(jié)果。網(wǎng)絡(luò)堆疊了 6 個卷積核大小分別為 32、64、128、256、384 的卷積模塊,接著是兩個有 2048 個神經(jīng)元的全連接層和一個輸出層(見下圖)。輸入的大小取決于需要預(yù)測的圖像區(qū)域。為了更好地進行泛化,我們在全連接層之前應(yīng)用了 dropout 層。我們還重新調(diào)整了回歸目標也就是骨齡的范圍,將其定在 [-1,1]。為了避免過擬合,我們還使用縮放、旋轉(zhuǎn)和位移等方式增強訓(xùn)練數(shù)據(jù)。該網(wǎng)絡(luò)是用 Adam 優(yōu)化器通過最小化平均絕對誤差(MAE)訓(xùn)練得到的:
第二個模型是分類模型,該模型和回歸模型很像,只是最后兩層不同。一個主要的區(qū)別是分配給每個骨齡的類別不同。在數(shù)據(jù)集中,骨齡是以月為單位的,所以我們可以將其視為 240 類,將倒數(shù)第二層變成有 240 個輸出的 softmax 層。這一層輸出的是概率的向量,這里的類別概率真值范圍在 [0,1] 區(qū)間內(nèi)。最后一層中,概率向量與不同骨齡的向量 [1,…,239,240] 相乘。因此,該模型會輸出骨齡的期望值。我們用和回歸模型同樣的訓(xùn)練方法訓(xùn)練了這個模型。
下圖是分類模型的架構(gòu),除了多了 softmax 層和分箱層(binning layer)外,其他和回歸模型相同:
結(jié)果
我們從訓(xùn)練集中取出 1000 張放射圖像作為驗證集來評估模型。遵循 GP 和 TW 方法將性別考慮在內(nèi),對每個空間區(qū)域我們都針對性別訓(xùn)練了性別特定模型,并與在整個數(shù)據(jù)集上訓(xùn)練得到的不區(qū)分性別的模型做了比較。以下是結(jié)果總結(jié):
結(jié)果證明在輸入中添加性別可以將模型準確率平均提高 1.4 個月。最左邊這一列表示針對兩個性別的回歸模型的表現(xiàn)。掌骨和近端指骨區(qū)域(區(qū)域 C)的 MAE 為 8.42 個月,整個手骨(區(qū)域 A)的 MAE 為 8.08 個月。對這三個區(qū)域進行線性集成可以將準確率提高到 7.52 個月(表中最后一行)。
性別特定的回歸模型(第二列和第三列)將針對男性的模型的 MAE 改善為 6.30 個月,將針對女性的模型的 MAE 改善到 6.49。需要注意的是,就女性而言,掌骨和近端指骨區(qū)域的 MAE 為 6.79 個月,甚至比對整個手骨進行預(yù)測的結(jié)果還準確,后者的 MAE 僅為 7.12 個月。
性別特定的分類模型(第四列和第五列)的結(jié)果比回歸模型的結(jié)果略好,它們的 MAE 分別為 6.16 個月和 6.39 個月(最后一行)。
最后,在第六列,我們將所有性別特定的模型(分類和回歸)進行集成。在驗證集上,集成模型得到的準確率為 6.10 個月,這也是當前最佳的結(jié)果,無論從骨齡評估挑戰(zhàn)賽還是從實際應(yīng)用來看,這都是一個很好的結(jié)果。
結(jié)論
本文介紹了如何開發(fā)可以準確評估骨骼成熟度的自動骨齡評估系統(tǒng),該系統(tǒng)可以得到與放射科專家相似或更好的結(jié)果。我們評估了手骨不同區(qū)域,發(fā)現(xiàn)可以僅對掌骨和近端指骨進行評估,得到的結(jié)果與對整個手骨進行評估的結(jié)果相差無幾。為了克服放射圖像的質(zhì)量和多樣性問題,我們引入了嚴格的清理和標準化過程,以顯著增強模型的魯棒性和準確率。
我們的模型有極大的潛力部署在臨床環(huán)境中,幫助臨床醫(yī)生實時判斷骨齡。這可以保證在患病兒童出現(xiàn)成長障礙時能進行及時的診斷和治療。