{"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/elaborative-rehearsal-for-zero-shot-action","title":"Elaborative Rehearsal for Zero-shot Action Recognition","arxiv_id":"2108.02833","date":"2021-08-05","proceeding":"ICCV 2021 10","authors":["ShiZhe Chen","Dong Huang"],"abstract":"The growing number of action classes has posed a new challenge for video understanding, making Zero-Shot Action Recognition (ZSAR) a thriving direction. The ZSAR task aims to recognize target (unseen) actions without training examples by leveraging semantic representations to bridge seen and unseen actions. However, due to the complexity and diversity of actions, it remains challenging to semantically represent action classes and transfer knowledge from seen data. In this work, we propose an ER-enhanced ZSAR model inspired by an effective human memory technique Elaborative Rehearsal (ER), which involves elaborating a new concept and relating it to known concepts. Specifically, we expand each action class as an Elaborative Description (ED) sentence, which is more discriminative than a class name and less costly than manual-defined attributes. Besides directly aligning class semantics with videos, we incorporate objects from the video as Elaborative Concepts (EC) to improve video semantics and generalization from seen actions to unseen actions. Our ER-enhanced ZSAR model achieves state-of-the-art results on three existing benchmarks. Moreover, we propose a new ZSAR evaluation protocol on the Kinetics dataset to overcome limitations of current benchmarks and demonstrate the first case where ZSAR performance is comparable to few-shot learning baselines on this more realistic setting. We will release our codes and collected EDs at https://github.com/DeLightCMU/ElaborativeRehearsal.","url_abs":"https://arxiv.org/abs/2108.02833v2","url_pdf":"https://arxiv.org/pdf/2108.02833v2.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":"elaborative-rehearsal-for-zero-shot-action","repo_url":"https://github.com/DeLightCMU/ElaborativeRehearsal","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"action-recognition-in-videos","task_name":"Action Recognition"},{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"},{"task_slug":"sentence","task_name":"Sentence"},{"task_slug":"video-understanding","task_name":"Video Understanding"},{"task_slug":"zero-shot-action-recognition","task_name":"Zero-Shot Action Recognition"},{"task_slug":"zero-shot-learning","task_name":"Zero-Shot Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/zero-shot-action-recognition-on-hmdb51","task":"Zero-Shot Action Recognition","dataset":"HMDB51","model":"ER-ZSAR","rank_in_archive_order":19,"of":29,"metrics":{"Top-1 Accuracy":"35.3"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-action-recognition-on-kinetics","task":"Zero-Shot Action Recognition","dataset":"Kinetics","model":"ER-ZSAR (ST+Obj)","rank_in_archive_order":13,"of":20,"metrics":{"Top-1 Accuracy":"42.1","Top-5 Accuracy":"73.1"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-action-recognition-on-kinetics","task":"Zero-Shot Action Recognition","dataset":"Kinetics","model":"ER-ZSAR (ST)","rank_in_archive_order":14,"of":20,"metrics":{"Top-1 Accuracy":"37.1","Top-5 Accuracy":"69.3"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-action-recognition-on-olympics","task":"Zero-Shot Action Recognition","dataset":"Olympics","model":"ER-ZSAR","rank_in_archive_order":3,"of":9,"metrics":{"Top-1 Accuracy":"60.2"},"uses_additional_data":false},{"leaderboard":"/sota/zero-shot-action-recognition-on-ucf101","task":"Zero-Shot Action Recognition","dataset":"UCF101","model":"ER-ZSAR","rank_in_archive_order":20,"of":35,"metrics":{"Top-1 Accuracy":"51.8"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2108.02833","atlas_url":"https://app.syntology.ai/?focus=2108.02833","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.02833"}},"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/DeLightCMU/ElaborativeRehearsal","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran_violates":1,"unverified":12},"by_repo_kind":{"official":{"samples":15,"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":0,"samples":[{"code_sha256_prefix":"ee80cf467065076b","entry":"conv1x1","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/models.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/models.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":"ee80cf467065076b"}},{"code_sha256_prefix":"f01b8d3901f0b289","entry":"conv3x3","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/models.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/models.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":"f01b8d3901f0b289"}},{"code_sha256_prefix":"7023eb86801bb3a3","entry":"tf2th","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/models.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/models.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7023eb86801bb3a3"}},{"code_sha256_prefix":"9add02470de77597","entry":"all_gather","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"framework/dist_helper.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/framework/dist_helper.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":"9add02470de77597"}},{"code_sha256_prefix":"75baaf5e487ddd3b","entry":"build_scheduler","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"framework/lr_helper.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/framework/lr_helper.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":"75baaf5e487ddd3b"}},{"code_sha256_prefix":"d38eeb648f68f197","entry":"create_dat","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/lbtoolbox.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/lbtoolbox.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":"d38eeb648f68f197"}},{"code_sha256_prefix":"842ad4fd53da0aec","entry":"gather","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"framework/dist_helper.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/framework/dist_helper.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":"842ad4fd53da0aec"}},{"code_sha256_prefix":"bb1e7543d149c2a6","entry":"gather_data","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/extract_bit_feature.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/extract_bit_feature.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":"bb1e7543d149c2a6"}},{"code_sha256_prefix":"7d63034d0bfadd78","entry":"get_mixup","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/bit_hyperrule.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/bit_hyperrule.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":"7d63034d0bfadd78"}},{"code_sha256_prefix":"a933bb17fdb8ebb4","entry":"get_resolution","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/bit_hyperrule.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/bit_hyperrule.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":"a933bb17fdb8ebb4"}},{"code_sha256_prefix":"53256b67d70b0daf","entry":"get_resolution_from_dataset","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/bit_hyperrule.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/bit_hyperrule.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":"53256b67d70b0daf"}},{"code_sha256_prefix":"12109eac56e48b6b","entry":"load_dat","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/lbtoolbox.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/lbtoolbox.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":"12109eac56e48b6b"}},{"code_sha256_prefix":"5b2ec24a42ad7b48","entry":"reduce_dict","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"framework/dist_helper.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/framework/dist_helper.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":"5b2ec24a42ad7b48"}},{"code_sha256_prefix":"74be527286b869a4","entry":"set_logger","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"framework/log_helper.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/framework/log_helper.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":"74be527286b869a4"}},{"code_sha256_prefix":"12323f0640436acc","entry":"setup_logger","repo":"DeLightCMU/ElaborativeRehearsal","repo_kind":"official","path":"bit_pytorch/bit_common.py","file_url":"https://github.com/DeLightCMU/ElaborativeRehearsal/blob/HEAD/bit_pytorch/bit_common.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":"12323f0640436acc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}