{"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/self-supervised-video-object-segmentation-by-1","title":"Self-Supervised Video Object Segmentation by Motion-Aware Mask Propagation","arxiv_id":"2107.12569","date":"2021-07-27","proceeding":null,"authors":["Bo Miao","Mohammed Bennamoun","Yongsheng Gao","Ajmal Mian"],"abstract":"We propose a self-supervised spatio-temporal matching method, coined Motion-Aware Mask Propagation (MAMP), for video object segmentation. MAMP leverages the frame reconstruction task for training without the need for annotations. During inference, MAMP extracts high-resolution features from each frame to build a memory bank from the features as well as the predicted masks of selected past frames. MAMP then propagates the masks from the memory bank to subsequent frames according to our proposed motion-aware spatio-temporal matching module to handle fast motion and long-term matching scenarios. Evaluation on DAVIS-2017 and YouTube-VOS datasets show that MAMP achieves state-of-the-art performance with stronger generalization ability compared to existing self-supervised methods, i.e., 4.2% higher mean J&F on DAVIS-2017 and 4.85% higher mean J&F on the unseen categories of YouTube-VOS than the nearest competitor. Moreover, MAMP performs at par with many supervised video object segmentation methods. Our code is available at: https://github.com/bo-miao/MAMP.","url_abs":"https://arxiv.org/abs/2107.12569v2","url_pdf":"https://arxiv.org/pdf/2107.12569v2.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":"self-supervised-video-object-segmentation-by-1","repo_url":"https://github.com/bo-miao/MAMP","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"semi-supervised-video-object-segmentation","task_name":"Semi-Supervised Video Object Segmentation"},{"task_slug":"video-object-segmentation","task_name":"Video Object Segmentation"},{"task_slug":"video-semantic-segmentation","task_name":"Video Semantic Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/visual-object-tracking-on-davis-2017","task":"Semi-Supervised Video Object Segmentation","dataset":"DAVIS 2017 (val)","model":"MAMP","rank_in_archive_order":61,"of":81,"metrics":{"F-measure (Mean)":"71.2","J&F":"69.7","Jaccard (Mean)":"68.3"},"uses_additional_data":false},{"leaderboard":"/sota/video-object-segmentation-on-youtube-vos","task":"Semi-Supervised Video Object Segmentation","dataset":"YouTube-VOS 2018","model":"MAMP","rank_in_archive_order":45,"of":53,"metrics":{"F-Measure (Seen)":"68.4","F-Measure (Unseen)":"73.2","Jaccard (Seen)":"67.0","Jaccard (Unseen)":"64.5","Overall":"68.2"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2107.12569","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.12569"}},"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/bo-miao/MAMP","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":"1123673eea59bc2b","entry":"fetch_dataloader","repo":"bo-miao/MAMP","repo_kind":"official","path":"raft_core/datasets.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/raft_core/datasets.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1123673eea59bc2b"}},{"code_sha256_prefix":"162258ee85d212a6","entry":"get_davis_ref_index","repo":"bo-miao/MAMP","repo_kind":"official","path":"functions.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"162258ee85d212a6"}},{"code_sha256_prefix":"c38888429dd9fc03","entry":"get_youtube_ref_index","repo":"bo-miao/MAMP","repo_kind":"official","path":"functions.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c38888429dd9fc03"}},{"code_sha256_prefix":"977ce9d3e7475a40","entry":"mask_to_one_hot","repo":"bo-miao/MAMP","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/models/encoder.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"977ce9d3e7475a40"}},{"code_sha256_prefix":"ee48a7f1c8759429","entry":"setup_logger","repo":"bo-miao/MAMP","repo_kind":"official","path":"functions.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/functions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ee48a7f1c8759429"}},{"code_sha256_prefix":"3f078b29a650e9a7","entry":"warp_optical_flow","repo":"bo-miao/MAMP","repo_kind":"official","path":"models/encoder.py","file_url":"https://github.com/bo-miao/MAMP/blob/HEAD/models/encoder.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3f078b29a650e9a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}