{"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/upflow-upsampling-pyramid-for-unsupervised","title":"UPFlow: Upsampling Pyramid for Unsupervised Optical Flow Learning","arxiv_id":"2012.00212","date":"2020-12-01","proceeding":"CVPR 2021 1","authors":["Kunming Luo","Chuan Wang","Shuaicheng Liu","Haoqiang Fan","Jue Wang","Jian Sun"],"abstract":"We present an unsupervised learning approach for optical flow estimation by improving the upsampling and learning of pyramid network. We design a self-guided upsample module to tackle the interpolation blur problem caused by bilinear upsampling between pyramid levels. Moreover, we propose a pyramid distillation loss to add supervision for intermediate levels via distilling the finest flow as pseudo labels. By integrating these two components together, our method achieves the best performance for unsupervised optical flow learning on multiple leading benchmarks, including MPI-SIntel, KITTI 2012 and KITTI 2015. In particular, we achieve EPE=1.4 on KITTI 2012 and F1=9.38% on KITTI 2015, which outperform the previous state-of-the-art methods by 22.2% and 15.7%, respectively.","url_abs":"https://arxiv.org/abs/2012.00212v2","url_pdf":"https://arxiv.org/pdf/2012.00212v2.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":"upflow-upsampling-pyramid-for-unsupervised","repo_url":"https://github.com/coolbeam/UPFlow_pytorch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"upflow-upsampling-pyramid-for-unsupervised","repo_url":"https://github.com/twhui/LiteFlowNet3","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2012-2","task":"Optical Flow Estimation","dataset":"KITTI 2012 unsupervised","model":"UpFlow","rank_in_archive_order":1,"of":2,"metrics":{"Average End-Point Error":"1.4"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015-2","task":"Optical Flow Estimation","dataset":"KITTI 2015 unsupervised","model":"UpFlow","rank_in_archive_order":2,"of":4,"metrics":{"Fl-all":"9.38"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean-2","task":"Optical Flow Estimation","dataset":"Sintel Clean unsupervised","model":"UpFlow","rank_in_archive_order":3,"of":5,"metrics":{"Average End-Point Error":"4.68"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-final-2","task":"Optical Flow Estimation","dataset":"Sintel Final unsupervised","model":"UpFlow","rank_in_archive_order":1,"of":5,"metrics":{"Average End-Point Error":"5.32"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2012.00212","atlas_url":"https://app.syntology.ai/?focus=2012.00212","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2012.00212"}},"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/twhui/LiteFlowNet3","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/coolbeam/UPFlow_pytorch","reach":null}],"summary":{"ran_fixture":1},"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":0,"samples":[{"code_sha256_prefix":"4c7dbc77f5e27078","entry":"upsample2d_as","repo":"coolbeam/UPFlow_pytorch","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/coolbeam/UPFlow_pytorch/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4c7dbc77f5e27078"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}