New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issues with (P)OSMAPOSL sensitivity division #906
Comments
We never see this in the logs due to #905 |
Of course, not so clear how to change the code (while still remaining generic), i.e. how do you find what is "small"? |
the |
I think that for the sensitivity division, we could/should set Less clear what to do in the OSL code. |
In my hand-made version, indeed what I do to avoid this is to remove NaNs and Infs after the division, and nothing else. This makes the bug dissapear. That would work, not sure if its the ideal solution though. |
The However, it sets the 0/0 to 0, but this is inappropriate for OSEM. It should set it to 1 (as we should not update voxel values which are not affected by the subset). I still have to think what we need to do with OSL (which is a whole load of other difficulties and heuristics) |
We used a small threshold to detect 0/0 when dividing by the sensitivity image in the Poisson log likelihood. However, this threshold was problematic, and actually caused problems in parametric imaging due to different scales of the parametric images. We now set that threshold to zero. Addresses UCL#906
remove threshold in division by sensitivity See #906 (although this doesn't fix it completely)
spotted by @AnderBiguri
We use the
divide
function to divide by sensitivitySTIR/src/iterative/OSMAPOSL/OSMAPOSLReconstruction.cxx
Lines 462 to 465 in 4054514
with
small_num
initialised hereSTIR/src/iterative/OSMAPOSL/OSMAPOSLReconstruction.cxx
Line 436 in 4054514
actual division code is in
https://github.com/UCL/STIR/blob/master/src/include/stir/numerics/divide.inl
This finds a threshold based on the max in the estimate. This is fine for normal images, but is dangerous for the parametric case, as the images can have very different scale. Therefore, the threshold could be inappropriate for the one of the images, resulting incorrect zeroes in the image.
The text was updated successfully, but these errors were encountered: