{"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/ddcolor-towards-photo-realistic-and-semantic","title":"DDColor: Towards Photo-Realistic Image Colorization via Dual Decoders","arxiv_id":"2212.11613","date":"2022-12-22","proceeding":"ICCV 2023 1","authors":["Xiaoyang Kang","Tao Yang","Wenqi Ouyang","Peiran Ren","Lingzhi Li","Xuansong Xie"],"abstract":"Image colorization is a challenging problem due to multi-modal uncertainty and high ill-posedness. Directly training a deep neural network usually leads to incorrect semantic colors and low color richness. While transformer-based methods can deliver better results, they often rely on manually designed priors, suffer from poor generalization ability, and introduce color bleeding effects. To address these issues, we propose DDColor, an end-to-end method with dual decoders for image colorization. Our approach includes a pixel decoder and a query-based color decoder. The former restores the spatial resolution of the image, while the latter utilizes rich visual features to refine color queries, thus avoiding hand-crafted priors. Our two decoders work together to establish correlations between color and multi-scale semantic representations via cross-attention, significantly alleviating the color bleeding effect. Additionally, a simple yet effective colorfulness loss is introduced to enhance the color richness. Extensive experiments demonstrate that DDColor achieves superior performance to existing state-of-the-art works both quantitatively and qualitatively. The codes and models are publicly available at https://github.com/piddnad/DDColor.","url_abs":"https://arxiv.org/abs/2212.11613v5","url_pdf":"https://arxiv.org/pdf/2212.11613v5.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":"ddcolor-towards-photo-realistic-and-semantic","repo_url":"https://github.com/piddnad/ddcolor","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"colorization","task_name":"Colorization"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"image-colorization","task_name":"Image Colorization"}],"methods":[{"method_slug":"colorization","method_name":"Colorization"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2212.11613","atlas_url":"https://app.syntology.ai/?focus=2212.11613","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.11613"}},"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/piddnad/ddcolor","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":7,"unverified":3},"by_repo_kind":{"official":{"samples":10,"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":"2f282ebbc693d787","entry":"batchnorm_2d","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/archs/ddcolor_arch_utils/unet.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/archs/ddcolor_arch_utils/unet.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":"2f282ebbc693d787"}},{"code_sha256_prefix":"5cb23411ee91ac09","entry":"build_ddcolor_model","repo":"piddnad/ddcolor","repo_kind":"official","path":"ddcolor/pipeline.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/ddcolor/pipeline.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":"5cb23411ee91ac09"}},{"code_sha256_prefix":"0dcc55ae179ff89e","entry":"conv1d","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/archs/ddcolor_arch_utils/unet.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/archs/ddcolor_arch_utils/unet.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":"0dcc55ae179ff89e"}},{"code_sha256_prefix":"dc3cdfe4a1da4a85","entry":"init_default","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/archs/ddcolor_arch_utils/unet.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/archs/ddcolor_arch_utils/unet.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":"dc3cdfe4a1da4a85"}},{"code_sha256_prefix":"c9e686c88e395c2a","entry":"load_checkpoint_state_dict","repo":"piddnad/ddcolor","repo_kind":"official","path":"ddcolor/pipeline.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/ddcolor/pipeline.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":"c9e686c88e395c2a"}},{"code_sha256_prefix":"4f9bbf6df4c2dae8","entry":"rgb2lab","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/archs/ddcolor_arch_utils/util.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/archs/ddcolor_arch_utils/util.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":"4f9bbf6df4c2dae8"}},{"code_sha256_prefix":"cf3b798d1e6d8938","entry":"tensor_lab2rgb","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/archs/ddcolor_arch_utils/util.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/archs/ddcolor_arch_utils/util.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":"cf3b798d1e6d8938"}},{"code_sha256_prefix":"a648a03a952822c0","entry":"reduce_loss","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/losses/loss_util.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":"a648a03a952822c0"}},{"code_sha256_prefix":"1ba39317ea81871a","entry":"weight_reduce_loss","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/losses/loss_util.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":"1ba39317ea81871a"}},{"code_sha256_prefix":"cf63f8afc13f62a7","entry":"weighted_loss","repo":"piddnad/ddcolor","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/piddnad/ddcolor/blob/HEAD/basicsr/losses/loss_util.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":"cf63f8afc13f62a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}