交叉通道先验简介

交叉通道先验是Heide13年论文中提出的一种RGB彩色图像统计先验,常被用于图像复原的优化目标函数中。

交叉通道先验的物理意义

我们提出在反卷积过程中共享不同通道的信息,从而一个通道保留的频率信息可以帮助其他通道重建。交叉通道先验基于这样的假设:图象所有通道在相同位置的边缘和色调变化是稀疏的。[1]这个假设可以导出两个通道$l,k$之间的先验
\begin{equation}
\begin{aligned}
& \nabla i_k ./ i_k \approx \nabla i_l ./ i_l \\
\Leftrightarrow & \nabla i_k \cdot i_l \approx \nabla i_l \cdot i_k
\end{aligned}
\end{equation}
其中乘法$\cdot$除法$./$都是元素操作。注意使用时我们用$\mathcal{l}_1$范数的形式。

最小化问题

通过交叉通道先验,全通道反卷积可以形式化为一个优化问题
\begin{equation}
(i_{1,2,3})_{opt} = \text{argmin}_{i_{1,2,3}} \sum_{c=1}^3 (
\Vert B_c ic - j_c \Vert_2^2 + \lambda_c \sum\{a=1}^5 \Vert H_a i_c \Vert_1 \\

  • \sum_{l \neq c} \beta_{cl} \sum_{a=1}^2 \Vert H_a i_c \cdot i_l - H_a i_l \cdot i_c \Vert_1
    )
    \tag{1}
    \end{equation}
    其中卷积矩阵$H_{1,2}$实现一阶导数,$H_{3,4,5}$实现二阶导数。式(1)中第一项是数据保真项,第二项确保梯度和边缘服从重尾分布(heavey-tailed distribution),最后一项表示交叉通道先验。

    实现

\begin{equation}
(i_{1,2,3})_{opt} = \text{argmin}_{i_{1,2,3}} \sum_{c=1}^3 (
\Vert B_c i_c - j_c \Vert_2^2 + \lambda_c \sum_{a=1}^5 \Vert H_a i_c \Vert_1 \\

  • \sum_{l \neq c} \beta_{cl} \sum_{a=1}^2 \Vert H_a i_c \cdot i_l - H_a i_l \cdot i_c \Vert_1 ) \\
    = \text{argmin}_{i_{1,2,3}} \sum_{c=1}^3 (
    \Vert B_c i_c - j_c \Vert_2^2 + \lambda_c \sum_{a=1}^5 \Vert H_a i_c \Vert_1 \\
  • \sum_{l \neq c} \beta_{cl} \sum_{a=1}^2 \Vert (D_{i_l} H_a - D_{H_a i_l}) i_c \Vert_1 )\\
    = \text{argmin}_{i_{1,2,3}} \sum_{c=1}^3 (
    \Vert B_c i_c - j_c \Vert_2^2 + \lambda_c \sum_{a=1}^5 \Vert H_a i_c \Vert_1 \\
  • \Vert
    \left[
    \begin{matrix}
    \beta_{ci_1} (D_{i_1} H_1 - D_{H_1 i_1}) \\
    \beta_{ci_1} (D_{i_1} H_2 - D_{H_2 i_1}) \\
    \beta_{ci_2} (D_{i_2} H_1 - D_{H_1 i_2}) \\
    \beta_{cI_2} (D_{i_2} H_2 - D_{H_2 i_2}) \\
    \end{matrix}
    \right] i_c
    \Vert_1
    )
    \tag{2}
    \end{equation}
    其中$D$表示其下标向量生成的对角矩阵。式(2)中的最后一项中得系数矩阵表示交叉通道先验。

注意,在使用交叉通道先验的时候,各个通道对应的向量将轮流变为变量。上面的式子对于三个通道来说也是解耦合的。因此迭代求解时要把三个通道拆开来依次迭代。

关于矩阵$H_a$,一阶导数矩阵之所以有两个,是因为原图有x,y两个方向的一阶导数。变量

\begin{equation}
H_1 = \left[
\begin{matrix}
1 & -1 & & \\
& 1 & -1 & \\
& & \ddots & \ddots \\
& & & 1
\end{matrix}
\right]
\end{equation}

\begin{equation}
H_2 = \left[
\begin{matrix}
1 & \overbrace{\cdots}^{\text{height - 1个0} } & -1 & & \\
& 1 & \cdots & -1 &\\
& & \ddots & \ddots \\
& & & 1
\end{matrix}
\right]
\end{equation}

而二阶导数有xx,yy,xy三种,分别是对应一阶导数矩阵的乘积。

应用

在实际应用中,将三个通道拆开迭代多有不便,因此需要一种将三个通道写在一起的形式。令
\begin{equation}
R =
\left[
\begin{matrix}
\beta_{rg} (D_{g} H_1 - D_{H_1 g}) \\
\beta_{rg} (D_{g} H_2 - D_{H_2 g}) \\
\beta_{br} (D_{b} H_1 - D_{H_1 b}) \\
\beta_{br} (D_{b} H_2 - D_{H_2 b}) \\
\end{matrix}
\right]
\end{equation}

\begin{equation}
G =
\left[
\begin{matrix}
\beta_{gb} (D_{b} H_1 - D_{H_1 b}) \\
\beta_{gb} (D_{b} H_2 - D_{H_2 b}) \\
\beta_{rg} (D_{r} H_1 - D_{H_1 r}) \\
\beta_{rg} (D_{r} H_2 - D_{H_2 r}) \\
\end{matrix}
\right]
\end{equation}

\begin{equation}
B =
\left[
\begin{matrix}
\beta_{gb} (D_{g} H_1 - D_{H_1 g}) \\
\beta_{gb} (D_{g} H_2 - D_{H_2 g}) \\
\beta_{br} (D_{r} H_1 - D_{H_1 r}) \\
\beta_{br} (D_{r} H_2 - D_{H_2 r}) \\
\end{matrix}
\right]
\end{equation}
则交叉通道先验项可以写为
\begin{equation}
\Vert \left[
\begin{matrix}
R & & \\
& G& \\
& & B
\end{matrix}
\right]
x \Vert_1
\end{equation}
其中$x = [r, g, b]^T \in R^{3n}$是RGB图象对应的向量($r,g,b \in R^n$是三个通道对应的向量)。

参考文献

Heide, Felix, et al. "High-quality computational imaging through simple lenses." ACM Transactions on Graphics (TOG) 32.5 (2013): 149.