LLNL / LEAP

comprehensive library of 3D transmission Computed Tomography (CT) algorithms with Python and C++ APIs, a PyQt GUI, and fully integrated with PyTorch
https://leapct.readthedocs.io
MIT License
104 stars 10 forks source link

helical fbp runs slow #20

Closed stephoog closed 7 months ago

stephoog commented 8 months ago

Hey! LEAP is soooo impressive! So many features. And it produces great results! Thanks for sharing this with us!! One little problem I have noticed is the helical FBP runs much slower than your other FBP algorithms. I mean the helical projectors are fast but the helical FBP is slow. Is there a reason for this? Can it be faster?

kylechampley commented 8 months ago

Hello. Yes, the helical FBP does run slower compared to the other FBP algorithms in LEAP. The main reason for this is the conjugate ray redundancy weight that is unique to helical FBP. The way I implemented this is stupid because it re-calculates this weight for every voxel. I know how to fix this. I'll include this in the next release which will come out in about a week. I'll let you know when it is ready.

kylechampley commented 7 months ago

Version 1.3 was released yesterday which includes a 4-5X speed improvement to the helical FBP algorithm. I identified a way to get a further 1.5X speed improvement which I'll get to in a future release, but figured this was a good first step.

Also, when I was working on this issue, I noticed a scaling issue with the helical FBP algorithm which I fixed. Did you notice this scaling issue? I wish you would've mentioned it because I would have gotten to this sooner.

stephoog commented 7 months ago

Thx!