{"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/learning-optical-flow-with-adaptive-graph","title":"Learning Optical Flow with Adaptive Graph Reasoning","arxiv_id":"2202.03857","date":"2022-02-08","proceeding":null,"authors":["Ao Luo","Fan Yang","Kunming Luo","Xin Li","Haoqiang Fan","Shuaicheng Liu"],"abstract":"Estimating per-pixel motion between video frames, known as optical flow, is a long-standing problem in video understanding and analysis. Most contemporary optical flow techniques largely focus on addressing the cross-image matching with feature similarity, with few methods considering how to explicitly reason over the given scene for achieving a holistic motion understanding. In this work, taking a fresh perspective, we introduce a novel graph-based approach, called adaptive graph reasoning for optical flow (AGFlow), to emphasize the value of scene/context information in optical flow. Our key idea is to decouple the context reasoning from the matching procedure, and exploit scene information to effectively assist motion estimation by learning to reason over the adaptive graph. The proposed AGFlow can effectively exploit the context information and incorporate it within the matching procedure, producing more robust and accurate results. On both Sintel clean and final passes, our AGFlow achieves the best accuracy with EPE of 1.43 and 2.47 pixels, outperforming state-of-the-art approaches by 11.2% and 13.6%, respectively.","url_abs":"https://arxiv.org/abs/2202.03857v1","url_pdf":"https://arxiv.org/pdf/2202.03857v1.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":"learning-optical-flow-with-adaptive-graph","repo_url":"https://github.com/la30/agflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"motion-estimation","task_name":"Motion Estimation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"},{"task_slug":"video-understanding","task_name":"Video Understanding"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2202.03857","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2202.03857"}},"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/la30/agflow","reach":null}],"summary":{"ran":3,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"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":5,"samples":[{"code_sha256_prefix":"3fadd5f6316254b4","entry":"AGCN","repo":"la30/agflow","repo_kind":"official","path":"core/raft_agflow.py","file_url":"https://github.com/la30/agflow/blob/HEAD/core/raft_agflow.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":"3fadd5f6316254b4"}},{"code_sha256_prefix":"b85e37e3abc4996b","entry":"AGR","repo":"la30/agflow","repo_kind":"official","path":"core/raft_agflow.py","file_url":"https://github.com/la30/agflow/blob/HEAD/core/raft_agflow.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":"b85e37e3abc4996b"}},{"code_sha256_prefix":"3579f23825ccf5e7","entry":"GCN","repo":"la30/agflow","repo_kind":"official","path":"core/raft_agflow.py","file_url":"https://github.com/la30/agflow/blob/HEAD/core/raft_agflow.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":"3579f23825ccf5e7"}},{"code_sha256_prefix":"7bfb13e0233c43c9","entry":"AGFlow","repo":"la30/agflow","repo_kind":"official","path":"core/raft_agflow.py","file_url":"https://github.com/la30/agflow/blob/HEAD/core/raft_agflow.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":"7bfb13e0233c43c9"}},{"code_sha256_prefix":"21619e2f2b617e07","entry":"AGRDecoder","repo":"la30/agflow","repo_kind":"official","path":"core/raft_agflow.py","file_url":"https://github.com/la30/agflow/blob/HEAD/core/raft_agflow.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":"21619e2f2b617e07"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}