{"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/unraveling-normal-anatomy-via-fluid-driven","title":"Unraveling Normal Anatomy via Fluid-Driven Anomaly Randomization","arxiv_id":"2501.13370","date":"2025-01-23","proceeding":"CVPR 2025 1","authors":["Peirong Liu","Ana Lawry Aguila","Juan E. Iglesias"],"abstract":"Data-driven machine learning has made significant strides in medical image analysis. However, most existing methods are tailored to specific modalities and assume a particular resolution (often isotropic). This limits their generalizability in clinical settings, where variations in scan appearance arise from differences in sequence parameters, resolution, and orientation. Furthermore, most general-purpose models are designed for healthy subjects and suffer from performance degradation when pathology is present. We introduce UNA (Unraveling Normal Anatomy), the first modality-agnostic learning approach for normal brain anatomy reconstruction that can handle both healthy scans and cases with pathology. We propose a fluid-driven anomaly randomization method that generates an unlimited number of realistic pathology profiles on-the-fly. UNA is trained on a combination of synthetic and real data, and can be applied directly to real images with potential pathology without the need for fine-tuning. We demonstrate UNA's effectiveness in reconstructing healthy brain anatomy and showcase its direct application to anomaly detection, using both simulated and real images from 3D healthy and stroke datasets, including CT and MRI scans. By bridging the gap between healthy and diseased images, UNA enables the use of general-purpose models on diseased images, opening up new opportunities for large-scale analysis of uncurated clinical images in the presence of pathology. Code is available at https://github.com/peirong26/UNA.","url_abs":"https://arxiv.org/abs/2501.13370v1","url_pdf":"https://arxiv.org/pdf/2501.13370v1.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":"unraveling-normal-anatomy-via-fluid-driven","repo_url":"https://github.com/peirong26/una","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"anatomy","task_name":"Anatomy"},{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"medical-image-analysis","task_name":"Medical Image Analysis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2501.13370","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.13370"}},"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/peirong26/UNA","reach":null}],"summary":{"ran":1,"ran_fixture":3,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":"3dbe725093f9872e","entry":"Upwind","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","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":"3dbe725093f9872e"}},{"code_sha256_prefix":"b58901280a43cbc0","entry":"gradient_b","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b58901280a43cbc0"}},{"code_sha256_prefix":"88ec8a133fcd7c8c","entry":"gradient_c","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"88ec8a133fcd7c8c"}},{"code_sha256_prefix":"3a5fc1f37d0bb941","entry":"gradient_f","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3a5fc1f37d0bb941"}},{"code_sha256_prefix":"74e052c1fdfed06f","entry":"AdvDiffPDE","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","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":"74e052c1fdfed06f"}},{"code_sha256_prefix":"dafe81f9d9acb911","entry":"AdvDiffPartial","repo":"peirong26/UNA","repo_kind":"official","path":"FluidAnomaly/DiffEqs/pde.py","file_url":"https://github.com/peirong26/UNA/blob/HEAD/FluidAnomaly/DiffEqs/pde.py","link_basis":"first_harvest_node","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":"dafe81f9d9acb911"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}