Deeplung代码复现(一)
文章目录
- 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的讲解,在一定的理解的基础上进行了处理。
- 首先需要在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' # 病例标签路径}
- 运行prepare.py就可以在你写的预处理结果路径下找到生成的结果
我的路径为:'preprocess_result_path':'/home/dlut/cfr/lung-cancer/Deeplung-master/data/luna16/preprocess/'
,所以我的生成结果如下:
每个subset下为每张CT生成了6个文件:
- 这六个文件分别为: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代码复现(一)相关推荐
- 【神经网络】(17) EfficientNet 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现 EfficientNet 卷积神经网络模型. EfficientNet 的网络结构和 MobileNetV3 比较相似,建议大家在学 ...
- 【神经网络】(16) MobileNetV3 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 MobileNetV3 轻量化网络模型. MobileNetV3 做了如下改动(1)更新了V2中的逆转残差结构:(2)使用NAS搜索 ...
- 【神经网络】(15) Xception 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 Xception 神经网络模型. 在前面章节中,我已经介绍了很多种轻量化卷积神经网络模型,感兴趣的可以看一下:https://blo ...
- 【神经网络】(14) MnasNet 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现谷歌轻量化神经网络 MnasNet 通常而言,移动端(手机)和终端(安防监控.无人驾驶)上的设备计算能力有限,无法搭载庞大的神经网络 ...
- 【神经网络】(13) ShuffleNetV2 代码复现,网络解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络 ShuffleNetV2. 为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...
- 【神经网络】(11) 轻量化网络MobileNetV1代码复现、解析,附Tensorflow完整代码
各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络模型 MobileNetV1.为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...
- 进阶必备:CNN经典论文代码复现 | 附下载链接
经常会看到类似的广告<面试算法岗,你被要求复现论文了吗?>不好意思,我真的被问过这个问题.当然也不是所有面试官都会问,究其原因,其实也很好理解.企业肯定是希望自己的产品是有竞争力,有卖点的 ...
- DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略
DL之YoloV3:Yolo V3算法的简介(论文介绍).各种DL框架代码复现.架构详解.案例应用等配图集合之详细攻略 目录 Yolo V3算法的简介(论文介绍) 0.YoloV3实验结果 1.Yol ...
- 时空上下文视觉跟踪(STC)算法的解读与代码复现
时空上下文视觉跟踪(STC)算法的解读与代码复现 zouxy09@qq.com http://blog.csdn.net/zouxy09 本博文主要是关注一篇视觉跟踪的论文.这篇论文是Kaihua Z ...
最新文章
- 太酷炫了,我用 Python 画出了北上广深的地铁路线动态图
- 2021高考成绩各科各题得分查询,2021年新疆高考分数一分一段位次表,新疆高考个人成绩排名查询方法...
- Python学习-字符编码的理解
- 【Scratch】青少年蓝桥杯_每日一题_8.09_列表
- 思维、视角、设计丨产品经理的三板斧
- 计算机争夺战作文,电脑争夺战作文600字
- YUV / RGB 格式及快速转换算法总结(转载)
- 少儿编程150讲轻松学Scratch(八)-如何设计经典游戏打砖块
- 用Log Explorer恢复数据的基本操作
- dapperpoco mysql_DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架...
- 如何学习Web前端知识转型?
- Linux的安装及忘记Linux密码的措施
- 针对Android智能电视研发的,论Android智能电视盒子必装应用之一ES
- 秋招一个半月流水账+招银网路科技offer
- mybatisPlus笔记
- SpringMVC笔记(4):RESTFul详解
- Python 习题 老虎、棒棒、鸡、虫
- 巨星陨落!哈尔滨工业大学讣告
- Openlayers 图形要素 Feature 移动和编辑
- 真正的成功(约翰·伍登)