用CNN识别CT图像检测肺癌

article/2025/9/29 13:39:40

用CNN识别CT图像检测肺癌


原文:2nd place solution for the 2017 national datascience bowl

翻译参考:知乎用户王小新 Kaggle百万美元大赛优胜者:用CNN识别CT图像检测肺癌


概要

本文为2017年由Kaggle举办的数据科学竞赛的第二名获奖者Julian de Wit的部分解决方案。Julian de Wit和Daniel Hammack通过构建3D卷积神经网络创建肺结节探测器,预测患者患癌的可能性。Wit的开发环境为Windows版的Tensorflow和Keras库。

Kaggle在该比赛中提示参赛选手可参考之前的LUNA16竞赛。该竞赛采用的数据集是由公开数据集LIDC-IDRI转化而来的,医生为800多个病人的CT图像标记了1000多个肺结节。因此,可以从整张CT图像中的标记周围裁剪出小型3D图像,将这些小型3D图像与结节标记直接对应,从而利用神经网络学习这些特征,训练出一个神经网络来检测肺结节,并评估结节的恶性程度,预测患者患癌的可能性。其中,预测时神经网络通过滑动窗口的方式来遍历整张CT图像,分别判断每个滑动窗口所包含的区域是否含有恶性信息的可能性。

数据预处理和创建训练集

数据预处理

在预处理过程中,首先对CT图像进行缩放,保证图像中的每个像素点只表示 1 m m 3 1mm^3 1mm3的体积;然后将CT图像的像素强度转换为HU值,并最大化HU值后进行归一化处理;最后,确保所有CT图像都具有相同的方向。

训练集构建

计划构建U-net网络分割肺部区域。根据观察CT图像,可利用肺组织的边缘构建相应的框架找到肺结节。

在分割掩膜边缘进行采样标注,从而分割得到肺部组织。

在第一轮训练中,对LUNA16数据集上进行结节预测,得到了所有假阳性结节,并将其并入LUNA16 V2数据集中。随后,手动标记NDSB数据集中癌症样本的阳性结节和非癌症样本的假阳性结节,并训练第二各模型,其效果很糟糕。但将两个模型相结合,其效果相比于单个模型较好,因此保留第二个模型。

建立一个结节观测器,用于调试所有的标记。LIDC数据集的说明文档表明医生被要求忽略大于3cm的结节,但担心这些被忽略的结节会影响分类器的准确度,从而删除了与这些结节相重叠的部分。

上图为CT图像中的标记。左上为LUNA16 V2的数据;右上为非肺组织的边缘;左下为假阳性的区域;右下为被移除的无标注区域。

3D卷积神经网络的训练方法和网络结构

数据集正反两类样本量比为5000:500000,且正面例子的大小和形状有很大差异。因此在CT图像的滑动窗口中,建立小型3D卷积神经网络。

第一个目标为训练一个可作为基础的结节检测器。首先对正例进行上采样(upsample),将正反两类的样本比上调至1:20;然后进行一些图像增强操作以提高模型的泛化能力。

设计好分类器后,再训练一个用于预测恶化程度的回归模型,将肿瘤恶化程度划分为1(很可能不是恶性)~5(很可能是恶性),且为了强调肿瘤的恶化程度,对之前的划分平方运算后将范围扩大到0~25。计划使用同一个网络,以多任务学习的方法,同时进行分类结点和估计恶化程度这两个任务。

采用基于C3D神经网络(类VGG网络)得到最终的分类评估网络。首先将输入大小设置为32×32×32mm;对Z轴进行average pooling操作;最后,在网络的终端引入Botteneck features。

注:此处不是直接预测恶性肿瘤,而是输出结节的恶化程度。

上图为3D卷积神经网络结构示意图。

奇怪组织(strange tissue)检测器

