{"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/niki-neural-inverse-kinematics-with","title":"NIKI: Neural Inverse Kinematics with Invertible Neural Networks for 3D Human Pose and Shape Estimation","arxiv_id":"2305.08590","date":"2023-05-15","proceeding":"CVPR 2023 1","authors":["Jiefeng Li","Siyuan Bian","Qi Liu","Jiasheng Tang","Fan Wang","Cewu Lu"],"abstract":"With the progress of 3D human pose and shape estimation, state-of-the-art methods can either be robust to occlusions or obtain pixel-aligned accuracy in non-occlusion cases. However, they cannot obtain robustness and mesh-image alignment at the same time. In this work, we present NIKI (Neural Inverse Kinematics with Invertible Neural Network), which models bi-directional errors to improve the robustness to occlusions and obtain pixel-aligned accuracy. NIKI can learn from both the forward and inverse processes with invertible networks. In the inverse process, the model separates the error from the plausible 3D pose manifold for a robust 3D human pose estimation. In the forward process, we enforce the zero-error boundary conditions to improve the sensitivity to reliable joint positions for better mesh-image alignment. Furthermore, NIKI emulates the analytical inverse kinematics algorithms with the twist-and-swing decomposition for better interpretability. Experiments on standard and occlusion-specific benchmarks demonstrate the effectiveness of NIKI, where we exhibit robust and well-aligned results simultaneously. Code is available at https://github.com/Jeff-sjtu/NIKI","url_abs":"https://arxiv.org/abs/2305.08590v1","url_pdf":"https://arxiv.org/pdf/2305.08590v1.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":"niki-neural-inverse-kinematics-with","repo_url":"https://github.com/jeff-sjtu/niki","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"3d-human-pose-estimation","task_name":"3D Human Pose Estimation"},{"task_slug":"3d-human-pose-and-shape-estimation","task_name":"3D human pose and shape estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-human-pose-estimation-on-3dpw","task":"3D Human Pose Estimation","dataset":"3DPW","model":"NIKI (Twist-and-Swing)","rank_in_archive_order":31,"of":119,"metrics":{"MPJPE":"71.3","MPVPE":"86.6","PA-MPJPE":"40.6"},"uses_additional_data":false},{"leaderboard":"/sota/3d-human-pose-estimation-on-agora","task":"3D Human Pose Estimation","dataset":"AGORA","model":"NIKI (Twist-and-Swing)","rank_in_archive_order":1,"of":11,"metrics":{"B-MPJPE":"67.3","B-MVE":"63.9","B-NMJE":"74","B-NMVE":"70.2"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2305.08590","atlas_url":"https://app.syntology.ai/?focus=2305.08590","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.08590"}},"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":"deterministic:regex_extraction","url":"https://github.com/Jeff-sjtu/NIKI","reach":{"status":"unanswered"}}],"summary":{"ran":1,"unverified":1},"by_repo_kind":{"official":{"samples":2,"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":2,"samples":[{"code_sha256_prefix":"e000a6a186e0b957","entry":"CondNet","repo":"Jeff-sjtu/NIKI","repo_kind":"official","path":"niki/models/layers/shape_real_nvp.py","file_url":"https://github.com/Jeff-sjtu/NIKI/blob/HEAD/niki/models/layers/shape_real_nvp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e000a6a186e0b957"}},{"code_sha256_prefix":"544ce08d2eef137e","entry":"ShapeCondRealNVP","repo":"Jeff-sjtu/NIKI","repo_kind":"official","path":"niki/models/layers/shape_real_nvp.py","file_url":"https://github.com/Jeff-sjtu/NIKI/blob/HEAD/niki/models/layers/shape_real_nvp.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":"544ce08d2eef137e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}