{"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/bsn-complementary-boundary-regressor-with","title":"BSN++: Complementary Boundary Regressor with Scale-Balanced Relation Modeling for Temporal Action Proposal Generation","arxiv_id":"2009.07641","date":"2020-09-15","proceeding":null,"authors":["Haisheng Su","Weihao Gan","Wei Wu","Yu Qiao","Junjie Yan"],"abstract":"Generating human action proposals in untrimmed videos is an important yet challenging task with wide applications. Current methods often suffer from the noisy boundary locations and the inferior quality of confidence scores used for proposal retrieving. In this paper, we present BSN++, a new framework which exploits complementary boundary regressor and relation modeling for temporal proposal generation. First, we propose a novel boundary regressor based on the complementary characteristics of both starting and ending boundary classifiers. Specifically, we utilize the U-shaped architecture with nested skip connections to capture rich contexts and introduce bi-directional boundary matching mechanism to improve boundary precision. Second, to account for the proposal-proposal relations ignored in previous methods, we devise a proposal relation block to which includes two self-attention modules from the aspects of position and channel. Furthermore, we find that there inevitably exists data imbalanced problems in the positive/negative proposals and temporal durations, which harm the model performance on tail distributions. To relieve this issue, we introduce the scale-balanced re-sampling strategy. Extensive experiments are conducted on two popular benchmarks: ActivityNet-1.3 and THUMOS14, which demonstrate that BSN++ achieves the state-of-the-art performance. Not surprisingly, the proposed BSN++ ranked 1st place in the CVPR19 - ActivityNet challenge leaderboard on temporal action localization task.","url_abs":"https://arxiv.org/abs/2009.07641v5","url_pdf":"https://arxiv.org/pdf/2009.07641v5.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":"bsn-complementary-boundary-regressor-with","repo_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"action-localization","task_name":"Action Localization"},{"task_slug":null,"task_name":"Relation"},{"task_slug":"action-recognition","task_name":"Temporal Action Localization"},{"task_slug":"temporal-action-proposal-generation","task_name":"Temporal Action Proposal Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/temporal-action-localization-on-activitynet","task":"Temporal Action Localization","dataset":"ActivityNet-1.3","model":"BSN++","rank_in_archive_order":23,"of":33,"metrics":{"mAP":"34.88","mAP IOU@0.5":"51.27","mAP IOU@0.75":"35.70","mAP IOU@0.95":"8.33"},"uses_additional_data":false},{"leaderboard":"/sota/temporal-action-proposal-generation-on","task":"Temporal Action Proposal Generation","dataset":"ActivityNet-1.3","model":"BSN++","rank_in_archive_order":6,"of":11,"metrics":{"AR@100":"76.52","AUC (val)":"68.26"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2009.07641","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2009.07641"}},"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/xxcheng0708/BSNPlusPlus-boundary-sensitive-network","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"listed":{"samples":9,"ran":0,"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":"2a1b5cbf26a5e2ba","entry":"bi_loss","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"loss_function.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/loss_function.py","link_basis":"harvester_set","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":"2a1b5cbf26a5e2ba"}},{"code_sha256_prefix":"d57bf724ccd7a70d","entry":"cbg_loss_func","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"loss_function.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/loss_function.py","link_basis":"harvester_set","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":"d57bf724ccd7a70d"}},{"code_sha256_prefix":"83a6fac7349fd1f0","entry":"conv_block","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"models.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/models.py","link_basis":"harvester_set","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":"83a6fac7349fd1f0"}},{"code_sha256_prefix":"13551e06a372ae9c","entry":"getDatasetDict","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"post_processing.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/post_processing.py","link_basis":"harvester_set","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":"13551e06a372ae9c"}},{"code_sha256_prefix":"1cd5e9eec5a11010","entry":"get_mask","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"loss_function.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/loss_function.py","link_basis":"harvester_set","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":"1cd5e9eec5a11010"}},{"code_sha256_prefix":"49b3db69edc148a7","entry":"ioa_with_anchors","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/utils.py","link_basis":"harvester_set","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":"49b3db69edc148a7"}},{"code_sha256_prefix":"1ac2acb4c84fccca","entry":"iou_with_anchors","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/utils.py","link_basis":"harvester_set","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":"1ac2acb4c84fccca"}},{"code_sha256_prefix":"1e0bb35d27bdc115","entry":"load_json","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"dataset.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/dataset.py","link_basis":"harvester_set","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":"1e0bb35d27bdc115"}},{"code_sha256_prefix":"e924a491a8d3290b","entry":"load_json","repo":"xxcheng0708/BSNPlusPlus-boundary-sensitive-network","repo_kind":"listed","path":"post_processing.py","file_url":"https://github.com/xxcheng0708/BSNPlusPlus-boundary-sensitive-network/blob/HEAD/post_processing.py","link_basis":"harvester_set","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":"e924a491a8d3290b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}