{"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/autolink-self-supervised-learning-of-human","title":"AutoLink: Self-supervised Learning of Human Skeletons and Object Outlines by Linking Keypoints","arxiv_id":"2205.10636","date":"2022-05-21","proceeding":null,"authors":["Xingzhe He","Bastian Wandt","Helge Rhodin"],"abstract":"Structured representations such as keypoints are widely used in pose transfer, conditional image generation, animation, and 3D reconstruction. However, their supervised learning requires expensive annotation for each target domain. We propose a self-supervised method that learns to disentangle object structure from the appearance with a graph of 2D keypoints linked by straight edges. Both the keypoint location and their pairwise edge weights are learned, given only a collection of images depicting the same object class. The resulting graph is interpretable, for example, AutoLink recovers the human skeleton topology when applied to images showing people. Our key ingredients are i) an encoder that predicts keypoint locations in an input image, ii) a shared graph as a latent variable that links the same pairs of keypoints in every image, iii) an intermediate edge map that combines the latent graph edge weights and keypoint locations in a soft, differentiable manner, and iv) an inpainting objective on randomly masked images. Although simpler, AutoLink outperforms existing self-supervised methods on the established keypoint and pose estimation benchmarks and paves the way for structure-conditioned generative models on more diverse datasets. Project website: https://xingzhehe.github.io/autolink/.","url_abs":"https://arxiv.org/abs/2205.10636v6","url_pdf":"https://arxiv.org/pdf/2205.10636v6.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":"autolink-self-supervised-learning-of-human","repo_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"unsupervised-facial-landmark-detection","task_name":"Unsupervised Facial Landmark Detection"},{"task_slug":null,"task_name":"Unsupervised Facial Landmark Detection on MAFL"},{"task_slug":"unsupervised-human-pose-estimation","task_name":"Unsupervised Human Pose Estimation"},{"task_slug":"unsupervised-keypoint-estimation","task_name":"Unsupervised Keypoint Estimation"},{"task_slug":null,"task_name":"Unsupervised Keypoints"},{"task_slug":"unsupervised-landmark-detection","task_name":"Unsupervised Landmark Detection"}],"methods":[{"method_slug":"pixel-prediction","method_name":"Inpainting"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/unsupervised-facial-landmark-detection-on-1","task":"Unsupervised Facial Landmark Detection","dataset":"MAFL","model":"AutoLink","rank_in_archive_order":7,"of":13,"metrics":{"NME":"3.54"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-facial-landmark-detection-on-5","task":"Unsupervised Facial Landmark Detection","dataset":"MAFL Unaligned","model":"AutoLink","rank_in_archive_order":1,"of":9,"metrics":{"NME":"5.24"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-landmark-detection-on-mafl","task":"Unsupervised Landmark Detection","dataset":"MAFL Unaligned","model":"AutoLink","rank_in_archive_order":1,"of":1,"metrics":{"Mean NME":"5.24"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2205.10636","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.10636"}},"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/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","reach":null}],"summary":{"ran":4,"ran_honours":1},"by_repo_kind":{"official":{"samples":5,"ran":5,"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":"3fe88d7bffebceef","entry":"Detector","repo":"xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints/blob/HEAD/models/encoder.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":"3fe88d7bffebceef"}},{"code_sha256_prefix":"406f3daebf57ace2","entry":"Encoder","repo":"xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints/blob/HEAD/models/encoder.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":"406f3daebf57ace2"}},{"code_sha256_prefix":"3b6a66406813a55c","entry":"ResBlock","repo":"xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints/blob/HEAD/models/encoder.py","link_basis":"first_harvest_node","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":"3b6a66406813a55c"}},{"code_sha256_prefix":"6882f43ac1d9bc90","entry":"TransposedBlock","repo":"xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints/blob/HEAD/models/encoder.py","link_basis":"first_harvest_node","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":"6882f43ac1d9bc90"}},{"code_sha256_prefix":"0f27f4afeb7330f2","entry":"gen_grid2d","repo":"xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/xingzhehe/AutoLink-Self-supervised-Learning-of-Human-Skeletons-and-Object-Outlines-by-Linking-Keypoints/blob/HEAD/models/encoder.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0f27f4afeb7330f2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}