voxelmorph
VoxelMorph 是一个专为医学图像配准设计的开源深度学习库,旨在通过无监督学习技术,自动将不同时间、设备或个体获取的图像进行精准对齐。它主要解决了传统图像配准方法计算速度慢、依赖人工调参以及难以处理复杂形变的痛点,能够高效建模图像间的非线性变形关系。
该工具特别适合医学影像领域的研究人员、算法工程师及开发者使用。无论是需要处理脑部 MRI、CT 扫描数据,还是希望探索无需标注数据即可训练模型的学术场景,VoxelMorph 都能提供强大的支持。其核心亮点在于引入了“无监督学习”范式,模型仅需原始图像对即可训练,无需昂贵的人工标注真值;同时支持多种变形模型(如微分同胚),确保变换的物理合理性。此外,项目还提供了丰富的教程和预训练模型,涵盖从基础配准到跨模态(如 CT 转 MRI)合成数据训练等多种进阶应用,帮助用户快速上手并定制专属的图像分析流程。
使用场景
某三甲医院影像科研究员正在构建阿尔茨海默病早期筛查系统,需要将数百名患者的脑部 MRI 扫描图像与标准脑图谱进行高精度对齐,以量化海马体萎缩程度。
没有 voxelmorph 时
- 耗时极长:依赖传统迭代优化算法(如 ANTs),单对图像配准需数分钟至半小时,处理千级数据集需数周,严重拖慢科研进度。
- 参数调优困难:传统方法需人工反复调整正则化系数和步长,不同患者因脑部病变差异大,难以找到通用最优参数。
- 多模态支持弱:在尝试将患者 CT 影像与 MRI 图谱对齐时,因灰度分布差异巨大,传统基于强度的算法经常失效或产生错误形变。
- 标注同步复杂:若需同时变换医生手动勾画的病灶掩膜,需额外编写脚本确保插值逻辑与图像变换严格一致,极易出错。
使用 voxelmorph 后
- 秒级推理速度:利用预训练的深度学习模型,单次配准仅需毫秒级时间,千例数据可在几分钟内完成批量处理,效率提升万倍。
- 端到端自适应:voxelmorph 通过无监督学习自动捕捉解剖结构特征,无需人工干预参数即可适应不同病理形态的脑部图像。
- 原生多模态能力:借助 SynthMorph 策略,voxelmorph 能直接学习模态不变的解剖特征,轻松实现 CT 到 MRI 的高精度跨模态配准。
- 场变换同步应用:提供内置函数可将计算出的形变场直接应用于分割标签,保证图像与病灶掩膜的变换严格数学一致,消除人为误差。
voxelmorph 将原本需要数周的医学图像配准工作压缩至分钟级,并显著提升了跨模态与复杂病例的处理鲁棒性,让大规模临床数据分析成为可能。
运行环境要求
- Linux
- macOS
训练和推理脚本支持通过 --gpu 标志指定 GPU(基于 TensorFlow 后端),具体型号、显存大小及 CUDA 版本未在文中明确说明,但医学图像配准通常建议配备 NVIDIA GPU。
未说明

