影像复原

影像复原的目的是在预先定义好的意义上改善一幅影像，不同于影像增强主要是一个主观的程序，影像复原大致为一个客观的程序。修复是利用退化现象的某种先验知识，试图把已经退化的影像加以重建或修复。

## 影像退化/复原程序的模型

如下图，退化程序可以被模式化成一个退化函数（Degradation function），连同加成性噪声（Noise）η(x,y)共同作用在一输入影像f(x,y)上，产生一退化影像g(x,y)：

$$g(x,y)=H[f(x,y)]+\eta(x,y)$$

因此就可以利用对退化函数H以及噪声η(x,y)的了解，来获得一个原始影像的估测f ̂(x,y)。如果H为一个线性空间不变量（linear spatially invariant）的程序，则可以证明退化影像在空间域（spatial domain）为

$$g(x,y)=h(x,y)*f(x,y)+\eta(x,y)$$

其中h(x,y)是退化函数的空间表示，*代表回旋积（convolution），因此我们可以将上式中的模型写成等效的频率域（frequency domain）表示式：

$$G(u,v)=H(u,v)F(u,v)+N(u,v)$$

其中大写字母的各项是对于回旋积方程式中各项的傅立叶转换。而影像的复原可以大致分为两个情形进行分析，第一为假定H是一个恒等运算子，而我们只处理由噪声所造成的退化。而第二个情形是检视在H和η都存在的情况进行影像的复原。

## 噪声模型

噪声模型的特性与效应对影像的复原是很重要的，而噪声模型大致可以分为两个基本类型：空间域中的噪声（由噪声几率密度所描述）和频率领域中的噪声（由噪声的各种傅立叶性质所描述）

### 常见的噪声模型

- 高斯（Gaussian）

$$p(z)=\frac{1}{\sqrt{2\pi}\sigma}e^{-(z-\mu)^2/2\sigma^2}$$

- 雷利（Rayleigh）

$p(z)=\frac{2}{b}(z-a)e^{-(z-a)^2/b}$ ,for z≥a

- Erlang,Gamma(a,b)

$p(z)=\frac{a^b z^(b-1)}{(b-a)!} e^(-az)$ ,for z≥0

- 指数型态（Exponential）

$p(z)=e^{-az}$ ,for z≥0

- 盐与胡椒（salt-and-pepper）

$$p(z)=P_a\sigma (z-a)+P_b\sigma (z-b)$$

### 估计噪声参数

通常借由分析影像的傅立叶频谱来估测周期性噪声的参数。周期性噪声有产生频率尖波的倾向，即使用肉眼也通常能够检视。在噪声间波很显著的情况，或者当对有关干扰的频率有些了解时，自动化的操作分析是可能的。

对于在空间域的噪声，从感测器规格可大略知道PDF的参数，但是从样本影像来估测这些参数是必要的。因此变成了从噪声的平均值和变异数来估测解PDF所需的参数a和b的一个问题。设z_i为在一影像中表示强度为准的一个离散随机变数，并假设p(zi)，i=0,1,2,3,…,L-1为相对应的正规化的直方图，其中L是可能的强度值数目。一个值方图的成分p(zi)是强度值zi发生几率的一个估测，且值方图可以视为强度PDF的一个近似。

## 空间域滤波

### 平均滤波器

- 算术平均滤波器Arithmetic Mean Filter
- 几何平均滤波器Geometric Mean Filter
- 调和平均滤波器Harmonic Mean Filter
- 反调和平均滤波器Contraharmonic Mean Filter

### 排序统计值（Order-Statistics）滤波器

- 中值滤波器Median Filter
- 最大值最小值滤波器Max and Min Filter
- 中间点滤波器Midpoint Filter
- Alpha修整平均滤波器Alpha-trimmed Mean Filter

### 适应性空间（Adaptive）滤波器

#### 适应性中值滤波器（adaptive median filter）

Zmin=Sxy中的最小强度值

Zmax=Sxy中的最大强度值

Zmed=Sxy中的中间强度值

Zxy=在座标(x,y)处的强度值

Level A:

A1 = zmed – zmin

A2 = zmed – zmax

If A1 > 0 AND A2 < 0, Go to level B

