{"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/iterative-residual-refinement-for-joint","title":"Iterative Residual Refinement for Joint Optical Flow and Occlusion Estimation","arxiv_id":"1904.05290","date":"2019-04-10","proceeding":"CVPR 2019 6","authors":["Junhwa Hur","Stefan Roth"],"abstract":"Deep learning approaches to optical flow estimation have seen rapid progress\nover the recent years. One common trait of many networks is that they refine an\ninitial flow estimate either through multiple stages or across the levels of a\ncoarse-to-fine representation. While leading to more accurate results, the\ndownside of this is an increased number of parameters. Taking inspiration from\nboth classical energy minimization approaches as well as residual networks, we\npropose an iterative residual refinement (IRR) scheme based on weight sharing\nthat can be combined with several backbone networks. It reduces the number of\nparameters, improves the accuracy, or even achieves both. Moreover, we show\nthat integrating occlusion prediction and bi-directional flow estimation into\nour IRR scheme can further boost the accuracy. Our full network achieves\nstate-of-the-art results for both optical flow and occlusion estimation across\nseveral standard datasets.","url_abs":"http://arxiv.org/abs/1904.05290v1","url_pdf":"http://arxiv.org/pdf/1904.05290v1.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":"iterative-residual-refinement-for-joint","repo_url":"https://github.com/visinf/irr","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"iterative-residual-refinement-for-joint","repo_url":"https://github.com/open-mmlab/mmflow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"occlusion-estimation","task_name":"Occlusion Estimation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2012","task":"Optical Flow Estimation","dataset":"KITTI 2012","model":"IRR-PWC","rank_in_archive_order":10,"of":12,"metrics":{"Average End-Point Error":"1.6"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015","task":"Optical Flow Estimation","dataset":"KITTI 2015","model":"IRR-PWC","rank_in_archive_order":13,"of":18,"metrics":{"Fl-all":"7.65"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean","task":"Optical Flow Estimation","dataset":"Sintel-clean","model":"IRR-PWC","rank_in_archive_order":24,"of":29,"metrics":{"Average End-Point Error":"3.84"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-final","task":"Optical Flow Estimation","dataset":"Sintel-final","model":"IRR-PWC","rank_in_archive_order":21,"of":28,"metrics":{"Average End-Point Error":"4.579"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1904.05290","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1904.05290"}},"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/visinf/irr","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/open-mmlab/mmflow","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"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":"9db5fbaedd8ed8b4","entry":"conv","repo":"visinf/irr","repo_kind":"official","path":"models/irr_modules.py","file_url":"https://github.com/visinf/irr/blob/HEAD/models/irr_modules.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9db5fbaedd8ed8b4"}},{"code_sha256_prefix":"e351a73a9141e59d","entry":"f1_score","repo":"visinf/irr","repo_kind":"official","path":"losses.py","file_url":"https://github.com/visinf/irr/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e351a73a9141e59d"}},{"code_sha256_prefix":"e90ca7d9eaedb594","entry":"f1_score_bal_loss","repo":"visinf/irr","repo_kind":"official","path":"losses.py","file_url":"https://github.com/visinf/irr/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e90ca7d9eaedb594"}},{"code_sha256_prefix":"0185c542a4ae3ac4","entry":"fbeta_score","repo":"visinf/irr","repo_kind":"official","path":"losses.py","file_url":"https://github.com/visinf/irr/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0185c542a4ae3ac4"}},{"code_sha256_prefix":"538f9abf58b6c890","entry":"subtract_mean","repo":"visinf/irr","repo_kind":"official","path":"models/irr_modules.py","file_url":"https://github.com/visinf/irr/blob/HEAD/models/irr_modules.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"538f9abf58b6c890"}},{"code_sha256_prefix":"606dfd0419b77fe8","entry":"upsample_factor2","repo":"visinf/irr","repo_kind":"official","path":"models/irr_modules.py","file_url":"https://github.com/visinf/irr/blob/HEAD/models/irr_modules.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"606dfd0419b77fe8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}