{"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/learning-transformation-synchronization","title":"Learning Transformation Synchronization","arxiv_id":"1901.09458","date":"2019-01-27","proceeding":"CVPR 2019 6","authors":["Xiangru Huang","Zhenxiao Liang","Xiaowei Zhou","Yao Xie","Leonidas Guibas","Qi-Xing Huang"],"abstract":"Reconstructing the 3D model of a physical object typically requires us to align the depth scans obtained from different camera poses into the same coordinate system. Solutions to this global alignment problem usually proceed in two steps. The first step estimates relative transformations between pairs of scans using an off-the-shelf technique. Due to limited information presented between pairs of scans, the resulting relative transformations are generally noisy. The second step then jointly optimizes the relative transformations among all input depth scans. A natural constraint used in this step is the cycle-consistency constraint, which allows us to prune incorrect relative transformations by detecting inconsistent cycles. The performance of such approaches, however, heavily relies on the quality of the input relative transformations. Instead of merely using the relative transformations as the input to perform transformation synchronization, we propose to use a neural network to learn the weights associated with each relative transformation. Our approach alternates between transformation synchronization using weighted relative transformations and predicting new weights of the input relative transformations using a neural network. We demonstrate the usefulness of this approach across a wide range of datasets.","url_abs":"https://arxiv.org/abs/1901.09458v2","url_pdf":"https://arxiv.org/pdf/1901.09458v2.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":"learning-transformation-synchronization","repo_url":"https://github.com/xiangruhuang/Learning2Sync","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1901.09458","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.09458"}},"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/xiangruhuang/Learning2Sync","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"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":"2e4351cfa4999bac","entry":"decompose","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"util.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2e4351cfa4999bac"}},{"code_sha256_prefix":"4e9898ad072d52a2","entry":"get_scanids","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/generate_images/generate_images.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/generate_images/generate_images.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4e9898ad072d52a2"}},{"code_sha256_prefix":"7c9a48ce306b63e4","entry":"inverse","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"util.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7c9a48ce306b63e4"}},{"code_sha256_prefix":"09878d4d50212776","entry":"inverse","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/training_classifier/dataset.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/training_classifier/dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"09878d4d50212776"}},{"code_sha256_prefix":"2e7e102e135fde7a","entry":"load_checkpoint","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/training_classifier/CNN.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/training_classifier/CNN.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2e7e102e135fde7a"}},{"code_sha256_prefix":"4bbd8bbc9476c9c0","entry":"pack","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"util.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4bbd8bbc9476c9c0"}},{"code_sha256_prefix":"da37588784c3d9c3","entry":"parse_info","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/data_processing/process_scannet.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/data_processing/process_scannet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"da37588784c3d9c3"}},{"code_sha256_prefix":"5cc4420c20e24ee8","entry":"pick_frames","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/data_processing/process_scannet.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/data_processing/process_scannet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5cc4420c20e24ee8"}},{"code_sha256_prefix":"7d49de3298be4940","entry":"read_scan","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/generate_images/generate_images.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/generate_images/generate_images.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7d49de3298be4940"}},{"code_sha256_prefix":"e0214e37a0a78489","entry":"transform","repo":"xiangruhuang/Learning2Sync","repo_kind":"official","path":"src/data_processing/algebra.py","file_url":"https://github.com/xiangruhuang/Learning2Sync/blob/HEAD/src/data_processing/algebra.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"e0214e37a0a78489"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}