{"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/skateformer-skeletal-temporal-transformer-for","title":"SkateFormer: Skeletal-Temporal Transformer for Human Action Recognition","arxiv_id":"2403.09508","date":"2024-03-14","proceeding":null,"authors":["Jeonghyeok Do","Munchurl Kim"],"abstract":"Skeleton-based action recognition, which classifies human actions based on the coordinates of joints and their connectivity within skeleton data, is widely utilized in various scenarios. While Graph Convolutional Networks (GCNs) have been proposed for skeleton data represented as graphs, they suffer from limited receptive fields constrained by joint connectivity. To address this limitation, recent advancements have introduced transformer-based methods. However, capturing correlations between all joints in all frames requires substantial memory resources. To alleviate this, we propose a novel approach called Skeletal-Temporal Transformer (SkateFormer) that partitions joints and frames based on different types of skeletal-temporal relation (Skate-Type) and performs skeletal-temporal self-attention (Skate-MSA) within each partition. We categorize the key skeletal-temporal relations for action recognition into a total of four distinct types. These types combine (i) two skeletal relation types based on physically neighboring and distant joints, and (ii) two temporal relation types based on neighboring and distant frames. Through this partition-specific attention strategy, our SkateFormer can selectively focus on key joints and frames crucial for action recognition in an action-adaptive manner with efficient computation. Extensive experiments on various benchmark datasets validate that our SkateFormer outperforms recent state-of-the-art methods.","url_abs":"https://arxiv.org/abs/2403.09508v3","url_pdf":"https://arxiv.org/pdf/2403.09508v3.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":"skateformer-skeletal-temporal-transformer-for","repo_url":"https://github.com/KAIST-VICLab/SkateFormer","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"action-recognition-in-videos","task_name":"Action Recognition"},{"task_slug":"human-interaction-recognition","task_name":"Human Interaction Recognition"},{"task_slug":"skeleton-based-action-recognition","task_name":"Skeleton Based Action Recognition"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"efficientnet","method_name":"EfficientNet"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/human-interaction-recognition-on-ntu-rgb-d","task":"Human Interaction Recognition","dataset":"NTU RGB+D","model":"SkateFormer","rank_in_archive_order":1,"of":5,"metrics":{"Accuracy (Cross-Subject)":"97.1","Accuracy (Cross-View)":"99.3"},"uses_additional_data":false},{"leaderboard":"/sota/human-interaction-recognition-on-ntu-rgb-d-1","task":"Human Interaction Recognition","dataset":"NTU RGB+D 120","model":"SkateFormer","rank_in_archive_order":1,"of":6,"metrics":{"Accuracy (Cross-Setup)":"93.2","Accuracy (Cross-Subject)":"92.3"},"uses_additional_data":false},{"leaderboard":"/sota/skeleton-based-action-recognition-on-n-ucla","task":"Skeleton Based Action Recognition","dataset":"N-UCLA","model":"SkateFormer","rank_in_archive_order":2,"of":25,"metrics":{"Accuracy":"98.3"},"uses_additional_data":false},{"leaderboard":"/sota/skeleton-based-action-recognition-on-ntu-rgbd","task":"Skeleton Based Action Recognition","dataset":"NTU RGB+D","model":"SkateFormer","rank_in_archive_order":11,"of":135,"metrics":{"Accuracy (CS)":"93.5","Accuracy (CV)":"97.8","Ensembled Modalities":"4"},"uses_additional_data":false},{"leaderboard":"/sota/skeleton-based-action-recognition-on-ntu-rgbd-1","task":"Skeleton Based Action Recognition","dataset":"NTU RGB+D 120","model":"SkateFormer","rank_in_archive_order":14,"of":83,"metrics":{"Accuracy (Cross-Setup)":"91.4","Accuracy (Cross-Subject)":"89.8","Ensembled Modalities":"4"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2403.09508","atlas_url":"https://app.syntology.ai/?focus=2403.09508","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.09508"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/KAIST-VICLab/SkateFormer","reach":null}],"summary":{"ran_fixture":3},"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":0,"samples":[{"code_sha256_prefix":"f4f9afcbde2f1f62","entry":"type_1_partition","repo":"KAIST-VICLab/SkateFormer","repo_kind":"official","path":"model/SkateFormer.py","file_url":"https://github.com/KAIST-VICLab/SkateFormer/blob/HEAD/model/SkateFormer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f4f9afcbde2f1f62"}},{"code_sha256_prefix":"769d18429dcdd3e4","entry":"type_1_reverse","repo":"KAIST-VICLab/SkateFormer","repo_kind":"official","path":"model/SkateFormer.py","file_url":"https://github.com/KAIST-VICLab/SkateFormer/blob/HEAD/model/SkateFormer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"769d18429dcdd3e4"}},{"code_sha256_prefix":"bc407d6d8f28b7ce","entry":"type_2_partition","repo":"KAIST-VICLab/SkateFormer","repo_kind":"official","path":"model/SkateFormer.py","file_url":"https://github.com/KAIST-VICLab/SkateFormer/blob/HEAD/model/SkateFormer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc407d6d8f28b7ce"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}