DLTK,即醫(yī)學(xué)成像的深度學(xué)習(xí)工具包,擴(kuò)展了TensorFlow,使針對(duì)生物醫(yī)學(xué)影像的深度學(xué)習(xí)成為可能。此工具包提供了專用運(yùn)算與函數(shù)、模型實(shí)現(xiàn)、教程(如本博客中所用)和典型應(yīng)用的代碼示例。
本篇博文對(duì)生物醫(yī)學(xué)影像深度學(xué)習(xí)進(jìn)行了簡(jiǎn)要介紹,我們將圍繞當(dāng)前工程難點(diǎn)指出一些問題和解決方案,并展示如何針對(duì)您的問題啟動(dòng)和運(yùn)行原型。
網(wǎng)站:https://dltk.github.io;
來源:https://github.com/DLTK/DLTK;
概述
什么是生物醫(yī)學(xué)影像分析?為什么需要這種分析?
生物醫(yī)學(xué)影像是在不同尺度(即微觀、宏觀等)下對(duì)人體進(jìn)行的測(cè)量。它們具有多種成像模式(如 CT 掃描儀、超聲機(jī)等)并測(cè)量人體的物理特性(如放射強(qiáng)度、對(duì) X 射線的不透明度)。這些影像由臨床任務(wù)(如診斷)的領(lǐng)域?qū)<遥ㄈ绶派淇漆t(yī)師)解釋并對(duì)醫(yī)生的決策具有重大影響。
醫(yī)學(xué)影像示例(從左上方到右下方):多序列腦部 MRI:T1 加權(quán)、T1 反轉(zhuǎn)恢復(fù)和 T2 FLAIR 通道;全身拼接 MRI;平面心臟超聲;胸部 X 光片;心臟電影 MRI
生物醫(yī)學(xué)影像通常為體積影像 (3D),有時(shí)還會(huì)加上時(shí)間維度 (4D) 和/或多個(gè)通道 (4-5D)(如多序列 MR 影像)。生物醫(yī)學(xué)影像中的差異與自然影像(如照片)中的差異完全不同,因?yàn)榕R床方案的目的是對(duì)影像的采集方式進(jìn)行分層(例如,患者平躺、頭部保持正直,等等)。在影像分析過程中,我們的目標(biāo)是發(fā)現(xiàn)細(xì)微差異(即一些小區(qū)域表明發(fā)現(xiàn)異常)。
為什么采用計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)?
長期以來,計(jì)算機(jī)視覺方法一直用于自動(dòng)分析生物醫(yī)學(xué)影像。近年來,隨著深度學(xué)習(xí)的出現(xiàn),許多其他機(jī)器學(xué)習(xí)方法被取代,因?yàn)樯疃葘W(xué)習(xí)免去了創(chuàng)建手工工程特征的必要,從過程中消除了一個(gè)關(guān)鍵的誤差來源。此外,完全采用 GPU 加速的網(wǎng)絡(luò)可以實(shí)現(xiàn)快速推斷,讓分析的數(shù)據(jù)量得到前所未有的增加(例如,10? 個(gè)受試者影像)。
我們能否直接使用深度學(xué)習(xí)庫進(jìn)行生物醫(yī)學(xué)成像?為什么要?jiǎng)?chuàng)建 DLTK?
之所以要?jiǎng)?chuàng)建DLTK,是因?yàn)橐峁╅_箱即用并特定于該領(lǐng)域的專業(yè)工具。盡管許多深度學(xué)習(xí)庫向開發(fā)者公開了低級(jí)運(yùn)算(如張量乘法等),但許多用于體積影像的較高級(jí)別專用運(yùn)算卻并未公開(例如,可區(qū)分的 3D 上采樣層等),并且由于影像的其他空間維度,我們可能會(huì)遇到內(nèi)存問題(例如,假設(shè)影像尺寸為 512x512x256 體素,那么以 float32 格式存儲(chǔ)包含 1000 個(gè) CT 影像的數(shù)據(jù)庫的單個(gè)副本將需要大約 268 GB)。由于采集的性質(zhì)不同,一些影像需要特殊的預(yù)處理(例如,強(qiáng)度歸一化、偏置場(chǎng)校正、去噪、空間歸一化/配準(zhǔn)等)。
文件格式、頭和讀取影像
雖然許多成像模式供應(yīng)商都按照DICOM標(biāo)準(zhǔn)格式制作影像并在一系列 2D 切片中保存卷,許多分析庫還是依賴于更適合計(jì)算和與醫(yī)學(xué)影像連接的格式。我們使用的是NifTI(或 .nii 格式),這種格式最初開發(fā)用于腦部成像,但廣泛用于DLTK和本教程中的大多數(shù)其他體積影像。這種格式和其他格式保存的內(nèi)容是重建影像容器并將其在物理空間中定位的必要信息。
為此,它需要專用頭信息,我們將對(duì)用于深度學(xué)習(xí)的一些屬性進(jìn)行介紹:
尺寸和大小存儲(chǔ)有關(guān)如何重建影像的信息(例如,使用大小向量將體積分解為三維)
數(shù)據(jù)類型
體素間距(也是體素的物理尺寸,通常以毫米為單位)
物理坐標(biāo)系原點(diǎn)
方向
為什么這些屬性很重要?網(wǎng)絡(luò)將在體素空間中進(jìn)行訓(xùn)練,這意味著我們將創(chuàng)建形狀和尺寸為 [batch_size, dx, dy, dz, channels/features] 的張量并將其提供給網(wǎng)絡(luò)。網(wǎng)絡(luò)將在該體素空間中進(jìn)行訓(xùn)練并假設(shè)所有影像(包括未見過的測(cè)試影像)在該空間中歸一化或者可能有需要泛化的問題。在該體素空間中,特征提取器(如卷積層)將假設(shè)體素尺寸各向同性(即,在每個(gè)維度中均相同)并且所有影像以相同的方式定向。
然而,由于大多數(shù)影像描述的都是物理空間,我們需要從該物理空間轉(zhuǎn)換為常見的體素空間:
如果所有影像均以相同的方式定向(有時(shí)我們需要進(jìn)行配準(zhǔn)以在空間內(nèi)歸一化影像:請(qǐng)參見MIRTK),我們可以通過以下公式計(jì)算從物理空間到體素空間的縮放轉(zhuǎn)換:
phys_coords = origin + voxel_spacing * voxel_coord
所有上述信息均為 .nii 頭文件中存儲(chǔ)的向量。
讀取 .nii 影像:可通過一些庫讀取 .nii 文件并訪問和解析頭信息以獲得numpy陣列格式的重建影像容器。我們選擇的是SimpleITK,這是ITK庫的一種 python 包裝器,可用于導(dǎo)入額外的影像過濾器以進(jìn)行預(yù)處理和其他任務(wù)。
數(shù)據(jù) I/O 注意事項(xiàng)
根據(jù)訓(xùn)練數(shù)據(jù)庫的大小,可通過幾種不同方法將 .nii 影像數(shù)據(jù)提供給網(wǎng)絡(luò)圖。每種方法在速度方面都有特定的權(quán)衡,并且在訓(xùn)練期間可能成為瓶頸。我們將介紹并解釋以下三個(gè)選項(xiàng):
在內(nèi)存和饋送字典中:
我們可以創(chuàng)建一個(gè)指向網(wǎng)絡(luò)圖的tf.placeholder并在訓(xùn)練期間通過 feed_dict 提供。我們從磁盤讀取所有 .nii 文件,在 python 中處理文件(參見load_data())并將所有訓(xùn)練示例存儲(chǔ)在內(nèi)存中,通過以下方式提供:
TLDR:此直接法通常速度最快且最容易實(shí)現(xiàn),因?yàn)樗苊饬藦拇疟P連續(xù)讀取數(shù)據(jù),但需要在內(nèi)存中保留整個(gè)訓(xùn)練示例(和驗(yàn)證示例)數(shù)據(jù)庫,這對(duì)于較大的數(shù)據(jù)庫或影像文件并不可行。
使用TFRecords數(shù)據(jù)庫:
對(duì)于有關(guān)體積影像的大多數(shù)深度學(xué)習(xí)問題,訓(xùn)練示例數(shù)據(jù)庫太大而無法存入內(nèi)存。TFRecords格式允許序列化訓(xùn)練示例并將其存儲(chǔ)在磁盤上,支持快速寫訪問(即并行數(shù)據(jù)讀取):
此格式可以直接與TensorFlow連接并且可以直接集成到 tf.graph 中的訓(xùn)練循環(huán)中:
TLDR:TFRecords可快速訪問磁盤文件,但需要為整個(gè)訓(xùn)練數(shù)據(jù)庫另外存儲(chǔ)一個(gè)副本。如果我們要使用幾 TB 大小的數(shù)據(jù)庫,這種方法可能會(huì)讓人望而卻步。
使用原生 python 生成器:
最后,我們可以使用 python 生成器創(chuàng)建一個(gè)read_fn()以直接加載影像數(shù)據(jù)…
并使用tf.data.Dataset.from_generator()將示例排隊(duì):
TLDR:這種方法避免了額外創(chuàng)建影像數(shù)據(jù)庫副本,但速度要比TFRecords慢得多,因?yàn)樯善鞑荒懿⑿凶x取和映射函數(shù)。
速度基準(zhǔn)測(cè)試以及選擇方法:
我們運(yùn)行了上述三種方法向TensorFlow讀取 .nii 文件,并比較了加載和提供固定大小的示例數(shù)據(jù)庫所需的時(shí)間。所有代碼和結(jié)果都可以在上文找到。
顯而易見,最快的方法是通過占位符從內(nèi)存中提供,時(shí)間為 5.6 秒,其次是TFRecords,時(shí)間為 31.1 秒,最后是使用 python 生成器的未優(yōu)化磁盤讀取,時(shí)間為 123.5 秒。然而,只要訓(xùn)練期間的前向/后向傳遞是計(jì)算瓶頸,數(shù)據(jù) I/O 的速度就可以忽略不計(jì)。
數(shù)據(jù)歸一化
與自然影像一樣,我們也可以對(duì)生物醫(yī)學(xué)影像數(shù)據(jù)進(jìn)行歸一化,但方法可能略有不同。歸一化的目的是消除數(shù)據(jù)中的一些已知差異(例如,受試者姿勢(shì)或影像對(duì)比度不同等),從而簡(jiǎn)化對(duì)我們感興趣的細(xì)微差異的檢測(cè)(例如,存在病變)。本文將介紹最常見的歸一化形式:
體素強(qiáng)度歸一化:
這種形式高度依賴于采集數(shù)據(jù)所用的成像模式。典型的零均值單位方差歸一化是定性影像的標(biāo)準(zhǔn)(例如,加權(quán)腦部 MR 影像,其中對(duì)比度高度依賴于采集參數(shù),通常由專家設(shè)置)。如果我們采用這種統(tǒng)計(jì)方法,我們將使用完整單一卷的統(tǒng)計(jì)數(shù)據(jù),而不是整個(gè)數(shù)據(jù)庫。
與此相反,定量成像測(cè)量物理量(例如,CT 成像中的放射強(qiáng)度,其中不同掃描儀的強(qiáng)度類似)并且受益于削波和/或重新縮放,如簡(jiǎn)單范圍歸一化(例如 [-1,1])。
強(qiáng)度歸一化方法示例
空間歸一化:
通過使用影像方向歸一化,模型無需學(xué)習(xí)所有可能的方向,從而大大減少了所需的訓(xùn)練影像的數(shù)量(請(qǐng)參見頭屬性的重要性,了解影像的方向)。此外,我們還考慮了體素間距,即使采集自同一掃描儀,影像之間也可能存在差異。可通過重新采樣為各向同性分辨率來實(shí)現(xiàn)這一點(diǎn):
如果需要進(jìn)一步歸一化,我們可以使用醫(yī)學(xué)影像配準(zhǔn)包(例如MIRTK,等等)將影像配準(zhǔn)到相同的空間中,使影像之間的體素位置彼此對(duì)應(yīng)。分析結(jié)構(gòu)性腦部 MR 影像(例如 T1 加權(quán) MR 影像)的典型步驟是按參考標(biāo)準(zhǔn)配準(zhǔn)訓(xùn)練數(shù)據(jù)庫中的所有影像,例如平均圖集(如MNI 305圖集)。根據(jù)配準(zhǔn)方法的自由度,也可以針對(duì)尺寸(仿射配準(zhǔn))或形狀(可變形配準(zhǔn))歸一化。這兩種變體很少使用,因?yàn)樗鼈內(nèi)コ擞跋裰械囊恍┬畔ⅲ葱螤钚畔⒒虺叽缧畔ⅲ?,而這些信息可能對(duì)分析有著重要意義(例如,心臟較大可能預(yù)示有心臟病)。
數(shù)據(jù)增強(qiáng)
通常情況下,可用的數(shù)據(jù)量有限,并且未涵蓋某些差異。一些例子如下所示:
存在各種正常形狀的軟組織器官
形狀和位置存在顯著差異的病變,如癌變
可能有很多視圖的手動(dòng)超聲影像
為了正確地泛化到未見過的測(cè)試用例,我們通過模擬待增強(qiáng)數(shù)據(jù)中的差異來增強(qiáng)訓(xùn)練影像。與歸一化方法類似,我們對(duì)強(qiáng)度和空間增強(qiáng)加以區(qū)分:
強(qiáng)度增強(qiáng)示例:
向訓(xùn)練影像添加噪聲以泛化為噪聲影像
添加隨機(jī)偏移或?qū)Ρ榷纫蕴幚碛跋裰g的差異
空間增強(qiáng)示例:
在需要對(duì)稱性的方向上翻轉(zhuǎn)影像張量(例如,在掃描腦部時(shí)左/右翻轉(zhuǎn))
隨機(jī)變形(例如,用于模仿器官形狀的差異)
沿軸旋轉(zhuǎn)(例如,用于模擬超聲視角差異)
在塊上進(jìn)行隨機(jī)裁剪和訓(xùn)練
強(qiáng)度和空間增強(qiáng)技術(shù)示例
關(guān)于增強(qiáng)和數(shù)據(jù) I/O 的重要說明:根據(jù)所需或有用的增強(qiáng),某些操作僅在 python 中可用(例如,隨機(jī)變形),也就是說,如果采用使用原始TensorFlow(即TFRecords或tf.placeholder)的讀取方法,它們需要預(yù)先計(jì)算并存儲(chǔ)到磁盤中,因此大大增加了訓(xùn)練數(shù)據(jù)庫的大小。
類平衡
基于醫(yī)學(xué)影像進(jìn)行監(jiān)督式學(xué)習(xí)期間,必須由領(lǐng)域?qū)<医忉專ㄈ缡謩?dòng)分割或疾病類別)。通常,影像級(jí)(如疾病類別)或體素級(jí)(即分割)標(biāo)簽的比率不能相同,這意味著在訓(xùn)練期間網(wǎng)絡(luò)不會(huì)從每個(gè)類看到相同數(shù)量的示例。如果類比率基本相似(例如,對(duì)于二元分類情況,比率為 30/70),則對(duì)準(zhǔn)確性沒有太大影響。然而,由于大多數(shù)損失是整個(gè)批次的平均成本,因此網(wǎng)絡(luò)將首先學(xué)會(huì)正確預(yù)測(cè)最常見的類(例如,背景或正常情況,通常有更多可用的示例)。
如果訓(xùn)練期間類不平衡,將對(duì)罕見現(xiàn)象(如影像分割中的小病變)產(chǎn)生較大影響,并在很大程度上影響測(cè)試的準(zhǔn)確性。
為了避免這種情況,可通過兩種典型方法來解決數(shù)據(jù)集中的類不平衡問題:
通過采樣實(shí)現(xiàn)類平衡:我們此時(shí)的目標(biāo)是更正采樣過程中已見過示例的頻率。可通過以下方式來完成:
a) 從每個(gè)類中抽取相等的量
b) 對(duì)出現(xiàn)過多的類進(jìn)行欠采樣或
c) 對(duì)頻率較低的類進(jìn)行過采樣。
在DLTK中,我們提供了針對(duì)方式 a 的實(shí)現(xiàn),可點(diǎn)擊此處獲取。我們對(duì)影像卷中的隨機(jī)位置進(jìn)行采樣,并考慮一個(gè)提取的示例(如果包含我們要尋找的類)。
注:此處 鏈接
https://github.com/DLTK/DLTK/blob/blog/dltk/io/augmentation.py#L120
通過損失函數(shù)實(shí)現(xiàn)類平衡:與典型的體素平均損失(如分類交叉熵、L2 等)相反,我們可以 a) 使用本質(zhì)上平衡的損失函數(shù)(如平滑的 Dice 損失,即所有類的平均 Dice 系數(shù))或 b)按類頻率將每個(gè)預(yù)測(cè)的損失重新加權(quán)(例如,中值頻率重新加權(quán)交叉熵)。
應(yīng)用亮點(diǎn)示例
通過本博文中提供的所有基礎(chǔ)知識(shí),我們現(xiàn)在可以使用TensorFlow著手構(gòu)建用于醫(yī)學(xué)影像深度學(xué)習(xí)的完整應(yīng)用。我們已經(jīng)使用深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了幾個(gè)典型應(yīng)用,接下來將對(duì)其中一些進(jìn)行介紹,讓您了解現(xiàn)在可以嘗試解決哪些問題。
注:這些示例應(yīng)用學(xué)習(xí)了一些有意義的內(nèi)容,但它們是為了演示而構(gòu)建,而不是高性能的實(shí)現(xiàn)。
示例數(shù)據(jù)集
對(duì)于以下所有示例,我們均提供下載和預(yù)處理腳本。對(duì)于大多數(shù)情況(包括上面的演示),我們使用的是IXI大腦數(shù)據(jù)庫。對(duì)于影像分割,我們下載了MRBrainS13挑戰(zhàn)數(shù)據(jù)庫,您需要注冊(cè)才能下載。
多通道腦部 MR 影像的影像分割
多序列影像輸入、目標(biāo)標(biāo)簽和預(yù)測(cè)的 Tensorboard 可視化
此影像分割應(yīng)用基于小型 (N=5)MRBrainS挑戰(zhàn)數(shù)據(jù)集根據(jù)多序列 MR 影像(T1 加權(quán)、T1 反轉(zhuǎn)恢復(fù)和 T2 FLAIR)學(xué)習(xí)預(yù)測(cè)腦組織和白質(zhì)病變。它使用以殘差單位作為特征提取器的 3D U-Net 型網(wǎng)絡(luò),并在TensorBoard中跟蹤每個(gè)標(biāo)簽的 Dice 系數(shù)精度。
有關(guān)代碼和說明,請(qǐng)點(diǎn)擊此處。
注:此處鏈接
https://github.com/DLTK/DLTK/tree/master/examples/applications/MRBrainS13_tissue_segmentation
T1 加權(quán)腦部 MR 影像的年齡回歸和性別分類
用于回歸和分類的 T1 加權(quán)腦部 MR 影像輸入示例
采用可擴(kuò)展 3D ResNet 架構(gòu)的兩個(gè)類似應(yīng)用基于IXI數(shù)據(jù)庫中的 T1 加權(quán)腦部 MR 圖像學(xué)習(xí)預(yù)測(cè)受試者的年齡(回歸)或受試者的性別(分類)。這兩個(gè)應(yīng)用的主要區(qū)別在于損失函數(shù):盡管我們訓(xùn)練回歸網(wǎng)絡(luò)將年齡預(yù)測(cè)為具有 L2 損失的連續(xù)變量(預(yù)測(cè)年齡與實(shí)際年齡之間的均方差),但我們使用分類交叉熵?fù)p失來預(yù)測(cè)性別類別。
有關(guān)這些應(yīng)用的代碼和說明,請(qǐng)點(diǎn)擊分類和回歸。
注:分類鏈接https://github.com/DLTK/DLTK/tree/master/examples/applications/IXI_HH_sex_classification_resnet
回歸鏈接
https://github.com/DLTK/DLTK/tree/master/examples/applications/IXI_HH_age_regression_resnet
3T 多通道腦部 MR 影像的表示學(xué)習(xí)
使用深度卷積自動(dòng)編碼器網(wǎng)絡(luò)測(cè)試影像和重建
此處我們演示了深度卷積自動(dòng)編碼器架構(gòu)(一種強(qiáng)大的表示學(xué)習(xí)工具)的使用方法:網(wǎng)絡(luò)將多序列 MR 影像作為輸入,旨在對(duì)其進(jìn)行重建。借此在其潛在變量中壓縮整個(gè)訓(xùn)練數(shù)據(jù)庫的信息。訓(xùn)練后的權(quán)重也可用于轉(zhuǎn)移學(xué)習(xí)或信息壓縮。請(qǐng)注意,重建的影像非常平滑:這可能是由于此應(yīng)用使用 L2 損失函數(shù)或網(wǎng)絡(luò)太小而無法正確編碼詳細(xì)信息。
有關(guān)代碼和說明,請(qǐng)點(diǎn)擊此處。
注:此處鏈接
https://github.com/DLTK/DLTK/tree/master/examples/applications/IXI_HH_representation_learning_cae
T1w 腦部 MR 影像的簡(jiǎn)單影像超分辨率
影像超分辨率:原始目標(biāo)影像;下采樣輸入影像;線性上采樣影像;預(yù)測(cè)超分辨率;
單影像超分辨率旨在學(xué)習(xí)如何基于低分辨率輸入上采樣和重建高分辨率影像。這一簡(jiǎn)單實(shí)現(xiàn)創(chuàng)建了低分辨率版本的影像,超分辨率網(wǎng)絡(luò)學(xué)習(xí)將影像上采樣為其原始分辨率(此處上采樣因子為 [4,4,4])。此外,我們還計(jì)算線性采樣版本以顯示與重建影像的差異。
最后
我們希望本教程能夠幫助您輕松開啟生物醫(yī)學(xué)圖像深度學(xué)習(xí)的探索之旅。如果您覺得這篇教程有用,敬請(qǐng)分享并關(guān)注 github 上的DLTK。如果您有類似問題需要幫助,請(qǐng)?jiān)L問我們的gitter.io聊天室并詢問。或許有一天我們可以在DLTKmodel zoo中托管您的應(yīng)用。感謝您的閱讀!
-
醫(yī)學(xué)影像
+關(guān)注
關(guān)注
1文章
111瀏覽量
17364 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45994 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121170
原文標(biāo)題:使用 TensorFlow 和 DLTK 進(jìn)行生物醫(yī)學(xué)影像分析
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
儀器技術(shù)在生物醫(yī)學(xué)的前沿應(yīng)用
駱文生物誠聘生物醫(yī)學(xué)人才
生物醫(yī)學(xué)工程, 想做一個(gè)基于單片機(jī)的畢業(yè)設(shè)計(jì)求大家給點(diǎn)兒建議
求labview2014或者15版本的生物醫(yī)學(xué)工具包
生物信號(hào)和生物醫(yī)學(xué)的圖像處理:以Matlab為基礎(chǔ)的應(yīng)用程序

生物醫(yī)學(xué)石英晶體傳感器的研究動(dòng)向
生物醫(yī)學(xué)電子學(xué)在生物醫(yī)學(xué)工程中的應(yīng)用?
電子仿真技術(shù)在生物醫(yī)學(xué)工程實(shí)驗(yàn)中的探索
生物醫(yī)學(xué)信號(hào)處理課件
生物醫(yī)學(xué)數(shù)字信號(hào)處理
自驅(qū)動(dòng)柔性生物醫(yī)學(xué)傳感器的定義
微軟團(tuán)隊(duì)發(fā)布生物醫(yī)學(xué)領(lǐng)域NLP基準(zhǔn)

開啟英特爾RISC-V探索之旅
開啟探索之旅丨軟通動(dòng)力邀您共同見證華為開發(fā)者大會(huì)2023 ( Cloud )

功率放大器在生物醫(yī)學(xué)領(lǐng)域測(cè)試研究中的應(yīng)用

評(píng)論