Else increase the window size

If window size ≤ Smax repeat level A

Else output zxy

Level B:

B1 = zxy – zmin

B2 = zxy – zmax

If B1 > 0 AND B2 < 0, output zxy

Else output zmed

## 以频率域滤波降低周期性噪声

周期性噪声经常以在傅立叶频谱中可见的脉冲状串集呈现。对这些成分滤波的主要方法是经由带陷滤波。n阶发特沃斯带陷滤波器的转移函数为：

$$H(u,v)=\cfrac{1}{1 + \left[ \cfrac{D^2_0}{D_1(u,v)D_1(u,v)} \right]^n}$$

其中

$$D_1(u,v)=[(u-M/2-u_0)^2+(v-N/2-v_0)^2]^\frac{1}{2}$$

且

$$D_2(u,v)=[(u-M/2+u_0)^2+(v-N/2+v_0)^2]^\frac{1}{2}$$

其中(u0,v0)且依对称性(-u0,-v0)是“凹陷”的位置，而D0是他们半径的量测。

### 带斥滤波器（Bandreject filters）

- 理想带斥滤波器

$$H(u,v)= \begin{cases} 1 & \mbox{if } D(u,v)<D_0-\frac{W}{2} \\ 0 & \mbox{if } D_0-\frac{W}{2}\leqslant D(u,v)\leqslant D_0+\frac{W}{2}\\ 1 & \mbox{if } D(u,v)>D_0+\frac{W}{2} \\ \end{cases}$$

- 发特沃斯带陷滤波器Butterworth Bandreject Filter

$$H(u,v)=\cfrac{1}{1 + \left[ \cfrac{D(u,v)W}{D^2(u,v)D_0^2(u,v)} \right]^{2n}}$$

- 高斯带斥滤波器Gaussian Bandreject Filter

$$H(u,v)=1-e^{-\frac{1}{2}\left[ \cfrac{D^2(u,v)D_0^2(u,v)}{D(u,v)W} \right]^{2}}$$

### 带通滤波器（Bandpass filters）

$$H_{BP}(u,v)=1-H_{BR}(u,v)$$

### 凹口型滤波器（Notch Filter）

$$H_{NP}(u,v)=1-H_{NR}(u,v)$$

- 理想凹口型滤波器Ideal Notch Reject Filter

$$H(u,v)= \begin{cases} 0 & \mbox{if } D_1(u,v)\leqslant D_0 \mbox{ or } D_1(u,v)\leqslant D_0\\ 1 & \mbox{otherwise } \end{cases}$$

- 发特沃斯凹口型滤波器Butterworth Notch Reject Filter

$$H(u,v)=\frac{1}{1+\left[ \cfrac{D_0^2}{D_1(u,v)D_2(u,v)} \right]^n}$$

- 高斯凹口型滤波器Gaussian Notch Reject Filter

$$H(u,v)=1-e^{-\frac{1}{2}\left[ \cfrac{D_1(u,v)D_2(u,v)}{D_0^2(u,v)} \right]^{2}}$$

## 直接反滤波

我们复原一张退化影像所能采取的最简单方法是形成形式如下的一个估测：

$$\hat{F}(u,v)=\frac{G(u,v)}{H(u,v)}$$ 然后借由$\hat{F}(u,v)$的反傅立叶转换获得域个影像的相对应估测，这个方法被称为反滤波（inverse filtering），由影像复原模型，我们可以将我们的估测表示成：

$$\hat{F}(u,v)=F(u,v)+\frac{N(u,v)}{H(u,v)}$$ 由此式可知，即使我们确切的知道H(u,v)，我们仍无法复原F(u,v)，因为噪声分量是一个它的傅立叶转换N(u,v)未知的随机函数。此外通常实际上有一个问题是函数H(u,v)有许多零点。即使N(u,v)这一项可忽视，将他除以H(u,v)几乎为零的值会主宰复原的估测。

试图反滤波的典型方法是形成比值$\hat{F}(u,v)=\frac{G(u,v)}{H(u,v)}$，然后限制获得这个反滤波的频率范围到“接近”原点的频率。此想法是H(u,v)中零点比较不可能再接近原点处发生，因为通常转换的大小在该区域中有其最高值。有许多基调的变形，其中在H是零或靠近零的(u,v)处特别处理。这种方法有时称为虚拟反（pseudoinverse）滤波。

