{"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/stable-mean-teacher-for-semi-supervised-video","title":"Stable Mean Teacher for Semi-supervised Video Action Detection","arxiv_id":"2412.07072","date":"2024-12-10","proceeding":null,"authors":["Akash Kumar","Sirshapan Mitra","Yogesh Singh Rawat"],"abstract":"In this work, we focus on semi-supervised learning for video action detection. Video action detection requires spatiotemporal localization in addition to classification, and a limited amount of labels makes the model prone to unreliable predictions. We present Stable Mean Teacher, a simple end-to-end teacher-based framework that benefits from improved and temporally consistent pseudo labels. It relies on a novel Error Recovery (EoR) module, which learns from students' mistakes on labeled samples and transfers this knowledge to the teacher to improve pseudo labels for unlabeled samples. Moreover, existing spatiotemporal losses do not take temporal coherency into account and are prone to temporal inconsistencies. To address this, we present Difference of Pixels (DoP), a simple and novel constraint focused on temporal consistency, leading to coherent temporal detections. We evaluate our approach on four different spatiotemporal detection benchmarks: UCF101-24, JHMDB21, AVA, and YouTube-VOS. Our approach outperforms the supervised baselines for action detection by an average margin of 23.5% on UCF101-24, 16% on JHMDB21, and 3.3% on AVA. Using merely 10% and 20% of data, it provides competitive performance compared to the supervised baseline trained on 100% annotations on UCF101-24 and JHMDB21, respectively. We further evaluate its effectiveness on AVA for scaling to large-scale datasets and YouTube-VOS for video object segmentation, demonstrating its generalization capability to other tasks in the video domain. Code and models are publicly available.","url_abs":"https://arxiv.org/abs/2412.07072v2","url_pdf":"https://arxiv.org/pdf/2412.07072v2.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":"stable-mean-teacher-for-semi-supervised-video","repo_url":"https://github.com/AKASH2907/stable-mean-teacher","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"stable-mean-teacher-for-semi-supervised-video","repo_url":"https://github.com/akash2907/stable_mean_teacher","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"action-detection","task_name":"Action Detection"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"semi-supervised-video-action-detection","task_name":"Semi-Supervised Video Action Detection"},{"task_slug":"semi-supervised-video-action-detection","task_name":"Semi_supervised Video Action Detection"},{"task_slug":"video-action-detection","task_name":"Video Action Detection"},{"task_slug":"video-object-segmentation","task_name":"Video Object Segmentation"},{"task_slug":"video-semantic-segmentation","task_name":"Video Semantic Segmentation"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/action-detection-on-ucf101-24","task":"Action Detection","dataset":"UCF101-24","model":"Stable Mean Teacher (I3D)","rank_in_archive_order":9,"of":19,"metrics":{"Frame-mAP 0.5":"73.9","Video-mAP 0.5":"76.3"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2412.07072","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.07072"}},"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/AKASH2907/stable-mean-teacher","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/akash2907/stable_mean_teacher","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":2,"unverified":4},"by_repo_kind":{"official":{"samples":6,"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":0,"samples":[{"code_sha256_prefix":"b7aba041f35d35f7","entry":"get_ip_data","repo":"akash2907/stable_mean_teacher","repo_kind":"official","path":"semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.py","file_url":"https://github.com/akash2907/stable_mean_teacher/blob/HEAD/semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b7aba041f35d35f7"}},{"code_sha256_prefix":"3c8a0ed83b1ceb33","entry":"get_ip_data","repo":"AKASH2907/stable-mean-teacher","repo_kind":"official","path":"semi_loc_feat_const_pa_stn_aug_add_aux_dop_ucf.py","file_url":"https://github.com/AKASH2907/stable-mean-teacher/blob/HEAD/semi_loc_feat_const_pa_stn_aug_add_aux_dop_ucf.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3c8a0ed83b1ceb33"}},{"code_sha256_prefix":"55a9013f94729f5e","entry":"data_concat","repo":"akash2907/stable_mean_teacher","repo_kind":"official","path":"semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.py","file_url":"https://github.com/akash2907/stable_mean_teacher/blob/HEAD/semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.py","link_basis":"plan_row","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":"55a9013f94729f5e"}},{"code_sha256_prefix":"7f8d7f4459c4f4b4","entry":"train_model_interface","repo":"akash2907/stable_mean_teacher","repo_kind":"official","path":"percent_lbl_train_aug.py","file_url":"https://github.com/akash2907/stable_mean_teacher/blob/HEAD/percent_lbl_train_aug.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":"7f8d7f4459c4f4b4"}},{"code_sha256_prefix":"4dd92cf9b287cae5","entry":"val_model_interface","repo":"AKASH2907/stable-mean-teacher","repo_kind":"official","path":"semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.py","file_url":"https://github.com/AKASH2907/stable-mean-teacher/blob/HEAD/semi_loc_feat_const_pa_stn_aug_add_aux_dop_jhmdb.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":"4dd92cf9b287cae5"}},{"code_sha256_prefix":"318d32b92f2a4744","entry":"val_model_interface","repo":"akash2907/stable_mean_teacher","repo_kind":"official","path":"percent_lbl_train_aug.py","file_url":"https://github.com/akash2907/stable_mean_teacher/blob/HEAD/percent_lbl_train_aug.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":"318d32b92f2a4744"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}