{"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/6d-rotation-representation-for-unconstrained","title":"6D Rotation Representation For Unconstrained Head Pose Estimation","arxiv_id":"2202.12555","date":"2022-02-25","proceeding":null,"authors":["Thorsten Hempel","Ahmed A. Abdelrahman","Ayoub Al-Hamadi"],"abstract":"In this paper, we present a method for unconstrained end-to-end head pose estimation. We address the problem of ambiguous rotation labels by introducing the rotation matrix formalism for our ground truth data and propose a continuous 6D rotation matrix representation for efficient and robust direct regression. This way, our method can learn the full rotation appearance which is contrary to previous approaches that restrict the pose prediction to a narrow-angle for satisfactory results. In addition, we propose a geodesic distance-based loss to penalize our network with respect to the SO(3) manifold geometry. Experiments on the public AFLW2000 and BIWI datasets demonstrate that our proposed method significantly outperforms other state-of-the-art methods by up to 20\\%. We open-source our training and testing code along with our pre-trained models: https://github.com/thohemp/6DRepNet.","url_abs":"https://arxiv.org/abs/2202.12555v2","url_pdf":"https://arxiv.org/pdf/2202.12555v2.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":"6d-rotation-representation-for-unconstrained","repo_url":"https://github.com/thohemp/6drepnet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"6d-rotation-representation-for-unconstrained","repo_url":"https://github.com/yakhyo/head-pose-estimation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"head-pose-estimation","task_name":"Head Pose Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"pose-prediction","task_name":"Pose Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/head-pose-estimation-on-aflw2000","task":"Head Pose Estimation","dataset":"AFLW2000","model":"6DRepNet","rank_in_archive_order":11,"of":25,"metrics":{"MAE":"3.97"},"uses_additional_data":false},{"leaderboard":"/sota/head-pose-estimation-on-biwi","task":"Head Pose Estimation","dataset":"BIWI","model":"6DRepNet","rank_in_archive_order":5,"of":29,"metrics":{"MAE (trained with BIWI data)":"2.66","MAE (trained with other data)":"3.47"},"uses_additional_data":false},{"leaderboard":"/sota/head-pose-estimation-on-panoptic","task":"Head Pose Estimation","dataset":"Panoptic","model":"6DRepNet","rank_in_archive_order":3,"of":6,"metrics":{"Geodesic Error (GE)":"8.08"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2202.12555","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2202.12555"}},"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/thohemp/6drepnet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yakhyo/head-pose-estimation","reach":null}],"summary":{"ran_draft_wrong":3,"ran_honours":1,"ran":1,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"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":3,"samples":[{"code_sha256_prefix":"d97ed054442099c9","entry":"conv1x1","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"d97ed054442099c9"}},{"code_sha256_prefix":"7f22d053fb2c79d3","entry":"conv3x3","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"7f22d053fb2c79d3"}},{"code_sha256_prefix":"7186655759897af6","entry":"conv_bn","repo":"thohemp/6drepnet","repo_kind":"official","path":"sixdrepnet/backbone/repvgg.py","file_url":"https://github.com/thohemp/6drepnet/blob/HEAD/sixdrepnet/backbone/repvgg.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":"7186655759897af6"}},{"code_sha256_prefix":"0e7a40594b66badc","entry":"expand_bbox","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"0e7a40594b66badc"}},{"code_sha256_prefix":"3439d44222ccdc72","entry":"get_pose_params_from_mat","repo":"thohemp/6drepnet","repo_kind":"official","path":"sixdrepnet/utils.py","file_url":"https://github.com/thohemp/6drepnet/blob/HEAD/sixdrepnet/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":"3439d44222ccdc72"}},{"code_sha256_prefix":"9e05b6376777dfab","entry":"draw_axis","repo":"thohemp/6drepnet","repo_kind":"official","path":"sixdrepnet/utils.py","file_url":"https://github.com/thohemp/6drepnet/blob/HEAD/sixdrepnet/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":"9e05b6376777dfab"}},{"code_sha256_prefix":"5506a49b4dec7c1a","entry":"get_list_from_filenames","repo":"thohemp/6drepnet","repo_kind":"official","path":"sixdrepnet/datasets.py","file_url":"https://github.com/thohemp/6drepnet/blob/HEAD/sixdrepnet/datasets.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":"5506a49b4dec7c1a"}},{"code_sha256_prefix":"c9c193a924512abf","entry":"plot_pose_cube","repo":"thohemp/6drepnet","repo_kind":"official","path":"sixdrepnet/utils.py","file_url":"https://github.com/thohemp/6drepnet/blob/HEAD/sixdrepnet/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":"c9c193a924512abf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}