{"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/object-discovery-from-motion-guided-tokens","title":"Object Discovery from Motion-Guided Tokens","arxiv_id":"2303.15555","date":"2023-03-27","proceeding":"CVPR 2023 1","authors":["Zhipeng Bao","Pavel Tokmakov","Yu-Xiong Wang","Adrien Gaidon","Martial Hebert"],"abstract":"Object discovery -- separating objects from the background without manual labels -- is a fundamental open challenge in computer vision. Previous methods struggle to go beyond clustering of low-level cues, whether handcrafted (e.g., color, texture) or learned (e.g., from auto-encoders). In this work, we augment the auto-encoder representation learning framework with two key components: motion-guidance and mid-level feature tokenization. Although both have been separately investigated, we introduce a new transformer decoder showing that their benefits can compound thanks to motion-guided vector quantization. We show that our architecture effectively leverages the synergy between motion and tokenization, improving upon the state of the art on both synthetic and real datasets. Our approach enables the emergence of interpretable object-specific mid-level features, demonstrating the benefits of motion-guidance (no labeling) and quantization (interpretability, memory efficiency).","url_abs":"https://arxiv.org/abs/2303.15555v1","url_pdf":"https://arxiv.org/pdf/2303.15555v1.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":"object-discovery-from-motion-guided-tokens","repo_url":"https://github.com/zpbao/discovery_obj_move","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"object-discovery-from-motion-guided-tokens","repo_url":"https://github.com/zpbao/motok","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-discovery","task_name":"Object Discovery"},{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.15555","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.15555"}},"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/zpbao/discovery_obj_move","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zpbao/motok","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/zpbao/MoTok","reach":{"status":"ok"}}],"summary":{"ran":14,"ran_draft_wrong":4,"unverified":11},"by_repo_kind":{"official":{"samples":28,"ran":17,"repositories":2}},"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":29,"samples":[{"code_sha256_prefix":"fcfd6a91cff8bff5","entry":"Attention","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"fcfd6a91cff8bff5"}},{"code_sha256_prefix":"7f064626e47dfce3","entry":"BasicBlock","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"7f064626e47dfce3"}},{"code_sha256_prefix":"1af3ad81514e01ab","entry":"Bottleneck","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"1af3ad81514e01ab"}},{"code_sha256_prefix":"9bc24612fd19fd61","entry":"Decoder","repo":"zpbao/discovery_obj_move","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/discovery_obj_move/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9bc24612fd19fd61"}},{"code_sha256_prefix":"209a0cdd69004ed6","entry":"FeedForward","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"209a0cdd69004ed6"}},{"code_sha256_prefix":"594fabefbfea082e","entry":"GEGLU","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"594fabefbfea082e"}},{"code_sha256_prefix":"86ce7d3fde6f587d","entry":"PositionalEncoding","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"86ce7d3fde6f587d"}},{"code_sha256_prefix":"a6d3c1695434241b","entry":"PreNorm","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"a6d3c1695434241b"}},{"code_sha256_prefix":"01574b6a1614b1a1","entry":"ResBlock","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"01574b6a1614b1a1"}},{"code_sha256_prefix":"45687c252db176ee","entry":"SoftPositionEmbed","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"45687c252db176ee"}},{"code_sha256_prefix":"c69c1f11329402c9","entry":"VQEmbedding","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"c69c1f11329402c9"}},{"code_sha256_prefix":"52b032a9f378f705","entry":"VectorQuantization","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"52b032a9f378f705"}},{"code_sha256_prefix":"30c902aa572b0c90","entry":"VectorQuantizationStraightThrough","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"30c902aa572b0c90"}},{"code_sha256_prefix":"fb9ea071c294e160","entry":"VectorQuantizedVAE","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fb9ea071c294e160"}},{"code_sha256_prefix":"8a1bbc075986fb5f","entry":"build_grid","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8a1bbc075986fb5f"}},{"code_sha256_prefix":"8458f9ba0361ff43","entry":"cache_fn","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"8458f9ba0361ff43"}},{"code_sha256_prefix":"18a2690463c2ec97","entry":"conv1x1","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"18a2690463c2ec97"}},{"code_sha256_prefix":"3e8e29138f60555f","entry":"conv3x3","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e8e29138f60555f"}},{"code_sha256_prefix":"dc3d45b68c59927d","entry":"Encoder","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"dc3d45b68c59927d"}},{"code_sha256_prefix":"3d5f91eee8334682","entry":"Encoder","repo":"zpbao/discovery_obj_move","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/discovery_obj_move/blob/HEAD/models/model.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":"3d5f91eee8334682"}},{"code_sha256_prefix":"c86e0d0d853fe4a1","entry":"PerceiverDecoder","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"c86e0d0d853fe4a1"}},{"code_sha256_prefix":"2e235c3f15a3bb8b","entry":"ResNet","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"2e235c3f15a3bb8b"}},{"code_sha256_prefix":"50957c73909eec68","entry":"SlotAttention","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"50957c73909eec68"}},{"code_sha256_prefix":"c91f2d386d8a0b9d","entry":"SlotAttention","repo":"zpbao/discovery_obj_move","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/discovery_obj_move/blob/HEAD/models/model.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":"c91f2d386d8a0b9d"}},{"code_sha256_prefix":"bc3a09f53e252fc4","entry":"SlotAttentionAutoEncoder","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"bc3a09f53e252fc4"}},{"code_sha256_prefix":"43591a6ff7ac7600","entry":"SlotAttentionAutoEncoder","repo":"zpbao/discovery_obj_move","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/discovery_obj_move/blob/HEAD/models/model.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":"43591a6ff7ac7600"}},{"code_sha256_prefix":"c4172180d85b140c","entry":"_resnet","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"c4172180d85b140c"}},{"code_sha256_prefix":"3b2937dc40639bd1","entry":"resnet18","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"3b2937dc40639bd1"}},{"code_sha256_prefix":"8f78954c8ba8c9d2","entry":"weights_init","repo":"zpbao/MoTok","repo_kind":"official","path":"models/model.py","file_url":"https://github.com/zpbao/MoTok/blob/HEAD/models/model.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":"8f78954c8ba8c9d2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}