{"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/salsanext-fast-semantic-segmentation-of-lidar","title":"SalsaNext: Fast, Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving","arxiv_id":"2003.03653","date":"2020-03-07","proceeding":null,"authors":["Tiago Cortinhal","George Tzelepis","Eren Erdal Aksoy"],"abstract":"In this paper, we introduce SalsaNext for the uncertainty-aware semantic segmentation of a full 3D LiDAR point cloud in real-time. SalsaNext is the next version of SalsaNet [1] which has an encoder-decoder architecture where the encoder unit has a set of ResNet blocks and the decoder part combines upsampled features from the residual blocks. In contrast to SalsaNet, we introduce a new context module, replace the ResNet encoder blocks with a new residual dilated convolution stack with gradually increasing receptive fields and add the pixel-shuffle layer in the decoder. Additionally, we switch from stride convolution to average pooling and also apply central dropout treatment. To directly optimize the Jaccard index, we further combine the weighted cross-entropy loss with Lovasz-Softmax loss [2]. We finally inject a Bayesian treatment to compute the epistemic and aleatoric uncertainties for each point in the cloud. We provide a thorough quantitative evaluation on the Semantic-KITTI dataset [3], which demonstrates that the proposed SalsaNext outperforms other state-of-the-art semantic segmentation networks and ranks first on the Semantic-KITTI leaderboard. We also release our source code https://github.com/TiagoCortinhal/SalsaNext.","url_abs":"https://arxiv.org/abs/2003.03653v4","url_pdf":"https://arxiv.org/pdf/2003.03653v4.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":"salsanext-fast-semantic-segmentation-of-lidar","repo_url":"https://github.com/TiagoCortinhal/SalsaNext","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"salsanext-fast-semantic-segmentation-of-lidar","repo_url":"https://github.com/Halmstad-University/SalsaNext","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"salsanext-fast-semantic-segmentation-of-lidar","repo_url":"https://github.com/Halmstad-University/TITAN-NET","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"salsanext-fast-semantic-segmentation-of-lidar","repo_url":"https://github.com/matlab-deep-learning/pretrained-salsanext","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"salsanext-fast-semantic-segmentation-of-lidar","repo_url":"https://github.com/tiagocortinhal/titan-next","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-semantic-segmentation","task_name":"3D Semantic Segmentation"},{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"robust-3d-semantic-segmentation","task_name":"Robust 3D Semantic Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dilated-convolution","method_name":"Dilated Convolution"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"lovasz-softmax","method_name":"Lovasz-Softmax"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-semantic-segmentation-on-semantickitti","task":"3D Semantic Segmentation","dataset":"SemanticKITTI","model":"SalsaNext","rank_in_archive_order":22,"of":45,"metrics":{"test mIoU":"59.5%"},"uses_additional_data":false},{"leaderboard":"/sota/robust-3d-semantic-segmentation-on","task":"Robust 3D Semantic Segmentation","dataset":"SemanticKITTI-C","model":"SalsaNext (64x2048)","rank_in_archive_order":17,"of":22,"metrics":{"mean Corruption Error (mCE)":"116.14%"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.03653","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.03653"}},"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/Halmstad-University/TITAN-NET","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/matlab-deep-learning/pretrained-salsanext","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TiagoCortinhal/SalsaNext","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tiagocortinhal/titan-next","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Halmstad-University/SalsaNext","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":3,"ran_fixture":1,"unverified":7},"by_repo_kind":{"official":{"samples":6,"ran":0,"repositories":1},"listed":{"samples":4,"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":1,"samples":[{"code_sha256_prefix":"5397b56c1ac3f145","entry":"Upsampling","repo":"tiagocortinhal/titan-next","repo_kind":"listed","path":"train/tasks/segmented/modules/SalsaNext.py","file_url":"https://github.com/tiagocortinhal/titan-next/blob/HEAD/train/tasks/segmented/modules/SalsaNext.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5397b56c1ac3f145"}},{"code_sha256_prefix":"ce4816627a53c528","entry":"conv","repo":"tiagocortinhal/titan-next","repo_kind":"listed","path":"train/tasks/segmented/modules/SalsaNext.py","file_url":"https://github.com/tiagocortinhal/titan-next/blob/HEAD/train/tasks/segmented/modules/SalsaNext.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ce4816627a53c528"}},{"code_sha256_prefix":"1090950b58e9358b","entry":"gram_matrix","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"1090950b58e9358b"}},{"code_sha256_prefix":"755e6a721aea6669","entry":"imgrad","repo":"tiagocortinhal/titan-next","repo_kind":"listed","path":"train/tasks/segmented/trainer.py","file_url":"https://github.com/tiagocortinhal/titan-next/blob/HEAD/train/tasks/segmented/trainer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"755e6a721aea6669"}},{"code_sha256_prefix":"2f71fbe65121af01","entry":"convert_model","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/sync_batchnorm/batchnorm.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/sync_batchnorm/batchnorm.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":"2f71fbe65121af01"}},{"code_sha256_prefix":"c2c5311aca7b89a7","entry":"imgrad_yx","repo":"tiagocortinhal/titan-next","repo_kind":"listed","path":"train/tasks/segmented/trainer.py","file_url":"https://github.com/tiagocortinhal/titan-next/blob/HEAD/train/tasks/segmented/trainer.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":"c2c5311aca7b89a7"}},{"code_sha256_prefix":"9fc94ed8d1b7ec7d","entry":"is_img","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/visualization.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/visualization.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":"9fc94ed8d1b7ec7d"}},{"code_sha256_prefix":"a32d2f75b0f04039","entry":"is_label","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/visualization.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/visualization.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":"a32d2f75b0f04039"}},{"code_sha256_prefix":"595f29f7149e96c7","entry":"is_lidar","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/visualization.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/visualization.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":"595f29f7149e96c7"}},{"code_sha256_prefix":"27e207fe8a74c3e7","entry":"patch_replication_callback","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/sync_batchnorm/replicate.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/sync_batchnorm/replicate.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":"27e207fe8a74c3e7"}},{"code_sha256_prefix":"ec40714da483b8c4","entry":"summary","repo":"TiagoCortinhal/SalsaNext","repo_kind":"official","path":"train/common/summary.py","file_url":"https://github.com/TiagoCortinhal/SalsaNext/blob/HEAD/train/common/summary.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":"ec40714da483b8c4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}