简体中文 | English
3D 医疗数据标注是训练 3D 图像分割模型的重要一环,但 3D 医疗数据标注依赖专业人士进行费时费力的手工标注。 标注效率的低下导致了大规模标注数据的缺乏,从而严重阻碍了医疗AI的发展。为了解决这个问题,我们推出了基于交互式分割的3D医疗图像智能标注平台 EISeg-Med3D。
EISeg-Med3D 是一个用于智能医学图像分割的 3D Slicer 插件,通过使用训练的交互式分割 AI 模型来进行交互式医学图像标注。它安装简单、使用方便,结合高精度的预测模型,可以获取比手工标注数十倍的效率提升。目前我们的医疗标注提供了在指定的 MRI 椎骨数据上的使用体验,如果有其他数据上的3D标注需求,可以联系我们。
-
高效:每个类别只需数次点击直接生成3d分割结果,从此告别费时费力的手工标注。
-
准确:点击 3 点单物体 mIOU 即可达到 0.85,配合搭载机器学习算法和手动标注的标注编辑器,精度 100% 不是梦。
-
便捷:三步轻松安装;标注结果、进度自动保存;标注结果透明度调整提升标注准确度;用户友好的界面交互,让你标注省心不麻烦。
- [2022-09] EISeg-Med3D 正式发布,包含在指定椎骨数据上的高精度模型的用户友好、高效、智能的3D医疗图像标注平台。
EISeg-Med3D模型结构如下图所示,我们创新性地将3D模型引入医疗交互式分割中,并修改 RITM 的采点模块和生成点击特征模块和3D数据兼容,从而直接进行3D医学图像的标注,从模型层面在2D标注的基础上实现标注的更精准,更高效。
整体模型包含点击生成模块、点击特征生成模块、点击特征和输入图像融合和分割模个部分:
- 点击生成模块 3D click sampler:直接基于 3D 标签数据进行正负点采样,其中正点为3D目标体中心位置随机点,负点为3D目标体边缘随机采点。
- 点击特征生成模块 3D feature extractor:在生成点击之后,为了扩大点击的影响范围,通过disk的形式在原有点击的基础上生成半径R的圆球,扩大特征覆盖范围。
- 点击特征和输入图像融合:将输入图像和生产的点击特征经过卷积块进行重新映射和进行相加融合,从而网络同时获取图像和点击信息,并对特定区域进行3D分割获得标注结果。
- 分割模型:分割模型沿用 3D 分割模型Vnet,在图像和点击信息综合下生成如图所示的预测结果,并在Dice损失和CE损失的约束下逼近真实结果。从而在预测阶段,输入图像和指定点击后基于点击目标生成期望的标注结果。
EISeg-Med3D模型
EISeg-Med3D 的使用整体流程如下图所示,我们将按照环境安装、模型下载和使用步骤三部分说明,其中使用步骤也可以参见简介中的视频。
整体使用流程
智能标注模块流程
-
下载并安装3D slicer软件:3D slicer 官网
-
下载 EISeg-Med3D 代码:
git clone https://github.com/PaddlePaddle/PaddleSeg.git
- 安装Paddle,先在slicer的python interpreter中找到解释器名称,随后在cmd中参考快速安装文档安装PaddlePaddle。
import sys
import os
sys.executable # "D:/xxxx/Slicer 5.0.3/bin/PythonSlicer.exe"
进入Windows 下CMD,比如Windows、CUDA 11.1,安装GPU版本,执行如下命令:
"D:/xxxx/Slicer 5.0.3/bin/PythonSlicer.exe" -m pip install paddlepaddle-gpu==2.3.1.post111 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
- 安装PaddlePaddle之后出现FileNotFoundError:
- ERROR: No .egg-info directory found in xxx:
"D:/xxxx/Slicer 5.0.3/bin/PythonSlicer.exe" -m pip uninstall setuptools
"D:/xxxx/Slicer 5.0.3/bin/PythonSlicer.exe" -m pip install paddleseg simpleitk
"D:/xxxx/Slicer 5.0.3/bin/PythonSlicer.exe" -m pip install setuptools
- 点击确认load module后,提示 One or more requested modules and/or depandencoes may not have been loaded。
- Fail to open extention: xxx/PaddleSeg/EISeg/med3d/EISefMed3D
目前我们提供在下列模型和数据上的试用体验,可以下载表格中模型和数据到指定目录,并将模型和数据进行解压缩操作用于后续加载:
数据 | 模型 | 下载链接 |
---|---|---|
MRI椎骨数据 | 交互式 Vnet | [模型](链接: https://pan.baidu.com/s/1vu0ZIbGumlFvRlMGbMvWAg )-pw: dt8q | 椎骨数据 |
- 找到 Extension wizard 插件:
- 点击 Select Extension,并选择到 PaddleSeg/EISeg/med3d 目录,并点击加载对应模块,等待 Slicer 进行加载。
- 在
Model Settings
中加载保存在本地的模型,点击Model Path
路径选择框后面的...
的按钮,选择后缀名为.pdodel
的本地文件,点击Param Path
路径选择框后面的...
的按钮,选择后缀名为.pdiparams
的本地文件。 - 点击
Load Static Model
按钮,此时会有弹窗提示Sucessfully loaded model to gpu!
,表示模型已经加载进来。
- 点击
Data Folder
后面的按钮,选择待标注的医学图像文件所在路径后,会自动把该路径下的所有图像全部加载,此时可以在Progress
中查看加载进来的所有图像以及当前已标注状态。
- 在
Segment Editor
中点击Add/Remove
按钮便可自行添加标签或是删除标签,添加标签时会有默认命名,也可以双击标签自行给标签命名。 - 添加标签完毕后即可选中某个标签,点击
Positive Point
或是Negative Point
后的按钮即可开始交互式标注。 - 点击
Finish Segment
按钮,即可结束当前所选标签下的标注,此时可点击左侧的橡皮擦等工具对标注结果进行精修。或者可重复以上步骤进行下一个对象的标注,否则可点击Finish Scan
按钮,便会切换下一张图像。
- 关于精细修改标注工具的使用,详细可见Slicer Segment editor
- 点击
Prev Scan
按钮可以切换上一张图像到当前视图框内。 - 点击
Next Scan
按钮可以切换下一张图像到当前视图框内。
- 在
Progress
中的Annotation Progress
后面的进度条中可以查看当前加载进来的图像标注进程。 - 双击
Annotation Progress
下方表格中某一张图像文件名,便可以自动跳转到所选图像。
未来,我们想在这几个方面来继续发展EISeg-Med3D,欢迎加入我们的开发者小组。
- 在更大的椎骨数据集上进行训练,获取泛化性能更好的标注模型。
- 开发在多个器官上训练的模型,从而获取能泛化到多器官的标注模型。
EISeg-Med3D 的 License 为 Apache 2.0 license.
感谢 Idea icons created by Vectors Market - Flaticon 给我们提供了好看的图标