zoukankan      html  css  js  c++  java
  • Deep Breath

    项目主页:

    https://eliasvansteenkiste.github.io/machine%20learning/lung-cancer-pred/

       

    github主页:

    https://github.com/EliasVansteenkiste/dsb3

       

    阿里论坛翻译主页:

    https://tianchi.aliyun.com/competition/new_articleDetail.html?raceId=231601&postsId=626&from=part

       

    1 扫描高维CT序列,得到一部分感兴趣区域,根据感兴趣区域检测肺癌

    2 具体流程:

    • 大海捞针
    • 结节检测
      • 结节分割
      • 肺部分割
      • 块状检测
    • 移除非结节
    • 恶性预测
    • 肺癌诊断
      • 迁移学习
      • 结核诊断
      • 整体预测

           

        The chest scans are produced by a variety of CT scanners, this causes a difference in spacing between voxels of the original scan.?

           

           

    结节检测 (Nodule Detection)

       

    1. 结节分割(Nodule Segmentation)

       

    在U-net architecture https://arxiv.org/pdf/1505.04597.pdf 的基础上构建网络。

    U-net是2D医学图像分割的常用网络,网络结构如下:

     

    在U-net的结构上,扩展到3D进行分割,步骤为:

    Step 1. 考虑到不同scanner得到CT序列的尺寸有差异,先进行尺寸归一化,用每个voxel体素表示1*1*1mm的cube

    Step 2. 根据U-net,要对32*32大小的图像进行分割,则需引入上下文信息,输入网络的patch需要两倍大的尺寸,即64*64。

    所以,在三维空间中,以32*32*32为stride,截取多个64*64*64大小的patch,作为网络的输入,

    用来分割32*32*32大小的立方体,因此每个patch对应的label为32*32*32的binary mask。

    Step 3. 在U-net网络结构基础上,构建如下结节分割网络:

    最后一层错了,输出应该是1*34*34*34大小

       

       

    1. 块检测(Blob Detection)

       

    通过上一步,得到了每一个体素属于结节的概率,要根据离散体素点的置信度,找到结节块(结节的中心和直径大小,类似于从将灰度概率图二值化提连通域)。

    采用高斯差分(Difference of Gaussian, DoG)方法,在skimage package上实现。

    通过此步骤,得到一系列的candidates,因此接下来要进行filter

       

       

    1. 肺部分割

       

    根据分割网络得到的nodule candidate有很多位于肺结构的外部,因此可以根据肺部分割结果,移除部分false positives。

    Kaggle Tutorial采用形态学进行分割,结构元素大小的选取对分割结果好坏和时间复杂度影响较大。

    此外,当肺部包含空腔时,采用形态学方法的肺部分割结果也不好。

       

    提出了3D肺部结构分割方法。采用convex hull方法。

       

       

    过滤非结节块(False Positive Reduction)

       

    1. 构建网络,对Blob进行分类。对每个Blob,输入邻域范围内大小为48*48*48的patch,用来训练网络。
    2. 结节尺寸有大有小,因此需要融合narrow 和 wide 感受野(respective field),即不同卷积层输出的特征。
    3. inception-resnet-v2就是融合不同感受野特征的网络结构。相关介绍

      http://blog.csdn.net/u010402786/article/details/52433324

         

    • 一方面了加入了BN层,减少了Internal Covariate Shift(内部neuron的数据分布发生变化),使每一层的输出都规范化到一个N(0, 1)的高斯; 
    • 另外一方面学习VGG用2个3x3的conv替代inception模块中的5x5,既降低了参数数量,也加速计算; 
    • 使用3×3的已经很小了,那么更小的2×2呢?2×2虽然能使得参数进一步降低,但是不如另一种方式更加有效,

      那就是Asymmetric方式,即使用1×3和3×1两种来代替3×3的卷积核。这种结构在前几层效果不太好,但对特征图大小为12~20的中间层效果明显。 

       

       

       

       

    1. 在残差网络的基础上,论文提出的网络结构如下:

      spatial reduction block,采用pooling和conv,feature map的大小变小

      Feature reduction block,采用C1卷积核对feature map的维度(个数)进行减少

      Residual convolutional block,将不同感受野神经元计算得到的feature融合,能检测多尺度Nodule

       

       

       

       

       

       

       

       

  • 相关阅读:
    16:最长单词2
    18:Tomorrow never knows?
    备份裸设备上的数据文件
    几个Uboot命令
    Timus1132(二次剩余方程求解)
    Android 批量上传sd卡图片
    SVN:分支合并到主干
    Mac开发者必备实用工具推荐
    Solution for "De-serialization exception: Unable to find assembly xxxxx"
    UVA 10706 Number Sequence (找规律 + 打表 + 查找)
  • 原文地址:https://www.cnblogs.com/fighting-lady/p/8872153.html
Copyright © 2011-2022 走看看