{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/proximal-algorithm-unrolling-flexible-and","title":"Proximal Algorithm Unrolling: Flexible and Efficient Reconstruction Networks for Single-Pixel Imaging","arxiv_id":"2505.23180","date":"2025-05-29","proceeding":"CVPR 2025 1","authors":["Ping Wang","Lishun Wang","Gang Qu","Xiaodong Wang","Yulun Zhang","Xin Yuan"],"abstract":"Deep-unrolling and plug-and-play (PnP) approaches have become the de-facto standard solvers for single-pixel imaging (SPI) inverse problem. PnP approaches, a class of iterative algorithms where regularization is implicitly performed by an off-the-shelf deep denoiser, are flexible for varying compression ratios (CRs) but are limited in reconstruction accuracy and speed. Conversely, unrolling approaches, a class of multi-stage neural networks where a truncated iterative optimization process is transformed into an end-to-end trainable network, typically achieve better accuracy with faster inference but require fine-tuning or even retraining when CR changes. In this paper, we address the challenge of integrating the strengths of both classes of solvers. To this end, we design an efficient deep image restorer (DIR) for the unrolling of HQS (half quadratic splitting) and ADMM (alternating direction method of multipliers). More importantly, a general proximal trajectory (PT) loss function is proposed to train HQS/ADMM-unrolling networks such that learned DIR approximates the proximal operator of an ideal explicit restoration regularizer. Extensive experiments demonstrate that, the resulting proximal unrolling networks can not only flexibly handle varying CRs with a single model like PnP algorithms, but also outperform previous CR-specific unrolling networks in both reconstruction accuracy and speed. Source codes and models are available at https://github.com/pwangcs/ProxUnroll.","url_abs":"https://arxiv.org/abs/2505.23180v1","url_pdf":"https://arxiv.org/pdf/2505.23180v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"proximal-algorithm-unrolling-flexible-and","repo_url":"https://github.com/pwangcs/proxunroll","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[{"method_slug":"admm","method_name":"ADMM"},{"method_slug":"pnp","method_name":"PnP"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.23180","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.23180"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/pwangcs/ProxUnroll","reach":null}],"summary":{"ran":5,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9815c548016ee64e","entry":"AdaConv","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9815c548016ee64e"}},{"code_sha256_prefix":"c926c6bf116e6f8c","entry":"ChanelCrossAttention","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c926c6bf116e6f8c"}},{"code_sha256_prefix":"2fc53bbace6fb755","entry":"ConvBlock","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2fc53bbace6fb755"}},{"code_sha256_prefix":"c7f968f8048bc238","entry":"RelativePosition","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c7f968f8048bc238"}},{"code_sha256_prefix":"59e2ce9d4e73161a","entry":"SwinBlock","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"59e2ce9d4e73161a"}},{"code_sha256_prefix":"07533994b0ecb550","entry":"WMSA","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07533994b0ecb550"}},{"code_sha256_prefix":"06f1537a5c3bfffe","entry":"Block","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"06f1537a5c3bfffe"}},{"code_sha256_prefix":"ccb5fd3005f06b50","entry":"ProxUnroll","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ccb5fd3005f06b50"}},{"code_sha256_prefix":"a9a2a5bbf6839d99","entry":"SwinConvNet","repo":"pwangcs/ProxUnroll","repo_kind":"official","path":"model/proxunroll.py","file_url":"https://github.com/pwangcs/ProxUnroll/blob/HEAD/model/proxunroll.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a9a2a5bbf6839d99"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}