图像处理中的正则化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1两个重要的方法
在前面的章节中SVD分析激发了谱过滤方法的使用,因为这些方法使我们通过过滤因子能控制模糊图像的谱的内容。实现谱过滤方法必须通过选择计算出的解
,(6.1)
中的过滤因子 。
为了获得一个有理想性质的解。这些方法受坐标系 和坐标系 的影响,其中坐标系 由向量 决定,坐标系 由向量 决定。操作b的数据
尽管条件数大,但是我们能把近似解通过正则化得到精确解的原因是谱滤波抑制了逆噪音同时使正则误差也变小(因为图像去模糊问题满足离散Picard条件,即解用谱表示时,精确的右边向量表示decaying expansion coefficient)。
噪音主要影响的是高频元素,而高频元素与小的奇异值有关而且它会被谱滤波方法抑制。78也最后
idx=(S~=0);
Sfilt=zeros(size(Phi));
Sfilt(idx)=Phi(idx)./S(idx);
6.3正则误差和扰动误差
为了更好的理解谱滤波方法的机制和正则性,我们现在看一下正则解 的误差。就SVD而言,(6.6)式可以表示TSVD解和Tikhonov解。由(6.6)式,我们可以容易的区分正则解得两种不同类型的误差,具体的得到

当噪声在一些方向 上的大小超过了奇异值 的大小时这个值是很大的。因此,我们也要保持
相当小,我们(6.4)中的最小化问题要确保 的残差范数和解 的范数有点小。
在去模糊处理中除了SVD坐标系 b外,傅里叶坐标系 也经常被用到.过滤是用来消除噪音影响的。用 代替符号b,其中是正交傅里叶变换矩阵的一行。对于低通滤波器,低频元素对应的过滤因子接近1,对应于高频元素的过滤因子接近0。
(6.2)
参数 称为截断参数决定了正则解中奇异值的数量。注意 总满足 。例如,这是一种用于计算图5.6所示的解的方法。
2.Tikhonov方法.对于这种方法,我们定义过滤因子为
(6.3)
其中 称为正则化参数,这个参数的选择得到了最小化问题
,(6.4)
的解向量 。
正如我们将在第7.2节中讨论的那样。我们希望 要很小得到了(6.4)这个问题,但如果我们选择 使它等于0,则
S=diag(Sc) * diag(Sr)’;
Sfilt=Phi./S;
Xfilt=Vc*((Uc’*B*Ur).*Sfilt)*Vr’;
我们在上文中除了给出TSVD截断参数应该满足 和Tikhonov正则参数应该满足 外并没有给出如何选择TSVD方法的参数 和Tikhonov方法的参数 。下面我们讨论一些选择以上参数的自动方法,现在我们可以通过实验选择它们。例如,在TSVD中,我们可以指定限度小于使所有奇异值都被截断的数。在这种情况下,滤波因子可以用MATLAB很容易的计算出,即Phi=(abs(S)>=tol);。通过实验不同的tol值和显示得到的滤波解Xfilt,我们可以看到正则的效果。
S=dct2(dctshift(P,center))./dct2(e1);
Sfilt=Phi./S;
Xfilt=idct2(dct2(B).*Sfilt);
对于可分离的PSF,用
[Ar, Ac]=kronDecomp(P, center, BC);
[Uc, Sc, Vc]=svd(Ac);
[Ur, Sr, Vr]=svd(Ar);
在第4章中,我们讲了(1)由图像去模糊问题导出的各种结构矩阵;(2)如何高效的计算这些矩阵的SVD和谱分解;(3)如何高效的计算(6.5)的naïve解(参看VIPs 10,11,12)
因为表达式(6.6)只是(6.5)式的一个变式,所以它对于第4章中的结构矩阵也能高效的实现滤波方法。我们可以把(6.6)式写成
本节最后,我们看一下Sfilt=Phi./S的计算。如果S中一些奇异值是0,则MATLAB会产生“除数为0”的警告,Sfilt中的一些值会被赋值成Inf或者NaN。为了避免这种情况的发生,我们可以仅对S中的非0元进行操作,把Sfilt中0奇异值对应的元素赋值为0。这样的话我们可以用一个逻辑数组idx=(S~=0)来表示S中非0元素的位置,这样除法就可以实现了。如下是修改后除法的MATLAB表示
在Tikhonov正则的情况中,我们可以为 指定一个值,通过奇异值计算滤波因子,如下:
Phi=abs(S).^2./(abs(S).^2+alpha^2);
当用FFTs时,abs命令必须用。通过实验不同的alpha值和显示得到的滤波解Xfilt,我们可以看到正则的效果。
图6.2是TSVD方法和Tikhonov方法作用到图1.2的南瓜模糊图像上得到的效果图。对两种方法都用反射边界条件,正则参数选择的使图像更清晰。两种方法都恢复了模糊图像的一些细节,但是,TSVD方法得到的图像上产生了一些微粒。
图像处理中的正则化
二维的图像可以分解成不同的频率成分。其中,低频成分描述大范围的信息,而高频成分描述具体的细节。
在灰度图像中,亮度变化小的区域主要是低频成分,而亮度变化剧烈的区域(比如物体的边缘)主要是高频成分。
前一章说明当噪声存在时过滤是必要的。这章需要仔细看看过滤。过滤也称为正则化,因为它可以解释成对解执行特定规律的条件。正规化的程度是由一个正则化参数决定的,这个参数应该仔细选择。我们本章主要关注两个正则化方法(TSVD和Tikhonov)和三个计算正则化参数的方法(差异原则,广义交叉验证和L-曲线标准).
为了更深的理解这个问题,我们考虑正则误差的范数。因为 , ,所以
由Picard条件知,系数 是衰减的。因为滤波因子 接近1,因式 抑制了大系数 。滤波因子 对应的因式 接近1,它和小的系数 相乘。因此,如果滤波因子能够合理的选择,则正则误差的范数就不会很大。
6.4参数选择方法
对于不适定问题,正则参数的选择要结合良好的启发式和观测噪音的先验知识。我们这节介绍三个重要的参数选择方法:差异原则,广义交叉验证和L-曲线标准。
其中 。因此,如果滤波因子已经给出,则很容易修改VIPs 10,11,12去计算
对于许多结构矩阵都可以高效的计算出 ,以下是计算 的算法
给定
P=PSF
center=[row,col]=center of PSF
B=blurred image
BC=string denoting boundary condition(e.g.,’zero’)
对于下面的讨论,公式
(6.8)和
(6.9)
对于TSVD方法,解 的范数是关于 的单调非减函数,残差范数是 的单调非增函数。类似的,对于Tikhonov方法,解 的范数是关于 的单调非增函数,残差范数是 的单调非减函数。
1.差异原则
这意味着,如果我们选择 ,则对于小的指标 , ,对于大的指标 , ,对于一个给定的 ,在该“断点”的过滤因子变化的本质是在该指标处 。
6.2波滤方法的实现
如果我们假设 的所有奇异值是非零的,那么这个naive解可以写成
(6.5)
类似地,谱过滤解可以写为
(6.6)
其中 是一个对角矩阵,其中包含了特定方法的滤波因子 (例如,TSVD方法的滤波因子为1和0,Tikhonov的滤波因子为 )。如果谱分解存在的话,(6.5)和(6.6)的关系类似的可以写成谱分解的形式。
正则参数的变化会改变 和两类误差。当很多滤波因子 接近1时,正则误差会很小,但是,扰动误差会变大(逆噪音控制了解),我们称解是undersmoothed。另一方面,当少数的滤波因子接近1时,正则误差大扰动误差小,我们称解是oversmoothed。正则参数选择时要平衡这两种类型的误差。
图6.3说明了正则误差和扰动误差随着正则参数变化而变化的情况。与图5.6的问题一样,用TSVD正则方法,我们看到当 时,两种类型的误差平衡。
因此, 的误差可以写成
(6.7)
可以看出误差包含两个不同的部分。
1.正则误差。第一项 是正则误差,它是由正则逆矩阵 代替 引起的。矩阵 描述了精确解和滤波解的关系,如果 ,因为 则正则误差是0, 越接近单位矩阵正则误差越小。
2.扰动误差。第二项 是扰动误差,它包含逆噪音和滤波噪音。如果 ,扰动误差为0,。当大部分滤波因子多很小或者为0时,逆噪音会被严重的抑制(扰动误差很小)。
上面提到的坐标系是谱坐标系,因为这些向量分别是 和 的特征向量。
我们wk.baidu.com到了精确的求解方程组 ,当数据被噪声污染时得不到一个好的解。相反,我们通过(5.3)中的过滤展式过滤光谱解,使得在 方向上解的元素按过滤因子 缩放,而且可以减小误差在 中的影响。在这一节中我们讨论两个最重要的谱过滤方法。
1.TSVD方法.对于这个方法,我们定义对于大奇异值过滤因子的大小为1,对于其他奇异值过滤因子为0。更确切地说,
TSVD和Tikhonov方法和这个方法是类似的。更多傅里叶滤波法的信息可参见
3.傅里叶波滤法
我们现在考虑参数 选择的效果。先考虑对于 的过滤因子 。则,
利用泰勒展开 ,我们得到
接下来,我们考虑对于 的一个过滤因子 。再次使用 的泰勒扩展,得到
因此,我们可以得出这样的结论:Tikhonov过滤因子满足
Phi=filter factors
对于周期边界条件的结构矩阵,用
S=fft2(circshift(P,1-center));
Sfilt=Phi./S;
Xfilt=real(ifft2(fft2(B).*Sfilt));
对于有双对称PSF的反射边界条件的结构矩阵,用
E1=zeros(size(P));,e1(1,1)=1;
相关文档
最新文档