mmuckley / torchkbnufft

A high-level, easy-to-deploy non-uniform Fast Fourier Transform in PyTorch.
https://torchkbnufft.readthedocs.io/
MIT License
209 stars 44 forks source link

Subspace in Batch Dimension #92

Open mxlutz opened 1 year ago

mxlutz commented 1 year ago

I am using a Low Rank Transformation along the Batch dimension for MRF reconstruction.

This should be more efficient, as transformation to subspace is performed after gridding and before FFT, so less FFTs have to be performed (described e.g. here: https://onlinelibrary.wiley.com/doi/10.1002/mrm.26639)

Then, e.g. the Adjoint operation can be performed with:

eh = tkbn.KbNufftAdjoint(im_size=fov)
image = eh(kdata, ktraj, ssbasis=ssbasis)

I implemented a really basic version for KbNufft and KbNufftAdjoint (not sure if it's really more efficient), but not sure how to implement it for ToepNufft.

Also, there is no documentation and examples yet, I'm happy to provide them if including the subspace basis along the batch dimension in this repository makes sense.

mmuckley commented 1 year ago

Hello @mxlutz, at the moment I'm a little bit hesitant to add this as core repo functionality, as it seems a bit small. However, if you wanted instead to start your own repo with subspace NUFFTs and maybe show a few examples, I'd be happy to link to it in the torchkbnufft README for any users that were interested in that. What do you think?

mxlutz commented 1 year ago

Yes, that makes sense. The solution with a separate repo sounds reasonable, thanks for offering to link it. I'll get in contact when I continued working on it.