写点什么

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

作者:阿里云天池
  • 2024-04-02
    浙江
  • 本文字数:2306 字

    阅读完需:约 8 分钟

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

今年 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)



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。



二 方法概述

我们的算法分为 3 步:

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

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

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



三 分割网络

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


3.1 数据处理

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

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

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




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实现方案]_天池技术圈-阿里云天池


用户头像

还未添加个人签名 2024-03-12 加入

还未添加个人简介

评论

发布
暂无评论
天池医疗AI大赛[第一季] Rank8解决方案[附TensorFlow/PyTorch/Caffe实现方案]_人工智能_阿里云天池_InfoQ写作社区