点击此处跳转到系列博客索引


文章目录

  • 引言
  • 算法原理
    • 多层级3D CNN
    • 多尺度渐变集成3D CNN
  • 实现过程
  • 实验结果
    • 评价指标
    • 结果分析
  • 参考

引言

上一节中介绍了U-net在肺结节分割提取中的原理,能有效提取出候选结节。然而,由于结节形态特征的高度变异性和将其误认为邻近器官的可能性,原本不是结节的目标通过模型预测得到的结果被划定为结节。为了解决较高的假阳性问题,本文利用多层级三维卷积神经网络来进行假阳性过滤,根据Bum-Chae Kim等人 [ 1 ] \color{#0000FF}{[1] } [1]的开源代码,做了复现工作,实现了假阳性过滤。

算法原理

Bum-Chae Kim等人的工作实际上也是参考的Dou等人 [ 2 ] \color{#0000FF}{[2] } [2]的工作,也就是上一篇博客中SongpingWang所用的3D CNN模型。所以这里先介绍Dou等人的算法。

多层级3D CNN

3D CNN肺结节检测中立方体样本以候选位置坐标为中心切割,并被输入到网络。立方体的样本的尺寸,即目标位置的环绕范围称为网络的接受域。接收域的大小对网络辨识准确率至关重要,接收域太小,只有有限的环境信息被包含入网络,会导致预测能力下降以及难以处理大量变化的目标;接收域太大,会包含太多噪音数据。所以该算法设计了三个包含不同层次上下文信息的三维卷积网络,将这些网络的后验预测融合在一起,得到最终的分类结果。


从图中可以看到,三个网络分别为Archi-1、Archi-2和Archi-3。其中Archi-1的接受域大小为20×20×6体素,这个接受域能够包含小的肺结节,并且它覆盖了数据集中58%的结节。Archi-2具有更大的接受域,大小为30×30×10体素,可以覆盖85%的结节,因此它在一般情况下具有良好的性能,能处理常见的患者病变。这个窗口大小的目的是为小结节和中等大小的病变提供丰富的上下文语义信息。而对于一些大结节,通常可以采取排除边缘区域,只取其主要部分的方法。最后,构建了一个体素为40×40×26的Archi-3网络。在这个接受域下,可以为中等大小的病变提供丰富的背景信息,但是会有将嘈杂的周围信号当作小尺寸结节的风险。然而与其它两个网络相比,Archi-3网络可以更好地处理那些体积非常大的结节。

多尺度渐变集成3D CNN

上面介绍的多尺度3D CNN为了做出最终的决定,他们在顶层通过对来自三个不同尺度的patches的预测值进行加权和得到最终预测Lable。然而,每个尺度的权重是手动确定的,而不是从训练样本中学习。现在介绍的多尺度渐变集成3D CNN相比于上一个网络结构多了渐变特征提取和多级特征集成两部分(Gradual Feature Extraction and Multi-Stream Feature Integration)。


从上面两幅图能理解作者是如何通过三个patches实现渐变特征提取多级特征集成的,渐变特征提取能够缩放特征图纹理,也就是图中的Zoom-in和Zoom-out。具体是将三个不同大小的patch按大小的顺序渐进地集成组合。据作者所述这种方式是受到人类视觉系统的启发,通过改变视野从场景中获取有意义的上下文信息。

实现过程

根据Kim的开源项目 [ 3 ] \color{#0000FF}{[3] } [3]说明进行复现,首先打开settings.py文件设置相关的参数,如数据集路径、结果保存路径、运行模式、训练参数等等。由于他是通过命令行来输入参数进行设置的,根据我自己的习惯,做了修改,直接在源代码里设置参数。设置的数据集路径中,mhd文件和对应的raw文件都必须在同一路径下。

这里他还用到了五折交叉验证,可以根据自己的需要修改maxfold。需要注意的是他这里训练过程是通过Tensorboard可视化的,也就是settings.py中的summ_path

下一步在utils.py设置读取的病例数量和patch的大小,因为Kim给出的代码中是读取全部的110G原始数据进行处理,然后将处理好的图像数据存储为npy文件。想象一下,除了原始的数据,还有生成的100多G的数据,更离谱的是还要给三个不同大小的patch分配临时的存储空间,我这破笔记本根本顶不住啊。所以我考虑通过修改病例数量和patch大小来跑通项目。

我在utils.py中写了个PATIENT_NUM参数设置读取的病例数(LUNA16数据集一共888病例),当我尝试修改patch的大小时发现代码中全是常数,以及处理patch的一些语句中也全是常数。我不得不吐槽一句韩国人写的代码属实

基于深度学习的肺部CT影像识别——采用U-net、3D CNN、cGAN实现肺结节的检测(二)相关推荐

  1. 基于深度学习的肺部CT影像识别——采用U-net、3D CNN、cGAN实现肺结节的检测(一)

    点击此处跳转到系列博客索引 文章目录 引言 U-net分割模型 算法原理 实现过程 实验结果 参考 引言 在医学图像处理中,传统的特征提取方法依赖于含有先验知识的特征提取和感兴趣区域的获取,这将直接影 ...

  2. 检测、量化、追踪新冠病毒,基于深度学习的自动CT图像分析有多靠谱?

    作者 | Ophir Gozes, Maayan Frid-Adar等 译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 背景:新冠病毒的传播非常迅速,并对数十亿人的生活产生了重大 ...

  3. 基于深度学习的手写数字识别、python实现

    基于深度学习的手写数字识别.python实现 一.what is 深度学习 二.加深层可以减少网络的参数数量 三.深度学习的手写数字识别 一.what is 深度学习 深度学习是加深了层的深度神经网络 ...

  4. 基于深度学习的手写数字识别Matlab实现

    基于深度学习的手写数字识别Matlab实现 1.网络设计 2. 训练方法 3.实验结果 4.实验结果分析 5.结论 1.网络设计 1.1 CNN(特征提取网络+分类网络) 随着深度学习的迅猛发展,其应 ...

  5. 【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记

    作者及其单位:北京邮电大学,张俊遥,2019年6月,硕士论文 摘要 实验数据:来源于网络公开的新闻文本数据:用随机欠采样和过采样的方法解决分类不均衡问题:使用BIO格式的标签识别5类命名实体,标注11 ...

  6. 【毕业设计_课程设计】基于深度学习网络模型训练的车型识别系统

    文章目录 0 项目说明 1 简介 2 模型训练精度 3 扫一扫识别功能 4 技术栈 5 模型训练 6 最后 0 项目说明 基于深度学习网络模型训练的车型识别系统 提示:适合用于课程设计或毕业设计,工作 ...

  7. 《智能步态识别门禁系统》,基于深度学习的多人步态识别系统

    本文章仅仅提供一种自认为比较科学的方式去实现多人步态识别,如果对多人步态识别感兴趣,却又不知道如何实现的话,这篇文章将会有莫大的帮助.以下方法作者皆实验过是可行的方案.(训练集124人,准确率96%, ...

  8. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  9. 基于深度学习的自然场景文字识别

    声明:本文来源,详细内容请参考原博文https://blog.csdn.net/xiaofei0801/article/details/72778223 1.1引言 传统光学字符识别主要面向高质量的文 ...

最新文章

  1. python制作桑基图_Python制作桑基图
  2. 008PHP文件处理——文件操作r w (用的比较多) a x(用的比较少) 模式 rewind 指针归位:...
  3. linux里的挂载错误无法开机怎么办,Linux基础知识 - 开机挂载错误
  4. MySQL备份与恢复——基于Xtrabackup物理备份恢复
  5. JZs3c2440裸板程序GPIO操作总结
  6. MEF程序设计指南(转)
  7. uncode移动后端云【www.uncode.cn】--简介
  8. [iOS] 响应式编程开发-ReactiveCocoa(一)
  9. 拓端tecdat|R语言使用Profviz进行Metropolis-in-Gibbs抽样和运行时间分析
  10. ASP.net 探针
  11. 通过阅读器打开ofd格式发票并转为PDF
  12. 多项式承诺Polynomial commitment方案汇总
  13. 从看脸到读心:深度理解人的视觉技术走到哪了?
  14. 用js处理图片加载错误时加载默认图片的方法
  15. Xshell7的下载和安装
  16. yum是干什么的_linux下的yum命令详解
  17. 【企业】零和博弈思维模式构建,互利共赢
  18. includes的使用
  19. 《解析深度学习》部分笔记
  20. TM1650代码记录(基于51单片机)

热门文章

  1. 【iCheck基本用法的使用】
  2. 计算机专业英语电池,电池分为哪几种?英文缩写?
  3. LoRa节点开发:5、代码详解LoRaWAN中的几种数据包(发送与接收数据)
  4. WIN10 USB 代码19 无法识别USB
  5. 关于大数据的视频资料
  6. linux系统宝塔安装nodejs,node安装,nodejs安装,Windows nodejs安装,Linux nodejs安装
  7. 对uni-app开发的某app安全分析
  8. 随机信号的参数建模法AR模型及matlab实现
  9. idea出现decompiled .class file 解决方案
  10. ESP8266开发之旅 阿里云生活物联网平台篇② 使用云智能App,配置自己的App,无需开发