天池医疗AI大赛[第一季] Rank8解决方案[附TensorFlow/PyTorch/Caffe实现方案]

团队成员:北京邮电大学 模式识别实验室硕士研究生

今年5月,参加了天池医疗AI大赛,这次比赛是第一次参加此类的比赛,经过接近半年的比赛,终于10月落下帷幕,作为第一次参加比赛,能在接近3000支队伍中拿到第8名,感觉已经比较满意,不过也有许多遗憾之处,在此主要介绍一下我们比赛的方案。

摘要

本次竞赛要求从数千例CT 影像中找出肺结节的位置,并给出概率。相比于图片,CT影像可以看成3维的数据,更大更耗费资源,也更难以提取特征。我们采用分割+分类的方法,先利用分割网络从CT影像中找出疑似的结节,再利用分类,对找出的疑似结节进行判断。 我们采用了基于3D的解决方案,因此能提取更多的空间信息。同时我们在设计网络的时候,充分考虑不同结节的尺度,识别的难易程度,结合Residual和Inception的结构思想,设计了ReCeption结构,在不同尺度,分辨率的结节上都有着较好的效果。团队队员第一次参加竞赛,经验不够丰富,基本未使用模型融合的方式,主要是简单的boost方法。

一、赛题解析

1.1 任务介绍

本次大赛要求参赛者使用患者的CT影像数据(mhd格式)训练模型算法,在测试数据集中找出CT影像中的肺部结节的位置并给出是一个真正肺结节的概率。初赛在线下自由完成(先使用了TensorFlow后来改用PyTorch),复赛必须在线上使用PAI平台的定制版的Caffe。

1.2 数据介绍

本次大赛数据集包含数千份高危患者的低剂量肺部CT影像(mhd格式)数据,原始图像为三维图像,每个影像包含一系列胸腔的多个轴向切片。这个三维图像由不同数量的二维图像组成,其二维图像数量可以基于不同因素变化,比如扫描机器、患者。Mhd文件具有包含关于患者ID的必要信息的头部,以及诸如切片厚度的扫描参数。训练集和验证集的所有数据全部都有结节

数据的特点:3D类型图像 大(一个ct文件几百M)

slice.png

1.3 评价指标

本次比赛使用跟LUNA16比赛一样的评价标准。赛题组会根据参赛者给出的坐标信息判断结节是否检测正确。如果结节落在以参考标准为中心半径为R的球体中,则认为检测正确。根据提供的结节检测概率,计算一个FROC曲线。Sensitivity在1/8, 1/4, 1/2, 1, 2, 4和8一共7个不同的误报情况下的平均值作为最终评判标准。FROC曲线可以看成类似分类问题中ROC曲线的指标。

此次比赛,我们的方案是分割+分类的方法,分割部分使用UNET,找出疑似节点,而分类部分使用类似ResNet结构神经网络,对找出的疑似节点给一个概率。最后初赛数据集得分最高的froc为0.750,复赛数据集得分最高的为0.600。

froc.jpg

二 方法概述

我们的算法分为3步:

1. 基于3D CNN+Unet/Inception/Resnet的分割网络,用以找出疑似结点。利用结节标注信息生成的结节mask图像,训练基于卷积神经网络的肺结节分割器。

2. 基于ResNet的分类网络,判断每一个疑似结点是否是真阳性。 找到疑似肺结节后,可以使用图像分类算法对疑似肺结节进行分类,得出疑似肺结节是否为真正肺结节的概率

3.利用类似adaboost的方法训练多个一样的分类模型,不断的提升分类的准确率。
                           

liucheng.png

三 分割网络

基本网络结构我们采用了类似Unet的形式,Unet网络的receptive filed 很大,可以融合全局特征和局部特征,使网络可以同时利用深层网络的语义信息以及浅层网络的纹理信息。

3.1 数据处理

      1.  对原始数据进行归一化处理,使像素值得范围为[0, 1]。

      2.  从原图上切出64x64x64的立方体块,在内存允许的情况下可以使立方体块尽可能的大。
  

预测的Label大小与输入相同,结点范围内的值为1,其他地方为0。如下图,左边是原始的数据,右边是生成的mask(都是3D的)

nodule.png

mask.png

3.2 数据增强

训练样本虽然大,但是却很少,为了避免过拟合,提高模型泛化能力,这里对数据做了一些增强,主要包含:

- 以结点为中心切块时,提供一个随机大小的偏移 

- 对切下的立方体,进行八个方向的翻转 

3.3 模型介绍

分割网络的每个单元采用的是ResNet+Inception的结构,ResNet的残差链接可以有效缓解深层网络梯度消失的问题,同时跨层连接的方式,使得简单的样本可以通过直接相连的方式,而复杂的样本则经过更深的网络 。可以极快地加速超深神经网络的训练。 而Inception结构将不同的卷积层通过并联的方式结合在一起,它主要改进了网络内部计算资源的利用率,让我们能在固定计算资源下增加神经网络深度和宽度,另外,Inception 结构还遵循了 Hebbian 原则并增加了多尺度处理,增加了网络对多尺度的适应性。

Unet是一个在医学图像处理领域,应用很广泛的网络结构,是一种全卷积神经网络,输入和输出都是图像,没有全连接层。较浅的高分辨率层用来解决像素定位的问题,较深的层用来解决像素分类的问题。U-NET 构造了一个收缩网络和一个扩张网络,形成了一个 U 型结构。收缩过程通过不断的卷积(convolution)和池化(pooling)操作提取图片特征。扩张过程与收缩过程相对应,通过上采样(upsampling)和卷积操作来获取图片的特征。U-NET 的特点在于收缩网络和扩张网络是相互映射的关系,在扩张的过程中,通过合并与之映射的收缩层特征补全丢失的边界信息,提升预测边缘信息的准确性。与SegNet,VGG 等网络结构相比,U-NET 具有训练时间短,结构简单,样本需求少等优势。

3.3.1 网络结构单元

我们的网络是ResNet+Inception+Unet结合的产物,首先定义了下采样单元,它结合了ResNet和Inception的优势,每一个下采样单元保持输入与输出通道数相同,尺寸缩减为原来的一半。我们把这种自己设计的结构称为ReceptionBlock,一个ReceptionBlock的结构如下图所示(如果不是下采样,左边的卷积可以去掉)

查看本文全部内容,欢迎访问天池技术圈官方地址:天池医疗AI大赛[第一季] Rank8解决方案[附TensorFlow/PyTorch/Caffe实现方案]_天池技术圈-阿里云天池

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值