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
119 stars 12 forks source link

3D reconstruction on LEAP #69

Closed stefenmax closed 4 months ago

stefenmax commented 4 months ago

Hi, I know LEAP is good at solving 3D CT reconstruction problems. Currently, I'm working on the limited-angle reconstruction project. I wanna know if any iterative algorithms consider the cross-slice dependency. I nooticed in your RDLS decription you mentioned that the optional preconditioner is a 2D blurring for each z-slice. Does that mean it could enforce the cross-slice consistency? Thanks

kylechampley commented 4 months ago

If you have a cone-beam or modular-beam geometry, the diverging rays pass through multiple slices, so you'll get more continuity in the slice direction with these geometries.

That comment you saw in RDLS just refers to a preconditioner that improves the rate of convergence.

Regularization in LEAP is always done with all voxel neighbors, including those from different slices, so I recommend using regularization.

stefenmax commented 4 months ago

Aha, so you mean the regularization like TV in ASD-POCS is already consider the Z-axis in the whole volume?

kylechampley commented 4 months ago

Correct. LEAP uses 3D anisotropic Total Variation which calculates differences of a voxel's 26 neighbors.

stefenmax commented 4 months ago

When you mentioned the 26 neighbors did you mean the 6 face-sharing neighbors 12 edge-sharing neighbors 8 corner-sharing neighbors This gives a total of 26 neighbors for a voxel in a 3D grid. About the detail informention about 3D anisotropic Total Variation should I look into this paper[1] if I'm using ASD-POCS [1] Improved total variation regularized image reconstruction (iTV) applied to clinical CT data

kylechampley commented 4 months ago

Yes, you have that right. For more information on the form of this regularizer see here.

Note that in the ASD-POCS and iTV papers, they both use isotropic total variation. I use the anisotropic total variation because it is known to provide better results than isotropic total variation. Thus, strictly speaking there is no paper that implements the algorithm exactly the way I have it in LEAP.

stefenmax commented 4 months ago

Okay, thanks. That help a lot