{"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/face-alignment-in-full-pose-range-a-3d-total","title":"Face Alignment in Full Pose Range: A 3D Total Solution","arxiv_id":"1804.01005","date":"2018-04-02","proceeding":null,"authors":["Xiangyu Zhu","Xiaoming Liu","Zhen Lei","Stan Z. Li"],"abstract":"Face alignment, which fits a face model to an image and extracts the semantic\nmeanings of facial pixels, has been an important topic in the computer vision\ncommunity. However, most algorithms are designed for faces in small to medium\nposes (yaw angle is smaller than 45 degrees), which lack the ability to align\nfaces in large poses up to 90 degrees. The challenges are three-fold. Firstly,\nthe commonly used landmark face model assumes that all the landmarks are\nvisible and is therefore not suitable for large poses. Secondly, the face\nappearance varies more drastically across large poses, from the frontal view to\nthe profile view. Thirdly, labelling landmarks in large poses is extremely\nchallenging since the invisible landmarks have to be guessed. In this paper, we\npropose to tackle these three challenges in an new alignment framework termed\n3D Dense Face Alignment (3DDFA), in which a dense 3D Morphable Model (3DMM) is\nfitted to the image via Cascaded Convolutional Neural Networks. We also utilize\n3D information to synthesize face images in profile views to provide abundant\nsamples for training. Experiments on the challenging AFLW database show that\nthe proposed approach achieves significant improvements over the\nstate-of-the-art methods.","url_abs":"http://arxiv.org/abs/1804.01005v1","url_pdf":"http://arxiv.org/pdf/1804.01005v1.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":"face-alignment-in-full-pose-range-a-3d-total","repo_url":"https://github.com/cleardusk/3DDFA","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"face-alignment-in-full-pose-range-a-3d-total","repo_url":"https://github.com/1996scarlet/dense-head-pose-estimation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-pose-estimation","task_name":"3D Pose Estimation"},{"task_slug":"depth-image-estimation","task_name":"Depth Image Estimation"},{"task_slug":"face-alignment","task_name":"Face Alignment"},{"task_slug":"face-model","task_name":"Face Model"},{"task_slug":"face-reconstruction","task_name":"Face Reconstruction"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/face-alignment-on-300w","task":"Face Alignment","dataset":"300W","model":"3DDFA","rank_in_archive_order":43,"of":48,"metrics":{"NME_inter-ocular (%, Challenge)":"8.07","NME_inter-ocular (%, Common)":"5.09","NME_inter-ocular (%, Full)":"5.63","NME_inter-pupil (%, Challenge)":"10.59","NME_inter-pupil (%, Common)":"6.15","NME_inter-pupil (%, Full)":"7.01"},"uses_additional_data":false},{"leaderboard":"/sota/face-alignment-on-aflw","task":"Face Alignment","dataset":"AFLW","model":"3DDFA","rank_in_archive_order":3,"of":3,"metrics":{"Mean NME":"4.55"},"uses_additional_data":false},{"leaderboard":"/sota/face-alignment-on-aflw2000-3d","task":"Face Alignment","dataset":"AFLW2000-3D","model":"3DDFA","rank_in_archive_order":10,"of":14,"metrics":{"Balanced NME (2D Sparse Alignment)":"3.79%","Mean NME(3D Dense Alignment)":"6.55%"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1804.01005","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1804.01005"}},"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/cleardusk/3DDFA","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/1996scarlet/dense-head-pose-estimation","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_violates":1,"unverified":1},"by_repo_kind":{"official":{"samples":3,"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":0,"samples":[{"code_sha256_prefix":"853c41eb4bb16d91","entry":"P2sRt","repo":"cleardusk/3DDFA","repo_kind":"official","path":"utils/estimate_pose.py","file_url":"https://github.com/cleardusk/3DDFA/blob/HEAD/utils/estimate_pose.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"853c41eb4bb16d91"}},{"code_sha256_prefix":"477c2dd5cc17773f","entry":"matrix2angle","repo":"cleardusk/3DDFA","repo_kind":"official","path":"utils/estimate_pose.py","file_url":"https://github.com/cleardusk/3DDFA/blob/HEAD/utils/estimate_pose.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"477c2dd5cc17773f"}},{"code_sha256_prefix":"2144ad5b568bba67","entry":"parse_pose","repo":"cleardusk/3DDFA","repo_kind":"official","path":"utils/estimate_pose.py","file_url":"https://github.com/cleardusk/3DDFA/blob/HEAD/utils/estimate_pose.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":"2144ad5b568bba67"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}