CoMoGaussian: Continuous Motion-Aware Gaussian Splatting from Motion-Blurred Images¶
会议: ICCV 2025
arXiv: 2503.05332
代码: https://github.com/Jho-Yonsei/CoMoGaussian (项目页面: https://Jho-Yonsei.github.io/CoMoGaussian/)
领域: 3D视觉
关键词: 3D Gaussian Splatting, motion blur, neural ODE, camera trajectory, deblurring
一句话总结¶
用Neural ODE建模曝光时间内的连续相机运动轨迹,结合刚体变换和可学习的连续运动修正(CMR)变换,从运动模糊图像重建清晰3D高斯场景,在所有benchmark上大幅超越SOTA。
背景与动机¶
3DGS依赖清晰图像输入,但现实中小光圈→长曝光→相机运动模糊几乎不可避免。现有去模糊方法(Deblur-NeRF、DP-NeRF、BAD-Gaussians等)虽然尝试估计相机运动轨迹来模拟模糊过程,但都没有真正保证运动的连续性——要么用简单的线性插值/样条函数,要么直接预测离散位姿。这导致预测的运动可能出现突变或分段不连续,偏离真实的物理相机轨迹,尤其在复杂非线性运动下效果不佳。
核心问题¶
如何在3DGS框架下准确建模曝光时间内连续的相机运动轨迹,使得从运动模糊图像也能重建出高质量清晰场景?难点在于:(1)运动模糊本质上是连续时间积分,离散采样会引入误差;(2)刚体变换虽保几何一致性但在有限采样数下不够精确。
方法详解¶
整体框架¶
输入运动模糊图像集 + COLMAP位姿。对每张图像,以其校准位姿为中心点,用Neural ODE在曝光时间区间内生成N=9个连续相机位姿。从每个位姿通过Mip-Splatting渲染一张清晰图,再用像素级加权求和合成模糊图像,与输入模糊图像做监督。推理时直接从校准位姿渲染即得清晰图。
关键设计¶
- 连续刚体运动建模: 将图像索引嵌入为特征→编码器得到初始潜在状态→Neural ODE(4阶Runge-Kutta求解器)在潜在空间生成连续的螺旋轴(screw axis)参数,再通过矩阵指数映射到SE(3)变换矩阵。关键改进:将旋转轴ω̂和旋转角θ解耦独立建模(DP-NeRF中二者是耦合的),旋转轴归一化到单位向量。
- 连续运动修正(CMR)变换: 由于数值积分是离散的(只有N个采样),刚体变换不足以完美近似连续运动。CMR通过另一个Neural ODE生成额外的自由度更高的变换矩阵(非严格SO(3)),初始化接近单位矩阵,加正交性正则化确保接近有效旋转。本质上是对刚体运动的"残差修正"。
- 像素级权重和掩码: 用浅层CNN为N张渲染图生成像素级softmax权重来合成模糊图。另有标量掩码混合清晰图和模糊图——对于本身不模糊的像素区域直接用清晰渲染。
- Neural ODE的优势: 前向和反向传播共享同一个神经导数函数→保证整个轨迹在同一函数空间内→自然的时间连续性。对比MLP(无序列性)和GRU(前后向需要独立单元导致不连续),Neural ODE生成的轨迹视觉上最平滑。
损失函数 / 训练策略¶
- 总损失:\(\mathcal{L} = (1-\lambda_c)\mathcal{L}_1 + \lambda_c\mathcal{L}_{\text{D-SSIM}} + \lambda_o\mathcal{L}_o + \lambda_\mathcal{M}\mathcal{L}_\mathcal{M}\)
- \(\lambda_c=0.3\), \(\lambda_o=10^{-4}\), \(\lambda_\mathcal{M}=10^{-3}\)
- 分阶段训练:前1k迭代只训练高斯原语;1k-3k加入运动变换但不加像素权重/掩码;3k后全部组件一起训练
- 总共40k迭代,单卡RTX 4090
实验关键数据¶
| 数据集 | 指标 | CoMoGaussian | Deblurring 3DGS | BAGS | 前SOTA提升 |
|---|---|---|---|---|---|
| Deblur-NeRF Synthetic | PSNR/SSIM/LPIPS | 31.02/0.917/0.049 | 28.24/0.858/0.105 | 27.34/0.835/0.112 | +2.78 PSNR |
| Deblur-NeRF Real | PSNR/SSIM/LPIPS | 27.85/0.843/0.082 | 26.61/0.822/0.110 | 26.70/0.824/0.096 | +1.15 PSNR |
| ExbluRF Real | PSNR/SSIM/LPIPS | 30.15/0.756/0.311 | 27.36/0.680/0.399 | 24.70/0.584/0.528 | +2.79 PSNR |
消融实验要点¶
- 刚体变换本身就比baseline(Mip-Splatting)提升5+ PSNR
- CMR在刚体变换基础上进一步提+0.55/+0.02/+0.013(PSNR/SSIM/LPIPS)
- 正交性正则虽数值影响小(+0.11 PSNR)但定性上保留更多细节(防止shearing/scaling畸变)
- Neural ODE > GRU (+0.45 PSNR) > MLP (+0.42 PSNR),大幅优于物理空间方法(线性插值21.0, B样条21.7)
- N=9时性能接近饱和,CMR使得N=9超过了纯刚体N=13的效果
- 训练速度1.33h(比其他3DGS方法慢,但渲染速度相同)
亮点 / 我学到了什么¶
- Neural ODE用于相机运动建模是一个非常自然的选择:连续时间动力学正好对应连续相机运动,且前后向共享参数保证一致性
- CMR的设计思路可复用:当离散近似不够时,加一个初始化接近恒等的"残差修正"模块+正则化约束,简洁又有效
- 旋转轴和旋转角解耦的小改进说明关注数学本质的重要性
- 在sharp图上性能与Mip-Splatting持平(27.56 vs 27.71),说明没有引入退化
局限性 / 可改进方向¶
- 不区分moderate和extreme blur,所有图都用相同的N=9采样——自适应N可以提效率
- 训练时间比其他3DGS方法长(1.33h vs 0.2-0.83h),主要因为每张图要渲N次
- 只处理相机运动模糊,不处理散焦模糊或滚动快门
- 未考虑场景中的动态物体(假设静态场景)
与相关工作的对比¶
- vs BAD-Gaussians: 用线性插值/B样条在物理空间插值位姿,PSNR差距巨大(21.69 vs 27.85),说明简单插值不够
- vs Deblurring 3DGS: 通过修改高斯参数生成模糊图训练,不显式建模运动轨迹,PSNR低约1-3 dB
- vs BAGS: CNN估计blur-agnostic退化核,在ExbluRF上效果差(24.7 vs 30.15),说明2D核不能代替3D运动建模
- vs SMURF: 也用Neural ODE但仅在2D像素空间warp射线,CoMoGaussian在3D空间建模更完整
与我的研究方向的关联¶
Neural ODE建模连续过程的思路有启发性——在其他需要连续时间建模的任务(视频生成、动态场景重建)中可以借鉴。CMR的"残差修正"设计模式是一个通用技巧。
评分¶
- 新颖性: ⭐⭐⭐⭐ 将Neural ODE引入3DGS去模糊是自然但有效的组合,CMR设计有巧思
- 实验充分度: ⭐⭐⭐⭐⭐ 三个数据集,多种消融(组件/ODE类型/N值/正则化/sharp图),per-scene结果完整
- 写作质量: ⭐⭐⭐⭐ 结构清晰,数学推导完整(附录甚至推导了Rodrigues公式),但行文略啰嗦
- 对我的价值: ⭐⭐⭐ 特定任务方法,但Neural ODE和残差修正的设计模式有迁移价值