wolny/pytorch-3dunet

3D U-Net model for volumetric semantic segmentation written in pytorch

解决的问题

体积图像分析通常需要对 3D 中的细胞或细胞核等结构进行分割。pytorch-3dunet 提供了一个开箱即用的 3D U-Net 架构及其变体实现,研究人员可以训练模型来自动标记体积中的每个体素,或执行去噪等回归任务。它处理了数据加载、损失计算和评估等繁重工作。

工作原理

该库围绕 YAML 配置文件构建,用于指定模型、数据路径、损失函数和训练设置。训练通过 train3dunet --config <CONFIG> 启动,预测通过 predict3dunet --config <CONFIG> 启动。输入数据必须存储在包含 raw 和 label 数据集的 HDF5 文件中。该代码同时支持 3D 和 2D U-Net;对于 2D,数据保持单例 z 维度。它包含多种 U-Net 变体:标准版、残差版以及带有 Squeeze-and-Excitation 模块的残差版。它还提供了许多适用于分割和回归的损失函数(例如 Dice, cross-entropy, mean squared error)和评估指标(例如 IoU, Dice, PSNR)。当有多个 GPU 可用时,训练和预测会自动使用 DataParallel。

适用人群

需要分割结构(例如细胞边界、细胞核)或执行回归任务的体积生物或医学图像研究人员和工程师。对于任何想要应用经过验证的 3D U-Net 实现而无需从头构建的人来说,它也非常有用。

主要亮点

  • 实现了 3D U-Net, Residual U-Net 以及带有 Squeeze-and-Excitation 模块的 Residual U-Net。
  • 支持语义分割(二分类和多分类)和回归(例如去噪)。
  • 通过在 HDF5 中保持单例 z 维度,同时也支持 2D U-Net。
  • 为分割和回归提供了广泛的损失函数和评估指标。
  • 提供用于植物细胞边界和细胞核分割的预训练模型和示例配置。
  • 可通过 DataParallel 在多个 GPU 上自动运行。

相关

  • 项目
  • 项目
  • 项目
  • 项目