TotalSegmentator---针对CT/MRI数据的自动分割

很高兴在雪易的CSDN遇见你 

VTK技术爱好者 QQ:870202403      公众号:VTK忠粉


前言

本文分享开源软件TotalSegmentator,该开源项目针对CT/MRI数据类型,对主要的解剖学结构进行自动分割,并且被集成到MITK中。希望对各位小伙伴有所帮助!

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

你的点赞就是我的动力(^U^)ノ~YO


目录

前言

1. TotalSegmentator介绍

2. TotalSegmentator下载&安装

3. TotalSegmentator的使用

3.1 CT/MR数据分割

3.2 子任务

3.4 高级设置

3.3 CT分割类别

3.4 MR分割类别

结论:


1. TotalSegmentator介绍

        TotalSegmentator由巴塞尔大学医院研究与分析部门创建,可以针对任何CT或MR数据进行主要解剖结构进行分割。它基于广泛的CT/MRI的训练数据(不同的扫描设备,不同的机构,不同的协议等),因此在大部分数据上都有很好的结果。

CT数据集:

Dataset with segmentations of 117 important anatomical structures in 1228 CT images (zenodo.org)

MR数据集:

Dataset with segmentations of 117 important anatomical structures in 1228 CT images (zenodo.org)

支持的CT分类如下:

 支持的MR分类如下:

2. TotalSegmentator下载&安装

GitHub地址:GitHub - wasserth/TotalSegmentator: Tool for robust segmentation of >100 important anatomical structures in CT and MR images

TotalSegmentator安装依赖于Python & Pytorch

Pytorch的安装教程 

TotalSegmentator安装

        安装命令: pip install TotalSegmentator   

        安装命令: pip install TotalSegmentator==2.1.0

安装成功标志

TotalSegmentator使用了诸多我们熟悉的第三方库,如opencv, simple-itk, vtk 等。 

3. TotalSegmentator的使用

3.1 CT/MR数据分割

TotalSegmentator -i ct.nii.gz -o segmentations

TotalSegmentator -i mri.nii.gz -o segmentations --task total_mr

注意:输入可以时Nifti数据格式,或文件夹或压缩文件,需要包含一个患者的全部DICOM切片。如果在CPU上进行分割,可以使用 --fast 或  --roi_subset 来提高效率。

3.2 子任务

分割时的选项

  • total: 默认分割包括117个主类。用于CT数据。
  • total_mr: 默认分割包括56个主类,用于MR数据
  • lung_vessels: 肺血管,支气管
  • body: 身体,躯干,四肢,皮肤
  • cerebral_bleed: 颅内出血*
  • hip_implant: 髋关节假体*
  • coronary_arteries: 冠状动脉*
  • pleural_pericard_effusion: 胸腔积液, 心包积液*

注意:带*的表示采用小的数据集进行训练的模型,可能分割效果没那么好。

使用方法:

TotalSegmentator -i ct.nii.gz -o segmentations -ta <task_name>

3.4 高级设置

  • --device: Choose cpu or gpu or gpu:X (e.g., gpu:1 -> cuda:1)
  • --fast: For faster runtime and less memory requirements use this option. It will run a lower resolution model (3mm instead of 1.5mm).
  • --roi_subset: Takes a space-separated list of class names (e.g. spleen colon brain) and only predicts those classes. Saves a lot of runtime and memory. Might be less accurate especially for small classes (e.g. prostate).
  • --preview: This will generate a 3D rendering of all classes, giving you a quick overview if the segmentation worked and where it failed (see preview.png in output directory).
  • --ml: This will save one nifti file containing all labels instead of one file for each class. Saves runtime during saving of nifti files. (see here for index to class name mapping).
  • --statistics: This will generate a file statistics.json with volume (in mm³) and mean intensity of each class.
  • --radiomics: This will generate a file statistics_radiomics.json with the radiomics features of each class. You have to install pyradiomics to use this (pip install pyradiomics).

3.3 CT分割类别