快速开始
VoxelMorph:基于学习的图像配准
VoxelMorph 是一个通用的库,用于构建基于学习的对齐/配准工具,以及更广泛地使用形变进行建模。
⚠️ 警告:VoxelMorph PyTorch 版本仍在积极开发中,接口可能会发生变化。
对于希望使用稳定 TensorFlow 版本的用户,可以使用
pip install voxelmorph,或者从dev-tensorflow分支拉取/克隆。
安装
要使用 VoxelMorph 库,您可以克隆此仓库并安装 setup.py 中列出的依赖项,或者直接通过 pip 进行安装。
pip install voxelmorph
教程
我们提供了多个 VoxelMorph 教程:
- 主要的 VoxelMorph 教程 解释了 VoxelMorph 和基于学习的配准;
- 一个 可变形 SynthMorph 演示,展示了如何在没有数据的情况下训练配准模型;
- 一个 仿射 SynthMorph 演示,介绍如何学习解剖结构感知且与采集无关的仿射配准;
- 一个 CT 到 MRI 的 SynthMorph 演示,演示了为多模态配准裁剪亨氏单位尺度的方法;
- 一个 SynthMorph 形状演示,逐步展示了运行已训练的 3D 形状模型的步骤;
- 一个 训练 VoxelMorph 的教程,基于 OASIS 数据,这些数据我们经过处理后免费发布用于 HyperMorph;
- 另一个简短的教程 将标注与图像一起变形;
- 还有一个关于使用 VoxelMorph 构建模板(图谱)的教程 链接;
- 可视化 变形场 作为变形后的网格;
- 反演非微分同胚的变形场。
使用说明
要使用 VoxelMorph 库,需克隆此仓库,并安装 setup.py 中列出的依赖项。
注意:目前尚不支持
pip install voxelmorph命令。请直接从 GitHub 安装:
pip install git+https://github.com/voxelmorph/voxelmorph.git
预训练模型
预训练模型列表请参见 此处。
训练
如果您想训练自己的模型,可能需要针对您的数据集和数据格式自定义 voxelmorph/generators.py 中的部分数据加载代码。不过,在提供训练数据集的文件名列表的前提下,许多示例脚本可以直接运行。训练数据可以是 NIfTI、MGZ 或 npz(numpy)格式,假设您提供的每个 npz 文件都包含 vol 参数,指向待配准的图像数据;以及可选的 seg 变量,指向对应的离散分割标签(用于半监督学习)。此外,还假定所有训练图像数据的形状一致,当然,如果需要,也可以通过自定义生成器来处理这一问题。
对于给定的图像列表文件 /images/list.txt 和输出目录 /models/output,以下脚本将使用无监督损失训练一个图像到图像的配准网络(默认采用 MICCAI 2018 中描述的架构),并将模型权重保存到由 --model-dir 标志指定的路径。
./scripts/tf/train.py --img-list /images/list.txt --model-dir /models/output --gpu 0
--img-prefix 和 --img-suffix 标志可用于为图像列表中指定的每个路径添加一致的前缀或后缀。若要启用图像到图谱的配准,可以提供一个图谱文件,例如 --atlas atlas.npz。如果您希望使用原始的稠密 CVPR 网络(非微分同胚),请使用 --int-steps 0 标志指定不进行流积分步骤。使用 --help 标志可以查看所有可用于微调网络架构和训练过程的命令行选项。
配准
如果您只是想配准两张图像,可以使用 register.py 脚本并指定所需的模型文件。例如,如果我们有一个模型 model.h5,用于将受试者(移动图像)配准到图谱(固定图像),则可以运行:
./scripts/tf/register.py --moving moving.nii.gz --fixed atlas.nii.gz --moved warped.nii.gz --model model.h5 --gpu 0
这会将配准后的图像保存为 warped.nii.gz。若同时保存预测的变形场,可使用 --save-warp 标志。该脚本的输入和输出均可使用 npz 或 nifty 文件。
测试(计算 Dice 分数)
要通过计算图谱分割与变形后测试扫描分割之间的 Dice 重叠率来评估模型质量,可运行:
./scripts/tf/test.py --model model.h5 --atlas atlas.npz --scans scan01.npz scan02.npz scan03.npz --labels labels.npz
与训练数据类似,图谱和测试的 npz 文件均包含 vol 和 seg 参数,而 labels.npz 文件则包含用于计算 Dice 分数的相应解剖学标签列表。
参数选择
CVPR 版本
对于 CC 损失函数,我们发现 reg 参数设为 1 时效果最佳。而对于 MSE 损失函数,0.01 是最佳选择。
MICCAI 版本
对于我们的数据,我们发现 image_sigma=0.01 和 prior_lambda=25 的设置效果最好。
在原始的 MICCAI 代码中,这些参数是在速度场缩放之后应用的。而在最新版本的代码中,这一点已被“修复”,默认参数也反映了这一变化。我们建议使用更新后的代码。然而,如果您希望运行最原始的 MICCAI 2018 模式,请使用 xy 索引,并启用 use_miccai_int 网络选项,同时采用 MICCAI 2018 的参数设置。
空间变换与积分
空间变换代码位于
voxelmorph.layers.SpatialTransformer,支持 N 维的仿射和稠密变换,包括线性插值和最近邻插值选项。需要注意的是,VoxelMorph 的早期开发使用的是xy索引,而我们现在强调使用ij索引。对于 MICCAI 2018 版本,我们使用
voxelmorph.layers.VecInt来积分速度场。默认情况下,我们采用缩放平方法进行积分,这种方法被证明是高效的。
VoxelMorph 相关论文
如果您使用了 VoxelMorph 或其部分代码,请引用以下文献(参见 bibtex):
HyperMorph,无需调参即可实现配准:
利用 HyperMorph 学习配准超参数的影响
Andrew Hoopes、Malte Hoffmann、Bruce Fischl、John Guttag、Adrian V. Dalca
MELBA:生物医学影像中的机器学习。2022年。arXiv 预印本 2203.16680HyperMorph:用于图像配准的超参数摊销学习。
Andrew Hoopes、Malte Hoffmann、Bruce Fischl、John Guttag、Adrian V. Dalca
IPMI:医学影像中的信息处理。2021年。arXiv 预印本 2101.01035SynthMorph,无需训练数据即可实现配准(!):
基于 SynthMorph 的解剖学感知且采集无关的联合配准。
Malte Hoffmann、Andrew Hoopes、Douglas N. Greve、Bruce Fischl、Adrian V. Dalca
影像神经科学。2024年。arXiv 预印本 2301.11329从虚构图像中学习的解剖特异性、采集无关的仿射配准。
Malte Hoffmann、Andrew Hoopes、Bruce Fischl、Adrian V. Dalca
SPIE 医疗影像:图像处理。2023年。SynthMorph:无需实际采集图像即可学习对比度不变的配准。
Malte Hoffmann、Benjamin Billot、Juan Eugenio Iglesias、Bruce Fischl、Adrian V. Dalca
IEEE TMI:医学影像汇刊。2022年。arXiv 预印本 2004.10282关于图谱生成模型:
利用卷积网络学习条件变形模板
Adrian V. Dalca、Marianne Rakic、John Guttag、Mert R. Sabuncu
NeurIPS 2019。arXiv 预印本 1908.02738关于微分同胚或概率模型:
面向图像和表面的概率性微分同胚配准的无监督学习
Adrian V. Dalca、Guha Balakrishnan、John Guttag、Mert R. Sabuncu
MedIA:医学图像分析。2019年。arXiv 预印本 1903.03545快速概率性微分同胚配准的无监督学习
Adrian V. Dalca、Guha Balakrishnan、John Guttag、Mert R. Sabuncu
MICCAI 2018。arXiv 预印本 1805.04605关于原始 CNN 模型、MSE、CC 或基于分割的损失函数:
VoxelMorph:用于可变形医学图像配准的学习框架
Guha Balakrishnan、Amy Zhao、Mert R. Sabuncu、John Guttag、Adrian V. Dalca
IEEE TMI:医学影像汇刊。2019年。
arXiv 预印本 1809.05231用于可变形医学图像配准的无监督学习模型
Guha Balakrishnan、Amy Zhao、Mert R. Sabuncu、John Guttag、Adrian V. Dalca
CVPR 2018。arXiv 预印本 1802.02604
注释
- 关键词:机器学习、卷积神经网络、对齐、映射、配准
- 论文中的数据:
在我们最初的几篇论文中,我们使用了公开可用的数据,但遗憾的是我们无法重新分发这些数据(受限于相关数据集的协议)。对于所使用的脑部图像,我们会进行一定程度的预处理,以消除变异来源,从而能够在公平的条件下比较不同算法。具体来说,我们会执行 FreeSurfer 的recon-all流程,直到去颅骨和仿射归一化到 Talairach 空间,并通过((48, 48), (31, 33), (3, 29))对图像进行裁剪。
我们鼓励用户自行下载并处理数据。请参阅 此处的医学影像数据集列表。请注意,您可能并不需要执行所有预处理步骤,事实上,VoxelMorph 已经被应用于其他研究中,使用不同的数据集。
可变形模板的创建
要尝试此方法,请使用 train_template.py 进行无条件模板的训练,以及 train_cond_template.py 进行条件模板的训练,这两者均采用与 VoxelMorph 相同的约定(请注意,这些文件的完善程度不如 VoxelMorph 库的其他部分)。
我们还在 data/generated_uncond_atlas.npz.npy 中提供了一个无条件图谱。
以 h5 格式保存的模型权重分别提供给 无条件图谱 和 条件图谱。
请在此处交互式地探索这些图谱,借助 tipiX!
SynthMorph
SynthMorph 是一种无需采集影像数据即可学习配准的策略,能够生成对 MRI 对比度无关的强大网络(eprint arXiv:2004.10282)。如需观看一段视频及演示,了解如何从噪声分布中生成随机标签图,并利用这些标签图训练网络,请访问 synthmorph.voxelmorph.net。
我们提供了 SynthMorph 的两种变体模型文件:一种是“shapes”变体(下载链接),该模型仅使用由随机形状合成的图像进行训练;另一种是“brains”变体(下载链接),它使用由脑部标签图合成的图像进行训练。在训练“brains”变体时,我们优化了一个衡量特定脑部标签体积重叠程度的损失项(相关标签列表见 这里)。无论是使用哪种模型进行配准,都请使用 register.py 脚本,并加载相应的模型权重。
为了实现准确的配准,输入图像需要进行 min-max 归一化,使体素强度范围在 0 到 1 之间,并且需要在一张参考图像的仿射空间内进行重采样(参考图像可从 这里 下载)。仿射配准可以使用多种工具完成,我们选择 FreeSurfer。首先,我们使用 SAMSEG 对图像进行去颅骨处理,仅保留脑部标签;其次,运行 mri_robust_register 命令:
mri_robust_register --mov in.nii.gz --dst out.nii.gz --lta transform.lta --satit --iscale
mri_robust_register --mov in.nii.gz --dst out.nii.gz --lta transform.lta --satit --iscale --ixform transform.lta --affine
其中,若需跨 MRI 对比度进行配准,可将 --satit --iscale 替换为 --cost NMI。
数据
尽管我们无法公开 VoxelMorph 论文中使用的大部分数据,因为这些数据的再分发受到限制,但在开发 HyperMorph 期间,我们对 OASIS1 数据集进行了彻底的处理并重新发布(详见 此处)。目前,我们还提供了一个简短的 VoxelMorph 教程,指导用户如何使用 neurite-oasis 数据训练 VoxelMorph 模型。
联系方式
如您在代码使用过程中遇到任何问题或疑问,请在 GitHub 仓库的 Issues 页面 提交 Issue,或在 讨论区 中发起关于通用配准及 VoxelMorph 相关话题的讨论。
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器