Neural Image Representations forMulti-Image Fusion and Layer Separation

发布于:2025-06-14 ⋅ 阅读:(18) ⋅ 点赞:(0)

摘要

摘要:我们提出了一个框架,用于使用神经图像表示(NIRs)将多个图像对齐和融合到单个视图中,也称为隐式或基于坐标的神经表示。我们的框架目标是在场景中表现出相机自我运动和潜在变化的突发图像。我们描述了不同的对齐策略,这取决于场景运动的性质,即透视平面(即,单应性),最小场景变化的光流,和光流明显的遮挡。通过神经图像表示,我们的框架有效地将多个输入组合到单个规范视图中,而无需选择其中一个图像作为参考帧。

多帧融合

我们根据场景假设提出了三种参数化方法:

  • 基于单应性的近红外图像
  • 无遮挡的基于光流的近红外图像
  • 考虑遮挡的基于光流的近红外图像

单应性

        单应性是两个图像平面之间的投影变换。如果一个场景是平面,或者相机之间的变换是绕某一平面旋转的,那么可以用一个 3×3 单应性矩阵 M 来描述两个图像之间的点对应关系。

数学表达:

\begin{bmatrix} x{}'\\ y{}' \\ 1 \end{bmatrix}\sim \begin{bmatrix} h_{11} & h_{12} & h_{13}\\ h_{21} & h_{22} & h_{23}\\ h_{31} & h_{32} & h_{33}\ \end{bmatrix}\begin{bmatrix} x\\ y\\ 1 \end{bmatrix}= M\begin{bmatrix} x\\ y\\ 1 \end{bmatrix}, (1)

多图像融合

Homography-based NIRs

        整个场景进行全局移动的情况下,我们可以使用单应变换(homography)作为坐标变换。如图所示,函数 g_{\theta _T} 被学习用来估计每一帧的单应矩阵 M_t的参数。那么,基于单应性的神经图像表示预测图像的方式可以表示为:

\hat{I}_{(x,y,t)}=f_{\theta I}(M_t[x,y,1]^T), (2)

        其中M_t是一个3×3线性矩阵,表示为M_t=g_{\theta _T}(t)。由于M_t是全局应用的,与空间坐标无关,因此g_{\theta _T}(t)仅将t作为输入。

        显示了一个可视化的近红外估计从9个突发图像的一个遥远的场景,与水平移动的相机拍摄。如图所示,基于同形图的近红外仅使用重建损失就自动将所有图像缝合在一个视图中。通过使用g_{\theta_T}单应性矩阵的输出对规范视图进行变换,可以重新创建单个帧 t。

Occlusion-free flow-based NIRs

        非平面、非刚性运动 的场景(如动态物体或复杂背景),但假设 帧间运动较小(因连续帧时间间隔短)。通过 密集光流(Dense Optical Flow) 建模逐像素位移,而非全局单应性变换。

(\Delta x_t,\Delta y_t)=g_{\theta_T}(x,y,t), (3)
\hat{I}_{(x,y,t)}=f_{\theta I}(x+\Delta x_t,y+\Delta y_t), (4)

Occlusion-aware flow-based NIRs

        由于基于无遮挡流的NIRs的标准视图是在二维平面上,因此当场景被遮挡或去遮挡时,存储额外的信息是不够的。为了解决这种情况,我们在规范视图中添加了一个额外的维度w,如图图 (c)所示。直观地说,在特定位置由遮挡引起的场景的不同版本以不同的w值存储,而与遮挡无关的像素以相同的w值存储,并在图像之间共享。这是通过在方程(6)中正则化g_{\theta _T}的雅可比矩阵来实现的。

\hat{I}_{(x,y,t)}=f_{\theta I}(x+\Delta x_t,y+\Delta y_t,w_t), (5)

层分离

\begin{cases} \hat{\mathbf{O}}_{(x, y, t)} = f^{1}_{\theta_O}(T_g(x, y, t)) \\ \hat{\mathbf{U}}_{(x, y, t)} = f^{2}_{\theta_U}(x, y, t) \end{cases}, (6)

其中,​f^1_{\theta _O}f^2_{\theta _U}是用于分别表示场景内容干扰内容的两个不同的 MLP(多层感知器)网络。

        由于我们通常已知场景的运动方式,因此我们为f^1_{\theta _O} 使用显式的运动参数化形式——例如单应变换(homography)光流场(flow field)

        为了建模干扰层,我们对 f^2_{\theta _U}​ 使用一种不受约束的 MLP 形式,用于储存那些不符合 f^1_{\theta _O}所描述的运动规律的图像内容。这种方式对于那些难以通过传统运动模型表示的干扰模式来说是有利的。

        为了防止f^2_{\theta _U}学习全部内容,对其进行限制

\mathcal{L}_{\text{Interf}} = \sum \left\| \hat{\mathbf{U}}_{(x, y, t)} \right\|_1, (7)

损失函数

重建损失:

\mathcal{L}_{\text{Recon}} = \sum_{x,y,t} \left\| \mathbf{\hat{I}}_{(x,y,t)} - I_{(x,y,t) }\right\|^2_2, (8)

流动平滑度的总变分(TV)正则化

\mathcal{L}_{\text{TVFlow}} = \sum_{x,y,t} \lVert J_{g_{\theta_T}}(x, y, t) \rVert_1, (9)

为确保\hat{O}_{(x,y,t)}\hat{U}_{(x,y,t)}之间不相互干扰

\mathcal{L}_{\text{Excl}} = \sum \left\| \Phi\left(J_{f^1}(x, y), J_{f^2}(x, y)\right) \right\|^2_2,

(10)

其中:\Phi\left(J_{f^1}, J_{f^2}\right) = \tanh\left(N_1 J_{f^1}\right) \otimes \tanh\left(N_2 J_{f^2}\right)

PyTorch实现

https://github.com/my021129/Code/tree/main/NIR

train.py

利用模型去除雨滴,在多图像雨滴去除任务中,我们假设观测图像是由**清晰背景图像(Scene)雨滴干扰层(Interference)**叠加形成的

图像形成

\hat{I}_{(x, y, t)} = (1 - \hat{U}_{(x, y, t)}) \cdot \hat{O}_{(x, y, t)} + \hat{U}_{(x, y, t)}1,

(11)

训练目标

为了有效地实现雨滴分离与清晰图像恢复,我们设计以下训练损失:

  1. 重建损失(Reconstruction Loss)
    鼓励合成图像与真实输入图像一致:

  2. 干扰稀疏性正则项(Rain Layer Sparsity Loss)
    强制雨滴层只捕捉最小必要信息,避免学习完整图像:

  3. 总变差正则化(Total Variation Regularization)
    对运动模型(如光流)的平滑性施加先验:

\mathcal{L}_{\text{Rain}} = \mathcal{L}_{\text{recon}} + \lambda_{\text{TVFlow}} \cdot L_{TVFlow}+\lambda _{Interf}\cdot L_{Interf},

(12)

最终效果图