20.WSL(Ubuntu22.04)中部署TotalSpineSeg模型

一、项目说明

1.1 项目仓库

  • GIT URL: https://github.com/neuropoly/totalspineseg

1.2 项目介绍

TotalSpineSeg 是一款用于自动分割 MRI 图像中所有椎骨、椎间盘、脊髓和椎管的工具。它对各种 MRI 对比度、采集方向和分辨率均具有鲁棒性。TotalSpineSeg 使用的模型基于nnU-Net,并以此作为训练和推理的主干网络。

如果您使用此模型,请引用我们的工作:

Warszawer YMolinier NValošek JShirbint EBenveniste PLAchiron AEshaghi A Cohen-Adad J。使用结合 nnU-Net 和迭代算法的混合方法进行全自动椎骨和脊髓分割。 ISMRM 第 32 届年会论文集。 2024年

请同时引用nnU-Net,因为我们的工作很大程度上依赖于它:

Isensee, F., Jaeger, PF, Kohl, SA, Petersen, J., & Maier-Hein, KH (2021). nnU-Net:一种基于深度学习的生物医学图像分割的自配置方法。自然方法,18(2),203-211。

在这里插入图片描述

1.3 模型描述

TotalSpineSeg采用混合方法,将nnU-Net与迭代算法相结合,用于椎骨、椎间盘、脊髓和椎管的实例分割和标注。该过程包括两个主要步骤:

步骤 1:使用 nnU-Net 模型(Dataset101)识别总共九个类别。这包括四个语义类别:脊髓、椎管、椎间盘和椎骨;以及五个地标类别:C2-C3、C7-T1、T12-L1 和 L5-S,它们代表脊柱上的关键椎间盘,以及 C1 椎骨,用于确定 MRI 图像是否覆盖 C1(图 1B)。然后使用迭代算法处理输出分割结果,以映射各个椎间盘,并从中提取异常椎间盘分割结果(图 1C)。

步骤 2:随后使用第二个 nnU-Net 模型(Dataset102)来识别总共十个类别。这包括五个语义类别:脊髓、椎管、椎间盘、奇数椎体和偶数椎体;以及五个地标类别:C2-C3、C7-T1、T12-L1 和 L5-S,它们分别代表脊柱上的关键椎间盘以及骶骨(图 1D)。该模型使用两个输入通道:MRI 图像(图 1A)和从第一步中提取的奇数椎间盘(图 1C)。最后,使用一种算法对输出分割结果进行处理,该算法为每个椎体和椎间盘分配单独的标签,从而生成最终分割结果(图 1F)。

为了进行比较,我们还训练了一个单一模型(Dataset103),该模型一步即可输出每个椎骨和椎间盘的单独标签值。

在这里插入图片描述

图 1:用于脊柱结构自动分割的混合方法示意图。(A) 输入 MRI 图像。(B) 步骤 1 模型预测。© 从步骤 1 预测中提取异常椎间盘。(D) 步骤 2 模型预测。(E) 最终分割结果,每个椎体和椎间盘均有单独的标签。

二、前置准备

2.1 cuda版本适配

cuda版本太高,cuda12.9的torch版本是2.8.0,readme要求torch的版本是小于2.6。

如需 CUDA GPU 支持,请按照其网站上的说明安装 PyTorch<2.6。请务必将 --upgrade 标志添加到您的安装命令中,以替换任何现有的 PyTorch 安装。例:

python3 -m pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118 --upgrade

pytorch官网信息:

pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu129

满足条件的torch版本是2.5.1,对应的安装命令如下,满足要求的最高CUDA版本是12.4.

# CUDA 11.8
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1  pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia

2.2 WSL环境配置

更换wsl中Ubuntu镜像源地址为清华大学的镜像地址。

sudo sed -i 's@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list
sudo sed -i 's@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g' /etc/apt/sources.list

更新仓库,安装依赖模块。

sudo apt update -y
sudo apt install gcc g++ cmake build-essential -y

2.2.1 CUDA12.4安装

下载并按照CUDA12.4。

wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo bash cuda_12.4.0_550.54.14_linux.run

打开~/.bashrc,配置CUDA环境:

export CUDA_HOME=/usr/local/cuda-12.4
export PATH=/usr/local/cuda-12.4/bin:$PATH
export  LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH

2.2.2 anaconda安装

下载anaconda安装包,执行安装。

wget https://mirror.lzu.edu.cn/anaconda/archive/Anaconda3-2025.06-1-Linux-x86_64.sh
chmod +x Anaconda3-2025.06-1-Linux-x86_64.sh 
./Anaconda3-2025.06-1-Linux-x86_64.sh

安装结束之后,我们对pip全局设置国内代理,这里选择腾讯的pip镜像源。

pip config set global.index-url  https://mirrors.cloud.tencent.com/pypi/simple
pip config set global.trusted-host mirrors.cloud.tencent.com

2.3 运行环境配置

通过conda创建python3.10的环境,手动安装pillow。

conda create -n totalspineseg python=3.10
conda  install pillow

然后从git仓库拉取代码,我们安装totalspineseg:


git clone https://github.com/neuropoly/totalspineseg.git
# 此时不需要先cd到totalspineseg中
python3 -m pip install -e totalspineseg[nnunetv2]

然后手工安装torch:

pip uninstall torch torchvision torchaudio
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124

三、使用方法

3.1 代理配置

  • 代理配置
    wsl种使用代理一定要打开局域网代理,关闭Windows的防火墙:
export http_proxy=http://172.30.160.1:7879
export https_proxy=http://172.30.160.1:7879

# 测试代理是否生效,返回200,301等状态码,则表示成功
curl -I https://github.com

3.2 模型推理

  • 帮助手册
totalspineseg --help
usage: totalspineseg [-h] [--iso] [--loc LOC] [--suffix SUFFIX [SUFFIX ...]]
                     [--loc-suffix LOC_SUFFIX] [--step1]
                     [--keep-only KEEP_ONLY [KEEP_ONLY ...]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若谷老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值