Skip to content
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

Do ADMM and PDHG algorithms have positivity constraints or padding? #1611

Open
ndjurabe opened this issue Sep 2, 2021 · 0 comments
Open

Comments

@ndjurabe
Copy link

ndjurabe commented Sep 2, 2021

So I've been trying to reconstruct some tomo data that has negative values and while I get a pretty nice results with fbp, when I try to run either the ADMM or the PDHG algorithms with the same data, I get only positive results (the exact values vary but mainly increase with the number of iterations) that look somewhat like unfiltered backprojection, even with a very small regularization parameter (1e-50):
FBP reconstruction on the left and ADMM reconstruction on the right (PDHG gives a very similar result to ADMM)
image
I can restrict the reconstruction space a bit to get rid of the dark corners and get a slightly better contrast but it does not significantly improve the results. I followed the pdhg and admm example codes pretty closely, and tried also to replace the f functional by a [-1,1] box constraint but that seemingly made no difference.

# Stacking of the two operators
L = odl.BroadcastOperator(ray_trafo, grad)

# Data matching and regularization functionals
data_fit = odl.solvers.L2NormSquared(ray_trafo.range).translated(data)
reg_func = 1e-50 * odl.solvers.L2Norm(grad.range)
g = odl.solvers.SeparableSum(data_fit, reg_func)

# We don't use the f functional, setting it to zero
f = odl.solvers.IndicatorBox(L.domain, lower = -1, upper = 1)#odl.solvers.ZeroFunctional(L.domain)

I tried to investigate the proximal operators and the admm/pdhg code but haven't yet found the answer. Is there something I am missing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant