{"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/mdflow-unsupervised-optical-flow-learning-by","title":"MDFlow: Unsupervised Optical Flow Learning by Reliable Mutual Knowledge Distillation","arxiv_id":"2211.06018","date":"2022-11-11","proceeding":null,"authors":["Lingtong Kong","Jie Yang"],"abstract":"Recent works have shown that optical flow can be learned by deep networks from unlabelled image pairs based on brightness constancy assumption and smoothness prior. Current approaches additionally impose an augmentation regularization term for continual self-supervision, which has been proved to be effective on difficult matching regions. However, this method also amplify the inevitable mismatch in unsupervised setting, blocking the learning process towards optimal solution. To break the dilemma, we propose a novel mutual distillation framework to transfer reliable knowledge back and forth between the teacher and student networks for alternate improvement. Concretely, taking estimation of off-the-shelf unsupervised approach as pseudo labels, our insight locates at defining a confidence selection mechanism to extract relative good matches, and then add diverse data augmentation for distilling adequate and reliable knowledge from teacher to student. Thanks to the decouple nature of our method, we can choose a stronger student architecture for sufficient learning. Finally, better student prediction is adopted to transfer knowledge back to the efficient teacher without additional costs in real deployment. Rather than formulating it as a supervised task, we find that introducing an extra unsupervised term for multi-target learning achieves best final results. Extensive experiments show that our approach, termed MDFlow, achieves state-of-the-art real-time accuracy and generalization ability on challenging benchmarks. Code is available at https://github.com/ltkong218/MDFlow.","url_abs":"https://arxiv.org/abs/2211.06018v1","url_pdf":"https://arxiv.org/pdf/2211.06018v1.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":"mdflow-unsupervised-optical-flow-learning-by","repo_url":"https://github.com/ltkong218/mdflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"blocking","task_name":"Blocking"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015-2","task":"Optical Flow Estimation","dataset":"KITTI 2015 unsupervised","model":"MDFlow","rank_in_archive_order":1,"of":4,"metrics":{"Fl-all":"8.91"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015-2","task":"Optical Flow Estimation","dataset":"KITTI 2015 unsupervised","model":"MDFlow-Fast","rank_in_archive_order":3,"of":4,"metrics":{"Fl-all":"11.43"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean-2","task":"Optical Flow Estimation","dataset":"Sintel Clean unsupervised","model":"MDFlow","rank_in_archive_order":1,"of":5,"metrics":{"Average End-Point Error":"4.16"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean-2","task":"Optical Flow Estimation","dataset":"Sintel Clean unsupervised","model":"MDFlow-Fast","rank_in_archive_order":4,"of":5,"metrics":{"Average End-Point Error":"4.73"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-final-2","task":"Optical Flow Estimation","dataset":"Sintel Final unsupervised","model":"MDFlow","rank_in_archive_order":2,"of":5,"metrics":{"Average End-Point Error":"5.46"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-final-2","task":"Optical Flow Estimation","dataset":"Sintel Final unsupervised","model":"MDFlow-Fast","rank_in_archive_order":4,"of":5,"metrics":{"Average End-Point Error":"5.99"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2211.06018","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2211.06018"}},"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/ltkong218/mdflow","reach":null}],"summary":{"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":1,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"dd20ec11b1899225","entry":"convrelu","repo":"ltkong218/mdflow","repo_kind":"official","path":"models/FastFlowNet.py","file_url":"https://github.com/ltkong218/mdflow/blob/HEAD/models/FastFlowNet.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dd20ec11b1899225"}},{"code_sha256_prefix":"dc4fb7628379691e","entry":"deconv","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":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"dc4fb7628379691e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}