IndexTotalSegmentator nameTA2 name
1spleen
2kidney_right
3kidney_left
4gallbladder
5liver
6stomach
7pancreas
8adrenal_gland_rightsuprarenal gland
9adrenal_gland_leftsuprarenal gland
10lung_upper_lobe_leftsuperior lobe of left lung
11lung_lower_lobe_leftinferior lobe of left lung
12lung_upper_lobe_rightsuperior lobe of right lung
13lung_middle_lobe_rightmiddle lobe of right lung
14lung_lower_lobe_rightinferior lobe of right lung
15esophagus
16trachea
17thyroid_gland
18small_bowelsmall intestine
19duodenum
20colon
21urinary_bladder
22prostate
23kidney_cyst_left
24kidney_cyst_right
25sacrum
26vertebrae_S1
27vertebrae_L5
28vertebrae_L4
29vertebrae_L3
30vertebrae_L2
31vertebrae_L1
32vertebrae_T12
33vertebrae_T11
34vertebrae_T10
35vertebrae_T9
36vertebrae_T8
37vertebrae_T7
38vertebrae_T6
39vertebrae_T5
40vertebrae_T4
41vertebrae_T3
42vertebrae_T2
43vertebrae_T1
44vertebrae_C7
45vertebrae_C6
46vertebrae_C5
47vertebrae_C4
48vertebrae_C3
49vertebrae_C2
50vertebrae_C1
51heart
52aorta
53pulmonary_vein
54brachiocephalic_trunk
55subclavian_artery_right
56subclavian_artery_left
57common_carotid_artery_right
58common_carotid_artery_left
59brachiocephalic_vein_left
60brachiocephalic_vein_right
61atrial_appendage_left
62superior_vena_cava
63inferior_vena_cava
64portal_vein_and_splenic_veinhepatic portal vein
65iliac_artery_leftcommon iliac artery
66iliac_artery_rightcommon iliac artery
67iliac_vena_leftcommon iliac vein
68iliac_vena_rightcommon iliac vein
69humerus_left
70humerus_right
71scapula_left
72scapula_right
73clavicula_leftclavicle
74clavicula_rightclavicle
75femur_left
76femur_right
77hip_left
78hip_right
79spinal_cord
80gluteus_maximus_leftgluteus maximus muscle
81gluteus_maximus_rightgluteus maximus muscle
82gluteus_medius_leftgluteus medius muscle
83gluteus_medius_rightgluteus medius muscle
84gluteus_minimus_leftgluteus minimus muscle
85gluteus_minimus_rightgluteus minimus muscle
86autochthon_left
87autochthon_right
88iliopsoas_leftiliopsoas muscle
89iliopsoas_rightiliopsoas muscle
90brain
91skull
92rib_left_1
93rib_left_2
94rib_left_3
95rib_left_4
96rib_left_5
97rib_left_6
98rib_left_7
99rib_left_8
100rib_left_9
101rib_left_10
102rib_left_11
103rib_left_12
104rib_right_1
105rib_right_2
106rib_right_3
107rib_right_4
108rib_right_5
109rib_right_6
110rib_right_7
111rib_right_8
112rib_right_9
113rib_right_10
114rib_right_11
115rib_right_12
116sternum
117costal_cartilages

3.4 MR分割类别

IndexTotalSegmentator nameTA2 name
1spleen
2kidney_right
3kidney_left
4gallbladder
5liver
6stomach
7pancreas
8adrenal_gland_rightsuprarenal gland
9adrenal_gland_leftsuprarenal gland
10lung_left
11lung_right
12esophagus
13small_bowelsmall intestine
14duodenum
15colon
16urinary_bladder
17prostate
18sacrum
19vertebrae
20intervertebral_discs
21spinal_cord
22heart
23aorta
24inferior_vena_cava
25portal_vein_and_splenic_veinhepatic portal vein
26iliac_artery_leftcommon iliac artery
27iliac_artery_rightcommon iliac artery
28iliac_vena_leftcommon iliac vein
29iliac_vena_rightcommon iliac vein
30humerus_left
31humerus_right
32fibula
33tibia
34femur_left
35femur_right
36hip_left
37hip_right
38gluteus_maximus_leftgluteus maximus muscle
39gluteus_maximus_rightgluteus maximus muscle
40gluteus_medius_leftgluteus medius muscle
41gluteus_medius_rightgluteus medius muscle
42gluteus_minimus_leftgluteus minimus muscle
43gluteus_minimus_rightgluteus minimus muscle
44autochthon_left
45autochthon_right
46iliopsoas_leftiliopsoas muscle
47iliopsoas_rightiliopsoas muscle
48quadriceps_femoris_left
49quadriceps_femoris_right
50thigh_medial_compartment_left
51thigh_medial_compartment_right
52thigh_posterior_compartment_left
53thigh_posterior_compartment_right
54sartorius_left
55sartorius_right
56brain

