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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/508290.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

适用于智能断路器、新能源汽车充电枪锁、电动玩具、电磁门锁等的直流电机驱动芯片D6289ADA介绍

应用领域 适用于智能断路器(家用或工业智能空开)、新能源汽车充电枪锁、电动玩具、电磁门锁、自动阀门等的直流电机驱动。 功能介绍 D6289ADA是一款直流马达驱动芯片,它有两个逻辑输入端子用来控制电机前进、后退及制动。该电路具有良好的抗干…

[flink 实时流基础] 输出算子(Sink)

学习笔记 Flink作为数据处理框架,最终还是要把计算处理的结果写入外部存储,为外部应用提供支持。 文章目录 **连接到外部系统****输出到文件**输出到 Kafka输出到 mysql自定义 sink 连接到外部系统 Flink的DataStream API专门提供了向外部写入数据的方…

深入了解 Vue 3 中的 Keyframes 动画

在本文中,我们将探讨如何在 Vue 3 中实现 Keyframes 动画。Keyframes 动画允许我们通过定义关键帧来创建复杂的动画效果,从而为用户提供更吸引人的界面体验。 transition动画适合用来创建简单的过渡效果。CSS3中支持使用animation属性来配置更加复杂的动…

学习笔记——《计算机组成原理》

框图 第一章 总线 1、什么是总线? 总线是连接各个部件的信息传输线,是各个部件共享的传输介质。 2、总线特点? 相对于一对一的连线来说,可拓展性更好,也更省空间,但是某个时刻只能有一对部件进行通信。 3、…

如何将平板或手机作为电脑的外接显示器?

先上官网链接:ExtensoDesk 家里有一台华为平板,自从买回来以后除了看视频外,基本没什么作用,于是想着将其作为我电脑的第二个屏幕,提高我学习办公的效率,废物再次利用。最近了解到华为和小米生态有多屏协同…

基于深度学习的停车场车辆检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 上图测试结果如下图所示: 2.算法运行软件版本 matlab2022a 3.部分核心程序 image imread(image_test\test.jpg); image2 image;%图…

关于OcenaBase v4.2中,分区转移和负载均衡的技术解读

OceanBase​​​​​​​​​​​​​​作为一款原生分布式数据库,其核心的技术特性之一是高可扩展性,其具体表现在两个方面: 首先,是灵活的扩缩容能力,包括垂直扩缩容和水平扩缩容: 垂直扩缩容&#xff…

探究云手机的海外原生IP优势

随着全球数字化进程的加速,企业越来越依赖于网络来扩展其业务。在这个数字时代,云手机作为一种创新的通信技术,已经成为了企业网络优化的重要组成部分。云手机支持海外原生IP的特性,为企业在国际市场上的拓展提供了全新的可能性。…

【Node.js从基础到高级运用】二十、Node.js 强大的REPL

引言 Node.js REPL(Read-Eval-Print Loop)是一种交互式的命令行工具,它允许开发者快速地执行JavaScript代码,并查看结果。这个功能在进行快速原型设计、调试、学习JavaScript或Node.js时非常有用。 启动REPL 首先,确保…

高度不同的流体瀑布css实现方法

商城商品列表 实现瀑布流展示,通过flex或grid实现会导致每行中的列高度一致,无法达到错落有致的感觉; 为此需要用到: CSS columns 属性 columns 属性是一个简写属性,用于设置列宽和列数。 CSS 语法 columns: column-wi…

Java类和对象练习题

练习一 下面代码的运行结果是() public static void main(String[] args){String s;System.out.println("s"s);} 解析:本题中的代码不能编译通过,因为在Java当中局部变量必须先初始化,后使用。所以此处编译不…

信息安全技术基础知识总结

一、信息安全基础知识 信息安全基本要素: 1. 机密性(C):确保信息不暴露给未授权的实体或进程 2. 完整性(I):只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改 3. 可用性…

论文笔记✍GS3D- An Efficient 3D Object Detection Framework for Autonomous Driving

论文笔记✍GS3D: An Efficient 3D Object Detection Framework for Autonomous Driving 📜 Abstract 🔨 主流做法限制 : 我们在自动驾驶场景中提出了一种基于单个 RGB 图像的高效 3D 物体检测框架。我们的工作重点是提取 2D 图像中的底层 3…

降低项目延期概率的5大注意事项

降低项目延期概率对项目非常重要。因为项目延期往往会导致成本增加,降低客户满意度,影响企业在市场上的竞争力,造成资源浪费。因此,我们需要降低项目延期概率,实现企业长远发展。 而降低项目延期概率,一般来…

java基础之高级面试-2024

抽象类和接口有什么区别 定义和设计:抽象类是使用abstract关键字定义的类,可以包含抽象方法和非抽象方法,可以有实例变量和构造方法;接口通过interface关键字定义,只能包含抽象方法、默认方法和静态方法,不…

基于ssm的家政服务中介网(java项目+文档+源码)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的闲一品交易平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 家政服务中介网的主要使用者分为…

【二叉树】Leetcode 230. 二叉搜索树中第K小的元素【中等】

二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例1: 输入:root [3,1,4,null,2], k 1 输出:1 解…

【iOS ARKit】3D 视频

在AR 中播放视频也是一种常见的需求,如在一个展厅中放置的虚拟电视上播放宣传视频,或者在游戏中为营造氛围而设置的虚拟电视视频播放,或者在识别的2D个人名片上播放自我介绍视频,因视频具有静态图像无法比拟的综合信息展示能力&am…

【学习笔记】java项目—苍穹外卖day02

文章目录 苍穹外卖-day02课程内容1. 新增员工1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码开发1.2.1 设计DTO类1.2.2 Controller层1.2.3 Service层接口1.2.4 Service层实现类1.2.5 Mapper层 1.3 功能测试1.3.1 接口文档测试1.3.2 前后端联调测试 1.4 …

深度卷积神经网络(AlexNet)

文章目录 简介 简介 AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。 AlexNet使用ReLU而不是sigmoid作为其激活函数。 import torch from torch import nnnet nn.Sequential(# 这里使用一个11*11的更大窗口来捕捉对象。# 同时,…