{"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/the-perfect-match-3d-point-cloud-matching","title":"The Perfect Match: 3D Point Cloud Matching with Smoothed Densities","arxiv_id":"1811.06879","date":"2018-11-16","proceeding":"CVPR 2019 6","authors":["Zan Gojcic","Caifa Zhou","Jan D. Wegner","Andreas Wieser"],"abstract":"We propose 3DSmoothNet, a full workflow to match 3D point clouds with a siamese deep learning architecture and fully convolutional layers using a voxelized smoothed density value (SDV) representation. The latter is computed per interest point and aligned to the local reference frame (LRF) to achieve rotation invariance. Our compact, learned, rotation invariant 3D point cloud descriptor achieves 94.9% average recall on the 3DMatch benchmark data set, outperforming the state-of-the-art by more than 20 percent points with only 32 output dimensions. This very low output dimension allows for near realtime correspondence search with 0.1 ms per feature point on a standard PC. Our approach is sensor- and sceneagnostic because of SDV, LRF and learning highly descriptive features with fully convolutional layers. We show that 3DSmoothNet trained only on RGB-D indoor scenes of buildings achieves 79.0% average recall on laser scans of outdoor vegetation, more than double the performance of our closest, learning-based competitors. Code, data and pre-trained models are available online at https://github.com/zgojcic/3DSmoothNet.","url_abs":"https://arxiv.org/abs/1811.06879v3","url_pdf":"https://arxiv.org/pdf/1811.06879v3.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":"the-perfect-match-3d-point-cloud-matching","repo_url":"https://github.com/zgojcic/3DSmoothNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"paper_slug":"the-perfect-match-3d-point-cloud-matching","repo_url":"https://github.com/LONG-9621/Match_SmoothNet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"BSD-2-Clause"}}],"tasks":[{"task_slug":"3d-point-cloud-matching","task_name":"3D Point Cloud Matching"},{"task_slug":"descriptive","task_name":"Descriptive"},{"task_slug":"point-cloud-registration","task_name":"Point Cloud Registration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/point-cloud-registration-on-3dlomatch-10-30","task":"Point Cloud Registration","dataset":"3DLoMatch (10-30% overlap)","model":"3DSN (reported in PREDATOR)","rank_in_archive_order":11,"of":13,"metrics":{"Recall ( correspondence RMSE below 0.2)":"33"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-at-least-2","task":"Point Cloud Registration","dataset":"3DMatch (at least 30% overlapped - sample 5k interest points)","model":"3DSN (reported in PREDATOR)","rank_in_archive_order":9,"of":11,"metrics":{"Recall ( correspondence RMSE below 0.2)":"78.4"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-3dmatch-benchmark","task":"Point Cloud Registration","dataset":"3DMatch Benchmark","model":"3DSmoothNet","rank_in_archive_order":10,"of":15,"metrics":{"Feature Matching Recall":"94.7"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-registration-on-eth-trained-on","task":"Point Cloud Registration","dataset":"ETH (trained on 3DMatch)","model":"PerfectMatch","rank_in_archive_order":4,"of":20,"metrics":{"Feature Matching Recall":"0.790"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1811.06879","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1811.06879"}},"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/zgojcic/3DSmoothNet","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LONG-9621/Match_SmoothNet","reach":{"status":"ok","spdx":"BSD-2-Clause"}}],"summary":{"ran_draft_wrong":1,"unverified":7},"by_repo_kind":{"listed":{"samples":8,"ran":1,"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":"6d80592fd6d47b2d","entry":"add_argument_group","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/config.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/config.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6d80592fd6d47b2d"}},{"code_sha256_prefix":"8427c7e156becb53","entry":"all_diffs","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/loss.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8427c7e156becb53"}},{"code_sha256_prefix":"6ebcac3e4f5ed1d7","entry":"bias","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/ops.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/ops.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6ebcac3e4f5ed1d7"}},{"code_sha256_prefix":"3dbcae6ca6415ede","entry":"cdist","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/loss.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3dbcae6ca6415ede"}},{"code_sha256_prefix":"71b7b03926d96f05","entry":"conv3d","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/ops.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/ops.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"71b7b03926d96f05"}},{"code_sha256_prefix":"f6fa452e61831f1d","entry":"get_at_indices","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/loss.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"f6fa452e61831f1d"}},{"code_sha256_prefix":"8be7ab38183780eb","entry":"loggerGenerator","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/logger.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/logger.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8be7ab38183780eb"}},{"code_sha256_prefix":"89abb456a8140cda","entry":"weight","repo":"LONG-9621/Match_SmoothNet","repo_kind":"listed","path":"core/ops.py","file_url":"https://github.com/LONG-9621/Match_SmoothNet/blob/HEAD/core/ops.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"89abb456a8140cda"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}