结论:

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

如何分辨AI生成的内容?AI生成内容检测工具对比实验

检测人工智能生成的文本对各个领域的组织都提出了挑战&#xff0c;包括学术界和新闻界等。生成式AI与大语言模型根据短描述来进行内容生成的能力&#xff0c;产生了一个问题&#xff1a;这篇文章/内容/作业/图像到底是由人类创作的&#xff0c;还是AI创作的&#xff1f;虽然 LL…

TCP 握手数据流

这张图详细描述了 TCP 握手过程中&#xff0c;从客户端发送 SYN 包到服务器最终建立连接的整个数据流转过程&#xff0c;包括网卡、内核、进程中的各个环节。下面对每个步骤进行详细解释&#xff1a; 客户端到服务器的初始连接请求 客户端发送 SYN 包&#xff1a; 客户端发起…

【音频特征提取】傅里叶变换算法源码学习记录

目录 背景快速理解FFT&#xff08;快速傅里叶变换&#xff09;IFFT&#xff08;逆傅里叶变换&#xff09;STFT&#xff08;短时傅里叶变换&#xff09; 代码实现FFT源代码IFFT源代码FFT、IFFT自己实验STFT源代码STFT自己实验 总结 背景 最近用到了相关操作提取音频信号特征&am…

Apache配置与应用(企业网站架构部署与优化)

本章结构 如果要修改以上文件中的内容&#xff0c;想要生效&#xff0c;需要在主配置文件中能够扫描到这个默认文件的修改&#xff1a; 文件在&#xff1a; Apache 连接保持 Apache 的访问控制 针对IP地址的限制缺陷是不可预知性&#xff0c;需要事先直到对方的IP才能进行基于…

剪画小程序:雷军演讲真精彩:视频/录音转文本

最近&#xff0c;雷军在小米汽车发布会的演讲精彩绝伦&#xff0c;其中的经典语句深深触动了我。为了能够随时随地回味这些充满智慧和激情的话语&#xff0c;我使用了剪画这一神奇的工具&#xff0c;将演讲视频转换成音频&#xff0c;并保存到了自己的手机里。 在这个信息爆炸的…

Puppeteer 是什么以及如何在网络抓取中使用它 | 2024 完整指南

网页抓取已经成为任何处理网页数据提取的人都必须掌握的一项重要技能。无论你是开发者、数据科学家还是希望从网站收集信息的爱好者&#xff0c;Puppeteer都是你可以使用的最强大工具之一。本完整指南将深入探讨什么是Puppeteer以及如何有效地在网页抓取中使用它。 Puppeteer简…

【扩散对抗】AdvDiffuser: Natural Adversarial Example Synthesis with Diffusion Models

原文标题&#xff1a; AdvDiffuser: Natural Adversarial Example Synthesis with Diffusion Models 原文代码&#xff1a; https://github.com/lafeat/advdiffuser 发布年度&#xff1a; 2023 发布期刊&#xff1a; ICCV 目录 摘要背景创新点模型Adversarial GuidanceAdversar…

FlutterFlame游戏实践#15 | 生命游戏 - 演绎启动

theme: cyanosis 本文为稀土掘金技术社区首发签约文章&#xff0c;30天内禁止转载&#xff0c;30天后未获授权禁止转载&#xff0c;侵权必究&#xff01; Flutter\&Flame 游戏开发系列前言: 该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲…

零基础做项目---五子棋对战---day02

用户模块 完成注册登录&#xff0c;以及用户分数管理~使用数据库来保存上述用户信息. 使用 MyBatis来连接并操作数据库了 主要步骤: 1.修改 Spring的配置文件,使数据库可以被连接上. 2.创建实体类&#xff0c;用户, User 3.创建Mapper接口~ 4.实现MyBatis 的相关xml配置…

【ffmpeg系列二点五】(失败,建议放弃)ubuntu下进行源码构建,给ffmpeg7.0.1添加hevc支持。

背景 windows下构建失败&#xff0c;ffmpeg对于flv-h265的处理得到新的报错。 开始ubuntu22下编译 pre&#xff1a;清除我们之前编译的nightly版本 sudo rm -rf /usr/local/bin/ffmpeg sudo rm -rf /usr/local/bin/ffprobe sudo rm -rf /usr/local/bin/ffserver sudo rm -…

轻松掌握图片压缩技巧,释放存储空间!

前言 在这个充满视觉冲击的时代&#xff0c;我们每天都在创造和分享图片。但你是否发现&#xff0c;手机和电脑的存储空间越来越不够用了&#xff1f;图片文件过大&#xff0c;不仅占用空间&#xff0c;还影响传输速度和网页加载。今天&#xff0c;就让我来教你几招&#xff0…

Python爬虫:BeautifulSoup的基本使用方法!

1.简介 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析“标签树”等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓取的数据&#xff0c;因为简单&#xff0c;所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup…

Python基础语法:变量和数据类型详解(整数、浮点数、字符串、布尔值)①

文章目录 变量和数据类型详解&#xff08;整数、浮点数、字符串、布尔值&#xff09;一、变量二、数据类型1. 整数&#xff08;int&#xff09;2. 浮点数&#xff08;float&#xff09;3. 字符串&#xff08;str&#xff09;4. 布尔值&#xff08;bool&#xff09; 三、类型转换…

生物打印后的生物力学过程

生物打印后的生物力学过程 3D生物打印技术在组织工程领域展现出巨大的潜力&#xff0c;但打印后组织的生物力学特性对其最终成功至关重要。本文将详细介绍打印后组织的生物力学特性及其在组织工程中的应用。 1. 打印后水凝胶交联 原位交联可以在生物打印过程中提供足够的机械…

LoRaWAN网络协议Class A/Class B/Class C三种工作模式说明

LoRaWAN是一种专为广域物联网设计的低功耗广域网络协议。它特别适用于物联网&#xff08;IoT&#xff09;设备&#xff0c;可以在低数据速率下进行长距离通信。LoRaWAN 网络由多个组成部分构成&#xff0c;其中包括节点&#xff08;终端设备&#xff09;、网关和网络服务器。Lo…

【Unity2D 2022:NPC】制作任务系统

一、接受任务 1. 编辑NPC对话脚本&#xff1a; &#xff08;1&#xff09;创建静态布尔变量用来判断ruby是否接受到任务 public class NPCDialog : MonoBehaviour {// 创建全局变量用来判断ruby是否接到任务public static bool receiveTask false; } &#xff08;2&#xff…

类型“RouteRecordName”上不存在属性“includes”。 类型“symbol”上不存在属性“includes”

确定 route.name 运行时是 字符串&#xff0c;强制转换 为字符串。 removeRoute(id: string) { this.dynamRoute this.dynamRoute.filter(route > !(route.name as string).includes(id)) localStorage.setItem(dynamRoute, JSON.stringify(this.dynamRoute)) delete this.t…

4.3 设备管理

大纲 设备分类 输入输出 虚设备和SPOOLING技术

【C语言之高级编程】如何将指定变量或函数编译至固定的内存区域中?

如何将指定变量或函数编译至固定的内存区域&#xff1f; 1. 内存类型1.1 bss段&#xff08;Block Started by Symbol&#xff09;1.2 data段&#xff08;data segment&#xff09;1.3 text段&#xff08;code segment/text segment&#xff09;1.4 dec1.5 堆&#xff08;heap&a…

绝区玖--人工智能物料清单 (AI BOM)

前言 AI BOM 涵盖了从输入模型的数据到为模型提供支持的基础设施以及将 AI 从概念转化为生产的过程的一切。 但为什么我们需要人工智能物料清单&#xff1f;答案在于当今世界人工智能/Gen AI系统的复杂性和关键性&#xff1a; 透明度和可重复性&#xff1a;AI BOM 提供所有组件…