CADS-python版:在一分钟内分割全身147个器官(可批量)

之前我们分享过python版的TotalSegmentator,可在一分钟内分割全是117个器官,今天,我们介绍一个新的模型CADS,它能分割 ts 未覆盖的部分器官与结构,两者结合可实现更完整的全身解剖分割。

CADS 简介

CADS(Comprehensive Anatomical Dataset & Segmentation)是一个针对全身 CT(从头部到膝部)影像的开源自动分割框架。其核心特点与亮点如下:

  • 覆盖丰富、结构全面

    CADS 涵盖 167 个解剖结构,远超多数现有模型的覆盖范围。

  • 大规模数据支撑

    CADS 包含 22,022 例带完整标注的 CT 体数据集(CADS-dataset),数据来源覆盖 16 个国家、100 多个成像中心,具备很强的异质性和泛化能力。

  • 自动化流程与质量控制

    数据集构建过程中使用伪标注(pseudo-labeling)与无监督质量控制机制,以保证标注的完整性与一致性。

  • 模块化模型设计

    CADS 的模型套件可分任务运行,每个子模型对应一类结构(如脊椎、胸腹器官、头颈部结构等),用户可选择运行全部任务或按需运行部分任务。

  • 便捷使用方式

    提供命令行 Python 脚本接口,用于批量推理。
     还提供 3D Slicer 插件 实现一键界面式调用,便于非编程背景用户使用。

  • 开源许可与模型权重

    代码采用 Apache-2.0 许可开源;模型权重以 CC BY 4.0 许可发布。

  • 验证与应用

    CADS 在公开竞赛和真实医院数据中均展示了良好性能,适用于科研、辅助诊断、影像处理平台整合等场景。


安装python版CADS

  • step1: 创建虚拟环境
conda create -n cads python=3.10
  • step2: 克隆官方库
git clone https://github.com/murong-xu/CADS.git

注意:记住克隆后的地址,我的默认下载到C:\Users\Administrator\CADS

  • step3: 安装python包
cd CADS
conda activate cads
pip install -e .
  • step4:安装torch
pip install torch==2.7.1+cu128 torchvision==0.22.1+cu128 torchaudio==2.7.1+cu128 --index-url https://download.pytorch.org/whl/cu128

这是基于我电脑GPU(5090)的版本,不一定适合所有人


显示带cuda的torch表示GPU可用,也可以用下面的方法进行检验, torch.cuda.is_available()=True如果等于False就表明torch没安装对版本。

分割demo

调用脚本格式:

python cads/scripts/predict_images.py -in <输入目录> -out <输出目录> -task <任务ID或all> [其他选项]

例如,我要分割demo文件夹下所有的图像

conda activate cads #(确保激活环境)
cd CADS # 进入克隆的cads目标
python cads/scripts/predict_images.py -in C:\Users\Administrator\Desktop\demo -out C:\Users\Administrator\Desktop\mask -task all

参数解析

  • -in:必须指定,输入 CT NIfTI((.nii 或 .nii.gz)) 影像所在目录。
  • -out:必须指定,输出分割结果(掩码文件)的保存目录,若目录不存在会自动创建。
  • -task:指定分割任务,可为 all 或以下任一任务 ID:[551, 552, 553, 554, 555, 556, 557, 558, 559]。具体每个ID分割哪些器官见文末。
  • --cpu:使用 CPU 进行推理,默认使用 GPU。
  • --no-preprocessing:禁用预处理(默认启用,包括重采样、去旋转平移等)。
  • --no-postprocessing:禁用后处理(默认启用)。
  • -np / --nr_thr_preprocess:设置预处理线程数,默认 4。
  • -ns / --nr_thr_saving:设置保存结果线程数,默认 6。
  • --verbose:显示详细日志信息,默认关闭。

第一次使用时,会去下载模型,请确保网络通畅(必要时用魔法)。提取的模型权重存放在( c:\users\administrator\cads\cads\model_weights\Dataset551_Totalseg251)。因此,你也可以手动去官网下载并存放在这个目录。

提取的模型权重

从这里可以看到,一个腹部CT的全身器官分割时间大概1分钟左右

好,我们来看一下效果


肉眼所见,几乎每个器官都被分割了。但是我们从图片左边也可以看到,他的分割文件数量为9个,是从551-559。也就意味着他的全身分割使用了9个模型,每个模型一个分割结果,并没有合并文件。如果需要将这所有器官分割在一个文件,后续自己写一个合并代码即可。

总的来说,他的分割准确度和TotalSegmentator(ts)是相当的,但是两个模型分割的器官有一些区别,ts做批量任务会更灵活一些。总之,各有千秋。

CADS可以分割哪些器官

