{"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/tood-task-aligned-one-stage-object-detection","title":"TOOD: Task-aligned One-stage Object Detection","arxiv_id":"2108.07755","date":"2021-08-17","proceeding":"ICCV 2021 10","authors":["Chengjian Feng","Yujie Zhong","Yu Gao","Matthew R. Scott","Weilin Huang"],"abstract":"One-stage object detection is commonly implemented by optimizing two sub-tasks: object classification and localization, using heads with two parallel branches, which might lead to a certain level of spatial misalignment in predictions between the two tasks. In this work, we propose a Task-aligned One-stage Object Detection (TOOD) that explicitly aligns the two tasks in a learning-based manner. First, we design a novel Task-aligned Head (T-Head) which offers a better balance between learning task-interactive and task-specific features, as well as a greater flexibility to learn the alignment via a task-aligned predictor. Second, we propose Task Alignment Learning (TAL) to explicitly pull closer (or even unify) the optimal anchors for the two tasks during training via a designed sample assignment scheme and a task-aligned loss. Extensive experiments are conducted on MS-COCO, where TOOD achieves a 51.1 AP at single-model single-scale testing. This surpasses the recent one-stage detectors by a large margin, such as ATSS (47.7 AP), GFL (48.2 AP), and PAA (49.0 AP), with fewer parameters and FLOPs. Qualitative results also demonstrate the effectiveness of TOOD for better aligning the tasks of object classification and localization. Code is available at https://github.com/fcjian/TOOD.","url_abs":"https://arxiv.org/abs/2108.07755v3","url_pdf":"https://arxiv.org/pdf/2108.07755v3.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":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/fcjian/TOOD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/aakiraotok/yowov3","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/astaxanthin/adasp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/fcakyon/sahi-benchmark","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/PaddlePaddle/PaddleDetection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"tood-task-aligned-one-stage-object-detection","repo_url":"https://github.com/open-mmlab/mmdetection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"2d-object-detection","task_name":"2D Object Detection"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"atss","method_name":"ATSS"},{"method_slug":"paa","method_name":"PAA"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/2d-object-detection-on-ceymo","task":"2D Object Detection","dataset":"CeyMo","model":"TOOD","rank_in_archive_order":3,"of":5,"metrics":{"mAP":"65.6"},"uses_additional_data":false},{"leaderboard":"/sota/object-detection-on-coco","task":"Object Detection","dataset":"COCO test-dev","model":"TAL + TAP","rank_in_archive_order":173,"of":225,"metrics":{"AP50":"60.3","AP75":"46.4","box mAP":"42.5"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2108.07755","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.07755"}},"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":"deterministic:regex_extraction","url":"https://github.com/fcjian/TOOD","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/aakiraotok/yowov3","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/open-mmlab/mmdetection","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddlePaddle/PaddleDetection","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fcakyon/sahi-benchmark","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/astaxanthin/adasp","reach":{"status":"ok"}}],"summary":{"ran_fixture":1,"ran":1,"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1},"listed":{"samples":2,"ran":1,"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":2,"samples":[{"code_sha256_prefix":"c6e98efc4b8343c0","entry":"make_anchors","repo":"aakiraotok/yowov3","repo_kind":"listed","path":"utils/loss.py","file_url":"https://github.com/aakiraotok/yowov3/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c6e98efc4b8343c0"}},{"code_sha256_prefix":"ae35528c6bd4bd1c","entry":"process_checkpoint","repo":"fcjian/TOOD","repo_kind":"official","path":".dev_scripts/gather_models.py","file_url":"https://github.com/fcjian/TOOD/blob/HEAD/.dev_scripts/gather_models.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ae35528c6bd4bd1c"}},{"code_sha256_prefix":"5687b1d5756b4c88","entry":"TAL","repo":"aakiraotok/yowov3","repo_kind":"listed","path":"utils/loss.py","file_url":"https://github.com/aakiraotok/yowov3/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5687b1d5756b4c88"}},{"code_sha256_prefix":"8ff99a6bd2ebf598","entry":"ordered_yaml_dump","repo":"fcjian/TOOD","repo_kind":"official","path":".dev_scripts/gather_models.py","file_url":"https://github.com/fcjian/TOOD/blob/HEAD/.dev_scripts/gather_models.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":"8ff99a6bd2ebf598"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}