## Wiener滤波

Wiener滤波寻求使以下统计误差函数最小化的估测$\hat{f}$ :

$$e^2=E{(f-\hat{f}^2)}$$

其中E是期望值运算子而f是未退化的影像。此表示式在频率域中的解为：

$$\hat{F}(u,v)=\left[ \frac{1}{H(u,v)}\frac{\left| H(u,v)\right|^2}{\left| H(u,v)\right|^2 + S_\eta(u,v)/S_f(u,v)}\right]G(u,v)$$

其中

$H(u,v)$=退化函数

$$\left| H(u,v)\right|^2=H*(u,v)H(u,v)$$

$H*(u,v)=H(u,v)$的共轭复数

$S_\eta(u,v)$=噪声方功率频谱

$S_f(u,v)$=未退化影像的功率频谱

比值$S_\eta$(u,v)/$S_f$(u,v)称为噪声对讯号功率比，可以看出对所有u和v的相关值，如果噪声功率频谱为零，则此比值成为零，而Wiener滤波器简化成在反滤波器。

## 影像去雾

在电脑视觉领域，存在雾的影像通常可以用大气光以及场景至相机的透射率来建模：

$I(x)=J(x)t(x)+A(1-t(x))$

$I(x)$表示原始存在雾的影像，$J(x)$代表还原后的影像，$A$为大气光，$t(x)$为场景至相机的透射率。

其中，透射率$t(x)$可以深度来建模：

$$t(x)=e^{-\beta d(x)}$$

$\beta$为大气散射参数，$d(x)$为深度。

以此模型进行图像还原：

$$J(x)=\frac{I(x)-A}{t(x)}+A$$

因此，只要能够估计出$t(x)$与$A$，即可进行影像去雾。估计透射率与大气光的方法相当多样，从基于观察与统计的估算方法到使用深度学习模型的方法皆存在。

### 暗通道先验（Dark Channel Prior）

经由统计与观察发现，由于在阳光的照射下，多数物体会自然产生阴影或是暗部，因此作者提出一个假设，在大部分室外无雾且非天空的影像中，在至少一个颜色通道中，会有部分像素的强度非常低并且接近0，可以称之为暗通道并表示为$J^{dark}(x)=min_{y\in \Omega(x)}(min_{c\in\{r, g, b\}}J^c(y))$，其中$J^c$是影像Ｊ的其中一个颜色通道，而$\Omega(x)$是以$x$为中心的局部区块。当影像$J$是室外无雾且非天空的影像时$J^{dark} \to 0$，而此现象即被称为暗通道先验。在论文的实验部分，作者使用了Flickr的图片来进行验证，并且成功地证实了他们的猜想。根据作者的推论，暗通道先验的成因主要包括三个方面。首先，物体的阴影部分导致了暗通道效应。其次，彩色物体在某一个颜色通道上的值会偏低，例如，绿色植物在红色和蓝色通道的值会较低。第三，深色物体（例如树干和石头）也会导致暗通道效应。由于自然影像通常至少存在这三种状况之一，即阴影、彩色物体或暗色物体，因此暗通道先验是可行的，同时也可以在Flickr实验图片中观察到这些现象，进一步支持了作者对于暗通道先验成因的推论。

#### 基于暗通道先验之透射率估计与影像还原

透过估计之透射率$\tilde{t}(x)=1-min_{y\in \Omega(x)}(min_{c}\frac{I^c(y)}{A^c})$，以及通过Single Image Dehazing或是其他估计大气光之方法，估计出之大气光$A$，即可套用$J(x)=\frac{I(x)-A}{t(x)}+A$进行图像去雾。

## 参考资料

- Wiener, Norbert (1949), Extrapolation, Interpolation, and Smoothing of Stationary Time Series. New York: Wiley. ISBN 0-262-73005-7
- Brown, Robert Grover and Patrick Y.C. Hwang (1996) Introduction to Random Signals and Applied Kalman Filtering. 3 ed. New York: John Wiley & Sons. ISBN 0-471-12839-2