DeepInverse深度成像物理全景 tour:如何模拟MRI、CT、PET与衍射成像
【免费下载链接】deepinvDeepInverse: a PyTorch library for solving imaging inverse problems using deep learning项目地址: https://gitcode.com/gh_mirrors/de/deepinv
DeepInverse(DeepInverse)是一个基于 PyTorch 的开源库,专为求解深度成像逆问题而设计。它的核心理念是:任何成像过程都可以抽象成"信号 → 物理前向模型 → 含噪测量 → 重建"的链条。在本文的 tour 中,你将快速上手 DeepInverse 内置的前向算子,一行代码即可模拟 MRI(磁共振)、CT(计算机断层扫描)、PET(正电子发射断层)和衍射成像(相位恢复)四大经典成像系统,并了解如何用深度学习把它们重建回来。
一、为什么需要"物理前向模型"?
深度学习重建的关键前提,是先准确地模拟成像过程。DeepInverse 把所有成像系统统一封装在 deepinv/physics/ 模块中,每个成像设备对应一个Physics类:
| 成像系统 | 对应类 | 物理含义 |
|---|---|---|
| 磁共振成像 MRI | MRI/MultiCoilMRI/DynamicMRI | k 空间欠采样(傅里叶子采样) |
| CT 断层扫描 | Tomography | Radon 变换(稀疏角度投影) |
| PET 分子影像 | PET | 投影 + 泊松噪声 + 衰减建模 |
| 衍射成像 | PhaseRetrieval/Ptychography | 只测强度、丢失相位 |
统一的接口意味着:换成像设备只需要换一个类,而训练器、损失函数、优化器全部复用。
二、MRI 模拟:欠采样的 k 空间魔法 🧲
磁共振采集的不是图像,而是**傅里叶域(k 空间)**的离散采样。DeepInverse 的MRI算子定义在 deepinv/physics/mri.py 中,其前向模型就是y = M·F·x(F 为傅里叶变换,M 为掩膜)。
上手三步走:
- 生成采样掩膜:用
GaussianMaskGenerator生成高斯欠采样掩膜(支持 4x 加速),无需手写任何傅里叶代码 - 定义物理模型:
dinv.physics.MRI(mask=mask, noise_model=GaussianNoise(...)) - 前向测量:对复数输入(实部/虚部各占一个通道)调用
physics(x)即得含噪 k 空间数据
💡亮点功能:
- 内置
GaussianMaskGenerator、RandomMaskGenerator、EquispacedMaskGenerator三种笛卡尔采样策略(见 deepinv/physics/generator/mri.py) - 支持
DynamicMRI(k-t 动态成像)与MultiCoilMRI(多线圈并行采集) - 与 FastMRI 数据集无缝对接,配套完整教程在 examples/physics/demo_mri_tour.py,涵盖单线圈、多线圈、动态与 3D MRI 全流程
三、CT 模拟:稀疏角度的 Radon 变换 🩻
CT 的核心是Radon 变换——把图像积分到一系列平行射线上,得到"正弦图(sinogram)"。DeepInverse 的 deepinv/physics/tomography.py 提供了Tomography类:
- 稀疏角度模拟:
angles=40即可生成 40 个投影角度(远少于临床的数百个),天然模拟欠采样 CT - 扇束几何支持:
fan_beam=True可模拟锥形/扇束束几何(真实 CT 设备常用) - 一键 FBP 重建:
physics.fbp(y)直接调用滤波反投影作为初始重建 - 3D 进阶:
TomographyWithAstra支持 2D/3D 任意几何,适合研究稀疏角度 CT
在 examples/physics/demo_physics_tour.py 中,一个Tomography实例配合PoissonGaussianNoise混合噪声,就能复现真实 CT 的稀疏角度测量——包括漂亮的条纹伪影。
四、PET 模拟:泊松噪声 + 衰减校正 ✨
PET 是分子影像的核心,其前向模型比 CT 更复杂:
$$ y \sim \gamma , \mathcal{P}\left(\frac{c \circ H(g * x) + b}{\gamma}\right) $$
DeepInverse 的 deepinv/physics/pet.py 完整实现了这条公式:
- 物理模糊:高斯核
g模拟探测器点扩散(FWHM 可配) - 本底建模:参数
background加入本底计数 - 衰减校正:传入 CT 扫描得到的 μ 图,自动计算
c = exp(-Hμ) - 泊松统计:
normalize_counts=False时输出真实整数计数
该算子基于parallelproj库,同时支持 2D 图像与 3D 体积。官方示例 examples/physics/demo_pet2d.py 与 examples/physics/demo_pet3d.py 演示了从模拟测量到 MLEM/优化重建的完整流程,非常适合 PET 深度学习重建研究入门。
五、衍射成像:相位恢复与层析成像 🔬
衍射成像的最大挑战是相机只能记录光强、丢失相位,即y = |Bx|²。DeepInverse 在 deepinv/physics/phase_retrieval.py 中提供了:
RandomPhaseRetrieval:随机矩阵相位恢复,附带谱方法初始化(A_dagger自动给出高质量初值)Ptychography:分层(重叠照明)衍射层析成像线性算子- VJP 支持:内置向量-雅可比积
A_vjp,梯度下降重建天然高效
配合PGD优化器 + PnP 先验,examples/physics/demo_phase_retrieval.py 展示了四种重建策略的对比;examples/physics/demo_ptychography.py 则演示了纳米级显微的照明重叠扫描。下面的显微去噪对比图直观展示了"测量含噪 → 重建清晰"的成像链路:
六、组合物理与噪声:构建真实场景
真实成像从来不是单一设备。DeepInverse 提供强大的组合能力(deepinv/physics/forward.py):
ComposedPhysics:串联多个物理模型(如"模糊 + 下采样 + 噪声")StackedPhysics:堆叠测量(如"高斯灰度 + 低分辨率 RGB"的泛锐化问题)- 14 种噪声模型:泊松、高斯、泊松-高斯、里奇、椒盐……在 deepinv/physics/noise.py 中任选
只需一行dinv.physics.compose(physics1, physics2)即可得到复合前向算子,自动维护精确的伴随算子与伪逆。
七、快速上手:从 Tour 到训练 🚀
推荐学习路径:
- 跑通 examples/physics/demo_physics_tour.py——20 多种前向算子的 5 分钟巡礼
- 深入目标模态:MRI 看
demo_mri_tour.py,PET 看demo_pet2d.py - 搭配 deepinv/optim/ 中的优化器(PnP、LISTA、ADMM)或 deepinv/unfolded/ 中的展开网络完成重建
社区持续活跃,Hackathon 2025 汇聚了全球研究者共同推进逆问题深度学习的边界:
小结:DeepInverse 把 MRI、CT、PET、衍射成像等复杂物理过程封装成即插即用的 PyTorch 算子——统一的接口、精确的伴随、丰富的噪声模型,让你可以把全部精力放在重建算法与深度学习模型本身。从一行physics(x)开始,开启你的成像逆问题之旅吧!
【免费下载链接】deepinvDeepInverse: a PyTorch library for solving imaging inverse problems using deep learning项目地址: https://gitcode.com/gh_mirrors/de/deepinv
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考