|
TotalSegmentator用于对CT图像中超过117个类别进行分割的工具。它接受了各种不同CT图像(不同扫描仪、机构、协议等)的训练,因此应该适用于大多数图像。大部分训练数据集可以从Zenodo下载(1228个主题)。您还可以在totalsegmentator.com上在线试用该工具。一句话概要:TotalSegmentator是在大型数据集上使用nnUNetV2训练的一个AI模型,可以在CT数据上自动分割全身117个器官(见文末)!同时还可以分割部分血管,脑出血,胸腔积液等(后面会介绍)。文章目录Totalsegmentator版本Totalsegmentatorpython版安装如何安装Totalsegmentator快速使用Totalsegmentator高级使用1.除了上述器官分割外,还可以分割下面的一些子任务2.分割单一器官或几个器官3.预览分割结果4.所有器官分割结果存在一个文件里面5.批量处理所有图像6.在python中运行totalsegmentatorTotalsegmentator可以分割哪些器官Totalsegmentator版本一共有两个版本,各有千秋,选择适合自己的版本3DSlicer版本:之前已经介绍过了,并且获得了广大朋友的喜欢。也是迄今为止Tina姐最受欢迎的教程。它的优势是提供了可视化的界面,自动分割完后,可以对结果进行实时修改。缺点是可调参数比python版少,只能onebyone,没法批量操作。且受网速影响,有的朋友在3DSlicer中并不能顺畅使用。【公-众-号查看】python版本:它的特点是一次安装好后,即可在终端使用少量命令进行批处理。也可以设置想要的分割哪些器官,不用全部分割。对编程能力有一定要求,且分割完的结果需要手动审阅修改。接下来是python版本实战Totalsegmentatorpython版安装如何安装TotalSegmentator可在Ubuntu、Mac和Windows以及CPU和GPU上运行。由于它是个AI模型,最好是在GPU上安装,CPU上只有快速版本,分割又慢效果也差些首先确保有如下依赖项:Python>=3.9Pytorch>=1.12.1直接在终端(选择合适的虚拟环境)pippipinstallTotalSegmentator1Totalsegmentator快速使用使用TotalSegmentator-h查看使用说明快速分割一幅图像TotalSegmentator-ict.nii.gz-osegmentations`1i:inputimage,待分割的图像地址outputimage,分割结果文件夹,不同的分割目标生成不同的文件注意:允许将包含一名患者的所有DICOM切片的Nifti文件或文件夹作为输入注意:如果您在CPU上运行,请使用该选项--fast或--roi_subset来大大提高运行时间。从交互界面可以看到,当你第一次调用TotalSegmentator,它会先下载预训练好的模型。这需要一定的时间(取决于你的网络)。第二次使用就不会再下载了。整个分割过程不到1分钟。这里自动分割结果按照不同器官进行存储。像我这样安装的是V1版本,因此仅分割了104个器官,就有104个分割文件。如图将原始图像和你的目标器官加载进ITK-SNAP或者3Dslicer等标注软件就可以进行手动修改。大大减少标注时间,提升标注效率Totalsegmentator高级使用1.除了上述器官分割外,还可以分割下面的一些子任务通过在命令中增加-ta参数即可:TotalSegmentator-ict.nii.gz-osegmentations-ta1ta可以为如下值total-分割上述所有器官lung_vessels-肺血管cerebral_bleed-脑出血hip_implant-髋关节植入物coronary_arteries-冠状动脉body-身体pleural_pericard_effusion-胸膜心包积液liver_vessels-肝血管bones_extremities-骨骼四肢tissue_types-组织类型heartchambers_highres-心腔高分辨率head-头部aortic_branches-主动脉分支heartchambers_test-心腔测试bones_tissue_test-骨骼组织测试aortic_branches_test-主动脉分支测试test-测试2.分割单一器官或几个器官在快速使用案例中,会自动分割所有器官,但实际应用中,我们可能只对其中的一个或几个器官感兴趣。分割太多耗时长,还占内存。这时候怎么处理?只需要在命令后添加-rs参数TotalSegmentator-iCT1202301051207_ZHOU_JUN/P_to_V.nii.gz-oCT1202301051207_ZHOU_JUN-rsliver1上述命令表示只分割肝脏,如需多个就括起来[licerkindey_leftpancreas]中间用个空格分开3.预览分割结果通过生成所有类的3D渲染,让您快速了解分割是否有效以及失败的位置。只需要添加--preview参数TotalSegmentator-iCT1202301051207_ZHOU_JUN/P_to_V.nii.gz-oCT1202301051207_ZHOU_JUN/P_to_V_liver--preview1上述命令如果报错OSError:CannotfindXvfb.Pleaseinstallitandtryagain通过下面命令进行安装sudoapt-getinstallxvfb讲真,我安装有问题,没解决(如上图)。其实我蛮需要这个功能的,为了解决这个功能,我把电脑都搞崩了,最后重装了驱动。有大佬解决滴滴我一下,TQ。虽然没直接解决,我绕弯解决了。如果环境有问题,我们可以直接用官方的docker。当然,前提是安装好了dockerrun--gpus'device=0'--ipc=host-v/absolute/path/to/my/data/directory:/tmpwasserth/totalsegmentator:2.0.0TotalSegmentator-i/tmp/ct.nii.gz-o/tmp/segmentations14.所有器官分割结果存在一个文件里面我们之前的结果都是一个器官一个文件,想合并在同一个nii.gz文件,怎么办?只需要添加--ml参数,这将保存一个包含所有标签的nifti文件,而不是为每个类保存一个文件。在保存nifti文件期间节省运行时间TotalSegmentator-iCT1202301051207_ZHOU_JUN/P_to_V.nii.gz-oCT1202301051207_ZHOU_JUN/P_to_V_seg--ml1其他–statistics:这将生成一个statistics.json包含体积(以mm³为单位)和每个类别的平均强度的文件。–radiomics:这将生成一个statistics_radiomics.json包含每个类别的放射组学特征的文件。您必须安装Pyradiomics才能使用此功能(pipinstallpyradiomics)。5.批量处理所有图像以上的功能都仅是针对单个病人进行处理。显然在深度学习中,我们需要勾画几百上千个病人,如何对这些病人进行批量处理变得非常重要。这可不是官方提供的,Tina姐独家配方!!假设你的数据在train–>patient–>p_to_v.nii.gz.这里有多个patient文件夹。需要对每个文件夹下的p_to_v.nii.gz进行分割。使用循环即可foriin`ls`;docd$i;TotalSegmentator-iP_to_V.nii.gz-o./--preview;cd..;done1注意:仅针对LINUX系统,并且熟悉shell的同学。不然你直接复制我的命令可能得不到你想要的结果。6.在python中运行totalsegmentator如果你不习惯用终端操作。你也可以在python中调用totalsegmentatorimportnibabelasnibfromtotalsegmentator.python_apiimporttotalsegmentatorif__name__=="__main__":#option1:provideinputandoutputasfilepathstotalsegmentator(input_path,output_path)#option2:provideinputandoutputasniftiimageobjectsinput_img=nib.load(input_path)output_img=totalsegmentator(input_img)nib.save(output_img,output_path)1234567891011Totalsegmentator可以分割哪些器官spleen(脾),kidney_right(右肾),kidney_left(左肾),gallbladder(胆囊),liver(肝),stomach(胃),pancreas(胰腺),adrenal_gland_right(右肾上腺),adrenal_gland_left(左肾上腺),lung_upper_lobe_left(左肺上叶),lung_lower_lobe_left(左肺下叶),lung_upper_lobe_right(右肺上叶),lung_middle_lobe_right(右肺中叶),lung_lower_lobe_right(右肺下叶),esophagus(食管),trachea(气管),thyroid_gland(甲状腺),small_bowel(小肠),duodenum(十二指肠),colon(结肠),urinary_bladder(膀胱),prostate(前列腺),kidney_cyst_left(左肾囊肿),kidney_cyst_right(右肾囊肿),sacrum(骶骨),vertebraeC1-S1(椎体,颈1椎体为C1类,胸1椎体为T1类,腰1椎体为L1类,依次类推),heart(心脏),aorta(主动脉),pulmonary_vein(肺静脉),brachiocephalic_trunk(颈总动脉干),subclavian_artery_right(右锁骨下动脉),subclavian_artery_left(左锁骨下动脉),common_carotid_artery_right(右颈总动脉),common_carotid_artery_left(左颈总动脉),brachiocephalic_vein_left(左肱头静脉),brachiocephalic_vein_right(右肱头静脉),atrial_appendage_left(左心房附属物),superior_vena_cava(上腔静脉),inferior_vena_cava(下腔静脉),portal_vein_and_splenic_vein(门静脉和脾静脉),iliac_artery_left(左髂动脉),iliac_artery_right(右髂动脉),iliac_vena_left(左髂静脉),iliac_vena_right(右髂静脉),humerus_left(左肱骨),humerus_right(右肱骨),scapula_left(左肩胛骨),scapula_right(右肩胛骨),clavicula_left(左锁骨),clavicula_right(右锁骨),femur_left(左股骨),femur_right(右股骨),hip_left(左髋),hip_right(右髋),spinal_cord(脊髓),gluteus_maximus_left(左臀大肌),gluteus_maximus_right(右臀大肌),gluteus_medius_left(左臀中肌),gluteus_medius_right(右臀中肌),gluteus_minimus_left(左臀小肌),gluteus_minimus_right(右臀小肌),autochthon_left(左本位肌),autochthon_right(右本位肌),iliopsoas_left(左髂腰肌),iliopsoas_right(右髂腰肌),brain(大脑),skull(头骨),rib_left_1-12(左肋骨1-12),rib_right_1-12(右肋骨1-12)sternum(胸骨),costal_cartilages(肋软骨)文章持续更新,可以关注微公【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的号。坚持以实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~我是Tina,我们下篇博客见~白天工作晚上写文,呕心沥血觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
|
|