{"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/frnet-frustum-range-networks-for-scalable","title":"FRNet: Frustum-Range Networks for Scalable LiDAR Segmentation","arxiv_id":"2312.04484","date":"2023-12-07","proceeding":null,"authors":["Xiang Xu","Lingdong Kong","Hui Shuai","Qingshan Liu"],"abstract":"LiDAR segmentation has become a crucial component of advanced autonomous driving systems. Recent range-view LiDAR segmentation approaches show promise for real-time processing. However, they inevitably suffer from corrupted contextual information and rely heavily on post-processing techniques for prediction refinement. In this work, we propose FRNet, a simple yet powerful method aimed at restoring the contextual information of range image pixels using corresponding frustum LiDAR points. First, a frustum feature encoder module is used to extract per-point features within the frustum region, which preserves scene consistency and is critical for point-level predictions. Next, a frustum-point fusion module is introduced to update per-point features hierarchically, enabling each point to extract more surrounding information through the frustum features. Finally, a head fusion module is used to fuse features at different levels for final semantic predictions. Extensive experiments conducted on four popular LiDAR segmentation benchmarks under various task setups demonstrate the superiority of FRNet. Notably, FRNet achieves 73.3% and 82.5% mIoU scores on the testing sets of SemanticKITTI and nuScenes. While achieving competitive performance, FRNet operates 5 times faster than state-of-the-art approaches. Such high efficiency opens up new possibilities for more scalable LiDAR segmentation. The code has been made publicly available at https://github.com/Xiangxu-0103/FRNet.","url_abs":"https://arxiv.org/abs/2312.04484v3","url_pdf":"https://arxiv.org/pdf/2312.04484v3.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":"frnet-frustum-range-networks-for-scalable","repo_url":"https://github.com/Xiangxu-0103/FRNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"frnet-frustum-range-networks-for-scalable","repo_url":"https://github.com/ldkong1205/Robo3D","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-semantic-segmentation","task_name":"3D Semantic Segmentation"},{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"lidar-semantic-segmentation","task_name":"LIDAR Semantic Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-semantic-segmentation-on-semantickitti","task":"3D Semantic Segmentation","dataset":"SemanticKITTI","model":"FRNet","rank_in_archive_order":6,"of":45,"metrics":{"test mIoU":"73.3%","val mIoU":"68.7%"},"uses_additional_data":false},{"leaderboard":"/sota/3d-semantic-segmentation-on-nuscenes","task":"3D Semantic Segmentation","dataset":"nuScenes","model":"FRNet","rank_in_archive_order":2,"of":3,"metrics":{"mIoU":"82.5%"},"uses_additional_data":false},{"leaderboard":"/sota/lidar-semantic-segmentation-on-nuscenes","task":"LIDAR Semantic Segmentation","dataset":"nuScenes","model":"FRNet","rank_in_archive_order":4,"of":36,"metrics":{"test mIoU":"0.825","val mIoU":"0.790"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2312.04484","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.04484"}},"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/ldkong1205/Robo3D","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Xiangxu-0103/FRNet","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":14,"unverified":5},"by_repo_kind":{"official":{"samples":19,"ran":14,"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":18,"samples":[{"code_sha256_prefix":"9aee2cc91c8abd60","entry":"P_R_fog_hard","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/fog_simulation.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/fog_simulation.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":"9aee2cc91c8abd60"}},{"code_sha256_prefix":"0140b17b497f7722","entry":"angles_to_lines","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/geometry.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/geometry.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":"0140b17b497f7722"}},{"code_sha256_prefix":"ee792b6d83528ceb","entry":"compute_occupancy","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/sampling.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/sampling.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":"ee792b6d83528ceb"}},{"code_sha256_prefix":"3d0bbf09504533a0","entry":"filter_by_distance","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/extract_fog.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/extract_fog.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":"3d0bbf09504533a0"}},{"code_sha256_prefix":"cbe622a1a2d3a0dc","entry":"filter_ego_point","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/extract_fog.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/extract_fog.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":"cbe622a1a2d3a0dc"}},{"code_sha256_prefix":"a7437aeafce98daa","entry":"get_extracted_fog_file_list","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/pointcloud_viewer.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/pointcloud_viewer.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":"a7437aeafce98daa"}},{"code_sha256_prefix":"f01d04ede070478d","entry":"get_fov_flag","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/precompute.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/precompute.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":"f01d04ede070478d"}},{"code_sha256_prefix":"c67f2408fbc802c5","entry":"get_kitti_ringID","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/beam_missing/gen_beam_missing.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/beam_missing/gen_beam_missing.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":"c67f2408fbc802c5"}},{"code_sha256_prefix":"d6ce9efdedbab114","entry":"lidar_crosstalk_noise","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/crosstalk/gen_crosstalk.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/crosstalk/gen_crosstalk.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":"d6ce9efdedbab114"}},{"code_sha256_prefix":"6e80b332e869fc92","entry":"rainfall_rate_to_snowfall_rate","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/sampling.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/sampling.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":"6e80b332e869fc92"}},{"code_sha256_prefix":"844e02f134b3dfc4","entry":"snowfall_rate_to_rainfall_rate","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/sampling.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/sampling.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":"844e02f134b3dfc4"}},{"code_sha256_prefix":"f8128e47543b84c3","entry":"split","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/precompute.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/precompute.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":"f8128e47543b84c3"}},{"code_sha256_prefix":"42c4f33782806a6c","entry":"tangent_angles_to_interval_angles","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/geometry.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/geometry.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":"42c4f33782806a6c"}},{"code_sha256_prefix":"c325d7f76bd1d254","entry":"tangent_lines_to_tangent_angles","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/geometry.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/geometry.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":"c325d7f76bd1d254"}},{"code_sha256_prefix":"b83474507717a738","entry":"P_R_fog_soft","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/fog_simulation.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/fog_simulation.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":"b83474507717a738"}},{"code_sha256_prefix":"6fbbfd21ea101ff0","entry":"estimate_laser_parameters","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/snow/simulation.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/snow/simulation.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":"6fbbfd21ea101ff0"}},{"code_sha256_prefix":"5eb857761017e97b","entry":"get_integral_dict","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/fog_simulation.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/fog_simulation.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":"5eb857761017e97b"}},{"code_sha256_prefix":"6981e9a2b99c60d9","entry":"get_recordings","repo":"ldkong1205/Robo3D","repo_kind":"official","path":"create/kitti_c/fog/extract_fog.py","file_url":"https://github.com/ldkong1205/Robo3D/blob/HEAD/create/kitti_c/fog/extract_fog.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":"6981e9a2b99c60d9"}},{"code_sha256_prefix":"3dd5e5e1db226e90","entry":"one_hot","repo":"Xiangxu-0103/FRNet","repo_kind":"official","path":"frnet/models/losses/boundary_loss.py","file_url":"https://github.com/Xiangxu-0103/FRNet/blob/HEAD/frnet/models/losses/boundary_loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3dd5e5e1db226e90"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}