Kernel Regression for Image Processing and Reconstruction
文章目录
- Kernel Regression for Image Processing and Reconstruction
-
- 回归
- 经典核回归
- 数据自适应的核回归
本篇论文是一个基于核回归的图像处理框架,其所提出的核回归方法在图像降噪、融合、超分辨等领域均有广泛应用。本篇论文是 Hiroyuki Takeda的博士论文,是对其前后发表的多篇关于核回归的总结:《Image denoising by adaptive kernel regression》、《Kernel regression for image processing and reconstruction》、《Robust kernel regression for restoration and reconstruction of images from sparse noisy data》。
回归
回归是监督学习中的一个重要问题,用于预测输入变量XXX与输出变量YYY之间的关系,等价于函数拟合:
yi=m(xi)+?i;m(.)=E(y∣x);E(?)=0y_{i}=m(x_{i})+\epsilon_{i};m(.)=E(y|x);E(\epsilon)=0 yi?=m(xi?)+?i?;m(.)=E(y∣x);E(?)=0
例如,使用n?1n-1n?1阶多项式就可以完美拟合nnn个观测数据(xi,yi)(x_{i},y_{i})(xi?,yi?),当nnn稍大时,观测数据取值范围以外的数据容易出现[龙格现象](http://www.tlu.ee/~tonu/Arvmeet/Runge’s phenomenon.pdf),无法实现对全局数据的推断和预测,这自然就引出了一套局部化的非参数估计方法。
- 参数回归(Parametric Regression)
在参数回归中往往假定输入变量XXX与输出变量YYY之间函数关系的形式mmm是已知的,即通常给出其参数形式的假定,例如最经典的线性回归模型:
yi=βxi+?iy_{i} = \beta x_{i}+\epsilon_{i} yi?=βxi?+?i?
而在实际应用过程中,函数关系的形式往往是未知的,不正确函数形式的假设往往会造成对全局数据的正确推断和预测。 - 半参数回归(Sime-Parametric Approach)
半参数回归中包含参数模型,用以把握变量YYY的大致走势,非参数模型,用以对YYY做局部调整,使模型更好地拟合输入变量,所以半参数回归模型同时兼顾数据的确定性规律与非确定性规律,具有很好的适应性:
yi=βxi+mz(zi)+?iy_{i} = \beta x_{i}+m_{z}(z_{i})+\epsilon_{i} yi?=βxi?+mz?(zi?)+?i? - 非参数回归
非参数回归和参数回归是相对的,完全不假设样本的分布函数,由样本本身来决定模型的结构:
yi=m(xi)+?i;y_{i}=m(x_{i})+\epsilon_{i}; yi?=m(xi?)+?i?;
在非参数回归中,核回归(Kernel Regression)是用核函数作为权重对输入变量在其局部邻域内的加权平均作为对输出变量的估计,最常用于降噪当中,Nadaraya-Watson Estimator(NWE)为最早被提出的核回归方法:
y=m^(x)=∑i=1nKhx(x?xi)yi∑i=1nKhx(x?xi)=∑i=1nWhx(x,xi)yi\begin{aligned} y=\hat{m}(x) &=\frac{\sum_{i=1}^{n} K_{h_{x}}\left(x-x_{i}\right) y_{i}}{\sum_{i=1}^{n} K_{h_{x}}\left(x-x_{i}\right)} \\ &=\sum_{i=1}^{n} W_{h_{x}}\left(x, x_{i}\right) y_{i} \end{aligned} y=m^(x)?=∑i=1n?Khx??(x?xi?)∑i=1n?Khx??(x?xi?)yi??=i=1∑n?Whx??(x,xi?)yi??
经典核回归
首先针对一维观测数据,将输入变量XXX与输出变量YYY间的映射关系做如下表示:
yi=z(xi)+?i;i=1,2,...,P(1)y_{i}=z(x_{i})+\epsilon _{i};i=1,2,...,P\tag{1} yi?=z(xi?)+?i?;i=1,2,...,P(1)
其中zzz的形式未知,?\epsilon?为均值为0的噪声,假设zzz是局部平滑的,为了估计点xxx(在xix_{i}xi?附近)的输出值yyy,对上式做NNN阶泰勒展开:
z(xi)≈z(x)+z′(x)(xi?x)+12!z′′(x)(xi?x)2+?+1N!z(N)(x)(xi?x)N=β0+β1(xi?x)+β2(xi?x)2+?+βN(xi?x)N(2)\begin{aligned} z\left(x_{i}\right) & \approx z(x)+z^{\prime}(x)\left(x_{i}-x\right)+\frac{1}{2 !} z^{\prime \prime}(x)\left(x_{i}-x\right)^{2}+\cdots+\frac{1}{N !} z^{(N)}(x)\left(x_{i}-x\right)^{N} \\ &=\beta_{0}+\beta_{1}\left(x_{i}-x\right)+\beta_{2}\left(x_{i}-x\right)^{2}+\cdots+\beta_{N}\left(x_{i}-x\right)^{N} \end{aligned}\tag{2} z(xi?)?≈z(x)+z′(x)(xi??x)+2!1?z′′(x)(xi??x)2+?+N!1?z(N)(x)(xi??x)N=β0?+β1?(xi??x)+β2?(xi??x)2+?+βN?(xi??x)N?(2)
以上泰勒展开是对函数zzz在点xix_{i}xi?处的局部近似,自然离点xxx越远的采样点的权重越小,即求解式(2)的损失函数如下:
min?{βn}n=0N∑i=1P[yi?β0?β1(xi?x)?β2(xi?x)2???βN(xi?x)N]21hK(xi?xh)(3)\min _{\left\{\beta_{n}\right\}_{n=0}^{N}} \sum_{i=1}^{P}\left[y_{i}-\beta_{0}-\beta_{1}\left(x_{i}-x\right)-\beta_{2}\left(x_{i}-x\right)^{2}-\cdots-\beta_{N}\left(x_{i}-x\right)^{N}\right]^{2} \frac{1}{h} K\left(\frac{x_{i}-x}{h}\right)\tag{3} {
βn?}n=0N?min?i=1∑P?[yi??β0??β1?(xi??x)?β2?(xi??x)2???βN?(xi??x)N]2h1?K(hxi??x?)(3)
其中K(.)K(.)K(.)为核函数,hhh为的平滑参数,且核函数需要满足以下条件:
∫R1tK(t)dt=0,∫R1t2K(t)dt=c(4)\int_{R^{1}} t K(t) d t=0, \quad \int_{R^{1}} t^{2} K(t) d t=c\tag{4} ∫R1?tK(t)dt=0,∫R1?t2K(t)dt=c(4)
其中ccc为常数,实验表明,核函数的选择对估测结果的准确性不起决定性作用,因此,一般选择计算复杂度较低的高斯核函数。
除了核函数的选取,泰勒展开的阶数也对最终的近似结果起到非常关键的作用,总的来说NNN越小,图像越平滑,NNN越大越多噪声残留。特别的,当N=0N=0N=0时,核回归退化为NWE:
z^(x)=∑i=1PKh(xi?x)yi∑i=1PKh(xi?x),Kh(t)=1hK(th)(5)\hat{z}(x)=\frac{\sum_{i=1}^{P} K_{h}\left(x_{i}-x\right) y_{i}}{\sum_{i=1}^{P} K_{h}\left(x_{i}-x\right)}, \quad K_{h}(t)=\frac{1}{h} K\left(\frac{t}{h}\right)\tag{5} z^(x)=∑i=1P?Kh?(xi??x)∑i=1P?Kh?(xi??x)yi??,Kh?(t)=h1?K(ht?)(5)
下面是不同展开阶数的核回归的对含噪数据的拟合情况,当噪声水平较低N=2N=2N=2阶核回归的拟合性能较好,当噪声水平较高N=0、1N=0、1N=0、1阶核回归的拟合性能较好。
同一维观测数据相似,将二维观测数据做如下表示:
yi=z(xi)+εi;xi=[x1i,x2i]T;i=1,2,?,P(6)y_{i}=z\left(\mathbf{x}_{i}\right)+\varepsilon_{i};\mathbf{x}_{i}=\left[x_{1 i}, x_{2 i}\right]^{T};i=1,2, \cdots, P \tag{6} yi?=z(xi?)+εi?;xi?=[x1i?,x2i?]T;i=1,2,?,P(6)
其中x\mathbf{x}x为坐标,对应的泰勒展开为:
z(xi)≈z(x)+{?z(x)}T(xi?x)+12!(xi?x)T{Hz(x)}(xi?x)+?=z(x)+{?z(x)}T(xi?x)+12vec?T{Hz(x)}vec?{(xi?x)(xi?x)T}+?(7)\begin{aligned} z\left(\mathbf{x}_{i}\right) & \approx z(\mathbf{x})+\{\nabla z(\mathbf{x})\}^{T}\left(\mathbf{x}_{i}-\mathbf{x}\right)+\frac{1}{2 !}\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\{\mathcal{H} z(\mathbf{x})\}\left(\mathbf{x}_{i}-\mathbf{x}\right)+\cdots \\ &=z(\mathbf{x})+\{\nabla z(\mathbf{x})\}^{T}\left(\mathbf{x}_{i}-\mathbf{x}\right)+\frac{1}{2} \operatorname{vec}^{T}\{\mathcal{H} z(\mathbf{x})\} \operatorname{vec}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\}+\cdots \end{aligned}\tag{7} z(xi?)?≈z(x)+{
?z(x)}T(xi??x)+2!1?(xi??x)T{
Hz(x)}(xi??x)+?=z(x)+{
?z(x)}T(xi??x)+21?vecT{
Hz(x)}vec{
(xi??x)(xi??x)T}+??(7)
其中?\nabla?为梯度向量,H\mathcal{H}H为Hessian矩阵,vech(.)vech(.)vech(.)为将对称阵的上三角进行矢量化的半矢量算子(Half-Vectorization-Operator),具体如下:
vech ([a11a12a21a22])=[a11a21a22]Tvech ([a11a12a13a21a22a23a31a32a33])=[a11a21a31a23a32a33]T\begin{array}{l} \text { vech }\left(\left[\begin{array}{ll} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array}\right]\right) \quad=\left[\begin{array}{lll} a_{11} & a_{21} & a_{22} \end{array}\right]^{T}\\ \text { vech }\left(\left[\begin{array}{ccc} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{array}\right]\right)=\left[\begin{array}{llllll} a_{11} & a_{21} & a_{31} & a_{23} & a_{32} & a_{33} \end{array}\right]^{T} \end{array} vech ([a11?a21??a12?a22??])=[a11??a21??a22??]T vech ??????a11?a21?a31??a12?a22?a32??a13?a23?a33????????=[a11??a21??a31??a23??a32??a33??]T?
考虑到Hessian矩阵的对称性,将式(7)化简为:
z(xi)=β0+β1T(xi?x)+β2Tvech?{(xi?x)(xi?x)T}+?(8)z\left(\mathbf{x}_{i}\right)=\beta_{0}+\boldsymbol{\beta}_{1}^{T}\left(\mathbf{x}_{i}-\mathbf{x}\right)+\boldsymbol{\beta}_{2}^{T} \operatorname{vech}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\}+\cdots\tag{8} z(xi?)=β0?+β1T?(xi??x)+β2T?vech{
(xi??x)(xi??x)T}+?(8)
其中:
β0=z(x)β1=[?z(x)?x1∣x=xi?z(x)?x2∣x=xi]T,β2=12[?2z(x)?x12∣x=xi2?2z(x)?x1?x2∣x=xi?2z(x)?x22∣x=xi]T\begin{array}{l} \boldsymbol{\beta }_{0}=z(x)\\ \boldsymbol{\beta}_{1}=\left[\left.\left.\frac{\partial z(\mathbf{x})}{\partial x_{1}}\right|_{\mathbf{x}=\mathbf{x}_{i}} \quad \frac{\partial z(\mathbf{x})}{\partial x_{2}}\right|_{\mathbf{x}=\mathbf{x}_{i}}\right]^{T}, \\ \boldsymbol{\beta}_{2}=\frac{1}{2}\left[\left.\left.\left.\frac{\partial^{2} z(\mathbf{x})}{\partial x_{1}^{2}}\right|_{\mathbf{x}=\mathbf{x}_{i}} \quad 2 \frac{\partial^{2} z(\mathbf{x})}{\partial x_{1} \partial x_{2}}\right|_{\mathbf{x}=\mathbf{x}_{i}} \quad \frac{\partial^{2} z(\mathbf{x})}{\partial x_{2}^{2}}\right|_{\mathbf{x}=\mathbf{x}_{i}}\right]^{T} \end{array} β0?=z(x)β1?=[?x1??z(x)?∣∣∣?x=xi???x2??z(x)?∣∣∣∣?x=xi??]T,β2?=21?[?x12??2z(x)?∣∣∣?x=xi??2?x1??x2??2z(x)?∣∣∣∣?x=xi???x22??2z(x)?∣∣∣∣∣?x=xi??]T?
与式(3)一样,可以通过优化求解如下损失函数来得到{βn}\left\{\boldsymbol{\beta}_{n}\right\}{
βn?}:
min?{βn}n=0N∑i=1P[yi?β0?β1T(xi?x)T?β2Tvech?{(xi?x)(xi?x)T}??]2KH(xi?x)KH(t)=1det?(H)K(H?1t)(8)\min _{\left\{\boldsymbol{\beta}_{n}\right\}_{n=0}^{N}} \sum_{i=1}^{P}\left[y_{i}-\beta_{0}-\boldsymbol{\beta}_{1}^{T}\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}-\boldsymbol{\beta}_{2}^{T} \operatorname{vech}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\}-\cdots\right]^{2} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right)\\ K_{\mathbf{H}}(\mathbf{t})=\frac{1}{\operatorname{det}(\mathbf{H})} K\left(\mathbf{H}^{-1} \mathbf{t}\right)\tag{8} {
βn?}n=0N?min?i=1∑P?[yi??β0??β1T?(xi??x)T?β2T?vech{
(xi??x)(xi??x)T}??]2KH?(xi??x)KH?(t)=det(H)1?K(H?1t)(8)
其中H\mathbf{H}H为2×22×22×2的平滑矩阵,将上式写成矩阵形式:
arg?min?b∥y?Xxb∥Wx2=arg?min?b(y?Xxb)TWx(y?Xxb)y=[y1y2?yP]T,b=[β0β1Tβ2T?]TWx=diag?[KH(x1?x),KH(x2?x),?,KH(xP?x)]Xx=[1(x1?x)Tvech?T{(x1?x)(x1?x)T}?1(x2?x)Tvech?T{(x2?x)(x2?x)T}?????1(xP?x)Tvech?T{(xP?x)(xP?x)T}?](9)\arg \min _{\mathbf{b}}\left\|\mathbf{y}-\mathbf{X}_{\mathbf{x}} \mathbf{b}\right\|_{\mathbf{W}_{\mathbf{x}}}^{2}=\arg \min _{\mathbf{b}}\left(\mathbf{y}-\mathbf{X}_{\mathbf{x}} \mathbf{b}\right)^{T} \mathbf{W}_{\mathbf{x}}\left(\mathbf{y}-\mathbf{X}_{\mathbf{x}} \mathbf{b}\right)\\ \begin{array}{l} \mathbf{y}=\left[\begin{array}{llll} y_{1} & y_{2} & \cdots & y_{P} \end{array}\right]^{T}, \quad \mathbf{b}=\left[\begin{array}{llll} \beta_{0} & \boldsymbol{\beta}_{1}^{T} & \boldsymbol{\beta}_{2}^{T} & \cdots \end{array}\right]^{T}\\ \mathbf{W}_{\mathbf{x}}=\operatorname{diag}\left[K_{\mathbf{H}}\left(\mathbf{x}_{1}-\mathbf{x}\right), K_{\mathbf{H}}\left(\mathbf{x}_{2}-\mathbf{x}\right), \cdots, K_{\mathbf{H}}\left(\mathbf{x}_{P}-\mathbf{x}\right)\right]\\ \mathbf{X}_{\mathbf{x}}=\left[\begin{array}{cccc} 1 & \left(\mathbf{x}_{1}-\mathbf{x}\right)^{T} & \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{1}-\mathbf{x}\right)\left(\mathbf{x}_{1}-\mathbf{x}\right)^{T}\right\} & \cdots \\ 1 & \left(\mathbf{x}_{2}-\mathbf{x}\right)^{T} & \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{2}-\mathbf{x}\right)\left(\mathbf{x}_{2}-\mathbf{x}\right)^{T}\right\} & \cdots \\ \vdots & \vdots & \vdots & \vdots \\ 1 & \left(\mathbf{x}_{P}-\mathbf{x}\right)^{T} & \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{P}-\mathbf{x}\right)\left(\mathbf{x}_{P}-\mathbf{x}\right)^{T}\right\} & \cdots \end{array}\right] \end{array}\tag{9} argbmin?∥y?Xx?b∥Wx?2?=argbmin?(y?Xx?b)TWx?(y?Xx?b)y=[y1??y2????yP??]T,b=[β0??β1T??β2T????]TWx?=diag[KH?(x1??x),KH?(x2??x),?,KH?(xP??x)]Xx?=?????????11?1?(x1??x)T(x2??x)T?(xP??x)T?vechT{
(x1??x)(x1??x)T}vechT{
(x2??x)(x2??x)T}?vechT{
(xP??x)(xP??x)T}????????????????(9)
此加权最小二乘解得:
z^(x)=β^0=e1T(XxTWxXx)?1XxTWxy;e1=[1,0,...,0]∈RN+1(10)\hat{z}(\mathbf{x})=\hat{\beta}_{0}=\mathbf{e}_{1}^{T}\left(\mathbf{X}_{\mathbf{x}}^{T} \mathbf{W}_{\mathbf{x}} \mathbf{X}_{\mathbf{x}}\right)^{-1} \mathbf{X}_{\mathbf{x}}^{T} \mathbf{W}_{\mathbf{x}} \mathbf{y};e_{1}=[1,0,...,0]\in R^{N+1}\tag{10} z^(x)=β^?0?=e1T?(XxT?Wx?Xx?)?1XxT?Wx?y;e1?=[1,0,...,0]∈RN+1(10)
可以将上式简单表示成局部线性滤波:
z^(x)=∑i=1PWi(x;N,H)yi(11)\hat{z}(\mathbf{x})=\sum_{i=1}^{P} W_{i}(\mathbf{x} ; N, \mathbf{H}) y_{i}\tag{11} z^(x)=i=1∑P?Wi?(x;N,H)yi?(11)
将上式(10)中的XxTWxXx\mathbf{X}_{\mathbf{x}}^{T} \mathbf{W}_{\mathbf{x}} \mathbf{X}_{\mathbf{x}}XxT?Wx?Xx?为(N+1)×(N+1)(N+1)×(N+1)(N+1)×(N+1)的分块矩阵:
XxTWxXx=[s11s12s13?s21s22s23?s31s32s33?????]\mathbf{X}_{\mathbf{x}}^{T} \mathbf{W}_{\mathbf{x}} \mathbf{X}_{\mathbf{x}}=\left[\begin{array}{cccc} s_{11} & \mathbf{s}_{12} & \mathbf{s}_{13} & \cdots \\ s_{21} & \mathbf{s}_{22} & \mathbf{s}_{23} & \cdots \\ s_{31} & \mathbf{s}_{32} & \mathbf{s}_{33} & \cdots \\ \vdots & \vdots & \vdots & \ddots \end{array}\right] XxT?Wx?Xx?=??????s11?s21?s31???s12?s22?s32???s13?s23?s33??????????????
当N=2N=2N=2时分块矩阵内的元素如下:
s11=∑i=1PKH(xi?x)s12=s21T=∑i=1P(xi?x)TKH(xi?x)s22=∑i=1P(xi?x)(xi?x)TKH(xi?x)s13=s31T=∑i=1Pvech?T{(xi?x)(xi?x)T}KH(xi?x)s23=s32T=∑i=1P(xi?x)vech?T{(xi?x)(xi?x)T}KH(xi?x)s33=∑i=1Pvech?{(xi?x)(xi?x)T}vech?T{(xi?x)(xi?x)T}KH(xi?x)\begin{aligned} s_{11} &=\sum_{i=1}^{P} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right) \\ \mathbf{s}_{12} &=\mathbf{s}_{21}^{T}=\sum_{i=1}^{P}\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right) \\ \mathbf{s}_{22} &=\sum_{i=1}^{P}\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right)\\ \mathbf{s}_{13} &=\mathbf{s}_{31}^{T}=\sum_{i=1}^{P} \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right) \\ \mathbf{s}_{23} &=\mathbf{s}_{32}^{T}=\sum_{i=1}^{P}\left(\mathbf{x}_{i}-\mathbf{x}\right) \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right) \\ \mathbf{s}_{33} &=\sum_{i=1}^{P} \operatorname{vech}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\} \operatorname{vech}^{T}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right) \end{aligned} s11?s12?s22?s13?s23?s33??=i=1∑P?KH?(xi??x)=s21T?=i=1∑P?(xi??x)TKH?(xi??x)=i=1∑P?(xi??x)(xi??x)TKH?(xi??x)=s31T?=i=1∑P?vechT{
(xi??x)(xi??x)T}KH?(xi??x)=s32T?=i=1∑P?(xi??x)vechT{
(xi??x)(xi??x)T}KH?(xi??x)=i=1∑P?vech{
(xi??x)(xi??x)T}vechT{
(xi??x)(xi??x)T}KH?(xi??x)?
于是式(11)中的权重矩阵可以表示如下:
Wi(x;0,H)=KH(xi?x)s11Wi(x;1,H)={1?s12s22?1(xi?x)}KH(xi?x)s11?s12s22?1s21Wi(x;2,H)=[1?S12S22?1(xi?x)?S13S33?1vech?{(xi?x)(xi?x)T}]KH(xi?x)s11?S12S22?1s21?S13S33?1s31S12=s12?s13s33?1s32,S22=s22?s23s33?1s32S13=s13?s12s22?1s23,S33=s33?s32s22?1s23\begin{array}{l} W_{i}(\mathbf{x} ; 0, \mathbf{H})=\frac{K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right)}{s_{11}} \\ W_{i}(\mathbf{x} ; 1, \mathbf{H})=\frac{\left\{1-\mathbf{s}_{12} \mathbf{s}_{22}^{-1}\left(\mathbf{x}_{i}-\mathbf{x}\right)\right\} K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right)}{s_{11}-\mathbf{s}_{12} \mathbf{s}_{22}^{-1} \mathbf{s}_{21}}\\ W_{i}(\mathbf{x} ; 2, \mathbf{H})=\frac{\left[1-\mathbf{S}_{12} \mathbf{S}_{22}^{-1}\left(\mathbf{x}_{i}-\mathbf{x}\right)-\mathbf{S}_{13} \mathbf{S}_{33}^{-1} \operatorname{vech}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\}\right] K_{\mathbf{H}}\left(\mathbf{x}_{i}-\mathbf{x}\right)}{s_{11}-\mathbf{S}_{12} \mathbf{S}_{22}^{-1} \mathbf{s}_{21}-\mathbf{S}_{13} \mathbf{S}_{33}^{-1} \mathbf{s}_{31}}\\ \mathbf{S}_{12}=\mathbf{s}_{12}-\mathbf{s}_{13} \mathbf{s}_{33}^{-1} \mathbf{s}_{32}, \quad \mathbf{S}_{22}=\mathbf{s}_{22}-\mathbf{s}_{23} \mathbf{s}_{33}^{-1} \mathbf{s}_{32} \\ \mathbf{S}_{13}=\mathbf{s}_{13}-\mathbf{s}_{12} \mathbf{s}_{22}^{-1} \mathbf{s}_{23}, \quad \mathbf{S}_{33}=\mathbf{s}_{33}-\mathbf{s}_{32} \mathbf{s}_{22}^{-1} \mathbf{s}_{23} \end{array} Wi?(x;0,H)=s11?KH?(xi??x)?Wi?(x;1,H)=s11??s12?s22?1?s21?{
1?s12?s22?1?(xi??x)}KH?(xi??x)?Wi?(x;2,H)=s11??S12?S22?1?s21??S13?S33?1?s31?[1?S12?S22?1?(xi??x)?S13?S33?1?vech{
(xi??x)(xi??x)T}]KH?(xi??x)?S12?=s12??s13?s33?1?s32?,S22?=s22??s23?s33?1?s32?S13?=s13??s12?s22?1?s23?,S33?=s33??s32?s22?1?s23??
可以看出,传统的核回归都是基于对邻域内数据进行加权来得到最终的预测结果,而高阶的核回归(N>0N>0N>0)从此物理意义上讲与0阶核回归相比仅仅是具有一个更加复杂的权重函数而已。下图是对均匀采样分别进行0、1、2阶展开的等效权重剖面图,可以观察到,对0阶展开与1阶展开的等效权重是重合的,这一现象可以推广为XxTWxXx\mathbf{X}_{\mathbf{x}}^{T} \mathbf{W}_{\mathbf{x}} \mathbf{X}_{\mathbf{x}}XxT?Wx?Xx?中的奇数项s2j,2k+1、s2k+1,2j\mathbf{s}_{2j,2k+1}、\mathbf{s}_{2k+1,2j}s2j,2k+1?、s2k+1,2j?中所包含的元素均接近于0,对于均匀采样而言,使用偶数阶对局部做展开比使用奇数阶对局部做展开的性价比更高,因为2N2N2N阶展开的结果与2N+12N+12N+1阶相同。在下图中还可以观察到与N=0、1N=0、1N=0、1不同的是,N=2N=2N=2时的等价核包含部分为负数的元素,在频域内其频率传递函数的频率截止速度高于比N=0、1N=0、1N=0、1,类似巴特沃斯低通滤波(这部分为负数的元素,可能是由Ringing造成的)。
但是上式结论对于非均匀采样的样本数据并不成立,非均匀采样的等价权重如下图所示,由于奇数阶分块子矩阵不接近0,N=0、1N=0、1N=0、1的等价权重不再相同。
对于经典的核回归算法,平滑矩阵H\mathbf{H}H也在很大程度上影响最终的估计结果,H\mathbf{H}H负责将式(3)中的损失函数的权重更多的分配给有效样本,对于二维图像数据,将H\mathbf{H}H定义为一个2×22×22×2的对称阵。
数据自适应的核回归
在式(3)中定义的全图统一的核函数KHK_{\mathbf{H}}KH?的基础上引入由灰度距离控制的新的权重值,为局部自适应核回归,如下图所示,为了在对边缘或者强纹理的区域能够做到保护边缘信息的同时很好的去除噪声,比较直观的思路是根据图像的边缘信息来各向异性地分配核函数的权重,即根据样本的分布来自适应核函数中的平滑矩阵HHH
为达成以上数据自适应的分配核函数权重的目的,首先引入双边滤波(BLF)的权重函数作为核函数,此时式(3)中的损失函数如下:
K(xi?x,yi?y)≡KHs(xi?x)Khr(yi?y)\mathrm{K}\left(\mathrm{x}_{i}-\mathrm{x}, y_{i}-y\right) \equiv K_{\mathbf{H}_{s}}\left(\mathbf{x}_{i}-\mathbf{x}\right) K_{h_{r}}\left(y_{i}-y\right) K(xi??x,yi??y)≡KHs??(xi??x)Khr??(yi??y)
其中Hs=[hs00hs]\mathbf{H}_{s}=\begin{bmatrix} h_{s}& 0\\ 0&h_{s} \end{bmatrix}Hs?=[hs?0?0hs??],当N=0N=0N=0时,BLF可以看作是自适应的NWE:
z^(x)=∑i=1PKHs(xi?x)Khr(yi?y)yi∑i=1PKHs(xi?x)Khr(yi?y)\hat{z}(\mathbf{x})=\frac{\sum_{i=1}^{P} K_{\mathbf{H}_{s}}\left(\mathbf{x}_{i}-\mathbf{x}\right) K_{h_{r}}\left(y_{i}-y\right) y_{i}}{\sum_{i=1}^{P} K_{\mathbf{H}_{s}}\left(\mathbf{x}_{i}-\mathbf{x}\right) K_{h_{r}}\left(y_{i}-y\right)} z^(x)=∑i=1P?KHs??(xi??x)Khr??(yi??y)∑i=1P?KHs??(xi??x)Khr??(yi??y)yi??
此时的损失函数如下:
min?{βn}n=0N∑i=1P[yi?β0?β1T(xi?x)T?β2Tvech?{(xi?x)(xi?x)T}??]2K(xi?x,yi?y)(12)\min _{\left\{\boldsymbol{\beta}_{n}\right\}_{n=0}^{N}} \sum_{i=1}^{P}\left[y_{i}-\beta_{0}-\boldsymbol{\beta}_{1}^{T}\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}-\boldsymbol{\beta}_{2}^{T} \operatorname{vech}\left\{\left(\mathbf{x}_{i}-\mathbf{x}\right)\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T}\right\}-\cdots\right]^{2} \mathrm{~K}\left(\mathbf{x}_{i}-\mathbf{x}, y_{i}-y\right)\tag{12} {
βn?}n=0N?min?i=1∑P?[yi??β0??β1T?(xi??x)T?β2T?vech{
(xi??x)(xi??x)T}??]2 K(xi??x,yi??y)(12)
但是这种直接将核函数KKK分解为两个核函数的做法并不一定能带来核回归估计的性能提升,因为当噪声较大时,灰度差都比较大,灰度核的权重趋于0,最终导致核函数内大部分权重趋于0,失去了核函数对回归过程的约束作用。基于此,作者引用Steering Kernel来对经典核回归方法中各向同性的核函数进行优化,其中最核心的思想就是根据像素点在其邻域内的梯度分布来度量图像在局部邻域内的Dominant Orientation,即梯度变化的主要方向,利用此主方向来进一步控制局部核函数的权重分配,如下图所示:
如果是在边缘区域,此时的局部自适应核函数会将权重更多的沿着边缘方向分配,在去噪的过程中有效地保护图像边缘信息,使得去噪后的图像拥有更加丰富的细节信息,这一方法类似于常用的方向滤波算法,但此方法能够表示的方向更多,更精细,关于Steering Kernel的更多细节可以参考论文《Multiscale principal components analysis for image local orientation estimation》,将此时的自适应核函数做如下表示:
K(xi?x,yi?y)≡KHis(xi?x)\mathrm{K}\left(\mathbf{x}_{i}-\mathbf{x}, y_{i}-y\right) \equiv K_{\mathbf{H}_{i}^{\mathrm{s}}}\left(\mathbf{x}_{i}-\mathbf{x}\right) K(xi??x,yi??y)≡KHis??(xi??x)
不同于灰度平滑矩阵Hs\mathbf{H}_{s}Hs?,His=hμiCi?12\mathbf{H}_{i}^{\mathrm{s}}=h \mu_{i} \mathbf{C}_{i}^{-\frac{1}{2}}His?=hμi?Ci?21??是一个2×22×22×2的稠密矩阵,其中Ci\mathbf{C}_{i}Ci?可以简单的用局部灰度值的协方差矩阵来近似,即局部边缘的主方向与梯度协方差是强相关或者说近似等价的:
C^i≈[∑xj∈wizx1(xj)zx1(xj)∑xj∈wizx1(xj)zx2(xj)∑xj∈wizx1(xj)zx2(xj)∑xj∈wizx2(xj)zx2(xj)]\widehat{\mathbf{C}}_{i} \approx\left[\begin{array}{cc} \sum_{\mathbf{x}_{j} \in w_{i}} z_{x_{1}}\left(\mathbf{x}_{j}\right) z_{x_{1}}\left(\mathbf{x}_{j}\right) & \sum_{\mathbf{x}_{j} \in w_{i}} z_{x_{1}}\left(\mathbf{x}_{j}\right) z_{x_{2}}\left(\mathbf{x}_{j}\right) \\ \sum_{\mathbf{x}_{j} \in w_{i}} z_{x_{1}}\left(\mathbf{x}_{j}\right) z_{x_{2}}\left(\mathbf{x}_{j}\right) & \sum_{\mathbf{x}_{j} \in w_{i}} z_{x_{2}}\left(\mathbf{x}_{j}\right) z_{x_{2}}\left(\mathbf{x}_{j}\right) \end{array}\right] C
i?≈[∑xj?∈wi??zx1??(xj?)zx1??(xj?)∑xj?∈wi??zx1??(xj?)zx2??(xj?)?∑xj?∈wi??zx1??(xj?)zx2??(xj?)∑xj?∈wi??zx2??(xj?)zx2??(xj?)?]
其中wiw_{i}wi?表示局部邻域窗口,局部梯度的主方向与其对应的协方差矩阵的特征向量相关,这一相关性可以通过对局部邻域内多个梯度向量进行主成分分析(Principal components analysis,PCA)来得到。首先定义梯度向量矩阵GGG,GGG是一个N×2N×2N×2的矩阵,对GGG进行奇异值分解,分解的结果如下:
Gi=[??zx1(xj)zx2(xj)??]=UiSiViT,x∈wi\mathbf{G}_{i}=\left[\begin{array}{cc} \vdots & \vdots \\ z_{x_{1}}\left(\mathbf{x}_{j}\right) & z_{x_{2}}\left(\mathbf{x}_{j}\right) \\ \vdots & \vdots \end{array}\right]=\mathbf{U}_{i} \mathbf{S}_{i} \mathbf{V}_{i}^{T}, \quad \mathbf{x} \in w_{i} Gi?=??????zx1??(xj?)???zx2??(xj?)???????=Ui?Si?ViT?,x∈wi?
分解的结果中SSS的对角线元素为特征值s1、s2s_{1}、s_{2}s1?、s2?,VVV的第一列表示梯度的主方向,第二列表示灰度的主方向(这两个方向正交),根据此奇异值分解的结果,计算决定平滑矩阵HHH的3个参数:
-
伸缩矩阵
Λi=[ρi00ρi?1];ρi=s1+λ′s2+λ′,λ′≥0\mathbf{\Lambda}_{i}=\left[\begin{array}{cc} \rho_{i} & 0 \\ 0 & \rho_{i}^{-1} \end{array}\right];\rho_{i}=\frac{s_{1}+\lambda^{\prime}}{s_{2}+\lambda^{\prime}}, \quad \lambda^{\prime} \geq 0 Λi?=[ρi?0?0ρi?1??];ρi?=s2?+λ′s1?+λ′?,λ′≥0 -
旋转矩阵
Uθi=[cos?θisin?θi?sin?θicos?θi]\mathbf{U}_{\theta_{i}}=\left[\begin{array}{cc} \cos \theta_{i} & \sin \theta_{i} \\ -\sin \theta_{i} & \cos \theta_{i} \end{array}\right] Uθi??=[cosθi??sinθi??sinθi?cosθi??] -
尺度参数
γi=(s1s2+λ′′N)\gamma_{i}=\left(\frac{s_{1} s_{2}+\lambda^{\prime \prime}}{N}\right) γi?=(Ns1?s2?+λ′′?)
其对原核函数的作用过程如图所示:
最终的平滑矩阵为:
Ci=γiUθiΛiUθiT\mathbf{C}_{i}=\gamma_{i} \mathbf{U}_{\theta_{i}} \mathbf{\Lambda}_{i} \mathbf{U}_{\theta_{i}}^{T} Ci?=γi?Uθi??Λi?Uθi?T?
此时的自适应核函数为:
KHisteer(xi?x)=det?(Ci)2πh2μi2exp?{?(xi?x)TCi(xi?x)2h2μi2}(13)K_{\mathbf{H}_{i}^{\mathrm{steer}}}\left(\mathbf{x}_{i}-\mathbf{x}\right)=\frac{\sqrt{\operatorname{det}\left(\mathbf{C}_{i}\right)}}{2 \pi h^{2} \mu_{i}^{2}} \exp \left\{-\frac{\left(\mathbf{x}_{i}-\mathbf{x}\right)^{T} \mathbf{C}_{i}\left(\mathbf{x}_{i}-\mathbf{x}\right)}{2 h^{2} \mu_{i}^{2}}\right\}\tag{13} KHisteer??(xi??x)=2πh2μi2?det(Ci?)??exp{
?2h2μi2?(xi??x)TCi?(xi??x)?}(13)
本文的核心精神即是用式(13)中的自适应核函数替代经典核回归算法中的高斯核函数,以到达对未知数据更好的预测效果。