{"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/efficient-learning-on-point-clouds-with-basis","title":"Efficient Learning on Point Clouds with Basis Point Sets","arxiv_id":"1908.09186","date":"2019-08-24","proceeding":"ICCV 2019 10","authors":["Sergey Prokudin","Christoph Lassner","Javier Romero"],"abstract":"With the increased availability of 3D scanning technology, point clouds are moving into the focus of computer vision as a rich representation of everyday scenes. However, they are hard to handle for machine learning algorithms due to their unordered structure. One common approach is to apply occupancy grid mapping, which dramatically increases the amount of data stored and at the same time loses details through discretization. Recently, deep learning models were proposed to handle point clouds directly and achieve input permutation invariance. However, these architectures often use an increased number of parameters and are computationally inefficient. In this work, we propose basis point sets (BPS) as a highly efficient and fully general way to process point clouds with machine learning algorithms. The basis point set representation is a residual representation that can be computed efficiently and can be used with standard neural network architectures and other machine learning algorithms. Using the proposed representation as the input to a simple fully connected network allows us to match the performance of PointNet on a shape classification task while using three orders of magnitude less floating-point operations. In a second experiment, we show how the proposed representation can be used for registering high-resolution meshes to noisy 3D scans. Here, we present the first method for single-pass high-resolution mesh registration, avoiding time-consuming per-scan optimization and allowing real-time execution.","url_abs":"https://arxiv.org/abs/1908.09186v1","url_pdf":"https://arxiv.org/pdf/1908.09186v1.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":"efficient-learning-on-point-clouds-with-basis","repo_url":"https://github.com/sergeyprokudin/bps","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT-0"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1908.09186","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1908.09186"}},"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/sergeyprokudin/bps","reach":{"status":"ok","spdx":"MIT-0"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"0125e5be33ffc62f","entry":"chamfer_distance","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps_demos/chamfer_distance.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps_demos/chamfer_distance.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"0125e5be33ffc62f"}},{"code_sha256_prefix":"5a6f9a48f129ba89","entry":"denormalize","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps/bps.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps/bps.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"5a6f9a48f129ba89"}},{"code_sha256_prefix":"06cf5b8273357767","entry":"generate_random_basis","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps/bps.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps/bps.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"06cf5b8273357767"}},{"code_sha256_prefix":"d3fe98e16abed8fe","entry":"load_modelnet40","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps_demos/modelnet40.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps_demos/modelnet40.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"d3fe98e16abed8fe"}},{"code_sha256_prefix":"634028fead74e0c1","entry":"normalize","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps/bps.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps/bps.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"634028fead74e0c1"}},{"code_sha256_prefix":"f3c6cf0854da6a3a","entry":"test","repo":"sergeyprokudin/bps","repo_kind":"official","path":"bps_demos/train_modelnet_conv3d.py","file_url":"https://github.com/sergeyprokudin/bps/blob/HEAD/bps_demos/train_modelnet_conv3d.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT-0","inline_ok":false,"mcp_get_code":{"code_sha256":"f3c6cf0854da6a3a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}