Thread Subject: The unstableness of my total variation denoising

Subject: The unstableness of my total variation denoising

From: sheng fang

Date: 17 Jun, 2009 11:22:02

Message: 1 of 1

I am using the gradient descent method for total variation regularized reconstruction. Specifically, the following code is used for the time evolution:

     xi = xi + tau*( Num./ Den*lambda + fidelity);

where the Num./Den is the PDE flow computed using the upwind finite difference scheme and the lambda is the regularization parameter. Besides, the smoothing parameter for TV norm is set as: eps=1 and the tau=0.2;

I found that the solution becomes highly unstable, if I increased the lambda for strong regualrization. Personally, I think this is because the CFL condition is broken. However, I didn't see any literature mentioned this problem. Is there a mistake in the parameter selection such as tau and eps or is this a common phenomenon?

Another question is how to choose the eps? In my case, it seems that eps below one may make the Den too small and result in a very large flow at some pixels. And the whole image was ruinted. However, I remembered that a small eps will have better denoising result. So I don't know how to handle these two things simultaneously.
And I sincerely hope you guys can give me some suggestions.
Thank you so much in advance!

################################################
P.S.
Bellow is a full version of my code for the total variation reconstruction:

for kk = 1:n_iter
    tic

    % compute the fidelity term A'b - A'Ax
    q = compAx(xi,s,options);
    fidelity = b - q; % fidelity = A'b - A'Ax

        I_x = (xi(:,[2:nx nx])-xi(:,[1 1:nx-1]))/2;
        I_y = (xi([2:ny ny],:)-xi([1 1:ny-1],:))/2;
        I_xx = xi(:,[2:nx nx])+xi(:,[1 1:nx-1])-2*xi;
        I_yy = xi([2:ny ny],:)+xi([1 1:ny-1],:)-2*xi;
        Dp = xi([2:ny ny],[2:nx nx])+xi([1 1:ny-1],[1 1:nx-1]);
        Dm = xi([1 1:ny-1],[2:nx nx])+xi([2:ny ny],[1 1:nx-1]);
        I_xy = (Dp-Dm)/4;

       % compute flow
        Num = I_xx.*(ep2+I_y.^2)-2*I_x.*I_y.*I_xy+I_yy.*(ep2+I_x.^2);
        Den = (ep2+I_x.^2+I_y.^2).^(3/2);

       %% evolve image by options.tau
        xi=xi+options.tau*(Num./Den*lambda + fidelity);

   toc
end

Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
regularization sheng fang 19 Jun, 2009 03:21:44
image restoration sheng fang 18 Jun, 2009 02:32:52
image denoising sheng fang 18 Jun, 2009 02:32:42
tv sheng fang 17 Jun, 2009 07:24:03
cfl condition sheng fang 17 Jun, 2009 07:24:03
total variaion sheng fang 17 Jun, 2009 07:24:03
image processing sheng fang 17 Jun, 2009 07:24:03
rssFeed for this Thread

Contact us at files@mathworks.com