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())即可获得完整的分割工作流,同时保留对每个组件的细粒度控制。框架覆盖数据加载、训练、推理和评估全流程——开箱即用且提供经过验证的默认配置,同时完全可定制。
四个设计原则:
- PyTorch原生:所有组件都是标准的
nn.Module子类,可与现有PyTorch工具组合使用。 - 按需引入:没有模块假设其他框架组件的存在,可以独立采用单个组件。
- 组合优于继承:LayerT系统支持运行时配置(替换卷积、归一化或激活层),无需创建子类。
- 最小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可视化。