{"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/flownet-20-evolution-of-optical-flow","title":"FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks","arxiv_id":"1612.01925","date":"2016-12-06","proceeding":"CVPR 2017 7","authors":["Eddy Ilg","Nikolaus Mayer","Tonmoy Saikia","Margret Keuper","Alexey Dosovitskiy","Thomas Brox"],"abstract":"The FlowNet demonstrated that optical flow estimation can be cast as a\nlearning problem. However, the state of the art with regard to the quality of\nthe flow has still been defined by traditional methods. Particularly on small\ndisplacements and real-world data, FlowNet cannot compete with variational\nmethods. In this paper, we advance the concept of end-to-end learning of\noptical flow and make it work really well. The large improvements in quality\nand speed are caused by three major contributions: first, we focus on the\ntraining data and show that the schedule of presenting data during training is\nvery important. Second, we develop a stacked architecture that includes warping\nof the second image with intermediate optical flow. Third, we elaborate on\nsmall displacements by introducing a sub-network specializing on small motions.\nFlowNet 2.0 is only marginally slower than the original FlowNet but decreases\nthe estimation error by more than 50%. It performs on par with state-of-the-art\nmethods, while running at interactive frame rates. Moreover, we present faster\nvariants that allow optical flow computation at up to 140fps with accuracy\nmatching the original FlowNet.","url_abs":"http://arxiv.org/abs/1612.01925v1","url_pdf":"http://arxiv.org/pdf/1612.01925v1.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":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/ElliotHYLee/VisualOdometry3D","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/NVIDIA/flownet2-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/lab-midas/lapnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/mcgridles/LENS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/philferriere/tfoptflow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/rickyHong/tfoptflow-repl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/simonmeister/UnFlow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/2023-MindSpore-1/ms-code-214/tree/main/flownet2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/MindSpore-paper-code-3/code10/tree/main/flownet2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/MindSpore-paper-code-3/code4/tree/main/flownet2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"flownet-20-evolution-of-optical-flow","repo_url":"https://github.com/MindSpore-paper-code-3/code7/tree/main/flownet2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"flownet-20-evolution-of-optical-flow","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":"dense-pixel-correspondence-estimation","task_name":"Dense Pixel Correspondence Estimation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"},{"task_slug":"skeleton-based-action-recognition","task_name":"Skeleton Based Action Recognition"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/dense-pixel-correspondence-estimation-on","task":"Dense Pixel Correspondence Estimation","dataset":"HPatches","model":"FlowNet2","rank_in_archive_order":5,"of":8,"metrics":{"Viewpoint I AEPE":"5.99","Viewpoint II AEPE":"15.55","Viewpoint III AEPE":"17.09","Viewpoint IV AEPE":"22.13","Viewpoint V AEPE":"30.68"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-kitti-2015-train","task":"Optical Flow Estimation","dataset":"KITTI 2015 (train)","model":"FlowNet2","rank_in_archive_order":17,"of":19,"metrics":{"EPE":"10.08","F1-all":"30.0"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-sintel-clean","task":"Optical Flow Estimation","dataset":"Sintel-clean","model":"FlowNet2","rank_in_archive_order":25,"of":29,"metrics":{"Average End-Point Error":"3.96"},"uses_additional_data":false},{"leaderboard":"/sota/optical-flow-estimation-on-spring","task":"Optical Flow Estimation","dataset":"Spring","model":"FlowNet2","rank_in_archive_order":6,"of":11,"metrics":{"1px total":"6.710"},"uses_additional_data":false},{"leaderboard":"/sota/skeleton-based-action-recognition-on-jhmdb","task":"Skeleton Based Action Recognition","dataset":"JHMDB Pose Tracking","model":"FlowNet2","rank_in_archive_order":3,"of":3,"metrics":{"PCK@0.1":"45.2","PCK@0.2":"62.9","PCK@0.3":"73.5","PCK@0.4":"80.6","PCK@0.5":"85.5"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1612.01925","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1612.01925"}},"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/NVIDIA/flownet2-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lab-midas/lapnet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ElliotHYLee/VisualOdometry3D","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-paper-code-3/code10/tree/main/flownet2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mcgridles/LENS","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/simonmeister/UnFlow","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-214/tree/main/flownet2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-paper-code-3/code4/tree/main/flownet2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rickyHong/tfoptflow-repl","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/philferriere/tfoptflow","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/open-mmlab/mmflow","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-paper-code-3/code7/tree/main/flownet2","reach":null}],"summary":{"ran_honours":1,"ran_fixture":1,"unverified":19},"by_repo_kind":{"listed":{"samples":21,"ran":2,"repositories":2}},"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":3,"samples":[{"code_sha256_prefix":"50f23bdd9e8bbda6","entry":"compute_color","repo":"NVIDIA/flownet2-pytorch","repo_kind":"listed","path":"utils/flow_utils.py","file_url":"https://github.com/NVIDIA/flownet2-pytorch/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"50f23bdd9e8bbda6"}},{"code_sha256_prefix":"025af26f623570d9","entry":"flow2img","repo":"NVIDIA/flownet2-pytorch","repo_kind":"listed","path":"utils/flow_utils.py","file_url":"https://github.com/NVIDIA/flownet2-pytorch/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"025af26f623570d9"}},{"code_sha256_prefix":"079af00271e054e6","entry":"arr2kspace","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/cropping.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/cropping.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":"079af00271e054e6"}},{"code_sha256_prefix":"f56f923923ad6051","entry":"atan2","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/flow_util.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/flow_util.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":"f56f923923ad6051"}},{"code_sha256_prefix":"ac00efb4e7c38ba6","entry":"buildLAPNet_model_2D","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/lapnet.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/lapnet.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":"ac00efb4e7c38ba6"}},{"code_sha256_prefix":"23bd9ee416efaf7e","entry":"buildLAPNet_model_2D_old","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/lapnet.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/lapnet.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":"23bd9ee416efaf7e"}},{"code_sha256_prefix":"ac619791f7c058f5","entry":"crop2D_FixPts","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/cropping.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/cropping.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":"ac619791f7c058f5"}},{"code_sha256_prefix":"5c88519a582abf72","entry":"flow_compute_color","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/flow_util.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/flow_util.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":"5c88519a582abf72"}},{"code_sha256_prefix":"201e08769ae9da46","entry":"flow_to_color_np","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/flow_util.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/flow_util.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":"201e08769ae9da46"}},{"code_sha256_prefix":"54f6f37bc178e63e","entry":"load_mat_file","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/util.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/util.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":"54f6f37bc178e63e"}},{"code_sha256_prefix":"9ab8dacfcdf8cd27","entry":"np_warp_2D","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/image_warp.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/image_warp.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":"9ab8dacfcdf8cd27"}},{"code_sha256_prefix":"7dbe406f37174ca7","entry":"np_warp_3D","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/image_warp.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/image_warp.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":"7dbe406f37174ca7"}},{"code_sha256_prefix":"2c97dc5b158f72ec","entry":"plot_data","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/line_plot.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/line_plot.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":"2c97dc5b158f72ec"}},{"code_sha256_prefix":"2b6479fc0d97efd8","entry":"preprocessing_data","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/line_plot.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/line_plot.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":"2b6479fc0d97efd8"}},{"code_sha256_prefix":"1662ea0b62b0229c","entry":"readFlow","repo":"NVIDIA/flownet2-pytorch","repo_kind":"listed","path":"utils/flow_utils.py","file_url":"https://github.com/NVIDIA/flownet2-pytorch/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1662ea0b62b0229c"}},{"code_sha256_prefix":"2a1f923c7c68c58d","entry":"rectangulartapering2d","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/tapering.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/tapering.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":"2a1f923c7c68c58d"}},{"code_sha256_prefix":"dc3bf957592fc5f2","entry":"rectangulartapering3d","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/tapering.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/tapering.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":"dc3bf957592fc5f2"}},{"code_sha256_prefix":"e0c6c608a0c6f8e3","entry":"squeeze_func","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/lapnet.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/lapnet.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":"e0c6c608a0c6f8e3"}},{"code_sha256_prefix":"6cc5e9fb591b65e7","entry":"taper2D","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/tapering.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/tapering.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":"6cc5e9fb591b65e7"}},{"code_sha256_prefix":"def2d3257d021156","entry":"test_name_map","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF1/src/eval_lapnet.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF1/src/eval_lapnet.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":"def2d3257d021156"}},{"code_sha256_prefix":"ca597a74753d4ebe","entry":"warp_assessment3D","repo":"lab-midas/lapnet","repo_kind":"listed","path":"TF2/core/Warp_assessment3D.py","file_url":"https://github.com/lab-midas/lapnet/blob/HEAD/TF2/core/Warp_assessment3D.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":"ca597a74753d4ebe"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}