当肺结节癌变时,其可能变为一些肺部肿块或更为复杂的组织。在CT图像中,若存在大量的“奇怪组织”,则表明癌症的可能性较高。然而,在目前的结节检测器程序中,对存在大量“奇怪组织”的CT图像,其无法检测出任意结节。因此,该问题将造成较高的假阳性率。

对于该问题,在LUNA16训练集上采用U-net网络构建检测器,但其效果提升微小。

源码中,作者使用部分LUNA16数据集和部分NDSB数据集,以及53个额外数据集(疑似来自本文原文中提到的吸烟者的肺部CT图像),基于U-net模型构建肿块检查器。

癌症预测

在之前的处理过程中,存在一个严重问题:错过了一些较大的明显的结节。因此,对CT图像进行两次下采样(downsample),并让网络在1,1.5和2这三个尺度上预测。
上图中左图表明没有很好地检测到大结节,图像缩放为1倍大小;右图表明检测效果较好,图像放大为2倍大小。图中矩形框表示检测到的恶性肿瘤。

添加额外的特征,构建梯度增强分类器(共使用7个特征)来预测一年内患者是否患癌。

主要由两个模型组成:

  • 第一个模型基于所有的LUNA16数据集构建而成;
  • 第二个模型通过选择NDSB3数据集中疑难病例和假阳性病例主动学习构建而成。

http://chatgpt.dhexx.cn/article/ORui5glu.shtml

相关文章

机场航拍图像检测软件(Python+YOLOv5深度学习模型+清新界面)

摘要:机场航拍图像检测软件使用深度学习技术检测机场航拍图像中的飞机目标等,识别航拍目标等结果并记录和保存,辅助机场智能管理运行。在介绍算法原理的同时,给出Python的实现代码、训练数据集,以及PyQt的UI界面。机场…

半监督学习+3D医疗图像检测 FocalMix

目录 Abstract 1.Contributions Introduction 2. Background and Preliminaries背景和准备工作 2.1.1 Anchor boxes 2.1.2 Focal Loss 2.2. Semi-supervised Learning 3. Methodology 3.1. Soft-target Focal Loss 3.2. Anchor-level Target Prediction 3.3. MixUp A…

检测 图像中得直线

Radon 变换 介绍 图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴上的投影&…

遥感图像目标检测研究综述

遥感图像目标检测 遥感图像特殊性一、目标检测研究综述1.介绍2.传统目标检测3.基于深度学习目标检测R-CNN系列为代表的两阶段算法YOLO、SSD为代表的一阶段算法 二、多尺度目标检测研究综述1.基于图像金字塔的多尺度目标检测基于尺度生成网络的图像金字塔基于尺度归一化的图像金…

工业自动化流水线上的机器视觉检测应用 (二):图像检测

图像检测是用机器代替人眼来做测量和判断,使用工业相机等机器视觉产品将被检测的目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号,图像处理系统等通过分析这些信号进行…

基于卷积神经网络的多目标图像检测研究(一)

摘 要 目标检测任务简单来说是在图片或视频中指出多个特定目标并以方框形式给出这些物体在图片中的位置和大小。它与我们的生活密切相关,它被广泛应用于安全识别、无人驾驶、医疗诊断、图像检索等领域,并且未来将愈发重要。因此目标检测也是近年来机器学…

图像检测系列之(12)异常检测(13)拼接伪造(14)deepfake | ICCV2021生成对抗GAN汇总梳理...

(1)GAN改进系列 | 最新ICCV2021生成对抗网络GAN论文梳理汇总图像编辑系列之(2)基于StyleGAN(3)GAN逆映射(4)人脸 (5)语义生成 | ICCV2021生成对抗GAN梳理汇总…

文章摘要 如何使用CLIP做图像检测 RegionCLIP:基于区域的文本-图像预训

摘要:使用图像-文本对的对比语言图像预训练模型(CLIP)在零样本和迁移学习环境下的图像分类方面都取得了令人印象深刻的结果。但直接应用CLIP模型识别图像区域进行对象检测效果并不好,这是因为CLIP被训练为将图像作为一个整体与文本…

