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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

标定系列——预备知识-OpenCV中矫正相关函数(十二)

标定系列——预备知识-OpenCV中矫正相关函数(十二) 说明记录 说明 记录了OpenCV中的矫正相关函数的使用 记录

Can‘t connect to server on ‘localhost‘ (10061)

问题:电脑关机重启后,连接不上mysql了,报错信息如下:2002 - Cant connect to server on localhost (10061)解决办法:很大的原因是mysql服务没有启动,需要你重启一下mysql: 以管理员的身份运行cm…

从PDF到高清图片:一步步学习如何转换PDF文件为高清图片

引言 PDF文件是一种便携式文档格式(Portable Document Format),最初由Adobe Systems开发,用于在不同操作系统和软件之间保持文档格式的一致性。PDF文件通常包含文本、图片、图形等多种元素,并且可以以高度压缩的方式存…

VScode 集成终端设置默认打开当前文件夹 mac系统

一.快捷键设置 搜索 openInIntegratedTerminal 如图: 二.设置cmd 默认打开位置 点击设置 搜索 ntegrated:cwd 如下图: 三.查看ip 快捷指令: ipconfig getifaddr en0

SpringBoot中Bean注册

Bean注解 Springboot中默认扫描启动类所在的包及其子包。 比如这里的DemoApplication是启动类,那么spring boot默认扫描com.example.demo这个包。 Controller、Service、Repository这三个注解是Component的衍生注解,它们经常会被添加到Controller层、Se…

什么是EDM邮件推广营销?

电子邮件作为最古老的互联网沟通工具之一,凭借其无可比拟的直达性、个性化潜力与高投资回报率,始终占据着企业营销策略的核心地位。随着人工智能技术的革新应用,云衔科技以其前瞻视野与深厚技术底蕴,倾力打造了一站式智能EDM邮件营…

机器学习实战17-高斯朴素贝叶斯(GaussianNB)模型的实际应用,结合生活中的生动例子帮助大家理解

大家好,我是微学AI,今天给大家介绍一下机器学习实战17-高斯朴素贝叶斯(GaussianNB)模型的实际应用,结合生活中的生动例子帮助大家理解。GaussianNB,即高斯朴素贝叶斯模型,是一种基于概率论的分类算法,广泛应…

免杀对抗-安全工具篇新型Go架构C2-Sliver多平台上线模式红队集成研究免杀方向

首先,你需要分析: 1、安全工具是否有源代码 2、安全工具源代码逻辑复杂程度 3、当前源代码你是否有能力修改 其次,你需要考虑: 1、无源码或无能力修改 2、各种异常bug打包问题 3、修改打包后效果也不太好 故: 1、非源码…

VScode使用Prettier格式化代码

1、安装Prettier插件 2、扩展设置 3、设置.prettierrc.json配置文件路径 4、.prettierrc 配置文件 .prettierrc.json 是 Prettier 格式化工具的配置文件,用于指定代码格式化的规则和风格。下面是一些可能的配置选项,请自行选择: {"prin…

Yarn与Zookeeper的介绍

Yarn--三大调度策略 FIFO(先进先出): 目前几乎已经没有人使用了. 类似于: 单行道. 好处: 每个计算任务能独享集群100%的资源. 弊端: 不能并行执行, 如果大任务过多, 会导致小任务执行时间过长. Capacity(容量调度): 我们用…

找到矩阵中位于降序15%位置的值

MATLAB实现 clc clearvars; matrix randn(10, 10); % 一个示例矩阵 disp(matrix)value find_value_at_15_percent(matrix); disp([位于降序中15%位置的值为: , num2str(value)]);% 验证 xreshape(matrix,1,100); ysort(x,descend); y(1:16)function value_at_15_percent fi…

缓存(反向代理)服务器-varnish

varnish简介: varnish是一款高性能且开源的反向代理服务器和HTTP加速器,(其实就是带缓存的反向代理服务器)它可以把整个HTTP响应内容缓存到内存或文件中,从而提高web服务器器的响应速度。 与传统的squid相比&#xff0…

如何提高图片的分辨率?dpi修改工具推荐

在调整分辨率之前,我们需要了解什么是dpi分辨率,简单来说,分辨率是指图像中包含的像素数量,分辨率越高,图像就越清晰,常见的分辨率包括72dpi、96dpi和300dpi等,在打印照片或者一些考试平台对图片…

02-JDK新特性-泛型

泛型 什么是泛型 泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译是检测到非法的类型。 它的本质是参数化类型,也就是说操作的数据类型被指定为一个参数。 也就是将类型有原来的具体类型参数化,然后在…

【CVE复现计划】CVE-2023-27179

CVE-2023-27179 简介: GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞,漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。 影响版本: GDidees CMS v3.9.1及更低版本 POC: /_admin/imgdownload.php?filename/fla…

MATLAB 自定义中值滤波(54)

MATLAB 自定义中值滤波(54) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 中值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云中值滤波算法,具体效果如下所示: 中值滤波前: 中值滤波后:…

前端性能优化-Table渲染速度优化

教务系统-排课页面性能优化总结 一、前言 在公司教务系统中,排课页面慢的令人发指,在某些情况由于数据量大导致页面主进程卡死,遂组织进行一次排查优化,现记录一下 二、效果对比 以下数据均为UAT环境 Performence对比 更改前: 主进程渲染时间为 8s 教务系统-排课页面性…

MHA的实验部署

一、前期准备 准备四台虚拟机,一台主服务器,一台管理服务器,两台从服务器 在开始之前先要关闭所有服务器的防火墙,以免有一些麻烦 二、实际操作 2.1 配置主服务器 2.2 配置从服务器1和2 2.3 给主从服务器实现软链接 2.4 配置mysql…

TypseScript再学习之类型别名和接口(10)

先看类型别名:使用关键字 type 声明,注意有等于号额 // 类型别名 使用关键字 type 声明,注意有等于号额 type Cat {name: string; }; let huahua: Cat {name: "花花", };type和interface不同之处在于:interface 是可以自动合并类型的&#…