cads一共提供9个模型,ID(551-559).分别分割如下器官

  • 任务 551:主要腹部器官、主要胸部器官(肺)和主要腹部脉管系统 脾脏、肾脏 R/L、胆囊、肝脏、胃、主动脉、下腔静脉、门静脉和脾静脉、胰腺、肾上腺 R/L、左肺上叶/下叶、右肺上叶/中叶/下叶。

  • 任务 552:从颈椎到腰椎区域的完整单个椎骨, 椎骨 C1-C7、T1-T12、L1-L5。

  • 任务 553:各种胸腹部器官、大脑、主要盆腔血管和面部 食道、气管、心肌、心房 R/L、心室 R/L、肺动脉、大脑、髂总动脉 R/L、髂总静脉 R/L、小肠、十二指肠、结肠、膀胱、面部。

  • 任务 554:附肢骨架的主要骨骼、骶骨和相关的大肌肉群 肱骨 R/L、肩胛骨 R/L、锁骨 R/L、股骨 R/L、髋骨 R/L、骶骨、臀大肌/中肌/小肌 R/L、背部深层肌肉 R/L、髂腰肌 R/L。

  • 任务 555:完成单根肋骨,包括左、右 肋骨 1-12 R/L。

  • 任务 556:放射治疗的各种结构 脊椎管、喉头、心脏、结肠造口袋、乙状结肠、直肠、前列腺、精囊、乳腺 R/L、胸骨、腰大肌 R/L、腹直肌 R/L。

  • 任务 557:大脑和头部组织 白质、灰质、脑脊液、头皮、眼球、密质骨、松质骨、血液、头部肌肉。

  • 任务 558:头部和颈部结构 颈动脉 R/L、杓状软骨、下颌骨、脑干、颊粘膜、口腔、耳蜗 R/L、环咽肌、颈食管、眼球前/后节 R/L、泪腺 R/L、颌下腺 R/L、甲状腺、声门、声门上、双唇、视交叉、视神经 R/L、腮腺 R/L、脑垂体。

  • 任务 559:一般组织类型、主要体腔、广泛的解剖类别 皮下组织、肌肉、腹腔、胸腔、骨骼、腺体结构、心包、假体乳房植入物、纵隔、脊髓。

以及每个模型器官对应的数字标签

模型 551
索引 解剖结构名称
0 背景
1 脾脏
2 右肾
3 左肾
4 胆囊
5 肝脏
6
7 主动脉
8 下腔静脉
9 门静脉与脾静脉
10 胰腺
11 右肾上腺
12 左肾上腺
13 左肺上叶
14 左肺下叶
15 右肺上叶
16 右肺中叶
17 右肺下叶
模型 552
索引 解剖结构名称
0 背景
1 第五腰椎(L5)
2 第四腰椎(L4)
3 第三腰椎(L3)
4 第二腰椎(L2)
5 第一腰椎(L1)
6 第十二胸椎(T12)
7 第十一胸椎(T11)
8 第十胸椎(T10)
9 第九胸椎(T9)
10 第八胸椎(T8)
11 第七胸椎(T7)
12 第六胸椎(T6)
13 第五胸椎(T5)
14 第四胸椎(T4)
15 第三胸椎(T3)
16 第二胸椎(T2)
17 第一胸椎(T1)
18 第七颈椎(C7)
19 第六颈椎(C6)
20 第五颈椎(C5)
21 第四颈椎(C4)
22 第三颈椎(C3)
23 第二颈椎(C2)
24 第一颈椎(C1)
模型 553
索引 解剖结构名称
0 背景
1 食管
2 气管
3 心肌
4 左心房
5 左心室
6 右心房
7 右心室
8 肺动脉
9 大脑
10 左髂总动脉
11 右髂总动脉
12 左髂总静脉
13 右髂总静脉
14 小肠
15 十二指肠
16 结肠
17 膀胱
18 面部
模型 554
索引 解剖结构名称
0 背景
1 左肱骨
2 右肱骨
3 左肩胛骨
4 右肩胛骨
5 左锁骨
6 右锁骨
7 左股骨
8 右股骨
9 左髋关节
10 右髋关节
11 骶骨
12 左臀大肌
13 右臀大肌
14 左臀中肌
15 右臀中肌
16 左臀小肌
17 右臀小肌
18 左背深肌群
19 右背深肌群
20 左髂腰肌
21 右髂腰肌
模型 555
索引 解剖结构名称
0 背景
1 左第1肋骨
2 左第2肋骨
3 左第3肋骨
4 左第4肋骨
5 左第5肋骨
6 左第6肋骨
7 左第7肋骨
8 左第8肋骨
9 左第9肋骨
10 左第10肋骨
11 左第11肋骨
12 左第12肋骨
13 右第1肋骨
14 右第2肋骨
15 右第3肋骨
16 右第4肋骨
17 右第5肋骨
18 右第6肋骨
19 右第7肋骨
20 右第8肋骨
21 右第9肋骨
22 右第10肋骨
23 右第11肋骨
24 右第12肋骨
模型 556
索引 解剖结构名称
0 背景
1 脊髓管
2 喉部
3 心脏
4 结肠造口袋
5 乙状结肠
6 直肠
7 前列腺
8 精囊腺
9 左乳腺
10 右乳腺
11 胸骨
12 右腰大肌
13 左腰大肌
14 右腹直肌
15 左腹直肌
模型 557
索引 解剖结构名称
0 背景
1 白质
2 灰质
3 脑脊液
4 头皮
5 眼球
6 致密骨
7 松质骨
8 血液
9 头部肌肉
模型 558
索引 解剖结构名称
0 背景
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 垂体
模型 559
索引 解剖结构名称
0 背景
1 皮下组织
2 肌肉
3 腹腔
4 胸腔
5 骨骼
6 腺体结构
7 心包
8 乳房假体
9 纵隔
10 脊髓

参考资料:
https://github.com/murong-xu/CADS

https://github.com/murong-xu/CADS/blob/main/resources/info/labelmap.md

文章持续更新,可以关注微公【Radiology AI Camp】获取最新动态。人手有限,文中涉及的链接前往微公对应文章查看。关注Tina姐,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