Project Icon

TotalSegmentator

全身器官自动分割工具适用于CT和MR影像

TotalSegmentator是一款自动分割CT和MR图像中主要解剖结构的开源工具。基于大规模数据集训练,可在不同设备和协议的医学影像上实现稳健分割,支持117个CT类别和56个MR类别。工具提供多种子任务,如肺血管、体表和脑出血等特定器官分割。支持命令行和Python API调用,可在CPU或GPU上运行,并提供Docker容器部署。

TotalSegmentator

TotalSegmentator是一种可以在任何CT或MR图像中分割大多数主要解剖结构的工具。它经过了广泛的不同CT和MR图像(不同的扫描仪、机构、协议等)的训练,因此应该能够很好地适用于大多数图像。大部分训练数据集可以在这里下载:CT数据集(1228名受试者)和MR数据集(298名受试者)。您也可以在totalsegmentator.com在线试用该工具。

公告:我们最近增加了对MR图像的支持。通过使用任务-ta total_mr来尝试,或在我们的论文中查看更多详细信息。

CT主要类别: 替代文本

MR主要类别: 替代文本

点击这里查看所有可用结构。

巴塞尔大学医院研究与分析部门创建。 如果您使用它,请引用我们的Radiology AI论文免费预印本)。如果您将其用于MR图像,请引用TotalSegmentator MRI论文。由于TotalSegmentator在很大程度上基于nnUNet,请同时引用它。

安装

TotalSegmentator可在Ubuntu、Mac和Windows上运行,支持CPU和GPU。

安装依赖项:

