{"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/geometric-transformer-for-fast-and-robust","title":"Geometric Transformer for Fast and Robust Point Cloud Registration","arxiv_id":"2202.06688","date":"2022-02-14","proceeding":"CVPR 2022 1","authors":["Zheng Qin","Hao Yu","Changjian Wang","Yulan Guo","Yuxing Peng","Kai Xu"],"abstract":"We study the problem of extracting accurate correspondences for point cloud registration. Recent keypoint-free methods bypass the detection of repeatable keypoints which is difficult in low-overlap scenarios, showing great potential in registration. They seek correspondences over downsampled superpoints, which are then propagated to dense points. Superpoints are matched based on whether their neighboring patches overlap. Such sparse and loose matching requires contextual features capturing the geometric structure of the point clouds. We propose Geometric Transformer to learn geometric feature for robust superpoint matching. It encodes pair-wise distances and triplet-wise angles, making it robust in low-overlap cases and invariant to rigid transformation. The simplistic design attains surprisingly high matching accuracy such that no RANSAC is required in the estimation of alignment transformation, leading to $100$ times acceleration. Our method improves the inlier ratio by $17{\\sim}30$ percentage points and the registration recall by over $7$ points on the challenging 3DLoMatch benchmark. Our code and models are available at \\url{https://github.com/qinzheng93/GeoTransformer}.","url_abs":"https://arxiv.org/abs/2202.06688v2","url_pdf":"https://arxiv.org/pdf/2202.06688v2.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":"geometric-transformer-for-fast-and-robust","repo_url":"https://github.com/qinzheng93/geotransformer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"geometric-transformer-for-fast-and-robust","repo_url":"https://github.com/weitong8591/differentiable_ransac","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"metric-learning","task_name":"Metric Learning"},{"task_slug":"point-cloud-registration","task_name":"Point Cloud Registration"},{"task_slug":null,"task_name":"Triplet"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/point-cloud-registration-on-3dlomatch-10-30","task":"Point Cloud Registration","dataset":"3DLoMatch (10-30% overlap)","model":"GeoTransformer - P2PNet","rank_in_archive_order":2,"of":13,"metrics":{"Recall ( correspondence RMSE below 0.2)":"74"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-at-least-1","task":"Point Cloud Registration","dataset":"3DMatch (at least 30% overlapped - FCGF setting)","model":"GeoTransformer","rank_in_archive_order":2,"of":14,"metrics":{"Recall (0.3m, 15 degrees)":"95"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-fpv1","task":"Point Cloud Registration","dataset":"FPv1","model":"GeoTransformer","rank_in_archive_order":2,"of":8,"metrics":{"RRE (degrees)":"2.423","RTE (cm)":"1.581","Recall (3cm, 10 degrees)":"56.15"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-kitti-fcgf","task":"Point Cloud Registration","dataset":"KITTI (FCGF setting)","model":"GeoTransformer","rank_in_archive_order":1,"of":11,"metrics":{"Recall (0.6m, 5 degrees)":"99.5"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-scannet-trained","task":"Point Cloud Registration","dataset":"ScanNet++ (trained on 3DMatch)","model":"GeoTransformer","rank_in_archive_order":2,"of":3,"metrics":{"Recall ( correspondence RMSE below 0.2)":"73.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2202.06688","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2202.06688"}},"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/weitong8591/differentiable_ransac","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/qinzheng93/geotransformer","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/qinzheng93/GeoTransformer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":5},"by_repo_kind":{"listed":{"samples":9,"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":9,"samples":[{"code_sha256_prefix":"cec0d595b6adca22","entry":"DGCNN_Block","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"cec0d595b6adca22"}},{"code_sha256_prefix":"b7c27509e86c1ec1","entry":"DS_Block","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b7c27509e86c1ec1"}},{"code_sha256_prefix":"bfd2fd66fe08f211","entry":"GCN_Block","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"bfd2fd66fe08f211"}},{"code_sha256_prefix":"3c0c44678faa330b","entry":"ResNet_Block","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3c0c44678faa330b"}},{"code_sha256_prefix":"1604305eda9b7958","entry":"DeepRansac_CLNet","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1604305eda9b7958"}},{"code_sha256_prefix":"15cf11dc4470eba4","entry":"RANSAC","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"15cf11dc4470eba4"}},{"code_sha256_prefix":"6de1617f527431b1","entry":"RANSACLayer","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6de1617f527431b1"}},{"code_sha256_prefix":"8caef130745ac47b","entry":"get_graph_feature","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"8caef130745ac47b"}},{"code_sha256_prefix":"115657f6be768b6b","entry":"knn","repo":"weitong8591/differentiable_ransac","repo_kind":"listed","path":"model_cl.py","file_url":"https://github.com/weitong8591/differentiable_ransac/blob/HEAD/model_cl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"115657f6be768b6b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}