Restoring Undersampled Image

download Restoring Undersampled Image

of 9

Transcript of Restoring Undersampled Image

  • 7/29/2019 Restoring Undersampled Image

    1/9

    Image Restoration of Undersampled Radial MRI. Iterative Image

    Reconstruction using Conjugate Gradient Method.

    Nikhil Prakash 09026015

    Objective Function :

    Objective Function is choosen as :

    ()

    2 + lambdaTV * ()

    Penalty Function is Total Variation Constraint with lambdaTV = 0.0001

    Snippet of Objective Function:

    % Objective Functionfunction res = objective(x,dx,t,sampler,data,lambdaTV,lambdaFOV)

    x=x+t*dx;obj = (ifftshift(fft2(ifftshift(x))).*sampler-data.*sampler) ;tv = lambdaTV*totVar(x);

    res=0.5*obj(:)'*obj(:)+tv ;end

    Snippet of Total Variation Operator :

    function tot_var = totVar(x)% Defining the Total Variation Operator using 1st Order DerivativesD_x = filter2([1 -1 0],x,'same'); % Mask used [1 -1 0] and [1;-1;0]D_y = filter2([1;-1;0],x,'same');

    tot_var = sum(sum(sqrt(D_x.*conj(D_x)+D_y.*conj(D_y))));end

    Snippet of Gradient of Objective Function :

    % Gradient of the Objective Functionfunction grad = wGradient(x,sampler,data,lambdaTV,lambdaFOV)gradObj=grdObj(x,sampler,data);grdTV = lambdaTV*gTV(x);grad =gradObj +grdTV ; %end

    Gradient of Objective Function:% Computes the Gradient of the Objective Functionfunction grObj = grdObj(x,sampler,data)

    grObj =

    ifftshift(ifft2(ifftshift(ifftshift(fft2(ifftshift(x))).*sampler-data.*sampler)));end

  • 7/29/2019 Restoring Undersampled Image

    2/9

    Snippet of Gradient of Total Variation Operator :

    function grad = gTV(x)% Compute gradient of TV operator

    D_x = filter2([1 -1 0],x,'same');D_y = filter2([1;-1;0],x,'same');D_xx = filter2([0 -1 1],D_x,'same');D_yy = filter2([0;-1;1],D_y,'same');

    grad = D_xx+D_yy;end

    Convergence of the Objective Function for Brain Image with lambdaTV = 0.0001:

    0 , obj: 1993729273.944331 1 , obj: 511158879.897372 2 , obj: 448736071.395206 3 , obj: 239421067.7290404 , obj: 44255815.614460 5 , obj: 9797835.200128 6 , obj: 2191013.454779 7 , obj: 1255537.926781

    8 , obj: 784721.469961 9 , obj: 565550.364713 10 , obj: 360782.104463 11 , obj: 237225.345347

    12 , obj: 150293.551529 13 , obj: 89562.563465 14 , obj: 78034.751960 15 , obj: 47026.431105

    16 , obj: 32970.266492 0 , obj: 7256.436213 1 , obj: 5748.548632 2 , obj: 2050.210907

    3 , obj: 1859.806695 4 , obj: 816.480357 5 , obj: 196.615224 6 , obj: 48.528138

    7 , obj: 43.166966 8 , obj: 34.421854 9 , obj: 28.663710 10 , obj: 17.827784

    11 , obj: 11.413368 12 , obj: 8.951188 13 , obj: 8.867346 14 , obj: 8.788471

    15 , obj: 5.517849 16 , obj: 5.245826 0 , obj: 3.580483 1 , obj: 3.580483

    2 , obj: 2.695148 3 , obj: 2.695148 4 , obj: 2.693104 5 , obj: 2.692754

    6 , obj: 2.692661 7 , obj: 2.692651 8 , obj: 2.692625 9 , obj: 2.692600

    10 , obj: 2.692596 11 , obj: 2.692594 12 , obj: 2.692592 13 , obj: 2.692589

    14 , obj: 2.692589 15 , obj: 2.692588 16 , obj: 2.692588 0 , obj: 2.692330

    1 , obj: 2.692330 2 , obj: 2.692330 3 , obj: 2.692330 4 , obj: 2.692330

    5 , obj: 2.692330 6 , obj: 2.692330 7 , obj: 2.692330 8 , obj: 2.692330

    9 , obj: 2.692330 10 , obj: 2.692330 11 , obj: 2.692330 12 , obj: 2.692330

    13 , obj: 2.692330 14 , obj: 2.692330 15 , obj: 2.692330 16 , obj: 2.692330

    0 , obj: 2.692330 1 , obj: 2.692330 2 , obj: 2.692330 3 , obj: 2.692330

    4 , obj: 2.692330 5 , obj: 2.692330 6 , obj: 2.692330 7 , obj: 2.692330

    8 , obj: 2.692330 9 , obj: 2.692330 10 , obj: 2.692330 11 , obj: 2.692330

    12 , obj: 2.692330 13 , obj: 2.692330 14 , obj: 2.692330 15 , obj: 2.692330

    16 , obj: 2.692330

    Elapsed time is 412.222283 seconds.

    Convergence of the Objective Function for Brain Image with lambdaTV = 0:

    0 , obj: 1992954498.853955 1 , obj: 510937356.936636 2 , obj: 448426869.455990

    3 , obj: 239070799.424310 4 , obj: 44149222.438662 5 , obj: 9766538.244048 6 , obj: 2184625.687752

    7 , obj: 1250896.034374 8 , obj: 780470.057160 9 , obj: 562839.203280 10 , obj: 358407.283518

    11 , obj: 235882.818957 12 , obj: 149535.225477 13 , obj: 88759.968849 14 , obj: 77441.706478

    15 , obj: 46666.113689 16 , obj: 32759.488751 0 , obj: 7210.004195 1 , obj: 5645.271527

    2 , obj: 2037.207402 3 , obj: 1825.739828 4 , obj: 809.469998 5 , obj: 202.496006

    6 , obj: 46.639225 7 , obj: 37.851836 8 , obj: 29.582820 9 , obj: 27.280930

    10 , obj: 16.610719 11 , obj: 7.573183 12 , obj: 5.588259 13 , obj: 2.810791

    14 , obj: 1.426893 15 , obj: 0.623316 16 , obj: 0.489831 0 , obj: 0.070924

    1 , obj: 0.048217 2 , obj: 0.039335 3 , obj: 0.035199 4 , obj: 0.0236155 , obj: 0.012671 6 , obj: 0.008235 7 , obj: 0.004060 8 , obj: 0.003114

  • 7/29/2019 Restoring Undersampled Image

    3/9

    9 , obj: 0.001458 10 , obj: 0.001006 11 , obj: 0.000600 12 , obj: 0.000297

    13 , obj: 0.000265 14 , obj: 0.000151 15 , obj: 0.000111 16 , obj: 0.000102

    0 , obj: 0.000025 1 , obj: 0.000018 2 , obj: 0.000007 3 , obj: 0.000003

    4 , obj: 0.000003 5 , obj: 0.000001 6 , obj: 0.000001 7 , obj: 0.000001

    8 , obj: 0.000001 9 , obj: 0.000000 10 , obj: 0.000000 11 , obj: 0.000000

    12 , obj: 0.000000 13 , obj: 0.000000 14 , obj: 0.000000 15 , obj: 0.000000

    16 , obj: 0.000000 0 , obj: 0.000000 1 , obj: 0.000000 2 , obj: 0.000000

    3 , obj: 0.000000 4 , obj: 0.000000 5 , obj: 0.000000 6 , obj: 0.000000

    7 , obj: 0.000000 8 , obj: 0.000000 9 , obj: 0.000000 10 , obj: 0.000000

    11 , obj: 0.000000 12 , obj: 0.000000 13 , obj: 0.000000 14 , obj: 0.000000

    15 , obj: 0.000000 16 , obj: 0.000000

    Elapsed time is 75.649507 seconds.

    Proof of Convergence of Total Variation Operator:

    0 , obj: 15282.439602 1 , obj: 13127.096903 2 , obj: 9223.040683 3 , obj: 7237.221140

    4 , obj: 6399.667856 5 , obj: 5125.834846 6 , obj: 4656.835214 7 , obj: 3899.267395

    8 , obj: 3404.062485 9 , obj: 3013.188067 10 , obj: 2652.292002 11 , obj: 2404.600366

    12 , obj: 2136.392473 13 , obj: 1952.372743 14 , obj: 1769.725970 15 , obj: 1628.12915916 , obj: 1487.427056 0 , obj: 1464.149595 1 , obj: 1461.809791 2 , obj: 1401.736620

    3 , obj: 1389.461512 4 , obj: 1229.434364 5 , obj: 1129.120526 6 , obj: 1063.352190

    7 , obj: 1017.786372 8 , obj: 995.905994 9 , obj: 976.440610 10 , obj: 952.905847

    11 , obj: 936.946186 12 , obj: 915.108980 13 , obj: 908.842721 14 , obj: 904.323093

    15 , obj: 871.524397 16 , obj: 861.322039 0 , obj: 749.905477 1 , obj: 705.985899

    2 , obj: 693.366423 3 , obj: 674.274457 4 , obj: 664.416862 5 , obj: 659.423687

    6 , obj: 652.854873 7 , obj: 648.419987 8 , obj: 644.428143 9 , obj: 639.430398

    10 , obj: 630.034076 11 , obj: 629.667666 12 , obj: 621.854552 13 , obj: 621.118518

    14 , obj: 620.840786 15 , obj: 608.279999 16 , obj: 606.192425 0 , obj: 597.323850

    1 , obj: 592.371200 2 , obj: 589.989561 3 , obj: 575.425214 4 , obj: 569.537686

    5 , obj: 566.219742 6 , obj: 562.304779 7 , obj: 560.209643 8 , obj: 559.748286

    9 , obj: 558.520389 10 , obj: 553.687262 11 , obj: 553.269843 12 , obj: 550.783220

    13 , obj: 547.105553 14 , obj: 542.421604 15 , obj: 539.394905 16 , obj: 534.266129

    0 , obj: 526.599844 1 , obj: 525.564364 2 , obj: 522.686665 3 , obj: 520.712948

    4 , obj: 515.440048 5 , obj: 511.713100 6 , obj: 509.297076 7 , obj: 506.155038

    8 , obj: 505.961005 9 , obj: 504.188587 10 , obj: 503.189197 11 , obj: 502.899314

    12 , obj: 499.600659 13 , obj: 498.571091 14 , obj: 496.375706 15 , obj: 494.567194

    16 , obj: 493.706012

    Elapsed time is 55.155752 seconds.

  • 7/29/2019 Restoring Undersampled Image

    4/9

    Initial Degraded Image

  • 7/29/2019 Restoring Undersampled Image

    5/9

    Final Restored Image with lambda = 0.0001

  • 7/29/2019 Restoring Undersampled Image

    6/9

    Restored Image with lambdaTV = 0

  • 7/29/2019 Restoring Undersampled Image

    7/9

    Image Resulted with only TV Operator

  • 7/29/2019 Restoring Undersampled Image

    8/9

    Restored Image of Phantom with lambda = 0.0001

  • 7/29/2019 Restoring Undersampled Image

    9/9

    A Better Stopping Criterion

    After some Iterations Value of Objective Function gets stabilized and thus code needs to be stopped

    Thus a Stopping criteria is needed in the following while loop:

    while (f1 > f0 - alpha*t*abs(g0(:)'*dx(:)))^2 & (lsiter 6break;

    endend

    FOV Penalty Function :

    Square of 384x384 centred at (256,256) is used as FOV.

    FOV Penalty function was used but the function introduced didnt converged

    % Choosing FOV as a square of size 384 centred at (256,256)

    % Computes FOV Operatorfunction fov = calc_fov(x)

    y = x;for i=64:448

    for j=64:448y(i,j) = 0;

    endendfov = sum(sum(y.*y));

    end

    % Computes grad FOV Operatorfunction grd_fov = calc_grad_fov(x)

    y=x;for i=64:448

    for j=64:448y(i,j) = 0;

    endendgrd_fov = sum(sum(2*y));

    end