{"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/multimodal-motion-conditioned-diffusion-model","title":"Multimodal Motion Conditioned Diffusion Model for Skeleton-based Video Anomaly Detection","arxiv_id":"2307.07205","date":"2023-07-14","proceeding":"ICCV 2023 1","authors":["Alessandro Flaborea","Luca Collorone","Guido D'Amely","Stefano D'arrigo","Bardh Prenkaj","Fabio Galasso"],"abstract":"Anomalies are rare and anomaly detection is often therefore framed as One-Class Classification (OCC), i.e. trained solely on normalcy. Leading OCC techniques constrain the latent representations of normal motions to limited volumes and detect as abnormal anything outside, which accounts satisfactorily for the openset'ness of anomalies. But normalcy shares the same openset'ness property since humans can perform the same action in several ways, which the leading techniques neglect. We propose a novel generative model for video anomaly detection (VAD), which assumes that both normality and abnormality are multimodal. We consider skeletal representations and leverage state-of-the-art diffusion probabilistic models to generate multimodal future human poses. We contribute a novel conditioning on the past motion of people and exploit the improved mode coverage capabilities of diffusion processes to generate different-but-plausible future motions. Upon the statistical aggregation of future modes, an anomaly is detected when the generated set of motions is not pertinent to the actual future. We validate our model on 4 established benchmarks: UBnormal, HR-UBnormal, HR-STC, and HR-Avenue, with extensive experiments surpassing state-of-the-art results.","url_abs":"https://arxiv.org/abs/2307.07205v3","url_pdf":"https://arxiv.org/pdf/2307.07205v3.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":"multimodal-motion-conditioned-diffusion-model","repo_url":"https://github.com/aleflabo/MoCoDAD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"2d-human-pose-estimation","task_name":"2D Human Pose Estimation"},{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"human-pose-forecasting","task_name":"Human Pose Forecasting"},{"task_slug":"one-class-classification","task_name":"One-Class Classification"},{"task_slug":"video-anomaly-detection","task_name":"Video Anomaly Detection"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/anomaly-detection-on-ubnormal","task":"Anomaly Detection","dataset":"UBnormal","model":"MoCoDAD","rank_in_archive_order":6,"of":14,"metrics":{"AUC":"68.3%"},"uses_additional_data":false},{"leaderboard":"/sota/video-anomaly-detection-on-hr-avenue","task":"Video Anomaly Detection","dataset":"HR-Avenue","model":"MoCoDAD","rank_in_archive_order":2,"of":11,"metrics":{"AUC":"89.0"},"uses_additional_data":false},{"leaderboard":"/sota/video-anomaly-detection-on-hr-shanghaitech","task":"Video Anomaly Detection","dataset":"HR-ShanghaiTech","model":"MoCoDAD","rank_in_archive_order":5,"of":14,"metrics":{"AUC":"77.6"},"uses_additional_data":false},{"leaderboard":"/sota/video-anomaly-detection-on-hr-ubnormal","task":"Video Anomaly Detection","dataset":"HR-UBnormal","model":"MoCoDAD","rank_in_archive_order":1,"of":8,"metrics":{"AUC":"68.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.07205","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.07205"}},"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/aleflabo/MoCoDAD","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":8,"ran":6,"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":"935b328e2a4ca4dd","entry":"adjust_lr","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"935b328e2a4ca4dd"}},{"code_sha256_prefix":"e8961ce4b45db673","entry":"calc_reg_loss","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e8961ce4b45db673"}},{"code_sha256_prefix":"1aaf243c5f555511","entry":"compute_bounding_box","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/data.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1aaf243c5f555511"}},{"code_sha256_prefix":"d7470d4a55a861f0","entry":"create_experiment_dirs","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/argparser.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/argparser.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d7470d4a55a861f0"}},{"code_sha256_prefix":"07a93aced16ac5c7","entry":"extract_global_features","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/data.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"07a93aced16ac5c7"}},{"code_sha256_prefix":"2e4def30e7a3be32","entry":"init_args","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/argparser.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/argparser.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2e4def30e7a3be32"}},{"code_sha256_prefix":"7e0144cbf00fd665","entry":"get_optim_and_scheduler","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/model_utils.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":"7e0144cbf00fd665"}},{"code_sha256_prefix":"f7e3b54a8686d2b2","entry":"load_trajectories","repo":"aleflabo/MoCoDAD","repo_kind":"official","path":"utils/data.py","file_url":"https://github.com/aleflabo/MoCoDAD/blob/HEAD/utils/data.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":"f7e3b54a8686d2b2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}