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

Enabling use of TV prior with a forward operator with Accelerated PGM #450

Closed
shnaqvi opened this issue Sep 14, 2023 · 2 comments · Fixed by #456
Closed

Enabling use of TV prior with a forward operator with Accelerated PGM #450

shnaqvi opened this issue Sep 14, 2023 · 2 comments · Fixed by #456
Labels
enhancement New feature or request

Comments

@shnaqvi
Copy link
Contributor

shnaqvi commented Sep 14, 2023

Enhancement request

My deconvolution problem of deblurring with space-variant PSF involves a forward operator that is a weighted sum of convolutions. This algorithm is presented in Flicker & Rigaut (2005), reviewed here and used very recently here. Thus the final optimization problem as presented in Eq 1 of the last reference looks like this:
image

Also, this last reference uses FISTA to speed up the problem convergence. However, I'm not able to use FISTA with SCICO because AcceleratedPGM does not currently support solving the problem with a forward operator and TV regularization. Even though TV prior is supported by other algorithms, like ADMM and PDHG, they have other issues of their own which prohibits me from using those. Specifically:

  • ADMM needs a subproblem_solver which is not defined for a custom forward operator
  • PDHG requires really expensive computation of l2 prox with this non-trivial forward operator through CG

Reformulating the problem in a way that it doesn't require complex l2 prox computation with ProximalADMM hasn't worked for me either, despite extensive penalty parameter tuning. And its iterations are also much slower than APGM.

Thus this issue is actually an enhancement request to enable TV regularization with a forward operator when using AcceleratedPGM. @bwohlberg mentioned the fast subiteration-free parallel proximal method for TV minimization presented by Kamilov, 2016, which can be a likely contender.

This would be a really useful addition as it would make the fastest proximal gradient method even more applicable across application domains, especially all the deblur problems which rely on TV regularization to enforce sharper edges or blockiness of image through sparsity in gradient.

@bwohlberg bwohlberg added the enhancement New feature or request label Sep 28, 2023
@shnaqvi
Copy link
Contributor Author

shnaqvi commented Oct 5, 2023

Hi @bwohlberg, took some time but here I am finally ☺️. I've gone through Kamilov's algorithm in detail and have implemented and tested it on synthetic blur data, getting promising reconstruction with the expected fast execution time. I've integrated it in scico's main branch, creating a pull request. I've made sure to follow the implementation style of other norms defined in scico and document generously. Would you be kind to please review it, so we can merge it to in the official pip distribution?

P.S. I've also reached out to Ulugbek Kamilov to have this implementation reviewed but unfortunately haven't hear back from him in a week.

@bwohlberg bwohlberg linked a pull request Oct 6, 2023 that will close this issue
@bwohlberg
Copy link
Collaborator

Thanks! Let's move further discussion to the PR.

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

Successfully merging a pull request may close this issue.

2 participants