可选:

  • 如果使用--preview选项,您必须安装xvfb(apt-get install xvfb)和fury(pip install fury

安装Totalsegmentator

pip install TotalSegmentator

使用方法

对于CT图像:

TotalSegmentator -i ct.nii.gz -o segmentations

对于MR图像:

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

注意:允许使用Nifti文件或包含一个患者所有DICOM切片的文件夹(或zip文件)作为输入。

注意:如果在CPU上运行,请使用--fast--roi_subset选项以大大提高运行时间。

注意:这不是医疗设备,不适用于临床用途。

子任务

替代文本

除了默认任务(total)外,还有更多包含更多类别的子任务。如果任务名以_mr结尾,则适用于MR图像,否则适用于CT图像。

可供任何用途开放使用:

  • total:默认任务,包含117个主要类别(点击此处查看类别列表)
  • total_mr:默认任务,包含56个MR图像的主要类别(点击此处查看类别列表)
  • lung_vessels:肺血管(引用论文),肺气管支气管
  • body:身体、躯干、四肢、皮肤
  • cerebral_bleed:脑内出血(引用论文)*
  • hip_implant:髋关节植入物*
  • coronary_arteries:冠状动脉*
  • pleural_pericard_effusion:胸腔积液(引用论文),心包积液(引用论文)*
  • head_glands_cavities:左眼、右眼、左眼晶状体、右眼晶状体、左视神经、右视神经、左腮腺、右腮腺、右下颌下腺、左下颌下腺、鼻咽、口咽、下咽、右鼻腔、左鼻腔、右听道、左听道、软腭、硬腭(引用论文
  • head_muscles:右咬肌、左咬肌、右颞肌、左颞肌、右外翼肌、左外翼肌、右内翼肌、左内翼肌、舌头、右二腹肌、左二腹肌
  • headneck_bones_vessels:喉腔、甲状软骨、舌骨、环状软骨、右颧弓、左颧弓、右茎突、左茎突、右颈内动脉、左颈内动脉、右颈内静脉、左颈内静脉(引用论文
  • headneck_muscles:右胸锁乳突肌、左胸锁乳突肌、上咽缩肌、中咽缩肌、下咽缩肌、右斜方肌、左斜方肌、右颈阔肌、左颈阔肌、右肩胛提肌、左肩胛提肌、右前斜角肌、左前斜角肌、右中斜角肌、左中斜角肌、右后斜角肌、左后斜角肌、右胸骨甲状肌、左胸骨甲状肌、右甲状舌骨肌、左甲状舌骨肌、右椎前肌、左椎前肌(引用论文

*:这些模型并非在完整的totalsegmentator数据集上训练,而是在一些小型数据集上训练。因此,预期它们的稳健性较差。

需要许可证(非商业用途的免费许可证可在这里获取。商业许可请联系jakob.wasserthal@usb.ch):

  • heartchambers_highres:心肌、左心房、左心室、右心房、右心室、主动脉、肺动脉(在亚毫米分辨率上训练)
  • appendicular_bones:髌骨、胫骨、腓骨、跗骨、跖骨、足趾骨、尺骨、桡骨、腕骨、掌骨、手指骨
  • tissue_types:皮下脂肪、躯干脂肪、骨骼肌
  • tissue_types_mr:皮下脂肪、躯干脂肪、骨骼肌(适用于MR图像)
  • brain_structures:脑干、蛛网膜下腔、静脉窦、透明隔、小脑、尾状核、豆状核、岛叶皮质、内囊、脑室、中央沟、额叶、顶叶、枕叶、颞叶、丘脑(注意:这适用于CT)(引用论文,因为我们的模型部分基于此)
  • vertebrae_body:所有椎骨的椎体(不包括椎弓)
  • face:面部区域(用于匿名化)

使用方法:

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

对所有结构和任务感到困惑?查看这里以搜索可用的结构和任务。

标签ID到类名的映射可在这里找到。

高级设置

  • --device: 选择 cpugpugpu:X(例如,gpu:1 -> cuda:1)
  • --fast: 使用此选项可获得更快的运行时间和更少的内存需求。它将运行较低分辨率的模型(3mm而不是1.5mm)。
  • --roi_subset: 接受以空格分隔的类名列表(例如 spleen colon brain)并仅预测这些类别。可以大大节省运行时间和内存。对于小类别(如前列腺)可能准确度较低。
  • --preview: 这将生成所有类别的3D渲染,让您快速了解分割是否成功以及失败的位置(请查看输出目录中的 preview.png)。
  • --ml: 这将保存一个包含所有标签的nifti文件,而不是为每个类别保存一个文件。在保存nifti文件时节省运行时间。(索引到类名的映射请参见此处)。
  • --statistics: 这将生成一个 statistics.json 文件,包含每个类别的体积(单位:mm³)和平均强度。
  • --radiomics: 这将生成一个 statistics_radiomics.json 文件,包含每个类别的放射组学特征。您需要安装pyradiomics才能使用此功能(pip install pyradiomics)。

通过docker运行

我们还提供了一个docker容器,可以按以下方式使用

docker run --gpus 'device=0' --ipc=host -v /absolute/path/to/my/data/directory:/tmp wasserth/totalsegmentator:2.2.1 TotalSegmentator -i /tmp/ct.nii.gz -o /tmp/segmentations

运行v1版本

如果您想继续使用TotalSegmentator v1(例如,因为您不想更改您的流程),可以使用以下命令安装:

pip install TotalSegmentator==1.5.7

v1的文档可以在这里找到。v1的错误修复在 v1_bugfixes 分支中开发。 我们的Radiology AI出版物引用的是TotalSegmentator v1。

资源需求

Totalsegmentator具有以下运行时间和内存需求(使用Nvidia RTX 3090 GPU): (1.5mm是普通模型,3mm是 --fast 模型。在v2中,由于我们添加了更多类别,运行时间略有增加。)

Alt text

如果您想减少内存消耗,可以使用以下选项:

  • --fast: 这将使用较低分辨率的模型
  • --body_seg: 这将在处理之前将图像裁剪到身体区域
  • --roi_subset <类别列表>: 这将只预测一部分类别
  • --force_split: 这将把图像分成3部分,然后逐一处理。(不要对小图像使用此选项。将这些图像分割成更小的图像会导致视野太小。)
  • --nr_thr_saving 1: 使用多个线程保存大图像会占用大量内存

Python API

您可以通过Python运行totalsegmentator:

import nibabel as nib
from totalsegmentator.python_api import totalsegmentator

if __name__ == "__main__":
    # 选项1:提供输入和输出的文件路径
    totalsegmentator(input_path, output_path)
    
    # 选项2:提供输入和输出作为nifti图像对象
    input_img = nib.load(input_path)
    output_img = totalsegmentator(input_img)
    nib.save(output_img, output_path)

您可以在这里查看所有可用的参数。在主环境中运行应该可以避免一些多进程问题。

分割图像在扩展头部包含类别名称。如果您想加载这些额外的头部信息,可以使用以下代码(需要 pip install xmltodict):

from totalsegmentator.nifti_ext_header import load_multilabel_nifti

segmentation_nifti_img, label_map_dict = load_multilabel_nifti(image_path)

安装最新的主分支(包含最新的错误修复)

pip install git+https://github.com/wasserth/TotalSegmentator.git

其他命令

如果您想知道CT图像的对比相位,可以使用以下命令(需要 pip install xgboost)。更多详情可以在这里找到:

totalseg_get_phase -i ct.nii.gz -o contrast_phase.json

如果您想将一些子类(例如肺叶)合并成一个二值掩码(例如整个肺),可以使用以下命令:

totalseg_combine_masks -i totalsegmentator_output_dir -o combined_mask.nii.gz -m lungcomm 

通常,运行TotalSegmentator时会自动下载权重。如果您想使用额外的命令下载权重(例如在构建docker容器时),请使用:

totalseg_download_weights -t <task_name>

获得非开放任务的许可证号后,您可以使用以下命令设置:

totalseg_set_license -l aca_12345678910

训练/验证/测试集划分

数据集的确切划分可以在数据集内的 meta.csv 文件中找到。这被用于我们论文中的验证。 高分辨率模型(1.5mm)的准确结果可以在这里找到。论文在补充材料图11中展示了这些数字。

重新训练模型和运行评估

有关如何在TotalSegmentator数据集上自己训练nnU-Net,如何像我们论文中那样将数据分割为训练/验证/测试集,以及如何运行与我们论文中相同的评估的更多信息,请参见此处

常见问题

ITK加载错误 当您遇到以下错误消息时

ITK ERROR: ITK only supports orthonormal direction cosines. No orthonormal definition was found!

您应该执行

pip install SimpleITK==2.0.2

或者您可以尝试

fslorient -copysform2qform input_file
fslreorient2std input_file output_file

分割效果不佳 当您得到不好的分割结果时,请检查以下几点:

  • 您的输入图像是否包含原始的HU值,还是强度值被重新缩放到不同的范围?
  • 患者在图像中的位置是否正常?(在轴向视图中,脊柱是否在图像底部?在冠状视图中,头部是否在图像顶部?)

其他

  • TotalSegmentator会发送匿名使用统计数据,以帮助我们进一步改进。您可以通过在 ~/.totalsegmentator/config.json 中将 send_usage_stats 设置为 false 来停用它。
  • 变更和改进中,您可以看到v1和v2之间的差异概述。

参考

更多详情请参见我们的Radiology AI论文可免费获取的预印本)。 如果您使用此工具,请按以下方式引用:

Wasserthal, J., Breit, H.-C., Meyer, M.T., Pradella, M., Hinck, D., Sauter, A.W., Heye, T., Boll, D., Cyriac, J., Yang, S., Bach, M., Segeroth, M., 2023. TotalSegmentator: Robust Segmentation of 104 Anatomic Structures in CT Images. Radiology: Artificial Intelligence. https://doi.org/10.1148/ryai.230024

由于TotalSegmentator大量基于nnUNet,请也引用它。 此外,如果您能告诉我们您使用此工具的目的,我们将非常感激。您也可以告诉我们在未来的版本中应该添加哪些类别。您可以在这里这样做。

类别详情

下表显示了 total 任务的所有类别列表。

TA2是一种标准化的解剖命名方式。大多数TotalSegmentator名称遵循这一标准。 对于某些类别,它们有所不同,您可以在下表中看到。

这里您可以找到TotalSegmentator类别到SNOMED-CT代码的映射。

索引TotalSegmentator 名称TA2 名称
1脾脏
2右肾
3左肾
4胆囊
5肝脏
6
7胰腺
8右肾上腺肾上腺
9左肾上腺肾上腺
10左肺上叶左肺上叶
11左肺下叶左肺下叶
12右肺上叶右肺上叶
13右肺中叶右肺中叶
14右肺下叶右肺下叶
15食管
16气管
17甲状腺
18小肠小肠
19十二指肠
20结肠
21膀胱
22前列腺
23左肾囊肿
24右肾囊肿
25骶骨
26第一骶椎
27第五腰椎
28第四腰椎
29第三腰椎
30第二腰椎
31第一腰椎
32第十二胸椎
33第十一胸椎
34第十胸椎
35第九胸椎
36第八胸椎
37第七胸椎
38第六胸椎
39第五胸椎
40第四胸椎
41第三胸椎
42第二胸椎
43第一胸椎
44第七颈椎
45第六颈椎
46第五颈椎
47第四颈椎
48第三颈椎
49第二颈椎
50第一颈椎
51心脏
52主动脉
53肺静脉
54头臂干
55右锁骨下动脉
56左锁骨下动脉
57右颈总动脉
58左颈总动脉
59左头臂静脉
60右头臂静脉
61左心耳
62上腔静脉
63下腔静脉
64门静脉和脾静脉肝门静脉
65左髂动脉髂总动脉
66右髂动脉髂总动脉
67左髂静脉髂总静脉
68右髂静脉髂总静脉
69左肱骨
70右肱骨
71左肩胛骨
72右肩胛骨
73左锁骨锁骨
74右锁骨锁骨
75左股骨
76右股骨
77左髋部
78右髋部
79脊髓
80左臀大肌臀大肌
81右臀大肌臀大肌
82左臀中肌臀中肌
83右臀中肌臀中肌
84左臀小肌臀小肌
85右臀小肌臀小肌
86左自主肌
87右自主肌
88左髂腰肌髂腰肌
89右髂腰肌髂腰肌
90大脑
91颅骨
92左第1肋骨
93左第2肋骨
94左第3肋骨
95左第4肋骨
96左第5肋骨
97左第6肋骨
98左第7肋骨
99左第8肋骨
100左第9肋骨
101左第10肋骨
102左第11肋骨
103左第12肋骨
104右第1肋骨
105右第2肋骨
106右第3肋骨
107右第4肋骨
108右第5肋骨
109右第6肋骨
110右第7肋骨
111右第8肋骨
112右第9肋骨
113右第10肋骨
114右第11肋骨
115右第12肋骨
116胸骨
117肋软骨

"total_mr"任务的类别映射:

索引TotalSegmentator 名称TA2 名称
1脾脏
2右肾
3左肾
4胆囊
5肝脏
6
7胰腺
8右肾上腺肾上腺
9左肾上腺肾上腺
10左肺
11右肺
12食管
13小肠小肠
14十二指肠
15结肠
16膀胱
17前列腺
18骶骨
19脊椎
20椎间盘
21脊髓
22心脏
23主动脉
24下腔静脉
25门静脉和脾静脉肝门静脉
26左髂动脉髂总动脉
27右髂动脉髂总动脉
28左髂静脉髂总静脉
29右髂静脉髂总静脉
30左肱骨
31右肱骨
32腓骨
33胫骨
34左股骨
35右股骨
36左髋部
37右髋部
38左臀大肌臀大肌
39右臀大肌臀大肌
40左臀中肌臀中肌
41右臀中肌臀中肌
42左臀小肌臀小肌
43右臀小肌臀小肌
44左自主肌
45右自主肌
46左髂腰肌髂腰肌
47右髂腰肌髂腰肌
48左股四头肌
49右股四头肌
50左大腿内侧肌群
51右大腿内侧肌群
52左大腿后部肌群
53右大腿后部肌群
54左缝匠肌
55右缝匠肌
56大脑
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号