{"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/human-pose-regression-with-residual-log","title":"Human Pose Regression with Residual Log-likelihood Estimation","arxiv_id":"2107.11291","date":"2021-07-23","proceeding":"ICCV 2021 10","authors":["Jiefeng Li","Siyuan Bian","Ailing Zeng","Can Wang","Bo Pang","Wentao Liu","Cewu Lu"],"abstract":"Heatmap-based methods dominate in the field of human pose estimation by modelling the output distribution through likelihood heatmaps. In contrast, regression-based methods are more efficient but suffer from inferior performance. In this work, we explore maximum likelihood estimation (MLE) to develop an efficient and effective regression-based methods. From the perspective of MLE, adopting different regression losses is making different assumptions about the output density function. A density function closer to the true distribution leads to a better regression performance. In light of this, we propose a novel regression paradigm with Residual Log-likelihood Estimation (RLE) to capture the underlying output distribution. Concretely, RLE learns the change of the distribution instead of the unreferenced underlying distribution to facilitate the training process. With the proposed reparameterization design, our method is compatible with off-the-shelf flow models. The proposed method is effective, efficient and flexible. We show its potential in various human pose estimation tasks with comprehensive experiments. Compared to the conventional regression paradigm, regression with RLE bring 12.4 mAP improvement on MSCOCO without any test-time overhead. Moreover, for the first time, especially on multi-person pose estimation, our regression method is superior to the heatmap-based methods. Our code is available at https://github.com/Jeff-sjtu/res-loglikelihood-regression","url_abs":"https://arxiv.org/abs/2107.11291v3","url_pdf":"https://arxiv.org/pdf/2107.11291v3.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":"human-pose-regression-with-residual-log","repo_url":"https://github.com/Jeff-sjtu/res-loglikelihood-regression","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"human-pose-regression-with-residual-log","repo_url":"https://github.com/ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"human-pose-regression-with-residual-log","repo_url":"https://github.com/open-mmlab/mmpose","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"human-pose-regression-with-residual-log","repo_url":"https://github.com/sithu31296/pose-estimation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-human-pose-estimation","task_name":"3D Human Pose Estimation"},{"task_slug":"multi-person-pose-estimation","task_name":"Multi-Person Pose Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/pose-estimation-on-coco-val2017","task":"Pose Estimation","dataset":"COCO val2017","model":"RLE (256x192)","rank_in_archive_order":10,"of":11,"metrics":{"AP":"71.3","AP50":"88.9","AP75":"78.3","AR":"-"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2107.11291","atlas_url":"https://app.syntology.ai/?focus=2107.11291","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.11291"}},"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/open-mmlab/mmpose","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Jeff-sjtu/res-loglikelihood-regression","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sithu31296/pose-estimation","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Jeff-sjtu/resloglikelihood-regression","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}}],"summary":{"ran":10,"unverified":1},"by_repo_kind":{"listed":{"samples":11,"ran":10,"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":2,"samples":[{"code_sha256_prefix":"05bc1069a40fc721","entry":"RLELoss","repo":"ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo","repo_kind":"listed","path":"rlepose/models/criterion.py","file_url":"https://github.com/ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo/blob/HEAD/rlepose/models/criterion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"05bc1069a40fc721"}},{"code_sha256_prefix":"99274af8ba3f2642","entry":"Registry","repo":"ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo","repo_kind":"listed","path":"rlepose/models/criterion.py","file_url":"https://github.com/ligaoqi2/res-loglikelihood-regression-with-COCO-video-demo/blob/HEAD/rlepose/models/criterion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"99274af8ba3f2642"}},{"code_sha256_prefix":"2a3363878b0ddfdf","entry":"draw_coco_keypoints","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/utils.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2a3363878b0ddfdf"}},{"code_sha256_prefix":"54ada554be189976","entry":"get_dir","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/utils.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"54ada554be189976"}},{"code_sha256_prefix":"2737d84e3576e90f","entry":"get_final_preds","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/decode.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/decode.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2737d84e3576e90f"}},{"code_sha256_prefix":"ab19d6d591eec189","entry":"get_max_preds","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/decode.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/decode.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ab19d6d591eec189"}},{"code_sha256_prefix":"7a838a31b94b6740","entry":"get_simdr_final_preds","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/decode.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/decode.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7a838a31b94b6740"}},{"code_sha256_prefix":"128c6d6cc48dcf20","entry":"letterbox","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/boxes.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/boxes.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"128c6d6cc48dcf20"}},{"code_sha256_prefix":"55e839c9dc92868b","entry":"scale_boxes","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/boxes.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/boxes.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"55e839c9dc92868b"}},{"code_sha256_prefix":"e31e0122736a3263","entry":"xywh2xyxy","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/boxes.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/boxes.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e31e0122736a3263"}},{"code_sha256_prefix":"8ea8636e78b2920a","entry":"draw_keypoints","repo":"sithu31296/pose-estimation","repo_kind":"listed","path":"pose/utils/utils.py","file_url":"https://github.com/sithu31296/pose-estimation/blob/HEAD/pose/utils/utils.py","link_basis":"harvester_set","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":"8ea8636e78b2920a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}