{"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/when-human-pose-estimation-meets-robustness","title":"When Human Pose Estimation Meets Robustness: Adversarial Algorithms and Benchmarks","arxiv_id":"2105.06152","date":"2021-05-13","proceeding":"CVPR 2021 1","authors":["Jiahang Wang","Sheng Jin","Wentao Liu","Weizhong Liu","Chen Qian","Ping Luo"],"abstract":"Human pose estimation is a fundamental yet challenging task in computer vision, which aims at localizing human anatomical keypoints. However, unlike human vision that is robust to various data corruptions such as blur and pixelation, current pose estimators are easily confused by these corruptions. This work comprehensively studies and addresses this problem by building rigorous robust benchmarks, termed COCO-C, MPII-C, and OCHuman-C, to evaluate the weaknesses of current advanced pose estimators, and a new algorithm termed AdvMix is proposed to improve their robustness in different corruptions. Our work has several unique benefits. (1) AdvMix is model-agnostic and capable in a wide-spectrum of pose estimation models. (2) AdvMix consists of adversarial augmentation and knowledge distillation. Adversarial augmentation contains two neural network modules that are trained jointly and competitively in an adversarial manner, where a generator network mixes different corrupted images to confuse a pose estimator, improving the robustness of the pose estimator by learning from harder samples. To compensate for the noise patterns by adversarial augmentation, knowledge distillation is applied to transfer clean pose structure knowledge to the target pose estimator. (3) Extensive experiments show that AdvMix significantly increases the robustness of pose estimations across a wide range of corruptions, while maintaining accuracy on clean data in various challenging benchmark datasets.","url_abs":"https://arxiv.org/abs/2105.06152v1","url_pdf":"https://arxiv.org/pdf/2105.06152v1.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":"when-human-pose-estimation-meets-robustness","repo_url":"https://github.com/AIprogrammer/AdvMix","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[{"method_slug":"knowledge-distillation","method_name":"Knowledge Distillation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2105.06152","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2105.06152"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/AIprogrammer/AdvMix","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/leoxiaobin/deep-high-resolution-net.pytorch","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/vita-epfl/openpifpaf","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_draft_wrong":3,"ran_fixture":4,"unverified":14},"by_repo_kind":{"official":{"samples":12,"ran":6,"repositories":1},"found_in_text":{"samples":13,"ran":5,"repositories":3}},"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":"a605a498a2198a9d","entry":"AverageMeter","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","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":"a605a498a2198a9d"}},{"code_sha256_prefix":"6c2047eb02f90875","entry":"Laplace","repo":"vita-epfl/openpifpaf","repo_kind":"found_in_text","path":"src/openpifpaf/network/losses/components.py","file_url":"https://github.com/vita-epfl/openpifpaf/blob/HEAD/src/openpifpaf/network/losses/components.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6c2047eb02f90875"}},{"code_sha256_prefix":"d948ea963b20bbdc","entry":"SoftClamp","repo":"vita-epfl/openpifpaf","repo_kind":"found_in_text","path":"src/openpifpaf/network/losses/components.py","file_url":"https://github.com/vita-epfl/openpifpaf/blob/HEAD/src/openpifpaf/network/losses/components.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d948ea963b20bbdc"}},{"code_sha256_prefix":"b44324561953846f","entry":"accuracy","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b44324561953846f"}},{"code_sha256_prefix":"b91b38261b03587d","entry":"calc_dists","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b91b38261b03587d"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/models/pose_higher_hrnet.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/models/pose_higher_hrnet.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":"1c2da88027e6e151","entry":"dist_acc","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c2da88027e6e151"}},{"code_sha256_prefix":"55c58ef5f795e3d1","entry":"get_max_preds","repo":"leoxiaobin/deep-high-resolution-net.pytorch","repo_kind":"found_in_text","path":"lib/core/inference.py","file_url":"https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/blob/HEAD/lib/core/inference.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"55c58ef5f795e3d1"}},{"code_sha256_prefix":"cdea90667046c71c","entry":"make_input","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/core/loss.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/core/loss.py","link_basis":"plan_row","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":"cdea90667046c71c"}},{"code_sha256_prefix":"dfdeea3ebb13fa9a","entry":"tensor2im","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dfdeea3ebb13fa9a"}},{"code_sha256_prefix":"599ce919c4b5d898","entry":"tofloat","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"599ce919c4b5d898"}},{"code_sha256_prefix":"b2deafbfd7c1f3fc","entry":"aggregate_results","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/core/inference.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/core/inference.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":"b2deafbfd7c1f3fc"}},{"code_sha256_prefix":"192666724266ef19","entry":"box_to_center_scale","repo":"leoxiaobin/deep-high-resolution-net.pytorch","repo_kind":"found_in_text","path":"demo/inference.py","file_url":"https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/blob/HEAD/demo/inference.py","link_basis":"plan_row","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":"192666724266ef19"}},{"code_sha256_prefix":"0ff31375e05cb70d","entry":"build_dataset","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/dataset/build.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/dataset/build.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":"0ff31375e05cb70d"}},{"code_sha256_prefix":"74bb768e238398b0","entry":"get_person_detection_boxes","repo":"leoxiaobin/deep-high-resolution-net.pytorch","repo_kind":"found_in_text","path":"demo/inference.py","file_url":"https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/blob/HEAD/demo/inference.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":"74bb768e238398b0"}},{"code_sha256_prefix":"2534c81208f21998","entry":"get_pose_net","repo":"leoxiaobin/deep-high-resolution-net.pytorch","repo_kind":"found_in_text","path":"lib/models/pose_hrnet.py","file_url":"https://github.com/leoxiaobin/deep-high-resolution-net.pytorch/blob/HEAD/lib/models/pose_hrnet.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":"2534c81208f21998"}},{"code_sha256_prefix":"b1587fcc78f6fa72","entry":"get_pose_net","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/models/pose_higher_hrnet.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/models/pose_higher_hrnet.py","link_basis":"plan_row","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":"b1587fcc78f6fa72"}},{"code_sha256_prefix":"73cacfdb88d0d0fb","entry":"inv_coord_norm","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"73cacfdb88d0d0fb"}},{"code_sha256_prefix":"df9c22deab975625","entry":"make_dataloader","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/dataset/build.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/dataset/build.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":"df9c22deab975625"}},{"code_sha256_prefix":"a4025bf00b852a33","entry":"make_test_dataloader","repo":"HRNet/HigherHRNet-Human-Pose-Estimation","repo_kind":"found_in_text","path":"lib/dataset/build.py","file_url":"https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation/blob/HEAD/lib/dataset/build.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":"a4025bf00b852a33"}},{"code_sha256_prefix":"140dbadc1db1bd99","entry":"save_batch_heatmaps","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"140dbadc1db1bd99"}},{"code_sha256_prefix":"ee768f095e08626d","entry":"save_batch_image_with_joints","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"ee768f095e08626d"}},{"code_sha256_prefix":"98ce27ca4d149960","entry":"save_debug_images","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"98ce27ca4d149960"}},{"code_sha256_prefix":"1a2ff0244d9cdfcf","entry":"set_require_grad","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"1a2ff0244d9cdfcf"}},{"code_sha256_prefix":"a63f8ab8d7310adb","entry":"train_advmix","repo":"AIprogrammer/AdvMix","repo_kind":"official","path":"lib/core/function.py","file_url":"https://github.com/AIprogrammer/AdvMix/blob/HEAD/lib/core/function.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":"a63f8ab8d7310adb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}