{"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/pointnext-revisiting-pointnet-with-improved","title":"PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies","arxiv_id":"2206.04670","date":"2022-06-09","proceeding":null,"authors":["Guocheng Qian","Yuchen Li","Houwen Peng","Jinjie Mai","Hasan Abed Al Kader Hammoud","Mohamed Elhoseiny","Bernard Ghanem"],"abstract":"PointNet++ is one of the most influential neural architectures for point cloud understanding. Although the accuracy of PointNet++ has been largely surpassed by recent networks such as PointMLP and Point Transformer, we find that a large portion of the performance gain is due to improved training strategies, i.e. data augmentation and optimization techniques, and increased model sizes rather than architectural innovations. Thus, the full potential of PointNet++ has yet to be explored. In this work, we revisit the classical PointNet++ through a systematic study of model training and scaling strategies, and offer two major contributions. First, we propose a set of improved training strategies that significantly improve PointNet++ performance. For example, we show that, without any change in architecture, the overall accuracy (OA) of PointNet++ on ScanObjectNN object classification can be raised from 77.9% to 86.1%, even outperforming state-of-the-art PointMLP. Second, we introduce an inverted residual bottleneck design and separable MLPs into PointNet++ to enable efficient and effective model scaling and propose PointNeXt, the next version of PointNets. PointNeXt can be flexibly scaled up and outperforms state-of-the-art methods on both 3D classification and segmentation tasks. For classification, PointNeXt reaches an overall accuracy of 87.7 on ScanObjectNN, surpassing PointMLP by 2.3%, while being 10x faster in inference. For semantic segmentation, PointNeXt establishes a new state-of-the-art performance with 74.9% mean IoU on S3DIS (6-fold cross-validation), being superior to the recent Point Transformer. The code and models are available at https://github.com/guochengqian/pointnext.","url_abs":"https://arxiv.org/abs/2206.04670v2","url_pdf":"https://arxiv.org/pdf/2206.04670v2.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":"pointnext-revisiting-pointnet-with-improved","repo_url":"https://github.com/guochengqian/pointnext","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"pointnext-revisiting-pointnet-with-improved","repo_url":"https://github.com/boyden/pointtransformerfl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"pointnext-revisiting-pointnet-with-improved","repo_url":"https://github.com/linhaojia13/pointmetabase","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-classification","task_name":"3D Classification"},{"task_slug":"3d-part-segmentation","task_name":"3D Part Segmentation"},{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"3d-semantic-segmentation","task_name":"3D Semantic Segmentation"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"supervised-only-3d-point-cloud-classification","task_name":"Supervised Only 3D Point Cloud Classification"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-part-segmentation-on-shapenet-part","task":"3D Part Segmentation","dataset":"ShapeNet-Part","model":"PointNeXt","rank_in_archive_order":5,"of":67,"metrics":{"Class Average IoU":"85.2","Instance Average IoU":"87.1"},"uses_additional_data":false},{"leaderboard":"/sota/3d-point-cloud-classification-on-modelnet40","task":"3D Point Cloud Classification","dataset":"ModelNet40","model":"PointNeXt","rank_in_archive_order":28,"of":111,"metrics":{"FLOPs":"6.5G","Mean Accuracy":"91.1","Number of params":"4.5M","Overall Accuracy":"94.0"},"uses_additional_data":false},{"leaderboard":"/sota/3d-point-cloud-classification-on-scanobjectnn","task":"3D Point Cloud Classification","dataset":"ScanObjectNN","model":"PointNeXt","rank_in_archive_order":40,"of":77,"metrics":{"FLOPs":"1.64G","Mean Accuracy":"86.8","Number of params":"1.4M","Overall Accuracy":"88.2"},"uses_additional_data":false},{"leaderboard":"/sota/3d-semantic-segmentation-on-opentrench3d","task":"3D Semantic Segmentation","dataset":"OpenTrench3D","model":"PointNeXt-XL","rank_in_archive_order":3,"of":3,"metrics":{"Model Size":"41.5M","mAcc":"79.7","mIoU":"70.6"},"uses_additional_data":false},{"leaderboard":"/sota/3d-semantic-segmentation-on-s3dis","task":"3D Semantic Segmentation","dataset":"S3DIS","model":"PointNext","rank_in_archive_order":3,"of":6,"metrics":{"mIoU (6-Fold)":"74.9","mIoU (Area-5)":"70.5"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-s3dis","task":"Semantic Segmentation","dataset":"S3DIS","model":"PointNeXt-XL","rank_in_archive_order":12,"of":54,"metrics":{"FLOPs":"84.8G","Mean IoU":"74.9","Number of params":"41.6M","Params (M)":"41.6","mAcc":"83.0","oAcc":"90.3"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-s3dis","task":"Semantic Segmentation","dataset":"S3DIS","model":"PointNeXt-L","rank_in_archive_order":16,"of":54,"metrics":{"FLOPs":"15.2G","Mean IoU":"73.9","Number of params":"7.1M","Params (M)":"7.1","mAcc":"82.2","oAcc":"89.9"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-s3dis-area5","task":"Semantic Segmentation","dataset":"S3DIS Area5","model":"PointNeXt","rank_in_archive_order":29,"of":61,"metrics":{"Number of params":"41.6M","mAcc":"77.2","mIoU":"71.1","oAcc":"91.0"},"uses_additional_data":false},{"leaderboard":"/sota/supervised-only-3d-point-cloud-classification","task":"Supervised Only 3D Point Cloud Classification","dataset":"ScanObjectNN","model":"PointNeXt","rank_in_archive_order":6,"of":12,"metrics":{"GFLOPs":"3.6","Number of params (M)":"1.4","Overall Accuracy (PB_T50_RS)":"87.8"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2206.04670","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.04670"}},"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":"deterministic:regex_extraction","url":"https://github.com/guochengqian/pointnext","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/linhaojia13/pointmetabase","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/boyden/pointtransformerfl","reach":null}],"summary":{"ran":2,"ran_fixture":5,"unverified":10},"by_repo_kind":{"official":{"samples":3,"ran":0,"repositories":1},"listed":{"samples":7,"ran":5,"repositories":1},"community":{"samples":7,"ran":2,"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":0,"samples":[{"code_sha256_prefix":"3b1ac6f82f83c1d9","entry":"WSConv","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3b1ac6f82f83c1d9"}},{"code_sha256_prefix":"23f479914e4bf067","entry":"cdist","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/pointnext.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/pointnext.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"23f479914e4bf067"}},{"code_sha256_prefix":"0ccbb20f77091ebe","entry":"downsample_fps","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/pointnext.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/pointnext.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ccbb20f77091ebe"}},{"code_sha256_prefix":"6f566c4f5130b818","entry":"index_points","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6f566c4f5130b818"}},{"code_sha256_prefix":"470b1e6c34a8774b","entry":"query_ball_point","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"470b1e6c34a8774b"}},{"code_sha256_prefix":"9809aa7254498ef8","entry":"sample_and_group","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9809aa7254498ef8"}},{"code_sha256_prefix":"cb46d51170c75900","entry":"square_distance","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cb46d51170c75900"}},{"code_sha256_prefix":"c0487a14ba8a5c22","entry":"PointNet2","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","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":"c0487a14ba8a5c22"}},{"code_sha256_prefix":"d0c7913713993782","entry":"PointNetSetAbstraction","repo":"boyden/pointtransformerfl","repo_kind":"listed","path":"models/point_transformer.py","file_url":"https://github.com/boyden/pointtransformerfl/blob/HEAD/models/point_transformer.py","link_basis":"first_harvest_node","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":"d0c7913713993782"}},{"code_sha256_prefix":"58189ea84067b9ab","entry":"ball_query","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/ops.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/ops.py","link_basis":"first_harvest_node","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":"58189ea84067b9ab"}},{"code_sha256_prefix":"910e931a428b5d57","entry":"exists","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/pointnext.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/pointnext.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"910e931a428b5d57"}},{"code_sha256_prefix":"649b34ac4526091d","entry":"furthest_point_sample","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/ops.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/ops.py","link_basis":"first_harvest_node","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":"649b34ac4526091d"}},{"code_sha256_prefix":"1fd69c5312ba853f","entry":"parse_sha256_manifest","repo":"guochengqian/pointnext","repo_kind":"official","path":"pointnext_official/checkpoints.py","file_url":"https://github.com/guochengqian/pointnext/blob/HEAD/pointnext_official/checkpoints.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":"1fd69c5312ba853f"}},{"code_sha256_prefix":"7f2983739479f50d","entry":"sha256_file","repo":"guochengqian/pointnext","repo_kind":"official","path":"pointnext_official/checkpoints.py","file_url":"https://github.com/guochengqian/pointnext/blob/HEAD/pointnext_official/checkpoints.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":"7f2983739479f50d"}},{"code_sha256_prefix":"cce988c817575a1a","entry":"test","repo":"yanx27/pointnet_pointnet2_pytorch","repo_kind":"community","path":"train_classification.py","file_url":"https://github.com/yanx27/pointnet_pointnet2_pytorch/blob/HEAD/train_classification.py","link_basis":"first_harvest_node","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":"cce988c817575a1a"}},{"code_sha256_prefix":"20c4b5f23e91db8f","entry":"three_nn","repo":"kentechx/pointnext","repo_kind":"community","path":"pointnext/ops.py","file_url":"https://github.com/kentechx/pointnext/blob/HEAD/pointnext/ops.py","link_basis":"first_harvest_node","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":"20c4b5f23e91db8f"}},{"code_sha256_prefix":"9c821e95b597f78e","entry":"verify_sha256","repo":"guochengqian/pointnext","repo_kind":"official","path":"pointnext_official/checkpoints.py","file_url":"https://github.com/guochengqian/pointnext/blob/HEAD/pointnext_official/checkpoints.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":"9c821e95b597f78e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}