{"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/pvnet-pixel-wise-voting-network-for-6dof-pose","title":"PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation","arxiv_id":"1812.11788","date":"2018-12-31","proceeding":"CVPR 2019 6","authors":["Sida Peng","Yu-An Liu","Qi-Xing Huang","Hujun Bao","Xiaowei Zhou"],"abstract":"This paper addresses the challenge of 6DoF pose estimation from a single RGB\nimage under severe occlusion or truncation. Many recent works have shown that a\ntwo-stage approach, which first detects keypoints and then solves a\nPerspective-n-Point (PnP) problem for pose estimation, achieves remarkable\nperformance. However, most of these methods only localize a set of sparse\nkeypoints by regressing their image coordinates or heatmaps, which are\nsensitive to occlusion and truncation. Instead, we introduce a Pixel-wise\nVoting Network (PVNet) to regress pixel-wise unit vectors pointing to the\nkeypoints and use these vectors to vote for keypoint locations using RANSAC.\nThis creates a flexible representation for localizing occluded or truncated\nkeypoints. Another important feature of this representation is that it provides\nuncertainties of keypoint locations that can be further leveraged by the PnP\nsolver. Experiments show that the proposed approach outperforms the state of\nthe art on the LINEMOD, Occlusion LINEMOD and YCB-Video datasets by a large\nmargin, while being efficient for real-time pose estimation. We further create\na Truncation LINEMOD dataset to validate the robustness of our approach against\ntruncation. The code will be avaliable at https://zju-3dv.github.io/pvnet/.","url_abs":"http://arxiv.org/abs/1812.11788v1","url_pdf":"http://arxiv.org/pdf/1812.11788v1.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":"pvnet-pixel-wise-voting-network-for-6dof-pose","repo_url":"https://github.com/edavalosanaya/FastPoseCNN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"pvnet-pixel-wise-voting-network-for-6dof-pose","repo_url":"https://github.com/ivano-donadi/kvn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"pvnet-pixel-wise-voting-network-for-6dof-pose","repo_url":"https://github.com/zju3dv/pvnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"pvnet-pixel-wise-voting-network-for-6dof-pose","repo_url":"https://github.com/2023-MindSpore-1/ms-code-9/tree/main/PVNet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":{"status":"ok"}},{"paper_slug":"pvnet-pixel-wise-voting-network-for-6dof-pose","repo_url":"https://github.com/MindSpore-paper-code-3/code9/tree/main/PVNet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null}],"tasks":[{"task_slug":"6d-pose-estimation","task_name":"6D Pose Estimation using RGB"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/6d-pose-estimation-on-linemod","task":"6D Pose Estimation using RGB","dataset":"LineMOD","model":"PVNet","rank_in_archive_order":14,"of":22,"metrics":{"Accuracy":"99%","Accuracy (ADD)":"86.27%","Mean ADD":"86.27"},"uses_additional_data":false},{"leaderboard":"/sota/6d-pose-estimation-using-rgb-on-occlusion","task":"6D Pose Estimation using RGB","dataset":"Occlusion LineMOD","model":"PVNet","rank_in_archive_order":11,"of":13,"metrics":{"Mean ADD":"40.77"},"uses_additional_data":false},{"leaderboard":"/sota/6d-pose-estimation-on-ycb-video","task":"6D Pose Estimation using RGB","dataset":"YCB-Video","model":"PVNet","rank_in_archive_order":5,"of":5,"metrics":{"Mean AUC":"73.4%"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1812.11788","atlas_url":"https://app.syntology.ai/?focus=1812.11788","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1812.11788"}},"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/zju3dv/pvnet","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ivano-donadi/kvn","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/edavalosanaya/FastPoseCNN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-9/tree/main/PVNet","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-paper-code-3/code9/tree/main/PVNet","reach":null}],"summary":{"ran_honours":2,"unverified":9},"by_repo_kind":{"listed":{"samples":11,"ran":2,"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":"2ce98a92e5494135","entry":"read_mask_np","repo":"zju3dv/pvnet","repo_kind":"listed","path":"lib/utils/data_utils.py","file_url":"https://github.com/zju3dv/pvnet/blob/HEAD/lib/utils/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2ce98a92e5494135"}},{"code_sha256_prefix":"5be77d101869a2ef","entry":"read_rgb_np","repo":"zju3dv/pvnet","repo_kind":"listed","path":"lib/utils/data_utils.py","file_url":"https://github.com/zju3dv/pvnet/blob/HEAD/lib/utils/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5be77d101869a2ef"}},{"code_sha256_prefix":"d35e8d21d1b9d980","entry":"batch_project","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/bpnp/bpnp.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/bpnp/bpnp.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":"d35e8d21d1b9d980"}},{"code_sha256_prefix":"8e600d3888aac2b0","entry":"ct_collator","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/collate_batch.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/collate_batch.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":"8e600d3888aac2b0"}},{"code_sha256_prefix":"58b72ebb953d3283","entry":"get_coefs","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/bpnp/bpnp.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/bpnp/bpnp.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":"58b72ebb953d3283"}},{"code_sha256_prefix":"e2a61f3fba0c0ec3","entry":"make_analyzer","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/analyzers/make_analyzer.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/analyzers/make_analyzer.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":"e2a61f3fba0c0ec3"}},{"code_sha256_prefix":"f96de9a541b417b6","entry":"make_collator","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/collate_batch.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/collate_batch.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":"f96de9a541b417b6"}},{"code_sha256_prefix":"936f02449c110f6d","entry":"pvnet_collator","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/collate_batch.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/collate_batch.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":"936f02449c110f6d"}},{"code_sha256_prefix":"469f96dc37b6cbbf","entry":"resize_keep_aspect_ratio","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/augmentation.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/augmentation.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":"469f96dc37b6cbbf"}},{"code_sha256_prefix":"317fd27af8e8a5f6","entry":"rotate","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/augmentation.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/augmentation.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":"317fd27af8e8a5f6"}},{"code_sha256_prefix":"14aecd8a70929e31","entry":"rotate_instance","repo":"ivano-donadi/kvn","repo_kind":"listed","path":"lib/datasets/augmentation.py","file_url":"https://github.com/ivano-donadi/kvn/blob/HEAD/lib/datasets/augmentation.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":"14aecd8a70929e31"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}