{"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/single-image-3d-object-estimation-with","title":"Single Image 3D Object Estimation with Primitive Graph Networks","arxiv_id":"2109.04153","date":"2021-09-09","proceeding":null,"authors":["Qian He","Desen Zhou","Bo Wan","Xuming He"],"abstract":"Reconstructing 3D object from a single image (RGB or depth) is a fundamental problem in visual scene understanding and yet remains challenging due to its ill-posed nature and complexity in real-world scenes. To address those challenges, we adopt a primitive-based representation for 3D object, and propose a two-stage graph network for primitive-based 3D object estimation, which consists of a sequential proposal module and a graph reasoning module. Given a 2D image, our proposal module first generates a sequence of 3D primitives from input image with local feature attention. Then the graph reasoning module performs joint reasoning on a primitive graph to capture the global shape context for each primitive. Such a framework is capable of taking into account rich geometry and semantic constraints during 3D structure recovery, producing 3D objects with more coherent structure even under challenging viewing conditions. We train the entire graph neural network in a stage-wise strategy and evaluate it on three benchmarks: Pix3D, ModelNet and NYU Depth V2. Extensive experiments show that our approach outperforms the previous state of the arts with a considerable margin.","url_abs":"https://arxiv.org/abs/2109.04153v1","url_pdf":"https://arxiv.org/pdf/2109.04153v1.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":"single-image-3d-object-estimation-with","repo_url":"https://github.com/hailieqh/3d-object-primitive-graph","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"object","task_name":"Object"},{"task_slug":"scene-understanding","task_name":"Scene Understanding"}],"methods":[{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2109.04153","atlas_url":"https://app.syntology.ai/?focus=2109.04153","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.04153"}},"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/hailieqh/3d-object-primitive-graph","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":14},"by_repo_kind":{"official":{"samples":15,"ran":1,"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":"fac5364e2f53c6db","entry":"conv3x3","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/bbox_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/bbox_model.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"061bf8d2a60b19c0","entry":"combine_depth","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/prnn_utils.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/prnn_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"061bf8d2a60b19c0"}},{"code_sha256_prefix":"81dad9b85e85136d","entry":"compose_depth","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/prnn_utils.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/prnn_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81dad9b85e85136d"}},{"code_sha256_prefix":"6d5b9a5239d56051","entry":"compute_acc_3dbbox","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/evaluation.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6d5b9a5239d56051"}},{"code_sha256_prefix":"bbfcf55b195714cb","entry":"compute_miou_3dbbox","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/evaluation.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bbfcf55b195714cb"}},{"code_sha256_prefix":"a7524a9a8870fb15","entry":"draw_gaussian","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/datasets/kp_dataset.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/datasets/kp_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a7524a9a8870fb15"}},{"code_sha256_prefix":"c1033d3aa22560ba","entry":"evaluate_3dbbox","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/evaluation.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c1033d3aa22560ba"}},{"code_sha256_prefix":"7e592a45cd3a010c","entry":"fpn_division","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/bbox_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/bbox_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7e592a45cd3a010c"}},{"code_sha256_prefix":"c8a6d2dd6c6c4b30","entry":"gaussian_kernel_2d","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/datasets/kp_dataset.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/datasets/kp_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c8a6d2dd6c6c4b30"}},{"code_sha256_prefix":"5a6cf9684546adaa","entry":"get_batch_length","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/graph_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/graph_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5a6cf9684546adaa"}},{"code_sha256_prefix":"3a33bf47ab32f237","entry":"load_depth","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/utils/prnn_utils.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/utils/prnn_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3a33bf47ab32f237"}},{"code_sha256_prefix":"dec652fd553cf4ea","entry":"mix_loss","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/prnn_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/prnn_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dec652fd553cf4ea"}},{"code_sha256_prefix":"a625b73a463b5ea2","entry":"out_seq_to_batch","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/graph_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/graph_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a625b73a463b5ea2"}},{"code_sha256_prefix":"1707b2fc928f7ace","entry":"resnet_division","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/bbox_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/bbox_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1707b2fc928f7ace"}},{"code_sha256_prefix":"2aa9dba8c88c53af","entry":"wrap_up_outputs","repo":"hailieqh/3d-object-primitive-graph","repo_kind":"official","path":"3dprnn_pytorch/lib/models/graph_model.py","file_url":"https://github.com/hailieqh/3d-object-primitive-graph/blob/HEAD/3dprnn_pytorch/lib/models/graph_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2aa9dba8c88c53af"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}