首页 > 编程知识 正文

canny算子阈值怎么取,常用阈值函数

时间:2023-05-04 03:13:49 阅读:63484 作者:3626

主题:软阈值函数解读

1、软阈值(Soft Thresholding )函数的符号软阈值(Soft Thresholding )目前非常常见,文献【1】【2】首先提出了这一概念。 总结软阈值表达式的表达方式,常见的有三种,以下为各文献中的软阈值定义符号。

文献【1】式(12 ) :

文献【2】:

文献【3】:

文献【4】式(8) :

文献【5】式(1.5 ) :

文献【6】式(12 )注释:

文献【7】:

其中文献【1】【2】【3】【5】为第一类,是最常见的一种。 文献【4】【6】是第二个,个人认为可读性比第一个好,文献【7】是第三个,个人认为可读性最好。 当然,那些表达的意思是一样的。 (无论是sgn(x)还是sign(x)都是符号函数,即当x0时为1,当x0时为-1) :

以文献【1】符号为例说明第一种显示方式。 这里,w表示变量,表示阈值(非负值),符号(w|-)表示)|w|-) 0时|w|-,(w|-) 0时) 0。 那么,分三个案例进行研究。 如果第一种情况为w0,则SgN(w )=1,|w|=w,)|-)一定大于0,(|w|-)|-,因此s ) w,)=w-; 第二个是w-0的情况下,SgN(w )=-1,|w|=-w,)|-)也一定大于0,(|w|-)=|w|-,所以s )=-1 )-w- 3 于是,我

以文献【6】符号为例说明第二种显示方式。 符号max{|u|-a,0}在该标记法中作用与符号(|w|-)在第一标记法中的作用相同. 即,) u|-a ) 0时最大)|-u,0 )=)|u|-a ),时()|u0

综上所述,三种显示方式都一致。

2、在阐明软阈值(Soft Thresholding )函数的作用是软阈值(Soft Thresholding )的符号表示后,接下来说明其作用。 以下内容主要参考了文献【7】。 这是非常棒的PPT!

“软阈值”(SoftThresholding )可解决以下优化问题:

其中:

根据问犀的定义,可以分解以上优化问题的目标函数:

也就是说,通过求解n个独立的形式,例如函数

已经过优化以解决问题。 从中学时代学习的求极值的方法可以看出,可以求出函数f(x )导数。

现在说明变量x绝对值的导数,x0时,|x|=x,所以该导数为1; x0时,|x|=-x,因此导数为-1; 综合起来,x绝对值的导数等于SGN(x )。 如果函数f(x )的导数为0,则为:

结果等号两端有变量x,需要再简化一点。 分以下三种情况进行讨论。

)1) b/2时

假设x0,则SgN(x )=-1,因此x=b /20,与假设x0矛盾;

假设x0,则SgN(x )=1,因此x=b-/20,成立;

因此,在这种情况下,在x=b-/20时取极小值:

即,此时极小值小于f(0),x0时

即,x0时的函数f(x )是单调减少函数(对于任意的x0,f )0) f ) x )。 因此,函数在x=b-/20时取最小值。

)2) b-/2时

假设x0,则SgN(x )=-1,因此x=b /20,成立;

假设x0,则SgN(x )=1,因此x=b-/20,与假设x0矛盾;

        所以此时在x=b+λ/2<0处取得极小值:

        即此时极小值小于f(0),而当x>0时

        即当x>0时函数f(x)为单调升函数(对任意△x>0,f(△x)>f(0))。因此,函数在x=b+λ/2<0处取得最小值。

(3)当-λ/2<b<λ/2时(即|b|<λ/2时)

        假设x<0,则sgn(x)=-1,所以x=b+λ/2>0,与假设x<0矛盾;

        假设x>0,则sgn(x)=1,所以x=b-λ/2<0,与假设x<0矛盾;

        即无论x为大于0还是小于0均没有极值点,那么x=0是否为函数f(x)的极值点呢?

        对于△x≠0,

        当△x >0时,利用条件b<λ/2可得

        当△x <0时,利用条件b<λ/2可得(注:此时|△x |=-△x)

        因此,函数在x=0处取得极小值,也是最小值。

        综合以上三种情况,f(x)的最小值在以下位置取得:

        与前面的软阈值(Soft Thresholding)对比一下,发现了么?若将上式中的b视为变量,λ/2视为阈值,上式即为软阈值(SoftThresholding)的公式。

        至此,我们可以得到优化问题

