{"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/self-supervised-high-dynamic-range-imaging","title":"Self-Supervised High Dynamic Range Imaging with Multi-Exposure Images in Dynamic Scenes","arxiv_id":"2310.01840","date":"2023-10-03","proceeding":null,"authors":["Zhilu Zhang","Haoyu Wang","Shuai Liu","Xiaotao Wang","Lei Lei","WangMeng Zuo"],"abstract":"Merging multi-exposure images is a common approach for obtaining high dynamic range (HDR) images, with the primary challenge being the avoidance of ghosting artifacts in dynamic scenes. Recent methods have proposed using deep neural networks for deghosting. However, the methods typically rely on sufficient data with HDR ground-truths, which are difficult and costly to collect. In this work, to eliminate the need for labeled data, we propose SelfHDR, a self-supervised HDR reconstruction method that only requires dynamic multi-exposure images during training. Specifically, SelfHDR learns a reconstruction network under the supervision of two complementary components, which can be constructed from multi-exposure images and focus on HDR color as well as structure, respectively. The color component is estimated from aligned multi-exposure images, while the structure one is generated through a structure-focused network that is supervised by the color component and an input reference (\\eg, medium-exposure) image. During testing, the learned reconstruction network is directly deployed to predict an HDR image. Experiments on real-world images demonstrate our SelfHDR achieves superior results against the state-of-the-art self-supervised methods, and comparable performance to supervised ones. Codes are available at https://github.com/cszhilu1998/SelfHDR","url_abs":"https://arxiv.org/abs/2310.01840v2","url_pdf":"https://arxiv.org/pdf/2310.01840v2.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":"self-supervised-high-dynamic-range-imaging","repo_url":"https://github.com/cszhilu1998/selfhdr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"hdr-reconstruction","task_name":"HDR Reconstruction"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.01840","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.01840"}},"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/cszhilu1998/SelfHDR","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cszhilu1998/selfhdr","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_fixture":4,"ran":11,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":20,"ran":16,"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":20,"samples":[{"code_sha256_prefix":"144d10b49baeb8a6","entry":"window_partition","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/sctnet.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"144d10b49baeb8a6"}},{"code_sha256_prefix":"d3f2f2b683b8da93","entry":"GSAB","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d3f2f2b683b8da93"}},{"code_sha256_prefix":"c7b89fd45982fc84","entry":"Mutual_Attention","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c7b89fd45982fc84"}},{"code_sha256_prefix":"4f9f06f42470582c","entry":"PatchEmbed","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4f9f06f42470582c"}},{"code_sha256_prefix":"abf25c13adba6c79","entry":"UpsampleOneStep","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"abf25c13adba6c79"}},{"code_sha256_prefix":"98f215e6c39bb7af","entry":"augment_func","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"util/util.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/util/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"98f215e6c39bb7af"}},{"code_sha256_prefix":"5edad8b8c93ac6d9","entry":"gamma_correction","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"util/util.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/util/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5edad8b8c93ac6d9"}},{"code_sha256_prefix":"54818de9a3db4700","entry":"get_scheduler","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/networks.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/networks.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"54818de9a3db4700"}},{"code_sha256_prefix":"fb4ba96e87f4ae40","entry":"init_net","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/networks.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/networks.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fb4ba96e87f4ae40"}},{"code_sha256_prefix":"6bac806ef3a1b9e1","entry":"split_str","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"util/util.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/util/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6bac806ef3a1b9e1"}},{"code_sha256_prefix":"bea70c9f8b2a1787","entry":"str2bool","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"options/base_options.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/options/base_options.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"bea70c9f8b2a1787"}},{"code_sha256_prefix":"82a15cc1e46f7e4d","entry":"to_3d","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/sctnet.py","link_basis":"harvester_set","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":"82a15cc1e46f7e4d"}},{"code_sha256_prefix":"b20f2a5df739a59e","entry":"to_4d","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/sctnet.py","link_basis":"harvester_set","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":"b20f2a5df739a59e"}},{"code_sha256_prefix":"f6b2d702fc756d64","entry":"window_partition","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/hdr_transformer.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/hdr_transformer.py","link_basis":"harvester_set","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":"f6b2d702fc756d64"}},{"code_sha256_prefix":"7b0d02f75bf6b439","entry":"window_reverse","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"models/hdr_transformer.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/models/hdr_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7b0d02f75bf6b439"}},{"code_sha256_prefix":"0ac47994ad82d672","entry":"write_until_success","repo":"cszhilu1998/SelfHDR","repo_kind":"official","path":"util/visualizer.py","file_url":"https://github.com/cszhilu1998/SelfHDR/blob/HEAD/util/visualizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0ac47994ad82d672"}},{"code_sha256_prefix":"9b96895c7f3abd02","entry":"BasicLayer","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9b96895c7f3abd02"}},{"code_sha256_prefix":"7fea942dae2aef9a","entry":"SCAB","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7fea942dae2aef9a"}},{"code_sha256_prefix":"3907468acd8bd2a6","entry":"SCTNet","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"3907468acd8bd2a6"}},{"code_sha256_prefix":"fc7e70cd159637ab","entry":"SwinTransformerBlock","repo":"cszhilu1998/selfhdr","repo_kind":"official","path":"models/sctnet.py","file_url":"https://github.com/cszhilu1998/selfhdr/blob/HEAD/models/sctnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fc7e70cd159637ab"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}