Closed Hznnn closed 4 years ago
I'll need some more details to figure this out.
geometry
looks like?The geonmetry information is ConeFlatGeometry( nonuniform_partition( [ -3.54553619, -3.54280604, -3.54008203, ..., 18.2629014 , 18.26562538, 18.26835546] ), uniform_partition([-474.7996, -35.0311], [ 471.5781, 35.0311], (736, 64)), src_radius=597.72502, det_radius=490.59998, pitch=22.956473, offset_along_axis=260.80286 ) the projection data comes from mayo dataset.
with no clim.
the entire code is in odl/odl/contrib/datasets/ct/examples/mayo_reconstruct.py, with no other modifications except for the data path.
By the way, whether ODL library has single slice recombination method of spiral cone beam CT
By the way, whether ODL library has single slice recombination method of spiral cone beam CT
I guess @Hznnn refers to re-binning here, which in ODL would be a data-to-data mapping. Currently there is no specific re-binning operator in ODL from 3D helical to circular scanning, see related discussion in #1560
@ozanoktem , this idea mainly comes from “Noo F, Defrise M, Clackdoyle R and Kudo H; Phys. Med. Biol. 44:561-70, 1999,Single-slice rebinning for helical cone-beam CT." I think it can be defined as a corresponding explicit operation for data processing.
@Hznnn , agree that it can be implemented in ODL as a data-to-data mapping (i.e., operation for data processing). This is merely a careful interpolation in data space (sinograms) but it is just not done because the need for this hasn't risen yet. You are most welcome to implement it in ODL and make it available to the community.
Regarding clim
, in the latest ASTRA pre-release there was a change in how FP and BP are scaled. Perhaps FBP needs to be adapted, although the scaling should be handled automatically.
@Hznnn What ASTRA version are you using?
The version of astra-toobox I use is 1.9.9. How should I adjust FBP to get the proper value? Can you give me some suggestions?
The version of astra-toobox I use is 1.9.9. How should I adjust FBP to get the proper value? Can you give me some suggestions?
Thanks. No, you shouldn't have to do anything. We may need to internally adapt our FBP code. Let me check.
@ozanoktem When I implement it in ODL, I will be happy to provide it to the community.
@kohr-h OK, I will wait for your message.
I don't have a GPU at the moment, so I can only test 2D examples. The FBP examples in our core library seem to have the correct scaling, at least the 2D ones. Could you run the 3D cone beam example(s) @Hznnn? If those have the right scaling, too, then we need to look at the Mayo specific code. Right scaling would mean "about the same as the phantom".
What is the range of values in the reference reconstruction? Is it in the window around 1 as used in the Mayo example?
It is 3D. The reference reconstruction : (-0.024, 3.34) The fbp reconstruction: (-1.02577e+07,4.46533e+07)
I don't have a GPU at the moment, so I can only test 2D examples
You can use colab to get a GPU: https://github.com/odlgroup/odl/issues/1489
Edit: Helical example here https://colab.research.google.com/drive/1wsHNyuK0GAM8sh9kBTzwh8t6Kuivj1KW?usp=sharing
@kohr-h When I run a 2D instance, there is still a large deviation in the value range. Such as odl/examples/tomo/filtered_backprojection_cone_2d_short_scan.py And the odl.tomo.FanBeamGeometry in the example does not exist, is it replaced by odl.tomo.geometry.conebeam.FanFlatGeometry
Could you try installing the dev version of astra conda install -c astra-toolbox/label/dev astra-toolbox
? It seems to work nicely in colab for me.
Hi @Hznnn! Which version of odl
are you using? Did you install a relase or did you install the development version directly from github?
@adler-j and @kohr-h: are there changes in astra
that breaks with the lastest relase (0.7) of odl
?
@aringh The version of odl is odl (0.7.0). I use pip for installation.
Could you run pip install https://github.com/odlgroup/odl/archive/master.zip
to get the latest version?
@aringh I'm quite sure there are such changes, we really need a new pip release.
I solved my problem by installing odl1.1.0.
I tried to install through pip install https://github.com/odlgroup/odl/archive/master.zip
,
but failed, and I completed the installation by running the following code
git clone https://github.com/odlgroup/odl
cd odl
pip install [--user] --editable .
The main problem is that currently only 0.7 can be installed via pip. As @adler-j said, a new pip release is need.
The missing odl.tomo.FanBeamGeometry is also due to the version difference. @kohr-h @adler-j @aringh
Good that it solved the problem. Then I will close this issue.
It was actually the missing FanBeamGeometry
that made me suspect that this might be the case. And yes, we should try to get a new release out - we also discussed it in relation to removing python 2 support #1555.
mayo_reconstruct.py data_folder = mayo_dir + '/Training Cases/L067/full_DICOM-CT-PD' geometry, proj_data = mayo.load_projections(data_folder, indices=slice(20000, 28000))
mayo.py spc = odl.uniform_discr([-1] 3, [1] 3, [32] * 3) ray_trafo = odl.tomo.RayTransform(spc, geometry, interp='linear')
it first throws skimage backend only supports 2d parallel, then, I installed astra but got wrong fbp result.
if anyone has dealt with the same issue, please help asap.
Much appreciated!