{"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/polarmix-a-general-data-augmentation","title":"PolarMix: A General Data Augmentation Technique for LiDAR Point Clouds","arxiv_id":"2208.00223","date":"2022-07-30","proceeding":null,"authors":["Aoran Xiao","Jiaxing Huang","Dayan Guan","Kaiwen Cui","Shijian Lu","Ling Shao"],"abstract":"LiDAR point clouds, which are usually scanned by rotating LiDAR sensors continuously, capture precise geometry of the surrounding environment and are crucial to many autonomous detection and navigation tasks. Though many 3D deep architectures have been developed, efficient collection and annotation of large amounts of point clouds remain one major challenge in the analytic and understanding of point cloud data. This paper presents PolarMix, a point cloud augmentation technique that is simple and generic but can mitigate the data constraint effectively across different perception tasks and scenarios. PolarMix enriches point cloud distributions and preserves point cloud fidelity via two cross-scan augmentation strategies that cut, edit, and mix point clouds along the scanning direction. The first is scene-level swapping which exchanges point cloud sectors of two LiDAR scans that are cut along the azimuth axis. The second is instance-level rotation and paste which crops point instances from one LiDAR scan, rotates them by multiple angles (to create multiple copies), and paste the rotated point instances into other scans. Extensive experiments show that PolarMix achieves superior performance consistently across different perception tasks and scenarios. In addition, it can work as plug-and-play for various 3D deep architectures and also performs well for unsupervised domain adaptation.","url_abs":"https://arxiv.org/abs/2208.00223v1","url_pdf":"https://arxiv.org/pdf/2208.00223v1.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":"polarmix-a-general-data-augmentation","repo_url":"https://github.com/xiaoaoran/polarmix","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"polarmix-a-general-data-augmentation","repo_url":"https://github.com/cardwing/codes-for-pvkd","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"3d-unsupervised-domain-adaptation","task_name":"3D Unsupervised Domain Adaptation"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"lidar-semantic-segmentation","task_name":"LIDAR Semantic Segmentation"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2208.00223","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2208.00223"}},"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/xiaoaoran/polarmix","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cardwing/codes-for-pvkd","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":2,"ran_violates":1,"unverified":7},"by_repo_kind":{"official":{"samples":5,"ran":0,"repositories":1},"listed":{"samples":5,"ran":3,"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":"d94639b28b2134ff","entry":"iou","repo":"cardwing/codes-for-pvkd","repo_kind":"listed","path":"utils/lovasz_losses.py","file_url":"https://github.com/cardwing/codes-for-pvkd/blob/HEAD/utils/lovasz_losses.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d94639b28b2134ff"}},{"code_sha256_prefix":"1211530cd527bd0b","entry":"iou_binary","repo":"cardwing/codes-for-pvkd","repo_kind":"listed","path":"utils/lovasz_losses.py","file_url":"https://github.com/cardwing/codes-for-pvkd/blob/HEAD/utils/lovasz_losses.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1211530cd527bd0b"}},{"code_sha256_prefix":"e85b5d21dc5b8382","entry":"lovasz_grad","repo":"cardwing/codes-for-pvkd","repo_kind":"listed","path":"utils/lovasz_losses.py","file_url":"https://github.com/cardwing/codes-for-pvkd/blob/HEAD/utils/lovasz_losses.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e85b5d21dc5b8382"}},{"code_sha256_prefix":"82545d97082ff5f4","entry":"download_url","repo":"xiaoaoran/polarmix","repo_kind":"official","path":"model_zoo.py","file_url":"https://github.com/xiaoaoran/polarmix/blob/HEAD/model_zoo.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82545d97082ff5f4"}},{"code_sha256_prefix":"237978845d0ee378","entry":"get_model_class","repo":"cardwing/codes-for-pvkd","repo_kind":"listed","path":"network/cylinder_spconv_3d.py","file_url":"https://github.com/cardwing/codes-for-pvkd/blob/HEAD/network/cylinder_spconv_3d.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"237978845d0ee378"}},{"code_sha256_prefix":"96ffab9eccde0686","entry":"make_divisible","repo":"xiaoaoran/polarmix","repo_kind":"official","path":"core/modules/dynamic_sparseop.py","file_url":"https://github.com/xiaoaoran/polarmix/blob/HEAD/core/modules/dynamic_sparseop.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96ffab9eccde0686"}},{"code_sha256_prefix":"78210aa91a18c370","entry":"polarmix","repo":"xiaoaoran/polarmix","repo_kind":"official","path":"core/datasets/utils.py","file_url":"https://github.com/xiaoaoran/polarmix/blob/HEAD/core/datasets/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"78210aa91a18c370"}},{"code_sha256_prefix":"9416a0d63c5a653a","entry":"register_model","repo":"cardwing/codes-for-pvkd","repo_kind":"listed","path":"network/cylinder_spconv_3d.py","file_url":"https://github.com/cardwing/codes-for-pvkd/blob/HEAD/network/cylinder_spconv_3d.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9416a0d63c5a653a"}},{"code_sha256_prefix":"3ea83943b501f337","entry":"rotate_copy","repo":"xiaoaoran/polarmix","repo_kind":"official","path":"core/datasets/utils.py","file_url":"https://github.com/xiaoaoran/polarmix/blob/HEAD/core/datasets/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ea83943b501f337"}},{"code_sha256_prefix":"afaa7150d98da02f","entry":"swap","repo":"xiaoaoran/polarmix","repo_kind":"official","path":"core/datasets/utils.py","file_url":"https://github.com/xiaoaoran/polarmix/blob/HEAD/core/datasets/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"afaa7150d98da02f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}