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

AI 研习社按:本文由图普科技编译自《Medical Image Analysis with Deep Learning 》雷锋网(公众号:雷锋网)独家首发

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

《A Neural Algorithm of Artistic Style》是一篇最新发表的研究性论文,论文向我们介绍了如何将一种风格和气质从艺术家身上转移至一张图像,并由此创建出另一张新图像。其他的一些论文,比如Generative Adversarial Networks和Wasserstein 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文件。医生们使用DICOM阅读器和能够显示DICOM图像的电脑软件应用程序来查看医学图像,并且根据图像的信息作出诊断。
  • 通讯协议——DICOM通讯协议是用来在档案中搜索影像研究,并将影像研究还原显示的。所有连接了医院网络的医学成像应用程序都会使用DICOM协议交换信息,这些信息中的大部分是DICOM图像,不过还包括了一些患者信息和治疗方案。还有一些网络要求是用于控制和跟踪手术、安排手术日程、报告状态,以及分担医生和成像设备之间的工作量的。

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

分析DICOM图像

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

使用pip安装pydicom下载安装OpenCV

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

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

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

  • Kaggle竞赛和数据库:这是我个人最喜欢的数据库。这里面有关于肺癌和糖尿病视网膜病变的数据。
  • Dicom数据库:DICOM数据库是一个免费的线上医学DICOM图像或视频分享的服务器,它主要是以教学和科研为目的的。
  • Osirix数据库:这个数据库向我们提供了大量通过各种成像方式获得的人类数据。
  • 可视化人体数据集:“可视人计划”的某些部分是分布于这个数据集的,但是这个数据集中的数据是需要收费的。
  • Zubal幻影:这个网站提供了关于两名男性CT和MRI图像的多个数据库。

下载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的卷积神经网络。我们将根据本文提供的信息,构建下一部分的内容。

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2017-07-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【Science】破解密码“AlphaGo”诞生,训练Gan破解27%LinkedIn测试集密码

【新智元导读】一项新的研究旨在使用生成对抗网络(GAN) 来加快密码破解的速度。斯蒂文斯理工学院的研究人员用类似“AlphaGo”的方法,利用超过 4300 万...

35060
来自专栏张红林的专栏

大规模机器学习框架的四重境界

如何利用相对廉价的机器搭建分布式超大规模机器学习集群是一件非常复杂的事情,本文尝试梳理一下这方面的历史和现行的最佳实践。

1.5K20
来自专栏PaddlePaddle

宠物也刷脸,如何最快长成这个技能树?

然而令人吃惊的是,在 LA Hacks 2018 的活动之中,来自加州理工学院的美籍华裔大二学生 EricZhao做出“狗脸识别”系统,16小时让梦成真!

13630
来自专栏机器学习算法与Python学习

大规模机器学习框架的四重境界

25840
来自专栏DHUtoBUAA

Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple

  针对多任务点的全局路径规划,是指在存在静态障碍物的环境中,给定水面无人艇起始点、目标点以及多个任务点的情况下,设计从起始点出发,安全地遍历各个任务点,最终返...

10400
来自专栏AI研习社

为个人深度学习机器选择合适的配置

对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。日前,medium上的一篇...

66050
来自专栏AI科技评论

开发 | 为个人深度学习机器选择合适的配置

AI科技评论按:对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。 日前,m...

32880
来自专栏机器学习算法与Python学习

干货 | 数据挖掘知识点整理

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 1. 数据、信息和知识是广义数据表...

35270
来自专栏专知

【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现

【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值...

32240
来自专栏mwangblog

几种蚁群算法介绍

最早的蚁群算法,其在小规模TSP中性能尚可,再大规模TSP问题中性能下降,容易停滞。其解决旅行商问题(TSP)过程大致如下:

34930

扫码关注云+社区

领取腾讯云代金券