文章目录

  • Deeplung代码复现(一)
    • 一、环境配置
    • 二、CT图像预处理
    • 三、原数据集和预处理后数据集结节可视化
      • 1、原数据集结节可视化
      • 2、预处理后的数据集结节可视化

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上画框就可以了,我的可视化结果如下图:

Deeplung代码复现(一)相关推荐

  1. 【神经网络】(17) EfficientNet 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现 EfficientNet 卷积神经网络模型. EfficientNet 的网络结构和 MobileNetV3 比较相似,建议大家在学 ...

  2. 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 MobileNetV3 轻量化网络模型. MobileNetV3 做了如下改动(1)更新了V2中的逆转残差结构:(2)使用NAS搜索 ...

  3. 【神经网络】(15) Xception 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 Xception 神经网络模型. 在前面章节中,我已经介绍了很多种轻量化卷积神经网络模型,感兴趣的可以看一下:https://blo ...

  4. 【神经网络】(14) MnasNet 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现谷歌轻量化神经网络 MnasNet  通常而言,移动端(手机)和终端(安防监控.无人驾驶)上的设备计算能力有限,无法搭载庞大的神经网络 ...

  5. 【神经网络】(13) ShuffleNetV2 代码复现,网络解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络 ShuffleNetV2. 为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...

  6. 【神经网络】(11) 轻量化网络MobileNetV1代码复现、解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络模型 MobileNetV1.为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...

  7. 进阶必备:CNN经典论文代码复现 | 附下载链接

    经常会看到类似的广告<面试算法岗,你被要求复现论文了吗?>不好意思,我真的被问过这个问题.当然也不是所有面试官都会问,究其原因,其实也很好理解.企业肯定是希望自己的产品是有竞争力,有卖点的 ...

  8. DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略

    DL之YoloV3:Yolo V3算法的简介(论文介绍).各种DL框架代码复现.架构详解.案例应用等配图集合之详细攻略 目录 Yolo V3算法的简介(论文介绍) 0.YoloV3实验结果 1.Yol ...

  9. 时空上下文视觉跟踪(STC)算法的解读与代码复现

    时空上下文视觉跟踪(STC)算法的解读与代码复现 zouxy09@qq.com http://blog.csdn.net/zouxy09 本博文主要是关注一篇视觉跟踪的论文.这篇论文是Kaihua Z ...

最新文章

  1. 太酷炫了,我用 Python 画出了北上广深的地铁路线动态图
  2. 2021高考成绩各科各题得分查询,2021年新疆高考分数一分一段位次表,新疆高考个人成绩排名查询方法...
  3. Python学习-字符编码的理解
  4. 【Scratch】青少年蓝桥杯_每日一题_8.09_列表
  5. 思维、视角、设计丨产品经理的三板斧
  6. 计算机争夺战作文,电脑争夺战作文600字
  7. YUV / RGB 格式及快速转换算法总结(转载)
  8. 少儿编程150讲轻松学Scratch(八)-如何设计经典游戏打砖块
  9. 用Log Explorer恢复数据的基本操作
  10. dapperpoco mysql_DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架...
  11. 如何学习Web前端知识转型?
  12. Linux的安装及忘记Linux密码的措施
  13. 针对Android智能电视研发的,论Android智能电视盒子必装应用之一ES
  14. 秋招一个半月流水账+招银网路科技offer
  15. mybatisPlus笔记
  16. SpringMVC笔记(4):RESTFul详解
  17. Python 习题 老虎、棒棒、鸡、虫
  18. 巨星陨落!哈尔滨工业大学讣告
  19. Openlayers 图形要素 Feature 移动和编辑
  20. 真正的成功(约翰·伍登)

热门文章

  1. 亚马逊账户安全需要做什么?亚马逊账户规则
  2. 吉米_王:浅谈深拷贝和浅拷贝异同点
  3. TCP/IP模型以及OSI七层参考模型各层的功能介绍和主要协议
  4. Spring 微服务实战
  5. TI 927 928 947 948 940串行器解串器系列
  6. OpenMP学习笔记1
  7. win10 ,jkd8 查看线程状态
  8. 计算机底层01-计算机发展史
  9. 阅读《精通Python爬虫框架Scrapy》
  10. 「实时视频流分析的边缘计算技术」最新2022研究综述