{"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/unrolled-primal-dual-networks-for-lensless","title":"Unrolled Primal-Dual Networks for Lensless Cameras","arxiv_id":"2203.04353","date":"2022-03-08","proceeding":null,"authors":["Oliver Kingshott","Nick Antipa","Emrah Bostan","Kaan Akşit"],"abstract":"Conventional image reconstruction models for lensless cameras often assume that each measurement results from convolving a given scene with a single experimentally measured point-spread function. These image reconstruction models fall short in simulating lensless cameras truthfully as these models are not sophisticated enough to account for optical aberrations or scenes with depth variations. Our work shows that learning a supervised primal-dual reconstruction method results in image quality matching state of the art in the literature without demanding a large network capacity. This improvement stems from our primary finding that embedding learnable forward and adjoint models in a learned primal-dual optimization framework can even improve the quality of reconstructed images (+5dB PSNR) compared to works that do not correct for the model error. In addition, we built a proof-of-concept lensless camera prototype that uses a pseudo-random phase mask to demonstrate our point. Finally, we share the extensive evaluation of our learned model based on an open dataset and a dataset from our proof-of-concept lensless camera prototype.","url_abs":"https://arxiv.org/abs/2203.04353v1","url_pdf":"https://arxiv.org/pdf/2203.04353v1.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":"unrolled-primal-dual-networks-for-lensless","repo_url":"https://github.com/oliland/lensless-primal-dual","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-reconstruction","task_name":"Image Reconstruction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2203.04353","atlas_url":"https://app.syntology.ai/?focus=2203.04353","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.04353"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/oliland/lensless-primal-dual","reach":null}],"summary":{"ran_draft_wrong":1,"ran_fixture":2},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"107a9ffd3182f853","entry":"benchmark","repo":"oliland/lensless-primal-dual","repo_kind":"official","path":"experiment.py","file_url":"https://github.com/oliland/lensless-primal-dual/blob/HEAD/experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"107a9ffd3182f853"}},{"code_sha256_prefix":"a1db50375b114d93","entry":"color_pack","repo":"oliland/lensless-primal-dual","repo_kind":"official","path":"lensless/model.py","file_url":"https://github.com/oliland/lensless-primal-dual/blob/HEAD/lensless/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a1db50375b114d93"}},{"code_sha256_prefix":"e7c6dddbfbdbd996","entry":"color_unpack","repo":"oliland/lensless-primal-dual","repo_kind":"official","path":"lensless/model.py","file_url":"https://github.com/oliland/lensless-primal-dual/blob/HEAD/lensless/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e7c6dddbfbdbd996"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}