Pytorch项目,肺癌检测项目之一

项目目的:输入人体躯干的三维CT扫描作为输入数据,如果存在肿瘤,希望输出疑似恶性肿瘤的位置。

项目背景:发现处于早期的肺癌对病人生存率有巨大影响,但很难大规模进行。审查CT数据的工作必须由训练有素的专家进行,需要对细节进行细致的关注,当然,绝大部分情况下医生看的片子都没有癌症。

CT的数据叫做:DICOM数据。CT扫描的每一个体素都对应一个数值,这个数值描述的是内部物质的平均质量密度。CT扫描的数据还允许我们通过隐藏我们不感兴趣的部分进行立体查看。

体素数据与CT值

对于一块体素数据,它不是一个立方体,而是1.125mm*1.125mm*2.5mm的一个立方体,如果按照立方体来对数据进行绘制的时候,人会看起来更胖一些,所以如果要按照真实的样貌进行展示还需要加入一个变换比例。CT值是测定人体某一局部或器官密度大小的一种计量单位,通常称为亨氏单位(HU),空气为 -1000 (0g/cm3),致密骨为 +1000(2-3g/cm3)。实际上CT值是CT图像中各组织与X线衰减系数相当的对应值。

观察数据

(1)CT数据是立体3D数据

(2)数据存在重复和错误

(3)数据的标注包括一份某个区域的结节是否为肿瘤以及某个肿瘤是否恶性的标准

理解业务

(1)拿到CT先逐行逐个查看图像

(2)找到其中存在异常的位置,然后用笔把这个位置圈出来留待分析

(3)对所有圈出来的位置进行仔细的研究,根据它的各种特性,比如光泽,形状,大小,位置等信息来决策是否真的是一个肿瘤

(4)做更多的检查,结合经验判断这个肿瘤是否是恶行肿瘤

(5)帮助病人指定治疗方案

解决方案

原始数据---》数据处理---》切割图象---》候选分组---》候选分类---》恶行判断

数据清洗、数据 在全像素空间中寻 对有问题的点位进行分组,加载、数据转换 找有问题的像素 确定一个结节的范围 ,对有结节的图像进行分类,确定是否是肿瘤,对判定为肿瘤的图像进一步分类判断是否为恶行肿瘤

解决方案描述

(1)加载原始数据,把它转化为PyTorch可以处理的数据,也就是我们的tensor数据

(2)使用PyTorch进行数据分割,把存在异常的点位确定出来

(3)把已经确定有问题的区域进行发呢组,这一块不太需要构建一个模型来处理,所以单独拿出来作为一个步骤

(4)构建模型对候选结节分类,区分出它是否是真的肿瘤

(5)对分类结果进行分析,然后根据影像判断肿瘤是良性的还是恶性的。

查看数据

一个CT数据实际上包含两个文件,‘.mhd’文件包含了元数据头部信息,‘.raw’则是存储的三维CT原始数据。前面的文件名称为它的uid,符合DICOM数据命名法。

annotations.csv文件里面给出了结节的位置信息,里面的数据共有5列,第一列是uid,中间三列是坐标位置,最后一列是结节的尺寸,直径信息。

查看数据

candidates.csv是对影响中小圆点的标注,数据也是五列,有区别的是最后一列,candidates.csv的最后一列标明了这个小圆点是否是结节。其中candidates.csv文件中包含了551063条数据,如果我们对分类标签统计一下,可以发现总共有1351条被标注是结节。这个时候数据的问题就来了,在annotation.csv文件里只给出了 1187条结节的信息。

数据比对

这几条数据,比对下,看是否是一个位置,对数据预处理

代码处理

CandidateInfoTuple = namedtuple(
'CandidateInfoTuple',
'isNodule_bool,diameter_mm,series_uid,center_xyz',
)

#放缓存里
@functools.lru_cache(1)
def getCandidateInfoList(requireOnDisk_bool=True):
    mhd_list=glob.glob('/lujing/subset*/*.mhd')
    persentOnDisk_set={os.path.split(p)[-1][:-4] for p in mhd_list}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# NPOI导出dataset----Excel绘制Chart图表

仅限XLSX 2007以后版本(2007之前版本不支持) 1、判断文件夹是否存在,不存在则创建 //Application.StartupPath当前项目根目录 if (!Directory.Exists(Application.StartupPath "\Excel")) { …

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据 <el-col :span"8" class"tab_group"><el-form-item label"动态筛选"><el-select v-model.trim"ruleForm.flowType" placeholder"请选择" …

实战:使用 OpenCV 和 PyTesseract 对文档进行 OCR

随着世界各地的组织都希望将其运营数字化&#xff0c;将物理文档转换为数字格式是非常常见的。这通常通过光学字符识别 (OCR) 完成&#xff0c;其中文本图像&#xff08;扫描的物理文档&#xff09;通过几种成熟的文本识别算法之一转换为机器文本。当在干净的背景下处理打印文本…

麒麟信安日志轮询分割操作说明

1、背景介绍 由于模块上面硬盘容量有限&#xff0c;需要定时清理系统日志。为了方便用户使用&#xff0c;在系统中设定自动日志轮询操作&#xff0c;让日志占用容量由操作系统自动管理&#xff0c;用户无需担心日志太多把硬盘容量占满。 2、操作说明 新建需要分割的日志logr…

【大数据HA】HAProxy实现thrift协议HMS服务的高可用-附Chatgpt协助截图

