使用深度學習進行醫療影像分析:文件格式篇
選自Medium
作者:Taposh Dutta-Roy
機器之心編譯
參與:Nurhachu Null、李澤南
今年 3 月,英偉達的 GTC 2017 大會上展示了很多深度學習技術在醫療領域中的卓越工作。Ian GoodFellow、Jeremy Howard 以及其他的深度學習專家都分享了他們對深度學習的見解。頂尖的醫科學校(例如西奈山醫院、紐約大學、麻省綜合醫院等)以及肺癌 BOWL 的獲獎者 Kaggle 一起解釋了他們的建模策略。回顧我們的系列文章,在上一篇文章中,我們討論了在文本和圖像數據上的基礎深度學習。在本文中,我們會聚焦於分析醫療圖像和它們的格式。
這篇文章由三部分組成——醫療圖像和組成、醫療圖像格式,以及醫療圖像格式的轉換。本文的目標就是組織知識來幫助我們實現最終目標--用深度學習進行醫療圖形的分析。
醫療圖像和組成
與這個主題相關的一個很好的資源來自義大利生物組織和生物圖像研究所(IBB)的 Michele Larobina 和 Loredana Murino 發表的論文。這個研究所是義大利國家研究委員會(NCR)的一部分。它是義大利最大的公共研究機構。另一個可供參考的資源是這篇論文:「Working with the DICOM and NIfTI Data Standards in R」
那麼,醫療圖像是什麼呢?醫療圖像是對解剖區域的內部結構和功能的一種表徵。它以二維像素或者三維體素的形式呈現出來。映射到空間位置的數值是對採樣過程和重建過程的離散表徵。用來描述一個確定採樣模態視野的像素數量是對解剖結構和功能的細節的表達。像素表達的數值取決於成像模式、採樣協議、重建以及後續處理過程。
醫療數據的組成
如圖所示:醫療數據有四個關鍵的組成部分--像素深度、光度解釋、元數據以及像素數據。這幾部分決定了圖像的大小和解析度。
像素深度(Pixel Depth)或者位深度(Bit Depth)或者色深度(Color Depth)就是用來編碼每一像素的信息所用的位數。例如,一個 8 位的柵格會擁有從 0 到 255 這 256 種各不相同的數值。
參考:http://desktop.arcgis.com/en/arcmap/10.3/manage-data/raster-and-images/bit-depth-capacity-for-raster-dataset-cells.htm
光度解釋具體化了像素數據被解釋成正確的圖片展示的方式,如單色圖像或者彩色圖像。為了確定像素值中是否存儲了彩色信息,我們引入了每個像素的樣本的概念,也就是大家都知道的通道數量。單色圖像每個像素只有一個樣本,圖片中並沒有存儲彩色信息。我們使用從黑色到白色的灰度級別來展示這種圖片。灰度的數量明顯取決於用來存儲這個樣本的位數,在這種情況下,與像素深度是一致的。像 X 光片、CT 和磁共振這樣的放射醫療影像都有一個灰度光度解釋。核醫學圖像都以彩色的形式展現,例如 PET 和 SPECT。
元數據就是圖片中所描述的信息。它看上去可能是很奇怪的,但是無論在什麼格式的文件中,都存在一些超越像素數據並且和圖像相關的信息。這類被稱作元數據的信息通常都以頭部的形式儲在文件的起始部分,它至少會包含以下信息:圖像矩陣的維度、空間精度、像素深度以及光度解釋。
像素數據--這裡存儲的是像素數值的大小。根據不同的數據類型,像素數據可能以整型或者浮點型的類型存儲,使用表達數據所需的最少的數據位。
所以,圖像的大小=頭部大小(包含元數據)+行×列×像素深度×幀的數量
醫療圖像的格式
放射生物圖像中主要有六種格式--DICOM(醫療中的數字圖像和通信),NIFTI(神經影像學信息技術計劃),PAR/REC(飛利浦 MRI 掃描格式),ANALYZE(Mayo 醫療成像)以及 NRRD(近乎原始光柵數據)和 MNIC 格式。
截止 2017 年 5 月的醫療圖像格式
其中 DICOM 和 NIFTI 是最常用的格式。
DICOM 格式的基本知識
DICOM 代表的是醫療數字成像和通信。DICOM 是由美國國家電氣製造商協會(NEMA)制定的標準。它定義了醫療成像領域中關於信息處理、存儲、列印以及傳輸的標準。這些都是你在掃描儀或者某家醫院的圖片歸檔和通信系統(PACS)能夠立即得到的文件格式。
它包括了文件格式和能夠接收圖像和 DICOM 格式的病人數據的實體之間使用 TCP/IP 進行通信的協議。
一個 DICOM 文件包含文件頭部和同文件名的*.dcm 圖像數據。文件頭部的大小取決於它所提供的信息的多少。文件頭包含以下信息:病人的 ID,病人的姓名,圖像的模態以及其他信息。它定義了幀的數量以及圖像的精度。這些信息會被圖像瀏覽器在顯示圖像時用到。對於一個單詞採樣,會有很多個 DICOM 文件。
來源:https://www.leadtools.com/sdk/medical/dicom-spec1
pydicom 是一個讀取 dicom 文件的 python 庫。可以參考本文第一部分的示例代碼。
用深度學習的方法進行醫療圖像分析
深度學習可以分析圖像和視頻,並將分析結果用於很多種應用中,例如無人駕駛......
oro.dicom 是一個可以讀取 dicom 數據的 R 語言包。
上圖所示是用 oro.dicom 包來讀取一個已經解壓了的 DICOM 文件。
NIFTI 格式基本知識
Nifti 格式最初是為神經影像學發明的。神經影像信息學技術計劃(NIFTI)將 NIfTI 格式預設為 ANALYZE7.5 格式的替代品。它最初的應用領域是神經影像,但是也被用在其他領域。這種格式的主要特點就是它包含兩個能夠將每個體素的索引(i,j,k)和它的空間位置(x,y,z)關聯起來的仿射坐標。
nibabel 是一個能夠讀取 nifti 文件的 Python 庫,oro.nifti 是一個能夠讀取 nifti 文件的 R 語言庫。
DICOM 和 NIFTI 的區別
DICOM 和 NIfTI 這兩種格式的主要區別是:NIfTI 中的圖像原始數據被存儲成了 3 維圖像,而 dicom 一些 2 維的圖層。這就使得 NIFTI 更加適合那些應用在 DICOM 上的機器學習的方法,因為它是以 3D 圖像建模的。處理一個單獨的 NIFTI 文件要比處理成百上千個 dicom 文件更加容易一些。與 DICOM 格式下的好多個文件相比,NIFTI 格式下,每個 3d 圖像只有兩個文件。
Nrrd 格式的基本知識
靈活的 Nrrd 格式包含一個單獨的頭文件和若干個可以被結合在一起或者分開的圖像文件。Nrrd 頭文件為科學可視化和圖像處理準確地表徵了 N 維光柵信息。國家醫療圖像計算聯盟(NA-MIC)開發了一種使用 NRRD 格式來表徵擴散加權圖像(DWI)體積和擴散張量圖像(DTI)的方法。為了目視確認張量的方向和期望的神經解剖學的結構一致,Nrrd DWI 和 Nrrd DTI 數據能夠被讀取為 3D 切片。
通用的 NRRD 文件格式(包括數據和文件頭):
參考: http://teem.sourceforge.net/nrrd/format.html#general.1
MINC 格式的基本知識
MINS 代表的是醫療圖像 NetCDF 工具包。
Minc2 從 NetCDF 變換成了 HDF5。HDF5 支持無限制多的數據類型,並且它就是為靈活高效的 I/O 和大容量的複雜數據而設計的。這些附加的特徵有助於 Minc2 處理大量的複雜數據集。
從研究論文中得到的一些關於這幾個格式的對比:
參考:Medical Image Formats, Springer Publication 2014. 醫療圖像格式
格式轉換
dicom 轉換成 NIFTI
dicom2nii(https://www.nitrc.org/projects/dcm2nii/)是一個用來把 DICOM 轉換為 NIFTI 的工具。nibabel 是一個讀寫 nifiti 文件的 python 庫。如果你你想把 DICOM 轉換成 NIFTI,可以使用自動轉換的工具(例如,dcm2nii)。python2 下的庫 dcmstack 可以將一系列的 DICOM 文件堆疊成多維數組。這些數組能夠被寫成 NIFTI 的文件,同時還加上一個可選的頭部擴展,這個頭文件包含原始 DICOM 文件的所有元數據。python3 提供了一個新的用來完成這個格式轉換的庫--dicom2nifti。我建議讀者去查看一下 nipy 這個項目。
DICOM 到 MINC 的轉換
腦成像中心(BIC)的 MINC 團隊開發了將 DICOM 轉換為 MINC 格式的工具。這個工具是用 C 語言開發的,它在 GitHub 上的地址為:https://github.com/BIC-MNI/minc-tools/tree/master/conversion/dcm2mnc
NIfTI 或 ANALYZE 轉換成 MINC
腦成像中心(BIC)的 MINC 團隊還開發了將 NIfTI 或 ANALYZE 轉換成 MINC 格式圖像的工具。這個程序叫做 nii2mnc。包括 nii2mnc 的很多格式轉換工具在這裡可以看到:https://github.com/BIC-MNI/minc-tools/tree/master/conversion。
總結
我們可以看到,目前已存在幾種用於存儲醫療圖像並且可以用在深度學習中的文件格式。我們的目標是使用最佳的文件格式,該格式能夠讓我們得到卷積神經網路(CNN)所需的所有特徵,以實現準確的預測。
※機器學習在金融領域的四大優勢和五大應用
※計算語言頂會ACL 2017開幕在即:國內接收論文梳理
※計算語言頂會ACL 2017開幕在即:國內接收論文梳理(5篇傑出論文)
※Daniela Rus,和她帶領的 MIT 計算機科學與人工智慧實驗室
※倉促擁抱自動駕駛汽車的底特律,並不打算做矽谷的分包商
TAG:機器之心 |
※AI醫療開創性研究:深度學習進行病變檢索和匹配
※深度學習在醫療領域的應用
※從基因診斷到醫療影像分析,11個案例幫你讀懂深度學習的應用
※深度學習如何改變醫療影像分析?圖瑪深維首席科學家給出了答案!
※如何利用精準醫療手段,研究藥物靶標發9分文章
※醫療保健案例研究:怎樣用深度學習檢測瘧疾?
※全文詳解:深度學習如何協助處理醫療中的數據難題
※醫療應用篇:3D列印與幹細胞研究推進先天性心臟病的治療
※醫療廢物分類收集引發的反思——暨論法律推理
※谷歌提出利用深度學習分析EHR數據,可提高醫療診斷預測的準確性
※谷歌展示全新醫療診斷範式:深度學習+AR顯微鏡=實時檢測癌症
※通過分析視網膜圖像診斷心腦血管疾病:谷歌大腦團隊取得醫療深度學習新進展
※組織工程技術——醫療實踐的未來
※業界 | 谷歌展示全新醫療診斷範式:深度學習+AR顯微鏡=實時檢測癌症
※專訪|體素科技:全病種醫療影像閱讀者
※3D列印技術在改變醫療手術方式
※AI醫療開創性研究:深度學習進行病變檢索和匹配(31 PPT)
※蘋果正式進入醫療記錄領域 簡化醫療信息網
※鄧侃解讀:醫療關鍵數據時間序列敏感度分析的通用方法
※從中醫學角度解讀量子醫療及其療效