{"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/best-buddies-registration-for-point-clouds","title":"Best Buddies Registration for Point Clouds","arxiv_id":"2010.01912","date":"2020-10-05","proceeding":null,"authors":["Amnon Drory","Tal Shomer","Shai Avidan","Raja Giryes"],"abstract":"We propose new, and robust, loss functions for the point cloud registration problem. Our loss functions are inspired by the Best Buddies Similarity (BBS) measure that counts the number of mutual nearest neighbors between two point sets. This measure has been shown to be robust to outliers and missing data in the case of template matching for images. We present several algorithms, collectively named Best Buddy Registration (BBR), where each algorithm consists of optimizing one of these loss functions with Adam gradient descent. The loss functions differ in several ways, including the distance function used (point-to-point vs. point-to-plane), and how the BBS measure is combined with the actual distances between pairs of points. Experiments on various data sets, both synthetic and real, demonstrate the effectiveness of the BBR algorithms, showing that they are quite robust to noise, outliers, and distractors, and cope well with extremely sparse point clouds. One variant, BBR-F, achieves state-of-the-art accuracy in the registration of automotive lidar scans taken up to several seconds apart, from the KITTI and Apollo-Southbay datasets.","url_abs":"https://arxiv.org/abs/2010.01912v1","url_pdf":"https://arxiv.org/pdf/2010.01912v1.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":"best-buddies-registration-for-point-clouds","repo_url":"https://github.com/AmnonDrory/BestBuddiesRegistration","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"point-cloud-registration","task_name":"Point Cloud Registration"},{"task_slug":"template-matching","task_name":"Template Matching"}],"methods":[{"method_slug":"adam","method_name":"Adam"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2010.01912","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.01912"}},"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/AmnonDrory/BestBuddiesRegistration","reach":null}],"summary":{"ran_fixture":1,"unverified":1},"by_repo_kind":{"official":{"samples":2,"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":2,"samples":[{"code_sha256_prefix":"eb90ca0652ce20bd","entry":"optimize","repo":"AmnonDrory/BestBuddiesRegistration","repo_kind":"official","path":"code/bb_pc/experiments/Horse.py","file_url":"https://github.com/AmnonDrory/BestBuddiesRegistration/blob/HEAD/code/bb_pc/experiments/Horse.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eb90ca0652ce20bd"}},{"code_sha256_prefix":"232ebf751caaf265","entry":"create_subsets_with_normals","repo":"AmnonDrory/BestBuddiesRegistration","repo_kind":"official","path":"code/bb_pc/experiments/Horse.py","file_url":"https://github.com/AmnonDrory/BestBuddiesRegistration/blob/HEAD/code/bb_pc/experiments/Horse.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"232ebf751caaf265"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}