{"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/temporally-weighted-hierarchical-clustering","title":"Temporally-Weighted Hierarchical Clustering for Unsupervised Action Segmentation","arxiv_id":"2103.11264","date":"2021-03-20","proceeding":"CVPR 2021 1","authors":["M. Saquib Sarfraz","Naila Murray","Vivek Sharma","Ali Diba","Luc van Gool","Rainer Stiefelhagen"],"abstract":"Action segmentation refers to inferring boundaries of semantically consistent visual concepts in videos and is an important requirement for many video understanding tasks. For this and other video understanding tasks, supervised approaches have achieved encouraging performance but require a high volume of detailed frame-level annotations. We present a fully automatic and unsupervised approach for segmenting actions in a video that does not require any training. Our proposal is an effective temporally-weighted hierarchical clustering algorithm that can group semantically consistent frames of the video. Our main finding is that representing a video with a 1-nearest neighbor graph by taking into account the time progression is sufficient to form semantically and temporally consistent clusters of frames where each cluster may represent some action in the video. Additionally, we establish strong unsupervised baselines for action segmentation and show significant performance improvements over published unsupervised methods on five challenging action segmentation datasets. Our code is available at https://github.com/ssarfraz/FINCH-Clustering/tree/master/TW-FINCH","url_abs":"https://arxiv.org/abs/2103.11264v4","url_pdf":"https://arxiv.org/pdf/2103.11264v4.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":"temporally-weighted-hierarchical-clustering","repo_url":"https://github.com/ssarfraz/FINCH-CLustering","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"action-segmentation","task_name":"Action Segmentation"},{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"unsupervised-action-segmentation","task_name":"Unsupervised Action Segmentation"},{"task_slug":"video-understanding","task_name":"Video Understanding"}],"methods":[{"method_slug":"finch-clustering","method_name":"FINCH Clustering"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/action-segmentation-on-50-salads-1","task":"Action Segmentation","dataset":"50 Salads","model":"TW-FINCH (K=avg/activity)","rank_in_archive_order":28,"of":28,"metrics":{"Acc":"66.5"},"uses_additional_data":false},{"leaderboard":"/sota/action-segmentation-on-breakfast-1","task":"Action Segmentation","dataset":"Breakfast","model":"TW-FINCH (K=avg/activity)","rank_in_archive_order":37,"of":37,"metrics":{"Acc":"62.7","mIoU":"42.3"},"uses_additional_data":false},{"leaderboard":"/sota/action-segmentation-on-mpii-cooking-2-dataset","task":"Action Segmentation","dataset":"MPII Cooking 2 Dataset","model":"Unsup. TW-FINCH (K=avg/activity)","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy":"42","mIoU":"23.1"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.11264","atlas_url":"https://app.syntology.ai/?focus=2103.11264","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.11264"}},"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/ssarfraz/FINCH-CLustering","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/ssarfraz/FINCH-Clustering","reach":null}],"summary":{"ran_fixture":4,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":1,"samples":[{"code_sha256_prefix":"f333f36a54cff274","entry":"FINCH","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f333f36a54cff274"}},{"code_sha256_prefix":"7fc40801f2b43dfc","entry":"clust_rank","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.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":"7fc40801f2b43dfc"}},{"code_sha256_prefix":"8b82e4cf700e1ffd","entry":"cool_mean","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8b82e4cf700e1ffd"}},{"code_sha256_prefix":"a13645c6a637da8d","entry":"get_clust","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"a13645c6a637da8d"}},{"code_sha256_prefix":"8658952e06494ab4","entry":"req_numclust","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8658952e06494ab4"}},{"code_sha256_prefix":"0aca21662917fe20","entry":"get_merge","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.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":"0aca21662917fe20"}},{"code_sha256_prefix":"34c60cf7ca7ee21e","entry":"update_adj","repo":"ssarfraz/FINCH-Clustering","repo_kind":"official","path":"TW-FINCH/python/twfinch.py","file_url":"https://github.com/ssarfraz/FINCH-Clustering/blob/HEAD/TW-FINCH/python/twfinch.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":"34c60cf7ca7ee21e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}