{"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/unsupervised-polychromatic-neural-1","title":"Unsupervised Polychromatic Neural Representation for CT Metal Artifact Reduction","arxiv_id":"2306.15203","date":"2023-06-27","proceeding":"NeurIPS 2023 11","authors":["Qing Wu","Lixuan Chen","Ce Wang","Hongjiang Wei","S. Kevin Zhou","Jingyi Yu","Yuyao Zhang"],"abstract":"Emerging neural reconstruction techniques based on tomography (e.g., NeRF, NeAT, and NeRP) have started showing unique capabilities in medical imaging. In this work, we present a novel Polychromatic neural representation (Polyner) to tackle the challenging problem of CT imaging when metallic implants exist within the human body. CT metal artifacts arise from the drastic variation of metal's attenuation coefficients at various energy levels of the X-ray spectrum, leading to a nonlinear metal effect in CT measurements. Recovering CT images from metal-affected measurements hence poses a complicated nonlinear inverse problem where empirical models adopted in previous metal artifact reduction (MAR) approaches lead to signal loss and strongly aliased reconstructions. Polyner instead models the MAR problem from a nonlinear inverse problem perspective. Specifically, we first derive a polychromatic forward model to accurately simulate the nonlinear CT acquisition process. Then, we incorporate our forward model into the implicit neural representation to accomplish reconstruction. Lastly, we adopt a regularizer to preserve the physical properties of the CT images across different energy levels while effectively constraining the solution space. Our Polyner is an unsupervised method and does not require any external training data. Experimenting with multiple datasets shows that our Polyner achieves comparable or better performance than supervised methods on in-domain datasets while demonstrating significant performance improvements on out-of-domain datasets. To the best of our knowledge, our Polyner is the first unsupervised MAR method that outperforms its supervised counterparts. The code for this work is available at: https://github.com/iwuqing/Polyner.","url_abs":"https://arxiv.org/abs/2306.15203v2","url_pdf":"https://arxiv.org/pdf/2306.15203v2.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":"unsupervised-polychromatic-neural-1","repo_url":"https://github.com/iwuqing/polyner","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"metal-artifact-reduction","task_name":"Metal Artifact Reduction"},{"task_slug":"nerf","task_name":"NeRF"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2306.15203","atlas_url":"https://app.syntology.ai/?focus=2306.15203","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.15203"}},"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":"deterministic:regex_extraction","url":"https://github.com/iwuqing/Polyner","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/hongwang01/DICDNet","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/hongwang01/ACDNet","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/liaohaofu/adn","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/yang-song/score_inverse_problems","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/iwuqing/polyner","reach":{"status":"ok"}}],"summary":{"ran":3,"unverified":4},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"found_in_text":{"samples":6,"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":7,"samples":[{"code_sha256_prefix":"56903fe3b5f32721","entry":"ConvolutionBlock","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"56903fe3b5f32721"}},{"code_sha256_prefix":"bfbb68a74e349187","entry":"Encoder","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"bfbb68a74e349187"}},{"code_sha256_prefix":"b73a3887b456d936","entry":"ResidualBlock","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b73a3887b456d936"}},{"code_sha256_prefix":"f4504b1b748bb4f5","entry":"ADN","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.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":"f4504b1b748bb4f5"}},{"code_sha256_prefix":"949e124339b54aec","entry":"Attenuation_Smootion_Over_Energies_Loss","repo":"iwuqing/polyner","repo_kind":"official","path":"model.py","file_url":"https://github.com/iwuqing/polyner/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"949e124339b54aec"}},{"code_sha256_prefix":"05c9ad06f3427848","entry":"Decoder","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.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":"05c9ad06f3427848"}},{"code_sha256_prefix":"452281bec32a84af","entry":"LayerNorm","repo":"liaohaofu/adn","repo_kind":"found_in_text","path":"adn/networks/adn.py","file_url":"https://github.com/liaohaofu/adn/blob/HEAD/adn/networks/adn.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":"452281bec32a84af"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}