前沿 | Neuromation新研究:利用卷積神經網絡進行兒童骨齡評估

選自Medium

作者:Tete Xiao、Yingcheng Liu、

Bolei Zhou、Yuning Jiang、Jian Sun

近日,Neuromation 團隊在 Medium 上撰文介紹其最新研究成果:利用卷積神經網絡(CNN)評估兒童骨齡,這一自動骨齡評估系統可以得到與放射科專家相似或更好的結果。該團隊評估了手骨不同區域,發現僅對掌骨和近端指骨進行評估,得到的結果與對整個手骨進行評估的結果相差無幾。爲了克服放射圖像的質量和多樣性問題,該團隊引入了嚴格的清理和標準化過程,以增強模型的魯棒性和準確率,提升骨齡評估的準確率、提高結果的可復現性以及臨牀醫生的效率。

Alexander 的論文《Pediatric Bone Age Assessment Using Deep Convolutional Neural Networks》(Vladimir Iglovikov、Alexander Kalinin 以及 Alexey Shvets 聯合完成的一項工作)已經發表在第 4 屆 Deep Learning in Medical Image Analysis(DLMIA 2018)Workshop 上。這不是 Neuromation 在醫學影像方面發表的第一篇論文,但這是一個深入瞭解該研究細節的好機會。與我們之前發表的關於醫療概念規範化的文章(https://medium.com/neuromation-io-blog/neuromation-research-medical-concept-normalization-in-social-media-posts-f06504200cec)相似,這是一件嚴肅且相當複雜的事。

骨齡反映了你的年齡:骨齡評估

骨齡,基本上就是指你的骨頭看起來多大了。隨着孩子的成長,他的骨骼也在逐漸成長。這就意味着你可以通過觀察兒童的骨骼,根據具備此類骨骼的兒童的平均年齡來了解這個孩子多大了。這時候你可能會想這是不是一篇考古學方面的文章:畢竟活着的小孩應該並不怎麼拍 X 光。

這麼想是對的,但是也不對。正常發育的話,兒童的骨齡應該在生理年齡(日曆年齡)的上下 10% 區間內波動。但也有例外,例如,孩子青春期的生長突增可能會影響骨齡。因此,如果骨齡比生理年齡大幾年的話,該兒童就會提前停止生長,而如果骨骼比較「年輕」的話,則可能會出現延遲的生長突增。此外,在給定身高和骨齡的情況下,你可以準確預測這個孩子的成年身高,這也可以派上一些用場:如果你的孩子喜歡籃球,你可能想知道他未來身高能否超過 7 英尺。

還有一些例外情況:骨齡和生理年齡嚴重不匹配是預示着身體出現問題,如成長障礙和內分泌問題等。骨齡只能告訴醫生患者在特定時間時骨骼的相對成熟度,還要和其他臨牀指標結合才能區分出是正常生長還是生長相對提前或遲緩。連續的骨齡讀數可以說明兒童的發育方向或治療進展。通過評估骨齡,兒科醫生可以診斷兒童發育過程中的內分泌和代謝紊亂問題,如骨發育不良或受營養、代謝或其他未知因素影響的生長缺陷,這可能會損害骨骺或骨質成熟。在這種生長遲緩情況下,骨齡和身高可能會有相同程度的延遲,但是經過治療,此類兒童仍可達到正常成年人的身高。

綜上所述,兒科醫生常常會用 X 光照射兒童手部來評估其骨齡……所以自動化是一個很大的問題。

讀手骨:從手掌和手腕評估骨齡

骨骼成熟度主要是通過骨骺中次級骨化中心的發育和骨化程度來評估的。幾十年來,評估骨骼成熟度通常是根據對手骨和手腕的骨骼發育情況進行可視化評估來進行的。以下是放射科醫生在查看手部 X 光片時看到的內容:

現在評估骨齡的兩種最常用的技術是 Greulich-Pyle 法和 Tanner-Whitehouse(TW2)法。這兩種方法都是根據成熟度指標,用左手手掌和手腕的放射圖像評估骨骼成熟度,即管狀骨的骨骺從骨化的最早階段到它們和骨幹融合的過程中放射影像呈現出的變化,或者是扁骨在變成成年人骨骼形狀之前在放射影像上呈現出來的變化……別擔心,我們在此之前也沒聽過這些。我們將這一過程展示在下圖中:

像 GP 或 TW2 這樣的傳統評估骨骼成熟度的技術耗時較久,從一定程度上說也太過主觀,因此一些高級的放射科醫生也不總是認可這些結果。因此,使用計算機輔助診斷系統提升骨齡評估的準確率、提高結果的可復現性以及臨牀醫生的效率就變得很誘人了。

近期,一些基於深度學習的方法已經證明在解決生物醫學領域的多個問題時性能優於傳統的機器學習方法。而在醫學成像領域,卷積神經網絡已經成功應用於糖尿病視網膜病變篩查、乳腺癌組織學成像分析、骨骼疾病預測以及一些其他問題中。如果你想深入瞭解這些應用,請參閱我們之前的文章(https://medium.com/neuromation-io-blog/artificial-intelligence-technologies-could-help-solve-the-global-healthcare-crisis-441a51ac45b8)。

因此我們試着將現代深度神經網絡架構應用於骨齡評估。下文將描述用全自動深度學習方法解決骨齡評估問題的完整過程,我們所用的數據來自兒科骨齡估計挑戰賽(http://rsnachallenges.cloudapp.net/competitions/4),該比賽由北美放射學會(RSNA)舉辦。儘管我們的主要目標是要獲得儘可能高的準確率,但還是要保持系統的魯棒性,克服不同醫療中心的不同硬件所生成 X 光片的質量問題和多樣性問題。

數據

數據集來自於舉辦了兒科骨齡挑戰賽 2017 的 RSNA。他們從斯坦福兒童醫院和科羅拉多兒童醫院獲取了放射圖像,這些圖像是在不同時間不同條件下用不同設備拍出來的。專業的兒科放射醫師對這些圖像進行註釋,他們將這些圖像與 Greulich 和 Pyle 所著《手部骨骼發育放射圖解》進行比較,並在報告中記錄骨齡。大賽組委會從這些報告中提取了骨齡信息,並將其作爲模型訓練的真值。

放射圖像在比例、方向、曝光等方面各不相同,而且通常會帶有特定的標記。完整的 RSNA 數據集包含 12,611 個訓練圖像、1,425 個驗證圖像以及 200 個測試圖像。顯而易見測試集特別小,且在開發階段我們並不知道其標籤,因此我們從訓練集中取出 1000 張放射圖像,在這些圖像上對模型進行測試。

訓練數據包含 5778 名女性和 6833 名男性的放射圖像。他們的年齡從 1 個月到 228 個月不等,受試者多爲 5 到 15 歲的兒童:

預處理 I:分割和對比

我們工作的關鍵貢獻之一是進行了嚴格的預處理。爲了防止模型因圖像僞影學習到錯誤信息,我們首先通過圖像分割來移除圖像背景。

我們用 U-Net 深度架構(https://arxiv.org/abs/1505.04597)進行圖像分割。自 2015 年 U-Net 出現以來,它就成爲分割任務中的主力。它由一個獲取上下文信息的收縮路徑(contracting path)和一個用於精準定位的對稱擴張路徑(symmetric expanding path)組成;因爲本文主題不是 U-Net,我們簡單地展示一下其架構即可,細節請參閱論文。

我們還在訓練過程中使用了批歸一化使函數收斂。我們的算法使用的是廣義損失函數(generalized loss function)

式中 H 是標準的二進制交叉熵損失函數

,式中 y_i 是像素 i 的真值,

是像素的預測概率,J 是 Jaccard 係數的可微泛化:

我們通過移除小的無關的連接組件和均衡對比度完成了分割步驟。下圖是我們進行預處理的流程:

如你所見,放射圖像的質量和對比度有了顯著的提升。你可以到這裏停止預處理,用我們的預處理方法和標準技術(如縮放和旋轉)來增強訓練集,然後訓練一個標準的卷積神經網絡用於分類或迴歸。我們試了這種方法,儘管結果不如我們的最終模型,但是也很令人滿意。

之前的 GP 和 TW 方法關注的是手骨的特定部位(包括指骨、掌骨和腕骨)。我們決定試着用這些信息,針對幾個解析度較高的特定區域分別訓練模型,再評估和比較它們的性能。爲了正確定位這些區域,我們要將所有圖的大小和位置轉換成一樣的,也就是說將它們放在相同的座標空間中,該過程通常被稱爲圖像配準(image registration)。

預處理 II:基於特徵點進行圖像配準

我們的圖像配準策略很簡單:檢測手骨中幾個特徵點的座標,然後計算仿射變換參數(縮放、旋轉、平移和反射),使圖像與標準位置一致。

爲了創建特徵點模型的訓練集,我們用 VGG 圖像註釋器(VIA)手動標註了 800 張放射影像。我們選擇了三個特徵點:第三根手指遠端指骨的頂端,拇指遠端指骨的頂端以及頭狀骨的中心。我們將特徵點的像素座標作爲迴歸模型的訓練目標。

再說一次,特徵點模型是受一系列 VGG 族模型啓發、通過深度卷積神經網絡實現的迴歸模型。VGG 模塊由兩個帶有指數線性單元激活、批歸一化和最大池化的卷積層組成。下圖是其架構:

該模型使用均方誤差(MSE)損失和 Adam 優化器訓練得到:

爲了提升泛化性能,我們對輸入應用了包括旋轉、平移和縮放在內的標準增強。模型輸出 6 個座標,即 3 個特徵點中每個特徵點有 2 個座標。

找到特徵點後,我們就可以計算所有放射影像的仿射變換(縮放、旋轉、平移)。我們的目標是在保持圖像縱橫比的情況下,將其調整到統一的位置:

1. 中指頂端水平對齊,在圖像上邊緣以下約 100 個像素處。

2. 頭狀骨水平對齊,在圖像下邊緣以上約 480 個像素處。

通常用左手的放射影像評估骨齡,但有時候數據集中的圖像會呈鏡像。爲了檢測這些圖像並對其進行適當調整,我們使用拇指作爲特徵點。

來看一個圖像配準模型起作用的例子。如你所見,手骨成功地旋轉到我們希望的標準位置了:

此處展示了更多經過完整預處理的樣本。分割、歸一化以及配準結果見第四行:

骨齡評估模型

遵循 Gilsanz 和 Ratib 的《Hand Bone Age: a Digital Atlas of Skeletal Maturity》,我們從經過配準的放射影像中選擇了三個特定區域,針對每一個區域訓練了一個單獨的模型:

1. 完整的手骨;

2. 腕骨;

3. 掌骨和近端指骨。

下圖是真實放射影像中的上述區域以及相對應的分割樣本:

卷積神經網絡常用於分類任務,但是骨齡評估本質上是一個迴歸問題:我們必須要預測年齡,而年齡是一個連續的變量。因此,我們需要比較兩種 CNN 架構設置——迴歸和分類。我們分別實現了二者,它們的參數和訓練方法類似,區別只在於最後兩層。

我們的第一個模型是自定義的 VGG 架構,其輸出結果是迴歸結果。網絡堆疊了 6 個卷積核大小分別爲 32、64、128、256、384 的卷積模塊,接着是兩個有 2048 個神經元的全連接層和一個輸出層(見下圖)。輸入的大小取決於需要預測的圖像區域。爲了更好地進行泛化,我們在全連接層之前應用了 dropout 層。我們還重新調整了迴歸目標也就是骨齡的範圍,將其定在 [-1,1]。爲了避免過擬合,我們還使用縮放、旋轉和位移等方式增強訓練數據。該網絡是用 Adam 優化器通過最小化平均絕對誤差(MAE)訓練得到的:

第二個模型是分類模型,該模型和迴歸模型很像,只是最後兩層不同。一個主要的區別是分配給每個骨齡的類別不同。在數據集中,骨齡是以月爲單位的,所以我們可以將其視爲 240 類,將倒數第二層變成有 240 個輸出的 softmax 層。這一層輸出的是概率的向量,這裏的類別概率真值範圍在 [0,1] 區間內。最後一層中,概率向量與不同骨齡的向量 [1,…,239,240] 相乘。因此,該模型會輸出骨齡的期望值。我們用和迴歸模型同樣的訓練方法訓練了這個模型。

下圖是分類模型的架構,除了多了 softmax 層和分箱層(binning layer)外,其他和迴歸模型相同:

結果

我們從訓練集中取出 1000 張放射圖像作爲驗證集來評估模型。遵循 GP 和 TW 方法將性別考慮在內,對每個空間區域我們都針對性別訓練了性別特定模型,並與在整個數據集上訓練得到的不區分性別的模型做了比較。以下是結果總結:

結果證明在輸入中添加性別可以將模型準確率平均提高 1.4 個月。最左邊這一列表示針對兩個性別的迴歸模型的表現。掌骨和近端指骨區域(區域 C)的 MAE 爲 8.42 個月,整個手骨(區域 A)的 MAE 爲 8.08 個月。對這三個區域進行線性集成可以將準確率提高到 7.52 個月(表中最後一行)。

性別特定的迴歸模型(第二列和第三列)將針對男性的模型的 MAE 改善爲 6.30 個月,將針對女性的模型的 MAE 改善到 6.49。需要注意的是,就女性而言,掌骨和近端指骨區域的 MAE 爲 6.79 個月,甚至比對整個手骨進行預測的結果還準確,後者的 MAE 僅爲 7.12 個月。

性別特定的分類模型(第四列和第五列)的結果比迴歸模型的結果略好,它們的 MAE 分別爲 6.16 個月和 6.39 個月(最後一行)。

最後,在第六列,我們將所有性別特定的模型(分類和迴歸)進行集成。在驗證集上,集成模型得到的準確率爲 6.10 個月,這也是當前最佳的結果,無論從骨齡評估挑戰賽還是從實際應用來看,這都是一個很好的結果。

結論

本文介紹瞭如何開發可以準確評估骨骼成熟度的自動骨齡評估系統,該系統可以得到與放射科專家相似或更好的結果。我們評估了手骨不同區域,發現可以僅對掌骨和近端指骨進行評估,得到的結果與對整個手骨進行評估的結果相差無幾。爲了克服放射圖像的質量和多樣性問題,我們引入了嚴格的清理和標準化過程,以顯著增強模型的魯棒性和準確率。

我們的模型有極大的潛力部署在臨牀環境中,幫助臨牀醫生實時判斷骨齡。這可以保證在患病兒童出現成長障礙時能進行及時的診斷和治療。

原文地址:https://medium.com/neuromation-io-blog/neuromation-research-pediatric-bone-age-assessment-with-convolutional-neural-networks-ad539ffb671f

本文爲機器之心編譯,轉載請聯繫本公衆號獲得授權。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章