{"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-by-analogy-reliable-supervision-from","title":"Learning by Analogy: Reliable Supervision from Transformations for Unsupervised Optical Flow Estimation","arxiv_id":"2003.13045","date":"2020-03-29","proceeding":"CVPR 2020 6","authors":["Liang Liu","Jiangning Zhang","Ruifei He","Yong liu","Yabiao Wang","Ying Tai","Donghao Luo","Chengjie Wang","Jilin Li","Feiyue Huang"],"abstract":"Unsupervised learning of optical flow, which leverages the supervision from view synthesis, has emerged as a promising alternative to supervised methods. However, the objective of unsupervised learning is likely to be unreliable in challenging scenes. In this work, we present a framework to use more reliable supervision from transformations. It simply twists the general unsupervised learning pipeline by running another forward pass with transformed data from augmentation, along with using transformed predictions of original data as the self-supervision signal. Besides, we further introduce a lightweight network with multiple frames by a highly-shared flow decoder. Our method consistently gets a leap of performance on several benchmarks with the best accuracy among deep unsupervised methods. Also, our method achieves competitive results to recent fully supervised methods while with much fewer parameters.","url_abs":"https://arxiv.org/abs/2003.13045v2","url_pdf":"https://arxiv.org/pdf/2003.13045v2.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-by-analogy-reliable-supervision-from","repo_url":"https://github.com/lliuz/ARFlow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-by-analogy-reliable-supervision-from","repo_url":"https://github.com/duke-vision/optical-flow-active-learning-release","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2012-2","task":"Optical Flow Estimation","dataset":"KITTI 2012 unsupervised","model":"ARFlow-MV","rank_in_archive_order":2,"of":2,"metrics":{"Average End-Point Error":"1.5"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015-2","task":"Optical Flow Estimation","dataset":"KITTI 2015 unsupervised","model":"ARFlow-MV","rank_in_archive_order":4,"of":4,"metrics":{"Fl-all":"11.79"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean-2","task":"Optical Flow Estimation","dataset":"Sintel Clean unsupervised","model":"ARFlow-MV","rank_in_archive_order":2,"of":5,"metrics":{"Average End-Point Error":"4.49"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-final-2","task":"Optical Flow Estimation","dataset":"Sintel Final unsupervised","model":"ARFlow-MV","rank_in_archive_order":3,"of":5,"metrics":{"Average End-Point Error":"5.67"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2003.13045","atlas_url":"https://app.syntology.ai/?focus=2003.13045","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.13045"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/lliuz/ARFlow","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/duke-vision/optical-flow-active-learning-release","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":0,"samples":[{"code_sha256_prefix":"78ed5eb745e54bee","entry":"SSIM","repo":"lliuz/ARFlow","repo_kind":"official","path":"losses/loss_blocks.py","file_url":"https://github.com/lliuz/ARFlow/blob/HEAD/losses/loss_blocks.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":"78ed5eb745e54bee"}},{"code_sha256_prefix":"c2e12a1d35bc95f1","entry":"TernaryLoss","repo":"lliuz/ARFlow","repo_kind":"official","path":"losses/loss_blocks.py","file_url":"https://github.com/lliuz/ARFlow/blob/HEAD/losses/loss_blocks.py","link_basis":"plan_row","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":"c2e12a1d35bc95f1"}},{"code_sha256_prefix":"a9713a1e43f97a70","entry":"gradient","repo":"lliuz/ARFlow","repo_kind":"official","path":"losses/loss_blocks.py","file_url":"https://github.com/lliuz/ARFlow/blob/HEAD/losses/loss_blocks.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":"a9713a1e43f97a70"}},{"code_sha256_prefix":"9db5fbaedd8ed8b4","entry":"conv","repo":"lliuz/ARFlow","repo_kind":"official","path":"models/pwclite.py","file_url":"https://github.com/lliuz/ARFlow/blob/HEAD/models/pwclite.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9db5fbaedd8ed8b4"}},{"code_sha256_prefix":"5c99e97f4d4cb84e","entry":"get_trainer","repo":"lliuz/ARFlow","repo_kind":"official","path":"trainer/get_trainer.py","file_url":"https://github.com/lliuz/ARFlow/blob/HEAD/trainer/get_trainer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5c99e97f4d4cb84e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}