的解为

        注:该式为软阈值(Soft Thresholding)的矩阵形式。

3、软阈值(Soft Thresholding)的变形

        当优化问题变为

        因为对目标函数乘一个常系数不影响极值点的获得,所以可等价为优化问题

此时的解为soft(B, λ)。

4、软阈值(Soft Thresholding)的MATLAB代码

        软阈值(Soft Thresholding)的函数代码可以写成专门针对优化问题

        软阈值(Soft Thresholding)是如此简单以至于可以用一句代码去实现它[8]:

        当然,如果不习惯这种形式,也可以写成常见的函数形式:

function [ soft_thresh ] = softthresholding( b,lambda ) soft_thresh = sign(b).*max(abs(b) - lambda/2,0);end

        一定要注意:这种写法是针对最开始的优化问题:

        但我个人感觉更应该写成这种通用形式:

function [ x ] = soft( b,T ) x = sign(b).*max(abs(b) - T,0);end

        如此之后,若要解决优化问题

只需调用soft(B, λ/2)即可;若要解决优化问题


只需调用soft(B, λ)即可。

5、软阈值(Soft Thresholding)测试代码

        用以下一小段代码测试一下软阈值,用来求解优化问题:

这里用的对比函数是基追踪降噪(BPDN_quadprog.m),参见压缩感知重构算法之基追踪降噪(Basis PursuitDe-Noising, BPDN) (http://blog.csdn.net/jbb0523/article/details/52013669),使用BPDN时,实际上就是观测矩阵为单位阵时的一种特殊情况:

clear all;close all;clc; b = [-0.8487 -0.3349 0.5528 1.0391 -1.1176]';lambda = 1;x1=soft(b,lambda)x2=BPDN_quadprog(b,eye(length(b)),lambda)fprintf('nError between soft and BPDN = %fn',norm(x1-x2))

这里就不给出输出结果了。运行后,观察输出结果可知,soft函数与BPDN_quadprog函数的输结果相同。

        另外,可以在matlab里输入以下命令看一个软阈值的图像:

x=-5:0.1:5;T=1;y=soft(x,T);plot(x,y);grid;


6、总结

        可以发现,软阈值解决的优化问题和基追踪降噪问题很像,但并不一样,而且需要格外说明的是,软阈值并能不解决基追踪降噪问题,文献【8】在最后明确说明了这一点:

        近来学习研究各种算法,发现给自己挖的坑有点深,有点跳不出来了,各种问题接踵而来,各种新概念一个接着一个,而软阈值(Soft Thresholding)就是其中之一,根本没法子绕过去。在文献【6】中,作者描述软阈值(Soft Thresholding)时用的是“the well-known soft-threshold function”,好吧,还well-kown。在学习过程中文献【9】对我帮助也挺大的,但从作者的语气来看,也没有多么well-kown啊……

        最后,非常感谢文献【7】的PPT,看了之后让我有一种醍醐灌顶的感觉……

7、参考文献

【1】Donoho D L, JohnstoneJ M. Ideal spatial adaptation by wavelet shrinkage[J]. Biometrika, 1994, 81(3):425-455.

【2】Donoho D L.De-noising by soft-thresholding[J]. IEEE transactions on information theory,1995, 41(3): 613-627.

【3】Bredies K, Lorenz D.Iterative soft-thresholding converges linearly[R]. Zentrum fürTechnomathematik, 2007.

【4】Bioucas-Dias J M,Figueiredo M A T. A new TwIST: two-step iterative shrinkage/thresholdingalgorithms for image restoration[J]. IEEE Transactions on Image processing,2007, 16(12): 2992-3004.

【5】Beck A, Teboulle M. Afast iterative shrinkage-thresholding algorithm for linear inverse problems[J].SIAM journal on imaging sciences, 2009, 2(1): 183-202.

【6】Wright S J, Nowak RD, Figueiredo M A T. Sparse reconstruction by separable approximation[J]. IEEETransactions on Signal Processing, 2009, 57(7): 2479-2493.

【7】傻傻的小馒头.IteratedSoft-Thresholding Algorithm[Report,slides]. http://www.sigvc.org/bbs/thread-41-1-2.html

【8】http://www.simonlucey.com/soft-thresholding/

【9】http://blog.sina.com.cn/s/blog_6d0e97bb01015vq3.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。