{"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/bevspread-spread-voxel-pooling-for-bird-s-eye-1","title":"BEVSpread: Spread Voxel Pooling for Bird's-Eye-View Representation in Vision-based Roadside 3D Object Detection","arxiv_id":"2406.08785","date":"2024-06-13","proceeding":"CVPR 2024 1","authors":["Wenjie Wang","Yehao Lu","Guangcong Zheng","Shuigen Zhan","Xiaoqing Ye","Zichang Tan","Jingdong Wang","Gaoang Wang","Xi Li"],"abstract":"Vision-based roadside 3D object detection has attracted rising attention in autonomous driving domain, since it encompasses inherent advantages in reducing blind spots and expanding perception range. While previous work mainly focuses on accurately estimating depth or height for 2D-to-3D mapping, ignoring the position approximation error in the voxel pooling process. Inspired by this insight, we propose a novel voxel pooling strategy to reduce such error, dubbed BEVSpread. Specifically, instead of bringing the image features contained in a frustum point to a single BEV grid, BEVSpread considers each frustum point as a source and spreads the image features to the surrounding BEV grids with adaptive weights. To achieve superior propagation performance, a specific weight function is designed to dynamically control the decay speed of the weights according to distance and depth. Aided by customized CUDA parallel acceleration, BEVSpread achieves comparable inference time as the original voxel pooling. Extensive experiments on two large-scale roadside benchmarks demonstrate that, as a plug-in, BEVSpread can significantly improve the performance of existing frustum-based BEV methods by a large margin of (1.12, 5.26, 3.01) AP in vehicle, pedestrian and cyclist.","url_abs":"https://arxiv.org/abs/2406.08785v1","url_pdf":"https://arxiv.org/pdf/2406.08785v1.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":"bevspread-spread-voxel-pooling-for-bird-s-eye-1","repo_url":"https://github.com/datongjie/bevspread","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2406.08785","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.08785"}},"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/datongjie/bevspread","reach":{"status":"ok"}}],"summary":{"ran":12,"unverified":3},"by_repo_kind":{"official":{"samples":15,"ran":12,"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":15,"samples":[{"code_sha256_prefix":"07a0962477fe7ed9","entry":"all_gather_object","repo":"datongjie/bevspread","repo_kind":"official","path":"utils/torch_dist.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/utils/torch_dist.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":"07a0962477fe7ed9"}},{"code_sha256_prefix":"b156b7f755eebeae","entry":"area","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/kitti_utils/kitti_common.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/kitti_utils/kitti_common.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":"b156b7f755eebeae"}},{"code_sha256_prefix":"20fbfa2279e1ce4b","entry":"div_up","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/kitti_utils/rotate_iou.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/kitti_utils/rotate_iou.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":"20fbfa2279e1ce4b"}},{"code_sha256_prefix":"293c4fe29caf73ac","entry":"equation_plane","repo":"datongjie/bevspread","repo_kind":"official","path":"dataset/nusc_mv_det_dataset.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/dataset/nusc_mv_det_dataset.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":"293c4fe29caf73ac"}},{"code_sha256_prefix":"9d13541c64141176","entry":"get_denorm","repo":"datongjie/bevspread","repo_kind":"official","path":"dataset/nusc_mv_det_dataset.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/dataset/nusc_mv_det_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":"9d13541c64141176"}},{"code_sha256_prefix":"62f00c1464b7201d","entry":"get_lidar_3d_8points","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/result2kitti.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/result2kitti.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":"62f00c1464b7201d"}},{"code_sha256_prefix":"d1c7ebd69b72e9e9","entry":"get_object_corners_in_lidar","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/utils.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/utils.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":"d1c7ebd69b72e9e9"}},{"code_sha256_prefix":"a09d8256df7fc20b","entry":"get_sensor2virtual","repo":"datongjie/bevspread","repo_kind":"official","path":"dataset/nusc_mv_det_dataset.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/dataset/nusc_mv_det_dataset.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":"a09d8256df7fc20b"}},{"code_sha256_prefix":"40d369ccb2220f91","entry":"intersection","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/kitti_utils/kitti_common.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/kitti_utils/kitti_common.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":"40d369ccb2220f91"}},{"code_sha256_prefix":"5cfbfa01de371153","entry":"iou","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/kitti_utils/kitti_common.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/kitti_utils/kitti_common.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":"5cfbfa01de371153"}},{"code_sha256_prefix":"da26f94e7cbf0cd4","entry":"rotate_bound","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/utils.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/utils.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":"da26f94e7cbf0cd4"}},{"code_sha256_prefix":"b06ed59492d49205","entry":"threaded_sync_file","repo":"datongjie/bevspread","repo_kind":"official","path":"utils/backup_files.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/utils/backup_files.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":"b06ed59492d49205"}},{"code_sha256_prefix":"f5d9f0c2674ddee3","entry":"read_label_bboxes","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/result2kitti.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/result2kitti.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":"f5d9f0c2674ddee3"}},{"code_sha256_prefix":"5f6b9de5081606a8","entry":"read_pcd","repo":"datongjie/bevspread","repo_kind":"official","path":"evaluators/utils.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/evaluators/utils.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":"5f6b9de5081606a8"}},{"code_sha256_prefix":"cb6e63ff592197e4","entry":"size_if_newer","repo":"datongjie/bevspread","repo_kind":"official","path":"utils/backup_files.py","file_url":"https://github.com/datongjie/bevspread/blob/HEAD/utils/backup_files.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":"cb6e63ff592197e4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}