
MONAI 1.4 版本新特性深度解读MAISI 生成模型、VISTA 基础模型、TensorRT 惰性导出与几何数据支持【免费下载链接】MONAIAI Toolkit for Healthcare Imaging项目地址: https://gitcode.com/GitHub_Trending/mo/MONAIMONAI 1.4 是医疗影像 AI 工具链的一次重要能力跃升它将 MONAI Generative 生成式 AI 组件正式并入核心代码库发布 MAISI 三维潜在扩散模型、VISTA-3D 交互式分割基础模型与 VISTA-2D 细胞分割流水线同时引入trt_compile惰性 TensorRT 导出和面向点、框的几何数据变换支持。阅读本文后你将掌握 1.4 版本六大新特性的能力边界、核心组件在仓库中的实际位置与调用关系以及如何在自己的 bundle 与训练/推理脚本中启用这些新 API。MAISI面向医学影像的 3D 潜在扩散模型MAISIMedical AI for Synthetic Imaging是 MONAI 1.4 引入的最先进三维潜在扩散模型3D Latent Diffusion Model核心用途是生成带有或不带解剖标注的高质量合成 CT 影像。其典型应用场景包括数据增强在隐私受限或罕见疾病导致的数据不足场景下生成多样化、逼真的训练数据以扩充数据集下游任务提升通过生成多样化训练数据显著提升其他医学影像 AI 模型的性能。从源码结构看MAISI 在仓库中对应monai/apps/generation/maisi/目录由三个核心组件构成基础 VAE变分自编码器模型用于潜在特征压缩同时支持 CT 与 MRI且体积尺寸volume size与体素尺寸voxel size灵活可变。对应实现见 autoencoderkl_maisi.py其中定义了MaisiEncoder等编码器模块基础扩散模型可生成最大 512 × 512 × 768 的大体积 CT同样支持灵活的体积与体素尺寸。对应实现见 diffusion_model_unet_maisi.pyControlNet 条件控制网络用于生成图像/掩码对image/mask pairs可控制器官/肿瘤大小从而改善下游任务。对应实现见 controlnet_maisi.py其中ControlNetMaisi继承自核心模块 controlnet.py 中的ControlNet支持spatial_dims、in_channels、num_res_blocks、attention_levels、use_flash_attention等参数并额外提供conditioning_embedding_in_channels、conditioning_embedding_num_channels等条件嵌入通道配置。上述网络组件在推理阶段由 1.4 版本迁移进核心库的扩散推断器驱动DiffusionInferer 与 LatentDiffusionInferer后者继承前者在潜在空间执行去噪采样。仓库同时在 tests/apps/maisi/networks/ 下提供了test_autoencoderkl_maisi.py、test_controlnet_maisi.py、test_diffusion_model_unet_maisi.py等单元测试可用于验证各组件前向与反向传播的正确性。VISTA-3D面向 3D 医学影像的交互式分割基础模型VISTA-3D 是一个专门面向 3D 医学影像的交互式基础模型Interactive Foundation Model擅长跨解剖结构与成像模态提供准确、自适应的分割分析。它采用多头multi-head架构能够适应不同条件与解剖区域从而引导用户的标注工作流。VISTA-3D 支持三种核心工作流Segment everything全部分割支持全身探索对理解累及多器官的复杂疾病以及制定整体治疗方案至关重要Segment using class按类别分割基于特定类别提供细致的分区域视图适用于靶向疾病分析或器官映射例如关键器官中的肿瘤识别Segment point prompts点提示分割通过用户引导的点击式选择提升分割精度这种交互方式能加速高质量真值ground-truth数据的创建是医学影像分析中的关键环节。在仓库中VISTA-3D 的实现位于 monai/networks/nets/vista3d.py其中定义了VISTA3D网络类并从 monai/networks/nets/init.py 导出了VISTA3D及vista3d132工厂函数。围绕它的推理与训练基础设施集中在monai/apps/vista3d/目录inferer.py 提供point_based_window_inferer支持在滑动窗口推断中接收point_coords点坐标与point_labels点标签并可传入class_vector、prompt_class、prev_mask前一次掩码用于迭代修正以及margin、center_only等控制参数sampler.py 提供sample_prompt_pairs提示点采样函数内部定义了SPECIAL_INDEX特殊标签索引与MERGE_LIST标签合并规则例如将肝脏肿瘤与血管并入肝脏、胰腺肿瘤并入胰腺用于自动生成训练所需的点提示对。相应的测试覆盖在 tests/networks/nets/test_vista3d.py 与 tests/apps/vista3d/ 下包括点式窗口推断器、提示采样器与配套变换的验证。若要微调 VISTA-3D可参考官方教程脾脏数据集微调示例并配合上述组件在自定义数据上完成提示点标注与迭代式分割。VISTA-2D细胞分割训练与推理流水线VISTA-2D 是一套完整的细胞分割训练与推理流水线cell segmentation pipeline适用于成像应用中的细胞实例分割。其关键特性包括基于 Transformer 的稳健深度学习算法定位为基础模型foundational model相较专用模型specialist model具有更强的泛化能力支持广泛的数据集与文件格式能够处理多种成像模态支持多 GPU 与多节点训练。在仓库中细胞分割相关的数据加载与后处理基础设施位于 monai/apps/pathology/病理学相关数据集与工具配套的完整测试集见 tests/apps/pathology/可用于验证数据读取、块patch采样与推理逻辑。VISTA-2D 的端到端训练示例在 Cellpose 数据集上使用 MONAI 框架训练细胞分割模型与开箱即用的 bundle 配置以模型仓库形式分发trt_inference.json等部署配置可配合下文介绍的trt_compile惰性导出直接使用。MONAI Generative 正式并入 MONAI 核心代码库1.4 版本的一项重大架构调整是原独立维护于 MONAI GenerativeModels 仓库的关键生成式 AI 模块全部迁移进核心代码库从而保证组件的统一维护与发布节奏。本版本中以下内容已完成迁移工具函数utilities网络结构networks扩散调度器diffusion schedulers推断器inferers引擎engines。迁移后的网络在 monai/networks/nets/init.py 中统一导出包括AutoencoderKL、ControlNet、DiffusionModelUNet、SPADEAutoencoderKL、SPADEDiffusionModelUNet等推断器则在 monai/inferers/inferer.py 中提供DiffusionInferer、LatentDiffusionInferer、SaliencyInfererL697等类。迁移过程中特别保证了权重兼容性使用旧版 GenerativeModels 训练保存的权重可以直接加载到已并入核心库的对应模型中无需额外转换脚本。仓库为这些模块提供了完善的测试保障例如 tests/inferers/test_diffusion_inferer.py、tests/inferers/test_latent_diffusion_inferer.py、tests/inferers/test_controlnet_inferers.py 以及 tests/engines/test_prepare_batch_diffusion.py可以据此确认扩散训练中数据批次的组织方式与推断采样行为。惰性 TensorRT 导出trt_compileAPI1.4 版本通过新增trt_compileAPI 扩展了 MONAI bundle 的 TensorRT 优化选项与既有trt_export形成互补对比维度trt_export既有trt_compile1.4 新增引擎构建时机需先运行独立的导出脚本预生成 TensorRT 引擎bundle 首次运行时构建并保存 TensorRT 引擎惰性依赖支持相对完整提供有限的依赖支持导出粒度整体模型支持部分导出仅优化模型中的指定子模块使用方式单独导出流程直接在 bundle 运行配置中启用trt_compile的部分导出能力显著提升了可用性——当模型中只有某个子模块是性能瓶颈时无需对整个模型做 TRT 转换。其核心实现在 monai/networks/trt_compiler.pydef trt_compile( model: torch.nn.Module, base_path: str, args: dict[str, Any] | None None, submodule: str | list[str] | None None, logger: Any | None None, ) - torch.nn.Module:参数说明如下model被注入TrtCompiler的模块若指定submodule仅对子模块做注入base_pathTRT 引擎plan保存路径实际保存为f{base_path}[.{submodule}].plan。要求dirname(base_path)已存在若base_path指向一个已存在的文件例如关联的 checkpoint该文件会被视为依赖其 mtime 会写入args[timestamp]参与缓存失效判断args传递给TrtCompiler的可选参数字典。默认值为{method: onnx, precision: fp16, build_args: {builder_optimization_level: 5, precision_constraints: obey}}即默认通过 ONNX 路径构建、采用 FP16 精度、优化级别 5 并强制遵循精度约束method仅支持固定枚举值precision同理源码中均带取值校验submodule需要注入的子模块层级 ID支持列表例如[image_decoder.decoder]为None时对整个模型打补丁logger诊断日志器。值得注意的是trt_compile在 TensorRT 与 polygraphy 包不可用或没有 CUDA 时不会报错而只是记录 warning 并原样返回模型这让配置了trt_compile的 bundle 在纯 CPU 或未装 TRT 的环境下仍可正常退化为原生 PyTorch 执行。若要在 bundle 工作流中按事件触发可使用 trt_handler.py 中的TRTHandler其内部即调用trt_compile(self.model, self.base_path, argsself.args, submoduleself.submodule, ...)将args、submodule作为可配置项暴露给用户。模型动物园中的新 bundle如 VISTA-3D、VISTA-2D已直接附带使用trt_compile的trt_inference.json配置文件实现首次运行即自动构建引擎的部署体验。相关测试见 tests/handlers/test_trt_compile.py。几何数据支持点变换与框-点互转MONAI 1.4 引入了几何数据变换geometric data transformations支持作为起点新增了ApplyTransformToPoints变换用于在点points上执行矩阵运算从而灵活、高效地处理几何变换。ApplyTransformToPoints定义于 monai/transforms/utility/array.py属于InvertibleTransform与Transform的联合实现负责在图像坐标系与世界坐标系之间转换点。其输入坐标约定为(C, N, 2 或 3)形状——C为通道数、N为点数——输出与输入同形状。核心参数dtype输出张量的期望数据类型affine作用于点的 3×3 或 4×4 仿射矩阵通常取自图像。2D 点可仅提供 3×3 矩阵以避免多余 Z 维3D 变换需要 4×4 矩阵。矩阵始终被转换为 float64 参与计算处理大量点时开销较大。为None时会尝试使用输入数据自带的 affine 矩阵invert_affine是否对仿射矩阵求逆后再应用默认True。典型场景中仿射矩阵来自图像、表示其在世界空间的位置而点本身在世界坐标中——True表示把世界坐标点变换到图像坐标系False则相反affine_lps_to_ras默认False。当点数据处于 RAS 坐标系、或使用了启用affine_lps_to_rasTrue的ITKReader时设为True以保证点在 LPS左-后-上与 RAS右-前-上坐标系间正确应用仿射变换。该变换的典型用途包括点在世界空间与图像空间之间的双向转换、图像空间与世界空间之间的逆变换自动处理以及当点自带仿射时自动计算并应用所需的增量delta仿射变换。其字典版本ApplyTransformToPointsd位于 monai/transforms/utility/dictionary.py。与此同时框架还支持框boxes与点points之间的转换为检测流水线提供无缝互操作。相关底层工具集中在 monai/data/box_utils.pyBoxMode枚举及各类 box 模式定义了boxes_to_corners/corners_to_boxes等转换方法配合convert_box_mode、convert_box_to_standard_mode等函数可将检测框统一转换为标准角点表示进而与点坐标互操作。这些更新已整合进现有流水线例如检测教程与 3D 配准工作流如 NLST 配对肺部 CT 的 learn2reg 示例均基于上述最新 API 实现点/框的几何处理。版本特性总览与上手路径MONAI 1.4 的六大新特性可归纳为三个方向生成式医学影像MAISI Generative 模块入核心、交互式分割基础模型VISTA-3D / VISTA-2D、推理与数据层工程能力trt_compile惰性导出 几何数据支持。上手路径建议生成式建模阅读 monai/apps/generation/maisi/ 下的网络实现配合 DiffusionInferer 与 LatentDiffusionInferer 理解训练/采样流程交互式分割从 vista3d.py 的VISTA3D/vista3d132出发结合 point_based_window_inferer 与 sample_prompt_pairs 搭建标注-微调-推断链路部署加速为 bundle 编写基于 trt_compile 的trt_inference.json实现首次运行即建引擎的部分 TRT 导出几何数据在检测/配准流水线中组合 ApplyTransformToPoints 与 box_utils.py 的框-点转换工具保持坐标系一致。以上所有 API 均已包含在 MONAI 1.4 及后续版本中可通过现有安装方式如pip install monai或源码安装直接使用。【免费下载链接】MONAIAI Toolkit for Healthcare Imaging项目地址: https://gitcode.com/GitHub_Trending/mo/MONAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考