{"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/unihcp-a-unified-model-for-human-centric","title":"UniHCP: A Unified Model for Human-Centric Perceptions","arxiv_id":"2303.02936","date":"2023-03-06","proceeding":"CVPR 2023 1","authors":["Yuanzheng Ci","Yizhou Wang","Meilin Chen","Shixiang Tang","Lei Bai","Feng Zhu","Rui Zhao","Fengwei Yu","Donglian Qi","Wanli Ouyang"],"abstract":"Human-centric perceptions (e.g., pose estimation, human parsing, pedestrian detection, person re-identification, etc.) play a key role in industrial applications of visual models. While specific human-centric tasks have their own relevant semantic aspect to focus on, they also share the same underlying semantic structure of the human body. However, few works have attempted to exploit such homogeneity and design a general-propose model for human-centric tasks. In this work, we revisit a broad range of human-centric tasks and unify them in a minimalist manner. We propose UniHCP, a Unified Model for Human-Centric Perceptions, which unifies a wide range of human-centric tasks in a simplified end-to-end manner with the plain vision transformer architecture. With large-scale joint training on 33 human-centric datasets, UniHCP can outperform strong baselines on several in-domain and downstream tasks by direct evaluation. When adapted to a specific task, UniHCP achieves new SOTAs on a wide range of human-centric tasks, e.g., 69.8 mIoU on CIHP for human parsing, 86.18 mA on PA-100K for attribute prediction, 90.3 mAP on Market1501 for ReID, and 85.8 JI on CrowdHuman for pedestrian detection, performing better than specialized models tailored for each task.","url_abs":"https://arxiv.org/abs/2303.02936v4","url_pdf":"https://arxiv.org/pdf/2303.02936v4.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":"unihcp-a-unified-model-for-human-centric","repo_url":"https://github.com/opengvlab/unihcp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"2d-pose-estimation","task_name":"2D Pose Estimation"},{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"human-parsing","task_name":"Human Parsing"},{"task_slug":"human-part-segmentation","task_name":"Human Part Segmentation"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"pedestrian-attribute-recognition","task_name":"Pedestrian Attribute Recognition"},{"task_slug":"pedestrian-detection","task_name":"Pedestrian Detection"},{"task_slug":"person-re-identification","task_name":"Person Re-Identification"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"vision-transformer","method_name":"Vision Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/2d-pose-estimation-on-human3-6m","task":"2D Pose Estimation","dataset":"Human3.6M","model":"UniHCP (finetune)","rank_in_archive_order":1,"of":1,"metrics":{"EPE":"6.6"},"uses_additional_data":false},{"leaderboard":"/sota/human-part-segmentation-on-atr","task":"Human Part Segmentation","dataset":"ATR","model":"UniHCP (FT)","rank_in_archive_order":1,"of":1,"metrics":{"pACC":"97.74"},"uses_additional_data":false},{"leaderboard":"/sota/human-part-segmentation-on-cihp","task":"Human Part Segmentation","dataset":"CIHP","model":"UniHCP (finetune)","rank_in_archive_order":3,"of":6,"metrics":{"Mean IoU":"69.8"},"uses_additional_data":false},{"leaderboard":"/sota/human-part-segmentation-on-human3-6m","task":"Human Part Segmentation","dataset":"Human3.6M","model":"UniHCP (finetune)","rank_in_archive_order":3,"of":3,"metrics":{"mIoU":"65.95"},"uses_additional_data":false},{"leaderboard":"/sota/object-detection-on-crowdhuman-full-body","task":"Object Detection","dataset":"CrowdHuman (full body)","model":"UniHCP (finetune)","rank_in_archive_order":8,"of":19,"metrics":{"AP":"92.5","mMR":"41.6"},"uses_additional_data":false},{"leaderboard":"/sota/pedestrian-attribute-recognition-on-pa-100k","task":"Pedestrian Attribute Recognition","dataset":"PA-100K","model":"UniHCP (finetune)","rank_in_archive_order":6,"of":13,"metrics":{"Accuracy":"86.18"},"uses_additional_data":true},{"leaderboard":"/sota/pedestrian-attribute-recognition-on-peta","task":"Pedestrian Attribute Recognition","dataset":"PETA","model":"UniHCP (FT)","rank_in_archive_order":1,"of":6,"metrics":{"Accuracy":"88.78%"},"uses_additional_data":false},{"leaderboard":"/sota/pedestrian-attribute-recognition-on-rapv2","task":"Pedestrian Attribute Recognition","dataset":"RAPv2","model":"UniHCP (finetune)","rank_in_archive_order":3,"of":4,"metrics":{"Accuracy":"82.34"},"uses_additional_data":false},{"leaderboard":"/sota/pedestrian-detection-on-caltech","task":"Pedestrian Detection","dataset":"Caltech","model":"UniHCP (FT)","rank_in_archive_order":33,"of":33,"metrics":{"Heavy MR^-2":"27.2"},"uses_additional_data":true},{"leaderboard":"/sota/person-re-identification-on-cuhk03","task":"Person Re-Identification","dataset":"CUHK03","model":"UniHCP (finetune)","rank_in_archive_order":6,"of":19,"metrics":{"MAP":"83.1"},"uses_additional_data":false},{"leaderboard":"/sota/person-re-identification-on-msmt17","task":"Person Re-Identification","dataset":"MSMT17","model":"UniHCP (finetune)","rank_in_archive_order":20,"of":43,"metrics":{"mAP":"67.3"},"uses_additional_data":false},{"leaderboard":"/sota/person-re-identification-on-market-1501","task":"Person Re-Identification","dataset":"Market-1501","model":"UniHCP (finetune)","rank_in_archive_order":129,"of":135,"metrics":{"mAP":"90.3"},"uses_additional_data":false},{"leaderboard":"/sota/person-re-identification-on-sensereid","task":"Person Re-Identification","dataset":"SenseReID","model":"UniHCP (DE)","rank_in_archive_order":1,"of":1,"metrics":{"Top-1":"46"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-aic","task":"Pose Estimation","dataset":"AIC","model":"UniHCP (finetune)","rank_in_archive_order":4,"of":10,"metrics":{"AP":"33.6"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-mpii-human-pose","task":"Pose Estimation","dataset":"MPII Human Pose","model":"UniHCP (FT)","rank_in_archive_order":6,"of":46,"metrics":{"PCKh-0.5":"93.2"},"uses_additional_data":true},{"leaderboard":"/sota/pose-estimation-on-ms-coco","task":"Pose Estimation","dataset":"MS-COCO","model":"UniHCP (finetune)","rank_in_archive_order":1,"of":1,"metrics":{"AP":"76.5"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-ochuman","task":"Pose Estimation","dataset":"OCHuman","model":"UniHCP (direct eval)","rank_in_archive_order":2,"of":19,"metrics":{"Test AP":"87.4"},"uses_additional_data":false},{"leaderboard":"/sota/semantic-segmentation-on-lip-val","task":"Semantic Segmentation","dataset":"LIP val","model":"UniHCP (finetune)","rank_in_archive_order":3,"of":13,"metrics":{"mIoU":"63.86%"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2303.02936","atlas_url":"https://app.syntology.ai/?focus=2303.02936","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.02936"}},"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/opengvlab/unihcp","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/OpenGVLab/UniHCP","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":8,"unverified":5},"by_repo_kind":{"official":{"samples":13,"ran":8,"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":"78d1f9f766be74b7","entry":"accuracy","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/utils.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/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":"78d1f9f766be74b7"}},{"code_sha256_prefix":"8a63c5da44344ba6","entry":"accuracy_multi","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/utils.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/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":"8a63c5da44344ba6"}},{"code_sha256_prefix":"4570d6d70bccdfb6","entry":"flat","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/config.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/config.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":"4570d6d70bccdfb6"}},{"code_sha256_prefix":"eb8a2600afc1de95","entry":"init","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/fp16/amp.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/fp16/amp.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":"eb8a2600afc1de95"}},{"code_sha256_prefix":"70165e0988ce9571","entry":"param_group_fc","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/make_param_group.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/make_param_group.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":"70165e0988ce9571"}},{"code_sha256_prefix":"e4a7663d686ce91a","entry":"param_group_multitask","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/make_param_group.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/make_param_group.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":"e4a7663d686ce91a"}},{"code_sha256_prefix":"0540cf098dbc3d42","entry":"param_group_no_wd","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/make_param_group.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/make_param_group.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":"0540cf098dbc3d42"}},{"code_sha256_prefix":"ff1253be17efe1ae","entry":"retry_if_cuda_oom","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/memory.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/memory.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":"ff1253be17efe1ae"}},{"code_sha256_prefix":"82c208a1743fdfc6","entry":"dist_init","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/distributed_utils.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/distributed_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":"82c208a1743fdfc6"}},{"code_sha256_prefix":"f27c7ab614e20039","entry":"float_function","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/fp16/amp.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/fp16/amp.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":"f27c7ab614e20039"}},{"code_sha256_prefix":"6b4eee4b4bb1f238","entry":"half_function","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/fp16/amp.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/fp16/amp.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":"6b4eee4b4bb1f238"}},{"code_sha256_prefix":"b1471eccec180d87","entry":"simple_group_split","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/distributed_utils.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/distributed_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":"b1471eccec180d87"}},{"code_sha256_prefix":"4e36f197c125d4d3","entry":"specific_group_split","repo":"OpenGVLab/UniHCP","repo_kind":"official","path":"core/distributed_utils.py","file_url":"https://github.com/OpenGVLab/UniHCP/blob/HEAD/core/distributed_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":"4e36f197c125d4d3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}