Open davlars opened 6 years ago
Hey David! Nice to see that something is happening on this front as well. You might want to look into the shepp_logan_russian_doll_2_datasets.py example, I've written it not so long ago, and it describes things much more clearly.
That said, I don't remember the core issue, but some of this will go away when parallel 2D vec geometries are supported by ASTRA. They are supported in the Git master version so you can build it yourself and fix this ODL code accordingly if you want. But exactly what is going on where is hard to tell from this example.
Maybe for diagnosis it's better to look into these test-like examples. You can introduce shifts and see what happens.
Yes! Moved on to the shepp_logan_russian_doll_2_datasets.py even before your suggestion, which hinted on the problem with parallel vs. fan/cone.
Going back to odl tests seems like a decent idea, so does the astra master. Since it's not hindering progression on other fronts (...) I'm not stuck, but it's definitely something I'll check out. Will keep the issue posted in case of any new findings.
Slightly off-topic but also: making a push now with this (finally!) so hopefully we'll progress somewhere on the multigrid front after a year of idle state... :-)
Re-visiting this repo after some time...
We're running some of the example scripts and are noticing some funny behaviour in the
shepp_logan_russian_doll.py
, specifically when combining aodl.tomo.Parlallel2dGeometry
with a ray transform usingimpl=astra_cuda
.Modifying the example slightly to highlight the problem:
In the above, the insert finely discretized phantom is shifted off-center. However, in the generated data (forward projected product space) we clearly see remnants of a small phantom in the center. Similarly, the reconstruction gives a shaded fine-discretized-phantom in the middle (see below).
Trying to de-bug the issue it all seems to arise when calling
data = pspace_ray_trafo([phantom_c, phantom_f])
. Even more funny is that the issue does not arise if I switch to a ray-trafo withimpl=astra_cpu
or if using something else than a parallel beam geometry (e.g.odl.tomo.FanFlatGeometry
).That there are differences in implementation (and output) of astra_CPU vs astra_cuda seems to be a known issue, but this is slightly different.
Do you know what might be going on?