LLNL / LEAP

comprehensive library of 3D transmission Computed Tomography (CT) algorithms with Python API and fully integrated with PyTorch
https://leapct.readthedocs.io
MIT License
74 stars 8 forks source link

3D reconstruction on LEAP #69

Closed stefenmax closed 1 day ago

stefenmax commented 2 days 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 1 day 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 1 day ago

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

kylechampley commented 1 day ago

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

stefenmax commented 1 day 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 1 day 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 1 day ago

Okay, thanks. That help a lot