{"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/unsupervised-learning-for-optical-flow","title":"Unsupervised Learning for Optical Flow Estimation Using Pyramid Convolution LSTM","arxiv_id":"1907.11628","date":"2019-07-26","proceeding":null,"authors":["Shuosen Guan","Haoxin Li","Wei-Shi Zheng"],"abstract":"Most of current Convolution Neural Network (CNN) based methods for optical flow estimation focus on learning optical flow on synthetic datasets with groundtruth, which is not practical. In this paper, we propose an unsupervised optical flow estimation framework named PCLNet. It uses pyramid Convolution LSTM (ConvLSTM) with the constraint of adjacent frame reconstruction, which allows flexibly estimating multi-frame optical flows from any video clip. Besides, by decoupling motion feature learning and optical flow representation, our method avoids complex short-cut connections used in existing frameworks while improving accuracy of optical flow estimation. Moreover, different from those methods using specialized CNN architectures for capturing motion, our framework directly learns optical flow from the features of generic CNNs and thus can be easily embedded in any CNN based frameworks for other tasks. Extensive experiments have verified that our method not only estimates optical flow effectively and accurately, but also obtains comparable performance on action recognition.","url_abs":"https://arxiv.org/abs/1907.11628v1","url_pdf":"https://arxiv.org/pdf/1907.11628v1.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":"unsupervised-learning-for-optical-flow","repo_url":"https://github.com/Kwanss/PCLNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"action-recognition-in-videos","task_name":"Action Recognition"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1907.11628","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1907.11628"}},"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/Kwanss/PCLNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran_honours":2,"unverified":9},"by_repo_kind":{"official":{"samples":13,"ran":4,"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":"d9def42110729a85","entry":"conv1x1","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/resnetM.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/resnetM.py","link_basis":"harvester_set","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":"d9def42110729a85"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/resnetM.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/resnetM.py","link_basis":"harvester_set","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":"fac5364e2f53c6db"}},{"code_sha256_prefix":"6154e3744ece5728","entry":"create_window","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/ssim_module.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/ssim_module.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6154e3744ece5728"}},{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/ssim_module.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/ssim_module.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"8fb8eddd497537e6","entry":"EPE","repo":"Kwanss/PCLNet","repo_kind":"official","path":"Losses/loss_func.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/Losses/loss_func.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":"8fb8eddd497537e6"}},{"code_sha256_prefix":"67a85ac402dccb82","entry":"EPE_with_mask","repo":"Kwanss/PCLNet","repo_kind":"official","path":"Losses/loss_func.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/Losses/loss_func.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":"67a85ac402dccb82"}},{"code_sha256_prefix":"6009a2a3e30db090","entry":"conv","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/PCLNet.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/PCLNet.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":"6009a2a3e30db090"}},{"code_sha256_prefix":"e4efe7b05aaf1aff","entry":"deconv","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/PCLNet.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/PCLNet.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":"e4efe7b05aaf1aff"}},{"code_sha256_prefix":"c370ce938935a833","entry":"interpolate","repo":"Kwanss/PCLNet","repo_kind":"official","path":"Losses/interpolate_func.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/Losses/interpolate_func.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":"c370ce938935a833"}},{"code_sha256_prefix":"570a91d700ee8012","entry":"predict_flow","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/PCLNet.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/PCLNet.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":"570a91d700ee8012"}},{"code_sha256_prefix":"8b8cc6ea43388a82","entry":"resnet18","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/resnetM.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/resnetM.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":"8b8cc6ea43388a82"}},{"code_sha256_prefix":"e7cac33b79ce55e0","entry":"sparse_max_pool","repo":"Kwanss/PCLNet","repo_kind":"official","path":"Losses/loss_func.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/Losses/loss_func.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":"e7cac33b79ce55e0"}},{"code_sha256_prefix":"9151c793f90473f0","entry":"ssim","repo":"Kwanss/PCLNet","repo_kind":"official","path":"models/ssim_module.py","file_url":"https://github.com/Kwanss/PCLNet/blob/HEAD/models/ssim_module.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":"9151c793f90473f0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}