[Rtk-users] Python Wrapping

Cyril Mory cyril.mory at uclouvain.be
Fri Mar 18 09:31:33 EDT 2016


Hi again,

You got the SART filter right. As for the conjugate gradient, the filter 
is actually ConjugateGradientConeBeamReconstructionFilter (for the 3D 
non-regularized reconstruction) and 
RegularizedConjugateGradientConeBeamReconstructionFilter (its 
regularized counterpart).

The filter you found, 
FourDConjugateGradientConeBeamReconstructionFilter, is used for 4D 
reconstruction (you need a cardiac or respiratory phase signal). Its 
regularized counterpart is FourDROOSTERConeBeamReconstructionFilter.

In addition to those, RTK also has 
ADMMTotalVariationConeBeamReconstructionFilter and 
ADMMWaveletsConeBeamReconstructionFilter, which implement the 
Alternating Direction Method of Multiplier algorithm.

You can find a description of these algorithms in 
https://hal.inria.fr/tel-00985728/document

Note that the SART filter has a m_NumberOfProjectionsPerSubset member. 
Setting it to 1 (default) gives you SART, setting it to n with 1 < n < 
TotalNumberOfProjections gives you OS-SART, and setting it to 
n=TotalNumberOfProjections gives you SIRT.

That's pretty much all there is in RTK at the moment.
Cyril

On 03/18/2016 02:11 PM, Johnson Keiriz wrote:
> Hello,
> Can you please confirm that the following classes are the ones used 
> for the iterative reconstruction:
> 1 - SART: SARTConeBeamReconstructionFilter
> 2- Conjugate gradient: FourDConjugateGradientConeBeamReconstructionFilter
>
> Is there a 3D conjugate gradient?
> Are these the only classes for iterative reconstruction?
>
> Thanks,
> Johnson
>
> On 3/18/2016 4:12 AM, Cyril Mory wrote:
>> Hi Johnson,
>>
>> Regarding the iterative methods:
>> - In SART, you can use the CUDA forward and back projectors, but the 
>> rest of the calculation is performed on CPU. We do not use SART a 
>> lot, so we have not fully optimized it.
>> - Conjugate gradient, on the other hand, is entirely performed on the 
>> GPU. Note that a regularized conjugate gradient reconstruction filter 
>> is also available (with total variation denoising, wavelets 
>> denoising, and positivity enforcement)
>>
>> I hope you will find what you need,
>> Regards,
>> Cyril
>>
>> On 03/17/2016 08:54 PM, Johnson Keiriz wrote:
>>>
>>> Hello,
>>>
>>> I did rebuild and now things are working. I tested reconstruction 
>>> with and without the filtering and there were differences. Though, I 
>>> am not sure that filtering have provided a better reconstruction.
>>>
>>> I want to experiment the iterative methods. Can you please confirm 
>>> for me which iterative method are fully implemented in CUDA: is it 
>>> the conjugate gradient or SART ?
>>>
>>> I have noticed that they are not wrapped at all, any guide on how to 
>>> introduce new filters?
>>>
>>> Once I have tested my wrapping, I will submit a github pull-request.
>>>
>>> Thanks,
>>>
>>> Johnson
>>>
>>> *From:*simon.rit at gmail.com [mailto:simon.rit at gmail.com] *On Behalf 
>>> Of *Simon Rit
>>> *Sent:* Thursday, March 17, 2016 1:54 PM
>>> *To:* Johnson Keiriz
>>> *Cc:* rtk-users at public.kitware.com
>>> *Subject:* Re: [Rtk-users] Python Wrapping
>>>
>>> Hi,
>>>
>>> Good! Indeed, many things are not wrapped. There is a trick 
>>> regarding modifications of the wrappings. You need to either start 
>>> from scratch the compilation or delete the file 
>>> SimpleRTK-prefix/src/SimpleRTK-stamp/SimpleRTK-configure. This will 
>>> trigger a reconfiguration of the SimpleRTK and, hopefully, account 
>>> for your modifications.
>>>
>>> Don't hesitate to submit a github pull-request when you have 
>>> something working.
>>>
>>> Simon
>>>
>>> On Thu, Mar 17, 2016 at 4:33 PM, Johnson Keiriz 
>>> <jkeiriz at theobjects.com <mailto:jkeiriz at theobjects.com>> wrote:
>>>
>>> Hello again,
>>>
>>> I found out about the json wrapping files. I added the wrapping for 
>>> all the filters, but I haven’t noticed any effect from setting the 
>>> filters !!!
>>>
>>> Any hints ?
>>>
>>> Regards,
>>>
>>> Johnson
>>>
>>> *From:*Rtk-users [mailto:rtk-users-bounces at public.kitware.com 
>>> <mailto:rtk-users-bounces at public.kitware.com>] *On Behalf Of 
>>> *Johnson Keiriz
>>> *Sent:* Thursday, March 17, 2016 9:23 AM
>>> *To:* rtk-users at public.kitware.com 
>>> <mailto:rtk-users at public.kitware.com>; Simon Rit
>>> *Subject:* [Rtk-users] Python Wrapping
>>>
>>> Hello,
>>>
>>> I am using the Python wrapped version of RTK. I have a question 
>>> regarding the wrapping:
>>>
>>> It seems that not all functionality is available, for example: for 
>>> the *CudaFDKConeBeamReconstructionFilter, *I was not able to set the 
>>> cut frequency of the any of the filters
>>>
>>> (RamLaK, Cosine, ShepLogan) except for the Hann . Are the methods 
>>> not wrapped ?
>>>
>>> Thanks,
>>>
>>> Johnson
>>>
>>> *Description: cid:image002.jpg at 01CB5984.4EABACE0*
>>>
>>> 	
>>>
>>> *Johnson Keiriz, PhD
>>> Senior Software Engineer*
>>>
>>> 760 St-Paul W, #101
>>> Montreal, QC
>>> Canada  H3C 1M4
>>> tel: (514) 843-3861 <tel:%28514%29%20843-3861>
>>> ext 217
>>>
>>> 	
>>>
>>>
>>>
>>> _______________________________________________
>>> Rtk-users mailing list
>>> Rtk-users at public.kitware.com
>>> http://public.kitware.com/mailman/listinfo/rtk-users
>>
>
> -- 
>
> *Johnson Keiriz, PhD
> Senior Software Engineer*
>
> 760 St-Paul W, #101
> Montreal, QC
> Canada  H3C 1M4
> tel: (514) 843-3861
> ext 217
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160318/1abf9af5/attachment-0010.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 3930 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160318/1abf9af5/attachment-0010.jpe>


More information about the Rtk-users mailing list