{"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/lafs-landmark-based-facial-self-supervised","title":"LAFS: Landmark-based Facial Self-supervised Learning for Face Recognition","arxiv_id":"2403.08161","date":"2024-03-13","proceeding":"CVPR 2024 1","authors":["Zhonglin Sun","Chen Feng","Ioannis Patras","Georgios Tzimiropoulos"],"abstract":"In this work we focus on learning facial representations that can be adapted to train effective face recognition models, particularly in the absence of labels. Firstly, compared with existing labelled face datasets, a vastly larger magnitude of unlabeled faces exists in the real world. We explore the learning strategy of these unlabeled facial images through self-supervised pretraining to transfer generalized face recognition performance. Moreover, motivated by one recent finding, that is, the face saliency area is critical for face recognition, in contrast to utilizing random cropped blocks of images for constructing augmentations in pretraining, we utilize patches localized by extracted facial landmarks. This enables our method - namely LAndmark-based Facial Self-supervised learning LAFS), to learn key representation that is more critical for face recognition. We also incorporate two landmark-specific augmentations which introduce more diversity of landmark information to further regularize the learning. With learned landmark-based facial representations, we further adapt the representation for face recognition with regularization mitigating variations in landmark positions. Our method achieves significant improvement over the state-of-the-art on multiple face recognition benchmarks, especially on more challenging few-shot scenarios.","url_abs":"https://arxiv.org/abs/2403.08161v1","url_pdf":"https://arxiv.org/pdf/2403.08161v1.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":"lafs-landmark-based-facial-self-supervised","repo_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"lafs-landmark-based-facial-self-supervised","repo_url":"https://github.com/FaceOnLive/Face-Recognition-SDK-Android","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"face-recognition","task_name":"Face Recognition"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.08161","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.08161"}},"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/FaceOnLive/Face-Recognition-SDK-Android","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/szlbiubiubiu/lafs_cvpr2024","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/szlbiubiubiu/LAFS","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}}],"summary":{"ran":9,"ran_draft_wrong":1,"ran_fixture":1,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":14,"ran":12,"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":14,"samples":[{"code_sha256_prefix":"6c4e6da8c7866587","entry":"FeedForward","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6c4e6da8c7866587"}},{"code_sha256_prefix":"97e2bf83055f2f7b","entry":"Hsigmoid","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"97e2bf83055f2f7b"}},{"code_sha256_prefix":"aca782f4ff28c88e","entry":"Hswish","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"aca782f4ff28c88e"}},{"code_sha256_prefix":"897a6cef897cd588","entry":"Identity","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"897a6cef897cd588"}},{"code_sha256_prefix":"28ab6836b172e7dd","entry":"MobileBottleneck","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"28ab6836b172e7dd"}},{"code_sha256_prefix":"8d4ae19fb1c257ec","entry":"MobileNetV3_backbone","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d4ae19fb1c257ec"}},{"code_sha256_prefix":"4b3cd3da7ae0fdbb","entry":"Residual_droppath","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4b3cd3da7ae0fdbb"}},{"code_sha256_prefix":"b2dab58cfcef1537","entry":"SEModule","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b2dab58cfcef1537"}},{"code_sha256_prefix":"b5f1aaa85390cced","entry":"Transformer","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b5f1aaa85390cced"}},{"code_sha256_prefix":"3c7c350b0122c904","entry":"conv_bn","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3c7c350b0122c904"}},{"code_sha256_prefix":"593850f8a0f901e3","entry":"extract_patches_pytorch_gridsample","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"593850f8a0f901e3"}},{"code_sha256_prefix":"e122dab1d91b8c35","entry":"make_divisible","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e122dab1d91b8c35"}},{"code_sha256_prefix":"5eb1f008cc961666","entry":"Attention","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5eb1f008cc961666"}},{"code_sha256_prefix":"737ca9ca3ee915bd","entry":"ViT_face_landmark_patch8_4simmin_glo_loc","repo":"szlbiubiubiu/lafs_cvpr2024","repo_kind":"official","path":"face_pre_pro/ViT_face.py","file_url":"https://github.com/szlbiubiubiu/lafs_cvpr2024/blob/HEAD/face_pre_pro/ViT_face.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"737ca9ca3ee915bd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}