{"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/critical-points-an-agile-point-cloud","title":"Robustifying Point Cloud Networks by Refocusing","arxiv_id":"2308.05525","date":"2023-08-10","proceeding":null,"authors":["Meir Yossef Levi","Guy Gilboa"],"abstract":"The ability to cope with out-of-distribution (OOD) corruptions and adversarial attacks is crucial in real-world safety-demanding applications. In this study, we develop a general mechanism to increase neural network robustness based on focus analysis. Recent studies have revealed the phenomenon of \\textit{Overfocusing}, which leads to a performance drop. When the network is primarily influenced by small input regions, it becomes less robust and prone to misclassify under noise and corruptions. However, quantifying overfocusing is still vague and lacks clear definitions. Here, we provide a mathematical definition of \\textbf{focus}, \\textbf{overfocusing} and \\textbf{underfocusing}. The notions are general, but in this study, we specifically investigate the case of 3D point clouds. We observe that corrupted sets result in a biased focus distribution compared to the clean training set. We show that as focus distribution deviates from the one learned in the training phase - classification performance deteriorates. We thus propose a parameter-free \\textbf{refocusing} algorithm that aims to unify all corruptions under the same distribution. We validate our findings on a 3D zero-shot classification task, achieving SOTA in robust 3D classification on ModelNet-C dataset, and in adversarial defense against Shape-Invariant attack. Code is available in: https://github.com/yossilevii100/refocusing.","url_abs":"https://arxiv.org/abs/2308.05525v3","url_pdf":"https://arxiv.org/pdf/2308.05525v3.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":"critical-points-an-agile-point-cloud","repo_url":"https://github.com/yossilevii100/critical_points2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"critical-points-an-agile-point-cloud","repo_url":"https://github.com/yossilevii100/refocusing","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-classification","task_name":"3D Classification"},{"task_slug":"adversarial-defense","task_name":"Adversarial Defense"},{"task_slug":"point-cloud-classification","task_name":"Point Cloud Classification"},{"task_slug":"robust-classification","task_name":"Robust classification"},{"task_slug":"zero-shot-learning","task_name":"Zero-Shot Learning"},{"task_slug":null,"task_name":"zero-shot-classification"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/point-cloud-classification-on-pointcloud-c","task":"Point Cloud Classification","dataset":"PointCloud-C","model":"Critical Points++&EPiC(RPC)","rank_in_archive_order":2,"of":24,"metrics":{"mean Corruption Error (mCE)":"0.476"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-classification-on-pointcloud-c","task":"Point Cloud Classification","dataset":"PointCloud-C","model":"Critical Points++&EPiC(DGCNN)","rank_in_archive_order":3,"of":24,"metrics":{"mean Corruption Error (mCE)":"0.484"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-classification-on-pointcloud-c","task":"Point Cloud Classification","dataset":"PointCloud-C","model":"Critical Points++&EPiC(GDANet)","rank_in_archive_order":4,"of":24,"metrics":{"mean Corruption Error (mCE)":"0.493"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.05525","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.05525"}},"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/yossilevii100/critical_points2","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yossilevii100/refocusing","reach":{"status":"ok"}}],"summary":{"ran_fixture":2,"ran":10,"ran_honours":2,"ran_violates":1,"unverified":7},"by_repo_kind":{"official":{"samples":22,"ran":15,"repositories":2}},"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":22,"samples":[{"code_sha256_prefix":"c80f9bbb31e6cb9f","entry":"build_shared_mlp","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"pointnet2_ops_lib/pointnet2_ops/pointnet2_modules.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/pointnet2_ops_lib/pointnet2_ops/pointnet2_modules.py","link_basis":"harvester_set","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":"c80f9bbb31e6cb9f"}},{"code_sha256_prefix":"728888ce9772c062","entry":"closest_pool","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/kpconv_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/kpconv_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"728888ce9772c062"}},{"code_sha256_prefix":"06eb9b038422a6ef","entry":"gather","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/kpconv_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/kpconv_util.py","link_basis":"harvester_set","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":"06eb9b038422a6ef"}},{"code_sha256_prefix":"d77f00230e16006d","entry":"get_scorenet_input","repo":"yossilevii100/refocusing","repo_kind":"official","path":"shape_invariant_attack/model_utils/paconv_util.py","file_url":"https://github.com/yossilevii100/refocusing/blob/HEAD/shape_invariant_attack/model_utils/paconv_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d77f00230e16006d"}},{"code_sha256_prefix":"fd43b3106ac73716","entry":"knn","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/curvenet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/curvenet_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fd43b3106ac73716"}},{"code_sha256_prefix":"00b9b0b222ab4b4a","entry":"knn","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/GDANet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/GDANet_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"00b9b0b222ab4b4a"}},{"code_sha256_prefix":"69845e3c207ea9e7","entry":"knn","repo":"yossilevii100/refocusing","repo_kind":"official","path":"shape_invariant_attack/model_utils/paconv_util.py","file_url":"https://github.com/yossilevii100/refocusing/blob/HEAD/shape_invariant_attack/model_utils/paconv_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"69845e3c207ea9e7"}},{"code_sha256_prefix":"1bfbbe6bae6f8e29","entry":"load_h5","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"robust_classification/modelnetc_utils/dataset.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/robust_classification/modelnetc_utils/dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1bfbbe6bae6f8e29"}},{"code_sha256_prefix":"3f12c1601dd3359b","entry":"local_operator","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/GDANet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/GDANet_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3f12c1601dd3359b"}},{"code_sha256_prefix":"6ed05ef701fbeb72","entry":"local_operator_withnorm","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/GDANet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/GDANet_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6ed05ef701fbeb72"}},{"code_sha256_prefix":"1979f86a5b2b0446","entry":"normal_knn","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/curvenet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/curvenet_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1979f86a5b2b0446"}},{"code_sha256_prefix":"4783fbece52f500e","entry":"pc_normalize","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/data_utils/ModelNetDataLoader.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/data_utils/ModelNetDataLoader.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4783fbece52f500e"}},{"code_sha256_prefix":"ec413739d406e611","entry":"pc_normalize","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/curvenet_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/curvenet_util.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ec413739d406e611"}},{"code_sha256_prefix":"42f2cd40ba483d3b","entry":"radius_gaussian","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/model_utils/kpconv_util.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/model_utils/kpconv_util.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"42f2cd40ba483d3b"}},{"code_sha256_prefix":"66c3dd8b246f27ea","entry":"translate_pointcloud","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"robust_classification/data.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/robust_classification/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"66c3dd8b246f27ea"}},{"code_sha256_prefix":"72e38b49e5bad8ba","entry":"assign_score_withk","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/cuda_lib/functional.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/cuda_lib/functional.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":"72e38b49e5bad8ba"}},{"code_sha256_prefix":"f6e6c6c45d23680a","entry":"assign_score_withk_halfkernel","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/cuda_lib/functional.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/cuda_lib/functional.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":"f6e6c6c45d23680a"}},{"code_sha256_prefix":"cb665ba9b96a8225","entry":"extract_importance","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/baselines/defense/critical_points/critical_points.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/baselines/defense/critical_points/critical_points.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":"cb665ba9b96a8225"}},{"code_sha256_prefix":"f80066a00e7156a2","entry":"farthest_point_sample","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/data_utils/ModelNetDataLoader.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/data_utils/ModelNetDataLoader.py","link_basis":"harvester_set","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":"f80066a00e7156a2"}},{"code_sha256_prefix":"5fb9a68241c62149","entry":"feat_trans_dgcnn","repo":"yossilevii100/refocusing","repo_kind":"official","path":"shape_invariant_attack/model_utils/paconv_util.py","file_url":"https://github.com/yossilevii100/refocusing/blob/HEAD/shape_invariant_attack/model_utils/paconv_util.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":"5fb9a68241c62149"}},{"code_sha256_prefix":"551f80023618dce7","entry":"load_data","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"robust_classification/data.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/robust_classification/data.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":"551f80023618dce7"}},{"code_sha256_prefix":"2020ce134161e8a3","entry":"my_entropy","repo":"yossilevii100/critical_points2","repo_kind":"official","path":"shape_invariant_attack/baselines/defense/critical_points/critical_points.py","file_url":"https://github.com/yossilevii100/critical_points2/blob/HEAD/shape_invariant_attack/baselines/defense/critical_points/critical_points.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":"2020ce134161e8a3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}