图像检测之抽烟检测与打电话检测

识别司机是否抽烟和是否打电话的图像算法,通过深度学习实现,其中用到了一些opencv的知识,效果图如下: 相关技术资料请见本人其它博客文章

图像检测技术的研究现状

图像检测技术的研究现状 技术检测 图像处理知识库 2016-01-08 19:59 图像检测技术的研究现状 所谓图像检测,就是通过图像对感兴趣的特征区域(检测目标)进行提取的过程,其中图像是承载检测目标的载体,检测目标需要事先…

YOLT遥感图像检测算法详解

You Only Look Twice: Rapid Multi-Scale Object Detection InSatellite Imagery-论文链接-代码链接 目录 1、需求解读2、遥感图像处理和普通图像处理的区别与联系3、YOLT检测算法分析3.1 遥感图像中的视觉挑战3.2 YOLT检测算法简介 4、YOLT检测算法实现详解4.1 YOLT检测算法网…

opencv 简单的图像检测,识别,标注,

2022/4/19 刚刚做了个升级版,就是第二种读取文件的方式,另外分函数写了 链接: python opencv 简单图像识别,标注 [升级版]_死非死的…

医学图像3D目标检测

医学图像3D目标检测 论文:3D Bounding Box Detection in Volumetric Medical Image Data: A Systematic Literature Review 这篇论文综述了近五年在三维医学数据中进行3D Bouding Box Detection的方法。 1、论文背景 VOI的提取是重要的预处理步骤,例如…

图像检测常用评价指标与数据集

评价指标 1.准确率(Accuracy) 检测时分对的样本数除以所有的样本数。准确率一般被用来评估检测模型的全局准确程度,包含的信息有限,不能完全评价一个模型性能。 2.混淆矩阵(Confusion Matrix) 混淆矩阵是以模型预测的类别数量统计信息为横轴&#xff0c…

基于Yolov5的医学图像检测

yolov5医学图像检测练手项目: 数据集分布如下: 5S改进检测结果如下,可加入注意力机制、多尺度等技术提升检测精度 专注于各个行业的落地应用,如工业检测、医学图像检测等;

图像边缘检测

文章目录 1. 什么是边缘检测2 边缘检测的常用方法及Python应用2.1 一阶微分算子2.1.1 Roberts算子2.1.2 Prewitt算子2.1.3 Sobel算子 2.2 二阶微分算子2.2.1 Laplacian算子2.2.2 Canny算子 3. 源码仓库地址 1. 什么是边缘检测 边缘检测是图像处理与计算机视觉中的重要技术之一…

图像检测:图像分类

图像分类 判断图片中是否有某个物体,一个图对应一个标签 卷积神经网络(CNN) 网络进化: 网络: AlexNet→VGG→GoogLeNet→ResNet 深度: 8→19→22→152 VGG结构简洁有效: 容易修改,迁移到其…

相似图像的检测方法

背景 以图搜图,是日常生活中我们经常会用到,例如在选购一款商品时,想要对比价格,往往会在各个购物app上通过搜图的形式来看同一款产品的价格;当你碰到某种不认识的植物时,也可以通过以图搜图的方式来获取该…

图像检测

图像中的目标检测涉及识别各种子图像并且围绕每个识别的子图像周围绘制一个边界框。 不需要判断是什么类型,后面可以做图像识别 经典网络: 图像分类的深度学习工具是区域卷积神经网络(R-CNN) 第一阶段:R-CNN->S…

计算机视觉-深度学习图像检测方法梳理

计算机视觉-深度学习图像检测方法梳理 由于之后要转方向啦,趁这段时间整理手中硕士研究方向的一些阅读笔记,这是一篇关于计算机视觉的基础知识梳理 先搞清一些小知识点 首先我们要弄清楚图像分类、目标定位、语义分割、实例分割的区别 a. 图像分类 &…