本文介紹了利用機器學習實現胸部CT掃描圖像自動判讀的任務,這對我來講是一個有趣的課題,由於它是我博士論文研究的重點。這篇文章的主要參考資料是我最近的預印本 「Machine-Learning-Based Multiple Abnormality Prediction with Large-Scale Chest Computed Tomography Volumes.」網絡
CT掃描圖像是一種大致積圖像,大小約爲512×512×1000灰度體素,用於描繪心臟、肺和胸部的其餘解剖結構。胸部CT掃描圖像用於診斷和治療多種疾病,包括癌症、感染和骨折。這篇文章討論瞭如何得到CT圖像,如何對CT圖像進行判讀,以及爲何CT圖像的自動判讀具備挑戰性,最後,咱們將介紹如何使用機器學習來實現CT圖像的自動判讀任務。app
胸部CT用於顯示胸部,包括左肺、右肺、氣道、心臟和大血管:dom
有關胸部解剖學的更詳細概述,請參閱本文。機器學習
由於胸部CT掃描是一種三維圖像,因此會在三個不一樣的解剖學平面上分辨觀察,這三種解剖學平面分別是冠狀面、橫斷面與矢狀面。ide
下面是一個橫斷面CT圖像的例子:性能
下面是另外一個橫斷面CT圖像的例子:學習
想要了解同一張CT掃描圖像在三個解剖學平面上的不一樣視圖,請參閱本文,它含有一張能夠滾動查看的健康人的高分辨率胸部CT圖像。編碼
下圖顯示的是CT掃描儀,它是一個甜甜圈形狀的儀器:atom
病人躺在桌子上,經過CT掃描儀的「甜甜圈孔」移動。如下是CT掃描儀的內部結構:rest
CT掃描是基於X射線的。然而,CT不一樣於「投影X射線」,由於CT是3D的,而投影X射線是2D的(關於自動投影X射線請參閱本文)。
CT掃描儀的X射線源將X射線束(如上圖紅色所示)經過患者的身體發送到探測器上。當患者經過中心孔時,整個放射源/探測器設備圍繞患者旋轉,所以能夠在三維空間的多個點上測量患者身體的輻射密度。
最後,CT掃描圖像使用Hounsfield單位對患者體內數百萬個點的放射密度進行編碼,其中空氣顯示爲黑色,骨骼顯示爲白色。中等密度的組織呈灰色。
CT掃描是一種常見的影像學檢查形式,對許多疾病的診斷和治療很是有用。放射科醫生是判讀醫學放射圖像並撰寫診斷報告的醫生,這些報告供其餘醫生在患者的護理中使用。
當一個放射科醫生須要判讀一張CT掃描圖像時,他會作兩件事。首先,放射科醫生必須肯定出現了哪些異常,例如肺炎、肺不張、心臟腫大、結節、腫塊、胸腔積液等。接下來,放射科醫生必須在他們的描述中指定出現異常的位置。病竈位置在醫學上每每很是重要——例如,不一樣類型的肺癌每每位於不一樣的位置。下表總結了放射科醫生的任務:
如下是美國國家診斷成像中心的胸部CT報告示例,其中文本是從本份公開報告中複製的:
EXAM: CTA CHEST W W/O CONTRAST
CLINICAL HISTORY: SOB, dyspnea, R/O PE, ILD, possible occupational lung disease
INDICATIONS: 49 year-old patient with shortness of breath. Possible PE. Possible occupational lung disease.
PROCEDURE: Consecutive axial slices were obtained without and with intravenous contrast. Bolus thin slices were performed through the pulmonary arteries.
The pulmonary trunk shows no evidence for thrombus or embolus. There is no evidence for a saddle embolus. The right and left main pulmonary arteries appear unremarkable. The first and second order pulmonary branches bilaterally do not show evidence for embolus. The axillary regions show no adenopathy. The mediastinum and hilar regions show no masses or adenopathy. The included upper abdomen shows splenic calcification which could indicate remote granulomatous disease. There is some focal renal cortical thickening on the right where there may be prior scarring. There is no evidence for pulmonary parenchymal interstitial lung disease. On image 2 series 4 in the left lower lung there is a 3 mm nodule. This could be followed with surveillance CT in 12 months if there is further concern. There is also a small similar nodule on the same series image 49 on the left. There are no infiltrates or effusions. There is no acute bony abnormality seen.
IMPRESSION: No evidence for pulmonary embolic disease. Some small lung nodules on the left could be followed at 12 months with a CT if there is sufficient concern. No evidence for interstitial lung disease.
對於放射科醫生來講,爲每張CT掃描圖像都撰寫這麼詳細的報告是很是耗時的。若是患者接受了屢次不一樣期的CT掃描(例如,首次掃描後的三個月又接受了後續的掃描),這就更加耗時了,由於在這種狀況下,放射科醫生還要同時比較兩次掃描,以瞭解患者的健康情況產生了什麼變化。人們對開發機器學習方法自動判讀CT圖像很是感興趣,由於這能夠加速放射工做流程並下降放射科醫生的實時診斷錯誤率(目前爲3-5%)。
CT掃描圖像的自動判讀具備挑戰性,緣由以下:
挑戰1:患者的解剖結構根據性別、年齡、體重和正常的解剖變異而天然變化。所以,「變異」並不必定意味着「異常」。
挑戰2:胸部CT圖像能夠顯示數百種可能的異常。下圖僅顯示了幾個例子,包括嗜酸性肺炎、空洞性病變、囊腫、肺氣腫、氣胸和肺纖維化:
![病例]](http://images.deephub.ai/upload/5c699d90697f11ea90cd05de3860c663.png)
挑戰3:一張CT圖像上常會出現多種不一樣的異常。平均一張CT圖像包含了10±6種不一樣的異常。下面是幾個一張CT掃描切片上存在一個以上異常的例子:
挑戰4:此外,在一次掃描中常常出現多個同一類型的異常。下面,咱們能夠分別看到一張含有多處肺氣腫的圖像,一張含有多個肺部結節的圖像,以及一張含有多個腫塊的圖像:
挑戰5:不一樣種類的異常可能看起來彼此很是類似。在這些狀況下,放射科醫生必須依靠他們多年的經驗和患者的病史來肯定異常的性質。下面的圖像分別顯示腫瘤(「TUM」)和肺不張(「ATL」),二者在此次掃描中看起來十分類似:
挑戰6:同種病變可能在外觀上卻有所不一樣。例如,同種類型的病變會因嚴重程度不一樣而在外觀上出現差別,例以下面的肺炎掃描,左邊的掃描顯示整個肺部因肺炎而白化,而右邊的掃描顯示只有一小部分肺部因肺炎而白化:
一樣的異常也可能因其形狀和紋理而看起來不一樣。下圖顯示了各類外觀的肺結節,這些結節根據其形狀(如分葉狀、尖狀、圓形)和紋理(如磨玻璃狀、固體狀)而不一樣:
下圖總結了CT圖像自動判讀面對的挑戰:
爲了瞭解如何使用機器學習進行CT自動判讀,首先要考慮用什麼類型的數據來訓練模型。
醫療信息系統將CT圖像與相應的CT報告成對保存:
有些病人只有一張CT圖像和報告,如上圖中的病人000000。其餘病人將有多個CT圖像和報告。這些多個CT圖像多是在不一樣的時間和/或身體的不一樣部位進行的(儘管本文重點着眼於胸部CT,但也有多是頭部、腹部、骨盆和其餘部位的CT)。
咱們還須要考慮哪些數據是沒法在醫療信息系統中得到的:
如上圖所示,通常來講,咱們沒法得到:
考慮到咱們只有成對的圖像與檢查報告,一種直觀的方法是嘗試直接從圖像生成文本。在這一方案中,咱們首先將CT圖像處理爲低維表示(例如使用卷積神經網絡),而後從該低維表示生成文本(例如使用LSTM):
截至目前爲止,我尚未看到任何關於從CT影像直接生成診斷報告的研究。然而,我卻是發現了幾項關於從胸部X光片自動生成報告的研究,相比之下這一課題看起來更加可行,由於胸部X光片的大小相對CT影像要小得多(小1000倍左右),而診斷報告的長度要短得多(短6倍)。然而,即便在這項更直接簡單的任務中,模型也難以生成準確的報告。我懷疑一部分緣由在於模型生成的句子中,有不少是描述病人的某些健康生理指標的句子。生成大量這種語句的模型可能得到一個不錯的模型分數,然而這個模型卻頗有可能在描述病人的病理與異常的時候糟糕得一塌糊塗——而這剛好是醫生最關心的部分!
儘管從CT圖像生成文本多是一項有趣的學術研究,可是這個課題有不少實際缺陷,包括:
一個更實際的方法是創建一個機器學習系統,它能夠以結構化的方式預測病變類型與位置。而後,咱們能夠評估模型對每一類病變的檢測效果,同時,咱們還能夠在原始影像上高亮標記出現病變的位置。這種系統可用於自動分類(例如,「將顯示氣胸的全部CT影像移動到放射科醫生隊列的頂部」),而且結合放射科醫生人工看片,以提升診斷準確性。此外,一個良好的病變類型/位置的預測模型也能夠用來生成文本(若是這是人們指望的目標之一)。由於給定影像中出現的病變類型與病變位置的列表,按照特定規則生成基本的文本報告是很簡單的,由於放射學語言是高度結構化的。
因爲前一節所列的緣由,基於CT影像的病變分類引發了人們的極大興趣。在單一病變CT分類中,一個模型(一般是卷積神經網絡)處理一幅CT圖像,並根據所關注的某種特定病變是否存在產生0或1(即二分類):
這些工做都着眼於於一次預測一種異常或一類異常,它們依賴手工製做的小型數據集,這些數據集已經由人類專家在切塊或切片級別上精心標記。
這是一張我整理的表格,總結了一些先前的工做,這些工做集中於從胸部CT影像預測間質性肺病。此處顯示的模型一般對每張切片指定一個類別標籤,顯示影像中的患者是否罹患間質性肺病:
下面是我整理的另外一張表,總結了先前基於CT影像預測其餘病變(包括肺癌、顱內出血和睦胸)的其餘工做:
訓練基於切塊或切片的模型的一個優勢是訓練好的模型能夠輕易地在切塊或切片水平上預測病變。而缺點在於,訓練模型天然也須要切塊或切片的模型標註,這在現實的醫療衛生系統中是獲取不到的,這將會致使:
數據集中含有的影像數量嚴重受限(除了Ardila與Kuo等人的研究外,其餘上文所述研究使用的數據集包含的CT影像數量均不足1200張);
能夠同時研究的病竈數量受限(全部研究均考慮<8處病竈)。
儘管單一病變分類模型能夠得到很高的性能,可是這一研究方向受限於其固有的侷限性。要進行全面的CT判讀,須要數百個獨立的二分類器。CT自動判讀的另外一個研究路線是多標籤分類,能夠實如今一張CT圖像上同時預測多種病變類型。有關多類別分類與多標籤分類的綜述,請參閱這篇文章。
多標籤病變分類以下圖所示:
直到我最近的工做以前,多標籤胸部CT分類的問題尚未被深刻探討。然而,多標籤胸部X光片分類已經被深刻研究,這得益於多個公開的大型胸部X光片公共數據集:
受以前胸部X光片多標籤分類的啓發,我最近研究了胸部CT的多標籤分類。我在多標籤胸部CT分類方面的工做分爲三個部分:
生成19993例患者的36316張胸部CT影像的數據集。據我所知,這是世界上最大的多註釋三維醫學成像數據集。
提出一種基於規則的方法,用於從平均F值爲0.976的自由文本放射報告中自動提取結構化的異常標籤。這些結構化異常標籤是訓練分類器所必需的。
多器官、多疾病卷積神經網絡分類器的訓練和評估,該分類器可分析整張CT圖像,同時預測83類病變。該模型對其中的18種病變實現了高於0.90的平均AUC,而83類病變的平均AUC爲0.773。
在之後的文章中,我將更詳細地分別探討個人工做的三個方面:如何準備一個包含成對的CT圖像和診斷報告的大型CT數據集;如何從報告中提取結構化標籤;如何構建一個完整的CT分類器。
基於CT影像數據的其餘任務包括:
目標檢測,即訓練模型來預測感興趣的病變點的邊界框的座標。在這一任務中,咱們須要感興趣的病變點的邊界框,用於訓練與評估模型。在CT影像的目標檢測這一方面,這項任務的一個例子能夠在DeepLesion論文中找到。
圖像分割,訓練模型來生成像素級的分割遮罩(也即病變的輪廓)。
圖像配準,訓練模型來對齊兩張不一樣的掃描圖像,使解剖結構處於大體相同的位置。
胸部CT是由大約512 x 512 x 1000灰度體素組成的三維醫學圖像,經過X射線源和圍繞患者身體旋轉的探測器得到。
放射科醫生從CT影像中肯定病變的種類與數量,這一過程稱爲CT的判讀;放射科醫生一般會寫一份診斷報告記錄他們的發現。
醫院存儲成對的CT圖像與診斷報告,可是不存儲目標邊界框、像素級別的掩模以及圖像標籤。
先前有關CT圖像自動判讀的工做集中於一次識別一種病變,例如間質性肺病或顱內出血。
最近,我創建了一個含有36316張胸部CT圖像的數據集,並創建了一個多標籤分類模型,從單張圖像上預測83類病變的數量與位置。
基於CT的其餘任務包括目標檢測、圖像分割和圖像配準等。
原文地址:https://imba.deephub.ai/p/c13316f0698111ea90cd05de3860c663