{"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/learning-normal-dynamics-in-videos-with-meta","title":"Learning Normal Dynamics in Videos with Meta Prototype Network","arxiv_id":"2104.06689","date":"2021-04-14","proceeding":"CVPR 2021 1","authors":["Hui Lv","Chen Chen","Zhen Cui","Chunyan Xu","Yong Li","Jian Yang"],"abstract":"Frame reconstruction (current or future frame) based on Auto-Encoder (AE) is a popular method for video anomaly detection. With models trained on the normal data, the reconstruction errors of anomalous scenes are usually much larger than those of normal ones. Previous methods introduced the memory bank into AE, for encoding diverse normal patterns across the training videos. However, they are memory-consuming and cannot cope with unseen new scenarios in the testing data. In this work, we propose a dynamic prototype unit (DPU) to encode the normal dynamics as prototypes in real time, free from extra memory cost. In addition, we introduce meta-learning to our DPU to form a novel few-shot normalcy learner, namely Meta-Prototype Unit (MPU). It enables the fast adaption capability on new scenes by only consuming a few iterations of update. Extensive experiments are conducted on various benchmarks. The superior performance over the state-of-the-art demonstrates the effectiveness of our method.","url_abs":"https://arxiv.org/abs/2104.06689v2","url_pdf":"https://arxiv.org/pdf/2104.06689v2.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":"learning-normal-dynamics-in-videos-with-meta","repo_url":"https://github.com/ktr-hubrt/MPN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"meta-learning","task_name":"Meta-Learning"},{"task_slug":"video-anomaly-detection","task_name":"Video Anomaly Detection"}],"methods":[{"method_slug":"ae","method_name":"AE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2104.06689","atlas_url":"https://app.syntology.ai/?focus=2104.06689","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.06689"}},"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":"deterministic:regex_extraction","url":"https://github.com/ktr-hubrt/MPN","reach":null}],"summary":{"ran":1,"ran_honours":1,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"64e73c9591c65e81","entry":"Meta_Prototype","repo":"ktr-hubrt/MPN","repo_kind":"official","path":"model/meta_prototype.py","file_url":"https://github.com/ktr-hubrt/MPN/blob/HEAD/model/meta_prototype.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"64e73c9591c65e81"}},{"code_sha256_prefix":"01c5f5dad9e9c151","entry":"distance","repo":"ktr-hubrt/MPN","repo_kind":"official","path":"model/meta_prototype.py","file_url":"https://github.com/ktr-hubrt/MPN/blob/HEAD/model/meta_prototype.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"01c5f5dad9e9c151"}},{"code_sha256_prefix":"4174efded04f26e8","entry":"mean_distance","repo":"ktr-hubrt/MPN","repo_kind":"official","path":"model/meta_prototype.py","file_url":"https://github.com/ktr-hubrt/MPN/blob/HEAD/model/meta_prototype.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4174efded04f26e8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}