{"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/pointpainting-sequential-fusion-for-3d-object","title":"PointPainting: Sequential Fusion for 3D Object Detection","arxiv_id":"1911.10150","date":"2019-11-22","proceeding":"CVPR 2020 6","authors":["Sourabh Vora","Alex H. Lang","Bassam Helou","Oscar Beijbom"],"abstract":"Camera and lidar are important sensor modalities for robotics in general and self-driving cars in particular. The sensors provide complementary information offering an opportunity for tight sensor-fusion. Surprisingly, lidar-only methods outperform fusion methods on the main benchmark datasets, suggesting a gap in the literature. In this work, we propose PointPainting: a sequential fusion method to fill this gap. PointPainting works by projecting lidar points into the output of an image-only semantic segmentation network and appending the class scores to each point. The appended (painted) point cloud can then be fed to any lidar-only method. Experiments show large improvements on three different state-of-the art methods, Point-RCNN, VoxelNet and PointPillars on the KITTI and nuScenes datasets. The painted version of PointRCNN represents a new state of the art on the KITTI leaderboard for the bird's-eye view detection task. In ablation, we study how the effects of Painting depends on the quality and format of the semantic segmentation output, and demonstrate how latency can be minimized through pipelining.","url_abs":"https://arxiv.org/abs/1911.10150v2","url_pdf":"https://arxiv.org/pdf/1911.10150v2.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":"pointpainting-sequential-fusion-for-3d-object","repo_url":"https://github.com/AmrElsersy/PointPainting","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"pointpainting-sequential-fusion-for-3d-object","repo_url":"https://github.com/Song-Jingyu/PointPainting","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"pointpainting-sequential-fusion-for-3d-object","repo_url":"https://github.com/wjy199708/my_point_painting","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"pointpainting-sequential-fusion-for-3d-object","repo_url":"https://github.com/yaxi333/PointPainting-Modified","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"self-driving-cars","task_name":"Self-Driving Cars"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"sensor-fusion","task_name":"Sensor Fusion"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1911.10150","atlas_url":"https://app.syntology.ai/?focus=1911.10150","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.10150"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/yaxi333/PointPainting-Modified","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/AmrElsersy/PointPainting","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Song-Jingyu/PointPainting","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wjy199708/my_point_painting","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5},"by_repo_kind":{"listed":{"samples":5,"ran":5,"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":"1fd24b71365006de","entry":"cxcy_to_gcxgcy","repo":"wjy199708/my_point_painting","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/wjy199708/my_point_painting/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1fd24b71365006de"}},{"code_sha256_prefix":"efeaf9d0bdbf8459","entry":"cxcy_to_xy","repo":"wjy199708/my_point_painting","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/wjy199708/my_point_painting/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"efeaf9d0bdbf8459"}},{"code_sha256_prefix":"4065b6b3dc67d5fb","entry":"make_input_tensor","repo":"wjy199708/my_point_painting","repo_kind":"listed","path":"model.py","file_url":"https://github.com/wjy199708/my_point_painting/blob/HEAD/model.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":"4065b6b3dc67d5fb"}},{"code_sha256_prefix":"ffb7e5423146631e","entry":"make_input_tensor","repo":"yaxi333/PointPainting-Modified","repo_kind":"listed","path":"model.py","file_url":"https://github.com/yaxi333/PointPainting-Modified/blob/HEAD/model.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":"ffb7e5423146631e"}},{"code_sha256_prefix":"5b713c7703bd24f6","entry":"xy_to_cxcy","repo":"wjy199708/my_point_painting","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/wjy199708/my_point_painting/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5b713c7703bd24f6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}