{"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/fireants-adaptive-riemannian-optimization-for","title":"FireANTs: Adaptive Riemannian Optimization for Multi-Scale Diffeomorphic Matching","arxiv_id":"2404.01249","date":"2024-04-01","proceeding":null,"authors":["Rohit Jena","Pratik Chaudhari","James C. Gee"],"abstract":"The paper proposes FireANTs, the first multi-scale Adaptive Riemannian Optimization algorithm for dense diffeomorphic image matching. One of the most critical and understudied aspects of diffeomorphic image matching algorithms are its highly ill-conditioned nature. We quantitatively capture the extent of ill-conditioning in a typical MRI matching task, motivating the need for an adaptive optimization algorithm for diffeomorphic matching. To this end, FireANTs generalizes the concept of momentum and adaptive estimates of the Hessian to mitigate this ill-conditioning in the non-Euclidean space of diffeomorphisms. Unlike common non-Euclidean manifolds, we also formalize considerations for multi-scale optimization of diffeomorphisms. Our rigorous mathematical results and operational contributions lead to a state-of-the-art dense matching algorithm that can be applied to generic image data with remarkable accuracy and robustness. We demonstrate consistent improvements in image matching performance across a spectrum of community-standard medical and biological correspondence matching challenges spanning a wide variety of image modalities, anatomies, resolutions, acquisition protocols, and preprocessing pipelines. This improvement is supplemented by 300x to 3200x speedup over existing CPU-based state-of-the-art algorithms. For the first time, we perform diffeomorphic matching of sub-micron mouse isocortex volumes at native resolution, and generate a 25{\\mu}m mouse brain atlas in under 25 minutes. Our fast implementation also enables hyperparameter studies that were intractable with existing correspondence matching algorithms.","url_abs":"https://arxiv.org/abs/2404.01249v3","url_pdf":"https://arxiv.org/pdf/2404.01249v3.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":"fireants-adaptive-riemannian-optimization-for","repo_url":"https://github.com/rohitrango/fireants","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":null,"task_name":"CPU"},{"task_slug":"image-registration","task_name":"Image Registration"},{"task_slug":"riemannian-optimization","task_name":"Riemannian optimization"}],"methods":[{"method_slug":null,"method_name":"Library"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2404.01249","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.01249"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rohitrango/fireants","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":9},"by_repo_kind":{"official":{"samples":9,"ran":9,"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":"32686de6a67a9e9a","entry":"gaussian_1d","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/cc.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/cc.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":"32686de6a67a9e9a"}},{"code_sha256_prefix":"b9a0f0381c308152","entry":"get_mask_function","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/maskedutils.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/maskedutils.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":"b9a0f0381c308152"}},{"code_sha256_prefix":"dd8aadbfe86ce427","entry":"get_max_coords3d","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/interpolator/grid_sample.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/interpolator/grid_sample.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":"dd8aadbfe86ce427"}},{"code_sha256_prefix":"970d4450171b0247","entry":"get_min_coords2d","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/interpolator/grid_sample.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/interpolator/grid_sample.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":"970d4450171b0247"}},{"code_sha256_prefix":"2a480b12e7eff3a8","entry":"get_min_coords3d","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/interpolator/grid_sample.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/interpolator/grid_sample.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":"2a480b12e7eff3a8"}},{"code_sha256_prefix":"38edae2fdcaabaa9","entry":"get_tensors_and_mask","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/maskedutils.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/maskedutils.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":"38edae2fdcaabaa9"}},{"code_sha256_prefix":"731ca37947c80e23","entry":"make_rectangular_kernel","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/cc.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/cc.py","link_basis":"first_harvest_node","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":"731ca37947c80e23"}},{"code_sha256_prefix":"5fb7bd7001b1878b","entry":"make_triangular_kernel","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/cc.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/cc.py","link_basis":"first_harvest_node","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":"5fb7bd7001b1878b"}},{"code_sha256_prefix":"7713035c73c97dec","entry":"mask_loss_function","repo":"rohitrango/fireants","repo_kind":"official","path":"fireants/losses/maskedutils.py","file_url":"https://github.com/rohitrango/fireants/blob/HEAD/fireants/losses/maskedutils.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":"7713035c73c97dec"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}