Deeplung代码复现(一)

Deeplung代码复现(一)

最近在做肺部结节检测,看了deeplung的论文决定动手复现一下,复现过程有些长,所以分两部分记录。由于是全部完成后才写博客,所以时间有些长了,可能记录不全,望理解。这部分主要记录环境配置、预处理及结节可视化。

一、环境配置

我的环境:ubantu16.04 cuda9.0 python2.7 pytorch1.1.0
1.创建环境

conda create --name Deeplung python=2.7
conda activate Deeplung

在这里插入图片描述

2.安装pytorch

conda install pytorch=1.1.0 torchvision cuda90 -c pytorch

下面验证是否安装成功:输入python,通过print(torch__.version__)来查询Torch版本,可以查到证明安装成功
在这里插入图片描述

3.安装其他依赖

pip install h5py
pip install SimpleITK==0.10.0
pip install numpy==1.11.3
pip install matplotlib==2.0.0
pip install scikit-image==0.12.3
pip install scipy==0.18.1

打开代码还有其他划红线的地方没有安装,就按缺什么包进行安装即可。

二、CT图像预处理

此部分参考了博客对预处理代码prepare.py的讲解,在一定的理解的基础上进行了处理。

  1. 首先需要在config_training.py中对所有路径进行修改,改成自己的路径
config = {'train_data_path':['/media/data1/wentao/tianchi/luna16/subset0/',
                             '/media/data1/wentao/tianchi/luna16/subset1/',
                             '/media/data1/wentao/tianchi/luna16/subset2/',
                             '/media/data1/wentao/tianchi/luna16/subset3/',
                             '/media/data1/wentao/tianchi/luna16/subset4/',
                             '/media/data1/wentao/tianchi/luna16/subset5/',
                             '/media/data1/wentao/tianchi/luna16/subset6/',
                             '/media/data1/wentao/tianchi/luna16/subset7/',
                             '/media/data1/wentao/tianchi/luna16/subset8/'], # 改成自己的训练集路径
          'val_data_path':['/media/data1/wentao/tianchi/luna16/subset9/'],  # 改成自己的验证集路径 
          'test_data_path':['/media/data1/wentao/tianchi/luna16/subset9/'],   # 改成自己的测试集路径
          
          'train_preprocess_result_path':'/media/data1/wentao/tianchi/luna16/preprocess/',  # 此处为预处理后的训练集路径
          'val_preprocess_result_path':'/media/data1/wentao/tianchi/luna16/preprocess/',    # 此处为预处理后的验证集路径
          'test_preprocess_result_path':'/media/data1/wentao/tianchi/luna16/preprocess/',  # 此处为预处理后的测试集路径
          
          'train_annos_path':'/media/data1/wentao/tianchi/luna16/CSVFILES/annotations.csv',  #  此处为标签文件的路径
          'val_annos_path':'/media/data1/wentao/tianchi/luna16/CSVFILES/annotations.csv',
          'test_annos_path':'/media/data1/wentao/tianchi/luna16/CSVFILES/annotations.csv',

          'black_list':[],
          
          'preprocessing_backend':'python',

          'luna_segment':'/media/data1/wentao/tianchi/luna16/seg-lungs-LUNA16/',  # 肺部分割掩码的路径
          'preprocess_result_path':'/media/data1/wentao/tianchi/luna16/preprocess/',  # 此处为存放预处理结果的路径
          'luna_data':'/media/data1/wentao/tianchi/luna16/',  # luna16数据集的原始数据路径
          'luna_label':'/media/data1/wentao/tianchi/luna16/CSVFILES/annotations.csv'  # 病例标签路径
         } 
  1. 运行prepare.py就可以在你写的预处理结果路径下找到生成的结果
    我的路径为:'preprocess_result_path':'/home/dlut/cfr/lung-cancer/Deeplung-master/data/luna16/preprocess/',所以我的生成结果如下:
    在这里插入图片描述
    每个subset下为每张CT生成了6个文件:

在这里插入图片描述

  1. 这六个文件分别为:id_clean.npy,id_extendbox.npy,id_label.npy,id_mask.npy,id_origin.npy,id_spacing.npy。
文件含义
id_clean.npy预处理过的图像的像素数据
id_extendbox.npy掩码的最小外接box
id_label.npy从annotations来,已经转换成体素坐标的结节标签
id_mask.npy应用了新分辨率的mask
id_origin.npy从.mhd中读取的origin
id_spacing.npy从.mhd中读取的spacing

(这里都是自己看代码一句一句调试得出的,若不正确请指出,请谅解~~~)

三、原数据集和预处理后数据集结节可视化

1、原数据集结节可视化

原始数据集中,每张CT都保存为一个.mhd和.raw文件:

.mhd文件:给出CT图像中的一些基本信息,重要的有CT原点坐标、像素间隔(世界坐标系下)
.raw文件:用来存储CT的具体数据

在这里插入图片描述

annotations.csv中给出了不同CT中结节的世界坐标和直径

我们需要把在世界坐标系下的结节的坐标转换到体素坐标系来显示,转换公式:

世界坐标系(结节位置-原点位置)/切片体素间距=体素坐标系(结节位置-(0,0,0))/1

可视化结果:
在这里插入图片描述

2、预处理后的数据集结节可视化

预处理后每个CT存成了6个文件,其中_label.npy就是结节的标签,并且是已经转化为体素坐标的,所以直接读取其中的坐标(z,y,x,d),在_clean.npy上画框就可以了,我的可视化结果如下图:
在这里插入图片描述

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值