今年三月,NVIDIA的GTC2017大会上展示了大量深度学习技术在医学领域的优秀作品。IanGoodFellow、JeremyHoward等深度学习专家分享了他们对深度学习的见解。顶级医学院(如西奈山医院、纽约大学、麻省总医院等)和肺癌领域BOWL的获奖者Kaggle讲解他们的建模策略。回顾我们的系列文章,在上一篇文章中我们讨论了文本和图像数据的基本深度学习。在本文中,我们将重点分析医学图像及其格式。这篇文章由三个部分组成——医学图像和合成、医学图像格式和医学图像格式的转换。本文的目标是整理知识,帮助我们实现最终目标——用深度学习分析医学图形。医学图像和合成与该主题相关的一个很好的资源来自意大利生物组织和生物图像研究所(IBB)的MicheleLarobina和LoredanaMurino发表的一篇论文。该研究所是意大利国家研究委员会(NCR)的一部分。它是意大利最大的公共研究机构。另一个参考资源是本文:“在R中使用DICOM和NIfTI数据标准”那么,什么是医学图像?医学图像是解剖区域内部结构和功能的表示。它以二维像素或三维体素的形式呈现。映射到空间位置的值是采样和重建过程的离散表示。用于描述定义的采样模式的视野的像素数是解剖学和功能细节的表达。像素表示的值取决于成像模式、采样协议、重建和后续处理。医学数据的构成医学数据的构成如图所示:医学数据有四个关键组成部分——像素深度、光度解释、元数据和像素数据。这些部分决定了图像的大小和分辨率。像素深度或位深度或颜色深度是用于编码每个像素信息的位数。例如,一个8位栅格将有256个不同的值,从0到255。参考:http://desktop.arcgis.com/en/arcmap/10.3/manage-data/raster-and-images/bit-depth-capacity-for-raster-dataset-cells.htmPhotometricinterpretationmaterializespixeldatabeinterpreted作为图像的正确表示,例如单色图像或彩色图像。为了确定颜色信息是否存储在像素值中,我们引入了每像素采样数的概念,也称为通道数。单色图像每个像素只有一个样本,图像中不存储任何颜色信息。我们使用从黑到白的灰度显示这种图像。灰度级数显然取决于用于存储该样本的位数,在本例中与像素深度一致。X射线、CT和MRI等医学放射学图像具有灰度光度解释。核医学图像以彩色呈现,例如PET和SPECT。元数据是图像中描述的信息。这可能看起来很奇怪,但在任何文件格式中,都有一些关于图像的信息超出了像素数据。这类信息称为元数据,通常以文件头的形式存储在文件的开头,其中至少包含以下信息:图像矩阵的维数、空间精度、像素深度和光度解释。像素数据——像素值的大小存储在这里。根据数据类型,像素数据可以存储为整数或浮点类型,使用表示数据所需的最少位。因此,图像大小=标题大小(包括元数据)+行x列x像素深度x帧数医学图像格式放射生物学图像主要有六种格式–DICOM(医学数字成像和通信),NIFTI(神经成像InformationTechnologyInitiative)、PAR/REC(飞利浦MRI扫描格式)、ANALYZE(梅奥医学成像)以及NRRD(近原始光栅数据)和MNIC格式。截至2017年5月的医学图像格式DICOM和NIFTI是最常用的格式。DICOM格式的基础知识DICOM代表医学数字成像和通信。DICOM是由国家电气制造商协会(NEMA)制定的标准。它定义了医学影像领域的信息处理、存储、打印和传输标准。这些是您在医院的扫描仪或图片存档和通信系统(PACS)上立即获得的文件格式。它包括一种文件格式和协议,用于在能够接收DICOM格式的图像和患者数据的实体之间使用TCP/IP进行通信。DICOM文件包含文件头和具有相同文件名的*.dcm图像数据。文件头的大小取决于它提供的信息量。文件头包含以下信息:患者ID、患者姓名、图像的模态和其他信息。它定义了图像的帧数和分辨率。图像浏览器在显示图像时会使用此信息。一个wordsample,会有很多的DICOM文件。来源:https://www.leadtools.com/sdk/medical/dicom-spec1pydicom是一个用于读取dicom文件的python库。您可以参考本文第一部分的示例代码。使用深度学习的医学图像分析深度学习可以分析图像和视频,并将分析结果用于许多应用程序,例如无人驾驶……oro.dicom是一个可以读取dicom数据的R语言包。上图是使用oro.dicom包读取一个解压后的DICOM文件。NIFTI格式基础知识Nifti格式最初是为神经成像而发明的。NeuroimagingInformaticsTechnologyInitiative(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图像只有两个文件。本工具使用C语言开发,GitHub地址为:https://github.com/BIC-MNI/minc-tools/tree/master/conversion/dcm2mncNIIfTI或ANALYZE转换为MINC脑成像中心(BIC)的MINC团队还开发了一个将NIfTI或ANALYZE转换为MINC格式图像的工具。该程序称为nii2mnc。包括nii2mnc在内的很多格式转换工具可以在这里看到:https://github.com/BIC-MNI/minc-tools/tree/master/conversion。总结我们可以看到有几种文件格式可以存储可用于深度学习的医学图像。我们的目标是使用最好的文件格式,使我们能够获得卷积神经网络(CNN)所需的所有功能,以实现准确的预测。
