{"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/soft-anchor-point-object-detection","title":"Soft Anchor-Point Object Detection","arxiv_id":"1911.12448","date":"2019-11-27","proceeding":"ECCV 2020 8","authors":["Chenchen Zhu","Fangyi Chen","Zhiqiang Shen","Marios Savvides"],"abstract":"Recently, anchor-free detection methods have been through great progress. The major two families, anchor-point detection and key-point detection, are at opposite edges of the speed-accuracy trade-off, with anchor-point detectors having the speed advantage. In this work, we boost the performance of the anchor-point detector over the key-point counterparts while maintaining the speed advantage. To achieve this, we formulate the detection problem from the anchor point's perspective and identify ineffective training as the main problem. Our key insight is that anchor points should be optimized jointly as a group both within and across feature pyramid levels. We propose a simple yet effective training strategy with soft-weighted anchor points and soft-selected pyramid levels to address the false attention issue within each pyramid level and the feature selection issue across all the pyramid levels, respectively. To evaluate the effectiveness, we train a single-stage anchor-free detector called Soft Anchor-Point Detector (SAPD). Experiments show that our concise SAPD pushes the envelope of speed/accuracy trade-off to a new level, outperforming recent state-of-the-art anchor-free and anchor-based detectors. Without bells and whistles, our best model can achieve a single-model single-scale AP of 47.4% on COCO.","url_abs":"https://arxiv.org/abs/1911.12448v2","url_pdf":"https://arxiv.org/pdf/1911.12448v2.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":"soft-anchor-point-object-detection","repo_url":"https://github.com/xuannianz/FSAF","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"soft-anchor-point-object-detection","repo_url":"https://github.com/xuannianz/SAPD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"dense-object-detection","task_name":"Dense Object Detection"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"feature-selection","task_name":"feature selection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"feature-selection","method_name":"Feature Selection"},{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/dense-object-detection-on-sku-110k","task":"Dense Object Detection","dataset":"SKU-110K","model":"SAPD","rank_in_archive_order":3,"of":5,"metrics":{"AP":"55.7"},"uses_additional_data":false},{"leaderboard":"/sota/object-detection-on-coco","task":"Object Detection","dataset":"COCO test-dev","model":"SAPD (ResNeXt-101, single-scale)","rank_in_archive_order":117,"of":225,"metrics":{"AP50":"67.4","AP75":"51.1","APL":"61.5","APM":"50.3","APS":"28.1","box mAP":"47.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1911.12448","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.12448"}},"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/xuannianz/FSAF","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xuannianz/SAPD","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"listed":{"samples":6,"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":"a782c8c256181c85","entry":"filter_detections","repo":"xuannianz/SAPD","repo_kind":"listed","path":"layers.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a782c8c256181c85"}},{"code_sha256_prefix":"9caad353ee153b05","entry":"focal","repo":"xuannianz/SAPD","repo_kind":"listed","path":"losses.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9caad353ee153b05"}},{"code_sha256_prefix":"7cc7e8bd2b8ad8ef","entry":"focal_with_weight_and_mask","repo":"xuannianz/SAPD","repo_kind":"listed","path":"losses.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7cc7e8bd2b8ad8ef"}},{"code_sha256_prefix":"00c946065068bd77","entry":"round_filters","repo":"xuannianz/SAPD","repo_kind":"listed","path":"efficientnet.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/efficientnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"00c946065068bd77"}},{"code_sha256_prefix":"6cc796a8212b5586","entry":"round_repeats","repo":"xuannianz/SAPD","repo_kind":"listed","path":"efficientnet.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/efficientnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6cc796a8212b5586"}},{"code_sha256_prefix":"eb88cc992d53c796","entry":"smooth_l1","repo":"xuannianz/SAPD","repo_kind":"listed","path":"losses.py","file_url":"https://github.com/xuannianz/SAPD/blob/HEAD/losses.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"eb88cc992d53c796"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}