{"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/ota-optimal-transport-assignment-for-object","title":"OTA: Optimal Transport Assignment for Object Detection","arxiv_id":"2103.14259","date":"2021-03-26","proceeding":"CVPR 2021 1","authors":["Zheng Ge","Songtao Liu","Zeming Li","Osamu Yoshie","Jian Sun"],"abstract":"Recent advances in label assignment in object detection mainly seek to independently define positive/negative training samples for each ground-truth (gt) object. In this paper, we innovatively revisit the label assignment from a global perspective and propose to formulate the assigning procedure as an Optimal Transport (OT) problem -- a well-studied topic in Optimization Theory. Concretely, we define the unit transportation cost between each demander (anchor) and supplier (gt) pair as the weighted summation of their classification and regression losses. After formulation, finding the best assignment solution is converted to solve the optimal transport plan at minimal transportation costs, which can be solved via Sinkhorn-Knopp Iteration. On COCO, a single FCOS-ResNet-50 detector equipped with Optimal Transport Assignment (OTA) can reach 40.7% mAP under 1X scheduler, outperforming all other existing assigning methods. Extensive experiments conducted on COCO and CrowdHuman further validate the effectiveness of our proposed OTA, especially its superiority in crowd scenarios. The code is available at https://github.com/Megvii-BaseDetection/OTA.","url_abs":"https://arxiv.org/abs/2103.14259v1","url_pdf":"https://arxiv.org/pdf/2103.14259v1.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":"ota-optimal-transport-assignment-for-object","repo_url":"https://github.com/Megvii-BaseDetection/OTA","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"ota-optimal-transport-assignment-for-object","repo_url":"https://github.com/CV51GO/OTA_Megengine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/object-detection-on-coco","task":"Object Detection","dataset":"COCO test-dev","model":"OTA (ResNeXt-101+DCN, multiscale)","rank_in_archive_order":77,"of":225,"metrics":{"AP50":"68.6","AP75":"57.1","APL":"64.1","APM":"53.7","APS":"34.1","box mAP":"51.5"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.14259","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.14259"}},"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/CV51GO/OTA_Megengine","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Megvii-BaseDetection/OTA","reach":null}],"summary":{"ran":2,"ran_fixture":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":2,"ran":2,"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":"4b6e756203d600b5","entry":"HungarianMatcher","repo":"CV51GO/OTA_Megengine","repo_kind":"listed","path":"official_OTA/cvpods/cvpods/modeling/matcher.py","file_url":"https://github.com/CV51GO/OTA_Megengine/blob/HEAD/official_OTA/cvpods/cvpods/modeling/matcher.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4b6e756203d600b5"}},{"code_sha256_prefix":"7b7656a308d5ef77","entry":"SinkhornDistance","repo":"Megvii-BaseDetection/OTA","repo_kind":"official","path":"playground/detection/coco/ota.res50.fpn.coco.800size.1x/fcos.py","file_url":"https://github.com/Megvii-BaseDetection/OTA/blob/HEAD/playground/detection/coco/ota.res50.fpn.coco.800size.1x/fcos.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7b7656a308d5ef77"}},{"code_sha256_prefix":"32254c2bce32284c","entry":"generalized_box_iou","repo":"CV51GO/OTA_Megengine","repo_kind":"listed","path":"official_OTA/cvpods/cvpods/modeling/matcher.py","file_url":"https://github.com/CV51GO/OTA_Megengine/blob/HEAD/official_OTA/cvpods/cvpods/modeling/matcher.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"32254c2bce32284c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}