资讯 人工智能开发者
此为临时链接,仅用于文章预览,将在时失效

深度学习下的医学图像分析(一)

作者:图普科技 编辑:谷磊
2017/06/29 20:26

雷锋网按:本文由图普科技编译自《Medical Image Analysis with Deep Learning 》,雷锋网独家首发。

近年来,深度学习技术一直都处于科研界的前沿。凭借深度学习,我们开始对图像和视频进行分析,并将其应用于各种各样的设备,比如自动驾驶汽车、无人驾驶飞机,等等。

A Neural Algorithm of  Artistic  Style是一篇最新发表的研究性论文,论文向我们介绍了如何将一种风格和气质从艺术家身上转移至一张图像,并由此创建出另一张新图像。其他的一些论文,比如Generative Adversarial  NetworksWasserstein GAN,也已经为开发模型铺平了道路,这个模型能够创建出与输入数据相似的新数据。由此,“半监督学习”世界的大门被打开了,未来“无监督学习”的发展也将更加顺利。

尽管这些调查研究的对象现在仅限于一般的图像,但我们的目标是将这些研究运用到医学图像中,帮助医疗保健的发展。在本文中,我将从图像处理和医学图像格式数据入手,并对一些医学数据进行可视化处理。在下一篇文章中,我将进深入剖析一些卷积神经网络,并将其与Keras联合,预测肺癌。

使用Python进行基本的图像处理

OpenCV(开源计算机视觉库)凭借其大量社区支持,以及对C++,Java和Python的可兼容性,在琳琅满目的图像处理库中脱颖而出,成为了图像处理库的主流。深度学习下的医学图像分析(一)

现在,打开你的Jupyter笔记本,并且确定cv2是能够导入至笔记本的。你还需要numpy和matplotlib来查看笔记本内的细节内容。

深度学习下的医学图像分析(一)

现在,我们来看一下你能不能打开图片,能不能用下面的代码在你的笔记本上查看图片。

深度学习下的医学图像分析(一)

基本的人脸检测

接下来,我们要玩些有趣的——检测人脸。我们将使用一个开源的正脸检测器来进行人脸检测,这个检测器最初是由Rainer Lienhart创建的。下图这个帖子详细地介绍了级联检测的细节:

深度学习下的医学图像分析(一)

在下面的文档中还有很多使用OpenCV进行图像处理的例子(点击链接查看文档http://docs.opencv.org/trunk/d6/d00/tutorial_py_root.html),读者们可以任意查看。了解了基本的图像处理以后,接下来我们将开始了解“医学图像格式”。

医学图像数据格式

医学图像与“数字影像和通讯”(DICOM)一样,是一个储存和交换医学图像数据的标准解决方案。该标准自1985年第一版发布以来,已经被修改了好几次。该标准使用的是一个文件格式和一个通讯协议。

下面的博客详细地介绍了DICOM标准:

分析DICOM图像

Pydicom是一个相当不错的、用于分析DICOM图像的Python工具包。在这个部分,我们将会看到DICOM图像是如何在Jupyter笔记本上呈现的。

使用pip安装pydicom下载安装OpenCV

Pydicom工具包安装完毕以后,回到Jupyter笔记本。将dicom工具包和下图中的其他工具包导入笔记本中。

深度学习下的医学图像分析(一)

在处理和分析数据时,我们还会用到其他的工具包,比如pandas,scipy,skimage和mpl_toolkit,等等。

深度学习下的医学图像分析(一)

网上有很多免费的DICOM数据库,下面的这些数据库可能对你有所帮助:

下载dicom文件,并将其上传至你的jupyter笔记本。

深度学习下的医学图像分析(一)

现在,将DICOM图像加载到一个列表中。

深度学习下的医学图像分析(一)

第一步:在Jupyter笔记本上查看DICOM图像

深度学习下的医学图像分析(一)

在第一行,我们加载第一个DICOM文件,然后提取文件名在列表中排第一的元数据。深度学习下的医学图像分析(一)

接下来,我们要计算3DNumpy数组的总维数,它等于片中像素的行数x、片中像素的列数x,还有x,y,z轴。最后,我们要用“像素空间”和“SliceThickness”来计算三个轴上像素间的空间距离。我们需要将数组维度保存在ConstPixelDims中,并将空间保存在ConstPixelSpacing中。深度学习下的医学图像分析(一)

深度学习下的医学图像分析(一)深度学习下的医学图像分析(一)第二步:进一步研究DICOM格式的细节

CT扫描测量的单元是“胡斯菲尔德单元”(HU),这个单元测量的是放射性密度。为了得到精确的测量结果,CT扫描仪经过了严格的校准。下面是关于CT扫描测量的细节内容:

每个像素都会被分配一个数值(CT数),这个数值是相应的voxel内所有衰减值的平均值。这个数字是与水的衰减值相比较得出的,而且是以任意单元的规模显示的,这个任意单元叫做“胡斯菲尔德单元”(HU),是以Godfrey Hounsfield先生的名字命名的。

这个任意单元的规模将水的衰减值定为零。CT数字的范围是2000HU,尽管有一些现代扫描仪的HU范围达到了4000。每个数值都代表了一种灰色阴影,在光谱两端有+1000白色和-1000黑色。

深度学习下的医学图像分析(一)

胡斯菲尔德规模(图片来自《CT的介绍》)

有些扫描仪是有柱状扫描边界的,但是其输出的图像确实方形的。在扫描边界之外的像素将被赋予-2000的定值。

深度学习下的医学图像分析(一)

CT扫描仪图像(图片来自《CT的介绍》)

第一步通常是将这些值设置为零。接着,我们把得到的数值与重新调节的斜率相乘,再加上截距(通常是记录在扫描的元数据中的),然后回到HU单元。

在接下来的部分,我们将会使用Kaggle的肺癌数据库和Keras的卷积神经网络。我们将根据本文提供的信息,构建下一部分的内容。

长按图片保存图片,分享给好友或朋友圈

深度学习下的医学图像分析(一)

扫码查看文章

正在生成分享图...

取消
相关文章