<div dir="ltr"><div>Hi,</div><div>This looks good to me, I haven't spotted anything completely wrong. Note that without regularization, this is known to diverge after some iterations because it starts to fit the noise.</div><div>I think SARTConeBeamReconstructionFilter will do something similar if you set <a href="http://www.openrtk.org/Doxygen/classrtk_1_1SARTConeBeamReconstructionFilter.html#a54db8838b0956a00df262f3595f4f7ef">NumberOfProjectionsPerSubset</a> to the number of projections in your stack but it includes an additional normalization term to account for the raylength. Since you don't have that, I think you need a very small alpha. But 1e-5 should be small enough so maybe you can check against it to see if the algorithms go in the same direction.</div><div>The code is available online but we don't have any implementation details to provide. CG is quite hard to grasp but SART should be easy enough to follow.</div><div>Simon<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 2, 2020 at 4:03 AM Zhang, Zhehao <<a href="mailto:zhehao.zhang@wustl.edu">zhehao.zhang@wustl.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div lang="EN-US">
<div class="gmail-m_-3225372688880927877WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hi all,</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I have used RTK for a while, first of all, thanks for providing this great software.
</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am trying to perform some iterative CBCT reconstruction with a specifically defined regularization term recently. Since this regularization is not TV nor wavelet, I may not be able to directly use those RTK provided filters, like ‘ConjugateGradientConeBeamReconstructionFilter’.
What I want is simply use gradient descent method and calculate the gradient of (1/2) ||(Rf - P)||^2 and my regularization term. I got some problems on how to get the gradient of (1/2) ||(Rf - P)||^2 , which should be R*(Rf - p), f is the required results,
p is measured projections and R is forward projections. Hope to get some hints for you.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Fow now, I tried to directly <span style="color:black">use ‘JosephForwardProjectionImageFilter’ and ‘JosephBackProjectionImageFilter’ to achieve this goal, however, the acquired values seems to be really large after several iterations.
I think I must made something wrong. Could you please give me some suggestions about this problem if I want to utilize RTF to get gradient? Or is there any implementation detail of CG/SIRT</span> filters that we can access (I am not sure if it is public)?
I put my current code here (<a href="https://drive.google.com/file/d/1GPuoYHk4ACe5VDnVwZlsIzK1OHrM2AdK/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1GPuoYHk4ACe5VDnVwZlsIzK1OHrM2AdK/view?usp=sharing</a>)</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you very much and best regards.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Zhehao</p>
</div>
</div>
_______________________________________________<br>
Rtk-users mailing list<br>
<a href="mailto:Rtk-users@public.kitware.com" target="_blank">Rtk-users@public.kitware.com</a><br>
<a href="https://public.kitware.com/mailman/listinfo/rtk-users" rel="noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/rtk-users</a><br>
</blockquote></div>