{"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/trash-or-treasure-an-interactive-dual-stream","title":"Trash or Treasure? An Interactive Dual-Stream Strategy for Single Image Reflection Separation","arxiv_id":"2110.10546","date":"2021-10-20","proceeding":"NeurIPS 2021 12","authors":["Qiming Hu","Xiaojie Guo"],"abstract":"Single image reflection separation (SIRS), as a representative blind source separation task, aims to recover two layers, $\\textit{i.e.}$, transmission and reflection, from one mixed observation, which is challenging due to the highly ill-posed nature. Existing deep learning based solutions typically restore the target layers individually, or with some concerns at the end of the output, barely taking into account the interaction across the two streams/branches. In order to utilize information more efficiently, this work presents a general yet simple interactive strategy, namely $\\textit{your trash is my treasure}$ (YTMT), for constructing dual-stream decomposition networks. To be specific, we explicitly enforce the two streams to communicate with each other block-wisely. Inspired by the additive property between the two components, the interactive path can be easily built via transferring, instead of discarding, deactivated information by the ReLU rectifier from one stream to the other. Both ablation studies and experimental results on widely-used SIRS datasets are conducted to demonstrate the efficacy of YTMT, and reveal its superiority over other state-of-the-art alternatives. The implementation is quite simple and our code is publicly available at $\\href{https://github.com/mingcv/YTMT-Strategy}{\\textit{https://github.com/mingcv/YTMT-Strategy}}$.","url_abs":"https://arxiv.org/abs/2110.10546v1","url_pdf":"https://arxiv.org/pdf/2110.10546v1.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":"trash-or-treasure-an-interactive-dual-stream","repo_url":"https://github.com/mingcv/ytmt-strategy","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"reflection-removal","task_name":"Reflection Removal"},{"task_slug":"blind-source-separation","task_name":"blind source separation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/reflection-removal-on-nature","task":"Reflection Removal","dataset":"Nature","model":"YTMT-UCS","rank_in_archive_order":4,"of":5,"metrics":{"PSNR":"23.85","SSIM":"0.810"},"uses_additional_data":false},{"leaderboard":"/sota/reflection-removal-on-real20","task":"Reflection Removal","dataset":"Real20","model":"YTMT-UCT","rank_in_archive_order":6,"of":8,"metrics":{"PSNR":"23.26","SSIM":"0.806"},"uses_additional_data":false},{"leaderboard":"/sota/reflection-removal-on-sir-2-objects","task":"Reflection Removal","dataset":"SIR^2(Objects)","model":"YTMT-UCT","rank_in_archive_order":4,"of":7,"metrics":{"PSNR":"24.87","SSIM":"0.896"},"uses_additional_data":false},{"leaderboard":"/sota/reflection-removal-on-sir-2-postcard","task":"Reflection Removal","dataset":"SIR^2(Postcard)","model":"YTMT-UCT","rank_in_archive_order":5,"of":6,"metrics":{"PSNR":"22.91","SSIM":"0.884"},"uses_additional_data":false},{"leaderboard":"/sota/reflection-removal-on-sir-2-wild","task":"Reflection Removal","dataset":"SIR^2(Wild)","model":"YTMT-UCT","rank_in_archive_order":4,"of":6,"metrics":{"PSNR":"25.48","SSIM":"0.89"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2110.10546","atlas_url":"https://app.syntology.ai/?focus=2110.10546","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.10546"}},"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/mingcv/ytmt-strategy","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"ran":6,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"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":"91bda7c651d2e3f7","entry":"compute_gradient","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/losses.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/losses.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"91bda7c651d2e3f7"}},{"code_sha256_prefix":"f783b6ca16b40935","entry":"get_norm_layer","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/networks.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/networks.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f783b6ca16b40935"}},{"code_sha256_prefix":"2b5e0c6ca822c2df","entry":"l1_norm","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/losses.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2b5e0c6ca822c2df"}},{"code_sha256_prefix":"7e61feb5a42b61ca","entry":"l1_norm_dim","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/losses.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7e61feb5a42b61ca"}},{"code_sha256_prefix":"805fb9818f986a0d","entry":"receptive_field","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/networks.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/networks.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"805fb9818f986a0d"}},{"code_sha256_prefix":"fde6f58552ebe4f1","entry":"tensor2im","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/opt_ytmt_model_sirs.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/opt_ytmt_model_sirs.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fde6f58552ebe4f1"}},{"code_sha256_prefix":"c4a91c5d16ce72c3","entry":"tensor2im","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/ytmt_model_intrinsic_decomp.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/ytmt_model_intrinsic_decomp.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c4a91c5d16ce72c3"}},{"code_sha256_prefix":"3c2906d11efdb30d","entry":"define_D","repo":"mingcv/ytmt-strategy","repo_kind":"official","path":"models/networks.py","file_url":"https://github.com/mingcv/ytmt-strategy/blob/HEAD/models/networks.py","link_basis":"harvester_set","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":"3c2906d11efdb30d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}