{"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/bevfusion-multi-task-multi-sensor-fusion-with","title":"BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird's-Eye View Representation","arxiv_id":"2205.13542","date":"2022-05-26","proceeding":null,"authors":["Zhijian Liu","Haotian Tang","Alexander Amini","Xinyu Yang","Huizi Mao","Daniela Rus","Song Han"],"abstract":"Multi-sensor fusion is essential for an accurate and reliable autonomous driving system. Recent approaches are based on point-level fusion: augmenting the LiDAR point cloud with camera features. However, the camera-to-LiDAR projection throws away the semantic density of camera features, hindering the effectiveness of such methods, especially for semantic-oriented tasks (such as 3D scene segmentation). In this paper, we break this deeply-rooted convention with BEVFusion, an efficient and generic multi-task multi-sensor fusion framework. It unifies multi-modal features in the shared bird's-eye view (BEV) representation space, which nicely preserves both geometric and semantic information. To achieve this, we diagnose and lift key efficiency bottlenecks in the view transformation with optimized BEV pooling, reducing latency by more than 40x. BEVFusion is fundamentally task-agnostic and seamlessly supports different 3D perception tasks with almost no architectural changes. It establishes the new state of the art on nuScenes, achieving 1.3% higher mAP and NDS on 3D object detection and 13.6% higher mIoU on BEV map segmentation, with 1.9x lower computation cost. Code to reproduce our results is available at https://github.com/mit-han-lab/bevfusion.","url_abs":"https://arxiv.org/abs/2205.13542v3","url_pdf":"https://arxiv.org/pdf/2205.13542v3.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":"bevfusion-multi-task-multi-sensor-fusion-with","repo_url":"https://github.com/mit-han-lab/bevfusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"bevfusion-multi-task-multi-sensor-fusion-with","repo_url":"https://github.com/nvidia-ai-iot/lidar_ai_solution","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"3d-multi-object-tracking","task_name":"3D Multi-Object Tracking"},{"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":"scene-segmentation","task_name":"Scene Segmentation"},{"task_slug":"sensor-fusion","task_name":"Sensor Fusion"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-object-detection-on-nuscenes","task":"3D Object Detection","dataset":"nuScenes","model":"BEVFusion-e","rank_in_archive_order":5,"of":372,"metrics":{"NDS":"0.76","mAAE":"0.13","mAOE":"0.32","mAP":"0.75","mASE":"0.23","mATE":"0.24","mAVE":"0.22"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.13542","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.13542"}},"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/mit-han-lab/bevfusion","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nvidia-ai-iot/lidar_ai_solution","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":3,"unverified":7},"by_repo_kind":{"official":{"samples":10,"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":0,"samples":[{"code_sha256_prefix":"38e90d12ef38fe79","entry":"denormalize_bbox","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/bbox/util.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/bbox/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"38e90d12ef38fe79"}},{"code_sha256_prefix":"ea036153b550642a","entry":"gaussian_2d","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/utils/gaussian.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/utils/gaussian.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ea036153b550642a"}},{"code_sha256_prefix":"e6ab81c2ff932920","entry":"normalize_bbox","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/bbox/util.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/bbox/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e6ab81c2ff932920"}},{"code_sha256_prefix":"0079ed3e99e4048d","entry":"aligned_3d_nms","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/post_processing/box3d_nms.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/post_processing/box3d_nms.py","link_basis":"harvester_set","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":"0079ed3e99e4048d"}},{"code_sha256_prefix":"96c8084488bd023b","entry":"box_camera_to_lidar","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/bbox/box_np_ops.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/bbox/box_np_ops.py","link_basis":"harvester_set","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":"96c8084488bd023b"}},{"code_sha256_prefix":"9e22984820c39868","entry":"camera_to_lidar","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/bbox/box_np_ops.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/bbox/box_np_ops.py","link_basis":"harvester_set","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":"9e22984820c39868"}},{"code_sha256_prefix":"a8007c7a213459b2","entry":"circle_nms","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/post_processing/box3d_nms.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/post_processing/box3d_nms.py","link_basis":"harvester_set","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":"a8007c7a213459b2"}},{"code_sha256_prefix":"5b1dacd1f125c08f","entry":"corners_nd","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/bbox/box_np_ops.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/bbox/box_np_ops.py","link_basis":"harvester_set","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":"5b1dacd1f125c08f"}},{"code_sha256_prefix":"a7cde40ccc6422e2","entry":"draw_heatmap_gaussian","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/utils/gaussian.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/utils/gaussian.py","link_basis":"harvester_set","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":"a7cde40ccc6422e2"}},{"code_sha256_prefix":"73e8316be86a800d","entry":"gaussian_radius","repo":"mit-han-lab/bevfusion","repo_kind":"official","path":"mmdet3d/core/utils/gaussian.py","file_url":"https://github.com/mit-han-lab/bevfusion/blob/HEAD/mmdet3d/core/utils/gaussian.py","link_basis":"harvester_set","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":"73e8316be86a800d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}