{"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/structure-aware-motion-transfer-with","title":"Structure-Aware Motion Transfer with Deformable Anchor Model","arxiv_id":"2204.05018","date":"2022-04-11","proceeding":"CVPR 2022 1","authors":["Jiale Tao","Biao Wang","Borun Xu","Tiezheng Ge","Yuning Jiang","Wen Li","Lixin Duan"],"abstract":"Given a source image and a driving video depicting the same object type, the motion transfer task aims to generate a video by learning the motion from the driving video while preserving the appearance from the source image. In this paper, we propose a novel structure-aware motion modeling approach, the deformable anchor model (DAM), which can automatically discover the motion structure of arbitrary objects without leveraging their prior structure information. Specifically, inspired by the known deformable part model (DPM), our DAM introduces two types of anchors or keypoints: i) a number of motion anchors that capture both appearance and motion information from the source image and driving video; ii) a latent root anchor, which is linked to the motion anchors to facilitate better learning of the representations of the object structure information. Moreover, DAM can be further extended to a hierarchical version through the introduction of additional latent anchors to model more complicated structures. By regularizing motion anchors with latent anchor(s), DAM enforces the correspondences between them to ensure the structural information is well captured and preserved. Moreover, DAM can be learned effectively in an unsupervised manner. We validate our proposed DAM for motion transfer on different benchmark datasets. Extensive experiments clearly demonstrate that DAM achieves superior performance relative to existing state-of-the-art methods.","url_abs":"https://arxiv.org/abs/2204.05018v1","url_pdf":"https://arxiv.org/pdf/2204.05018v1.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":"structure-aware-motion-transfer-with","repo_url":"https://github.com/jialetao/dam","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"model","task_name":"model"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.05018","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.05018"}},"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/jialetao/dam","reach":null}],"summary":{"ran":4,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"411945108ea6ce5f","entry":"DownBlock2d","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.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":"411945108ea6ce5f"}},{"code_sha256_prefix":"314e09e5f1f4bbf0","entry":"Encoder","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"314e09e5f1f4bbf0"}},{"code_sha256_prefix":"4e476cfc22bbb2ba","entry":"Hourglass","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.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":"4e476cfc22bbb2ba"}},{"code_sha256_prefix":"8718f6e6a227c490","entry":"UpBlock2d","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.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":"8718f6e6a227c490"}},{"code_sha256_prefix":"161cd0e26280db3c","entry":"Decoder","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.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":"161cd0e26280db3c"}},{"code_sha256_prefix":"9d4aadfc39be937b","entry":"DenseMotionNetwork","repo":"jialetao/dam","repo_kind":"official","path":"modules/dense_motion.py","file_url":"https://github.com/jialetao/dam/blob/HEAD/modules/dense_motion.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":"9d4aadfc39be937b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}