背景 之前安装了HMS(Hive metastore service)&#xff0c;独立于hive运行&#xff0c;安装部署过程见我下面列出的另一篇文章&#xff0c;需要为它建立HA高可用功能。防止在访问时出现单点故障问题。 【大数据】Docker部署HMS(Hive Metastore Service)并使用Trino访问Minio-C…

学校和老师如何制作自己免费的成绩查询系统

在当今数字化的时代&#xff0c;许多学校都采用信息技术来管理和提高工作效率。其中&#xff0c;成绩查询系统是一个非常实用的工具&#xff0c;它可以让老师和学生们快速、方便地查询成绩。那么&#xff0c;学校和老师如何制作自己免费的成绩查询系统呢&#xff1f;本文将为你…

微软官方镜像下载大全(windows iso 官方镜像)

原本只是想下一个Windows Server 2022中文版的镜像&#xff0c;后面发现要么就是慢得一批的某盘&#xff0c;要么就是磁力&#xff0c;我想直接下载简简单单&#xff0c;找了一圈没有找到。官网下载需要注册、登录乱七八糟&#xff0c;最终终于找到下载方法了&#xff0c;适用于…

关于新发现的ThirdEye基于Windows恶意软件窃取敏感数据动态情报

一、基本内容 近期&#xff0c;Fortinet FortiGuard Labs发现了一款名为ThirdEye的先前未记录的基于Windows的信息窃取程序。该恶意软件伪装成PDF文件&#xff0c;其俄语名称为“CMK Правила оформления больничных листов.pdf.exe”&#x…

c语言:输出一个正方形|练习题

一、题目 输入长度num&#xff0c;输出一个边长为num的正方形 二、思路分析 1、输出的正方形分为三部分&#xff0c;包括&#xff1a; 2、第一行、中间的num-2行&#xff0c;以及最后一行 三、代码图片【带注释】 四、源代码【带注释】 #include <stdio.h> //思路&#…

字符设备驱动开发-注册-设备文件创建

一、字符设备驱动 linux系统中一切皆文件 1、应用层&#xff1a; APP1 APP2 ... fd open("led驱动的文件"&#xff0c;O_RDWR); read(fd); write(); close(); 2、内核层&#xff1a; 对灯写一个驱动 led_driver.c driver_open(); driver_read(); driver_write(…

JVM常见面试题

基础题 能不能给我讲一下JVM完整的GC流程 我们先从Minor GC说起吧&#xff0c;当对象分配到Eden区发现Eden区空间满了&#xff0c;此时就会触发Minor GC&#xff0c;将非存活对象回收&#xff0c;再将存活对象放到From区(S1区)&#xff0c;再将新创建的对象放到Eden区。 随着…

基于ssm重庆理工大学心理咨询管理子系统的分析与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;心理咨询预约信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能…

Java_集合进阶Map实现类

一、Map集合 已经学习了Map集合的常用方法&#xff0c;以及遍历方式。 下面学习的是Map接口下面的是三个实现类HashMap、LinkedHashMap、TreeMap。实际上这三个实现类并没有什么特有方法需要我们学习&#xff0c;它们的方法就是前面学习Map的方法。这里我们主要学习它们的底层…

机场信息集成系统系列介绍(6):机场协同决策支持系统ACDM

目录 一、背景介绍 1、机场协同决策支持系统是什么&#xff1f; 2、发展历程 3、机场协同决策参与方 4、相关定义 二、机场协同决策ACDM的建设目标 &#xff08;一&#xff09;机场协同决策支持系统的宏观目标 1、实现运行数据共享和前序航班信息透明化 2、实现地面资源…

H5小游戏加固方案

今年的中国游戏产业年会上&#xff0c;小游戏成了万众瞩目的行业新风口。据伽马数据统计&#xff1a;2023年小游戏市场规模可达200亿元&#xff0c;同比增长300% 。 小游戏有着分发更精准、用户转化率更高、研发成本更低、场景适用性更强等优势&#xff0c;具备巨大的市场潜力…

抖店只能用官方电子面单?2024抖店玩法解读,附面单使用教程

我是王路飞。 正在做抖店的商家&#xff0c;应该都发现一件事情了&#xff0c;那就是现在的抖店好像不让拍单了&#xff0c;只能使用抖音的电子面单&#xff0c;打单发货。 说实话&#xff0c;这种情况已经出现过太多次了&#xff0c;导致很多商家不以为然。 我曾经也说过&a…

MATLAB - 读取双摆杆上的 IMU 数据

系列文章目录 前言 本示例展示了如何从安装在双摆杆上的两个 IMU 传感器生成惯性测量单元 (IMU) 读数。双摆使用 Simscape Multibody™ 进行建模。有关使用 Simscape Multibody™ 构建简易摆的分步示例&#xff0c;请参阅简易摆建模&#xff08;Simscape Multibody&#xff09…

部署LNMP动态网站

部署LNMP动态网站 安装LNMP平台相关软件1. 安装软件包2. 启动服务&#xff08;nginx、mariadb、php-fpm&#xff09;3. 修改Nginx配置文件&#xff0c;实现动静分离4. 配置数据库 上线wordpress代码 &#xff08;测试搭建的LNMP环境是否可以使用&#xff09;1. 上线php动态网站…

手写MapReduce实现WordCount

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 需求分析编写MapReduce实现上述功能Mapper类Reducer类Driver类 查看输出结果 需求 假设有一个文本文件word.txt&#xff0c;我们想要统计这个文本文件中每个单词出现的次数。 文件内容如下…

「Verilog学习笔记」自动售卖机

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule sale(input clk ,input rst_n ,input sel ,//sel0,5$dranks,sel1,10&$drinksinput …