MIPCandy

模块化PyTorch医学图像处理框架

角色: 共同第一作者 & 研究实习生
状态: 进行中
技术栈:
PythonPyTorchMedical AIComputer Vision

MIPCandy:模块化PyTorch医学图像处理框架

MIPCandy是Project Neura的模块化PyTorch医学图像处理框架,我在UTMIST(多伦多大学机器智能学生团队)研究实习期间与Tianhao Fu共同一作完成。论文已发表在arXiv (2602.21033)

问题

现有的医学图像处理工具处于两个极端:低层组件库(如MONAI和TorchIO)需要大量集成工作,而刚性的单体流水线(如nnU-Net)难以修改。研究人员要么花数周时间搭建基础设施,要么在定制化时举步维艰。

MIPCandy做了什么

MIPCandy弥合了这一差距。研究人员只需实现一个方法(build_network())即可获得完整的分割工作流,同时保留对每个组件的细粒度控制。框架覆盖数据加载、训练、推理和评估全流程——开箱即用且提供经过验证的默认配置,同时完全可定制。

四个设计原则:

  1. PyTorch原生:所有组件都是标准的nn.Module子类,可与现有PyTorch工具组合使用。
  2. 按需引入:没有模块假设其他框架组件的存在,可以独立采用单个组件。
  3. 组合优于继承:LayerT系统支持运行时配置(替换卷积、归一化或激活层),无需创建子类。
  4. 最小API面:常见场景无需额外配置。

核心贡献

  • LayerT配置系统:一种延迟模块描述符,存储模块类型及其构造参数,在运行时实例化。无需子类化即可在整个架构中替换卷积、归一化和激活层。
  • 数据集检查inspect()函数自动计算每个样本的前景边界框、类别分布和强度统计信息,导出用于补丁训练的最优ROI形状。
  • 验证分数预测:商回归拟合有理函数到验证轨迹,估计最大可达分数、最优停止轮次和预计完成时间。
  • Bundle生态系统:自包含的包(模型+训练器+预测器),遵循一致的模式。内置Bundle包括U-Net、UNet++、V-Net、CMUNeXt、MedNeXt和UNETR。
  • 训练透明性:自动生成指标曲线图、最差预测预览(2D叠加和3D PyVista网格)、以及逐样本验证表格(高亮表现不佳的样本)。
  • 多前端追踪:可插拔的实验追踪,支持Weights & Biases、Notion和MLflow,支持同时使用多个前端。
  • 训练基础设施:深度监督、指数移动平均、完整状态恢复、k折交叉验证和早停——每个功能只需一个标志即可启用。

我的角色

作为共同第一作者和Project Neura的研究实习生,我参与框架的核心架构设计、Bundle开发以及论文中的研究工作。

案例研究

论文通过两个案例研究展示了MIPCandy:

  • 2D皮肤病变分割(PH2数据集):使用U-Net Bundle的8行代码实现,生成模型检查点、逐轮指标、训练曲线和最差预测预览。
  • 3D体积分割(BraTS 2021):通过inspect()自动计算ROI,使用RandomROIDataset进行前景过采样、深度监督和多类分割,并支持3D可视化。