{"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/learning-modulated-loss-for-rotated-object","title":"Learning Modulated Loss for Rotated Object Detection","arxiv_id":"1911.08299","date":"2019-11-19","proceeding":null,"authors":["Wen Qian","Xue Yang","Silong Peng","Yue Guo","Junchi Yan"],"abstract":"Popular rotated detection methods usually use five parameters (coordinates of the central point, width, height, and rotation angle) to describe the rotated bounding box and l1-loss as the loss function. In this paper, we argue that the aforementioned integration can cause training instability and performance degeneration, due to the loss discontinuity resulted from the inherent periodicity of angles and the associated sudden exchange of width and height. This problem is further pronounced given the regression inconsistency among five parameters with different measurement units. We refer to the above issues as rotation sensitivity error (RSE) and propose a modulated rotation loss to dismiss the loss discontinuity. Our new loss is combined with the eight-parameter regression to further solve the problem of inconsistent parameter regression. Experiments show the state-of-art performances of our method on the public aerial image benchmark DOTA and UCAS-AOD. Its generalization abilities are also verified on ICDAR2015, HRSC2016, and FDDB. Qualitative improvements can be seen in Fig 1, and the source code will be released with the publication of the paper.","url_abs":"https://arxiv.org/abs/1911.08299v3","url_pdf":"https://arxiv.org/pdf/1911.08299v3.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":"learning-modulated-loss-for-rotated-object","repo_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"learning-modulated-loss-for-rotated-object","repo_url":"https://github.com/kawshik8/DL-project","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-in-aerial-images","task_name":"Object Detection In Aerial Images"},{"task_slug":"object-detection-1","task_name":"object-detection"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/object-detection-in-aerial-images-on-dota-1","task":"Object Detection In Aerial Images","dataset":"DOTA","model":"RSDet","rank_in_archive_order":49,"of":58,"metrics":{"mAP":"74.10%"},"uses_additional_data":true}],"syntology":{"syntology_url":"https://syntology.ai/paper/1911.08299","atlas_url":"https://app.syntology.ai/?focus=1911.08299","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.08299"}},"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/Mrqianduoduo/RSDet-8P-4R","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kawshik8/DL-project","reach":null}],"summary":{"ran":7,"unverified":6},"by_repo_kind":{"listed":{"samples":13,"ran":7,"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":"d2d339a252ba46a7","entry":"bbox_transform","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/box_utils/bbox_transform.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/box_utils/bbox_transform.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":"d2d339a252ba46a7"}},{"code_sha256_prefix":"41aa50153cd73204","entry":"bbox_transform_inv","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/box_utils/bbox_transform.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/box_utils/bbox_transform.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":"41aa50153cd73204"}},{"code_sha256_prefix":"07832d24c2b725e2","entry":"enum_ratios","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/box_utils/anchor_utils.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/box_utils/anchor_utils.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":"07832d24c2b725e2"}},{"code_sha256_prefix":"d7d04d0980025fa0","entry":"enum_scales","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/box_utils/anchor_utils.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/box_utils/anchor_utils.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":"d7d04d0980025fa0"}},{"code_sha256_prefix":"e57f95591345ae49","entry":"focal_loss","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/losses/losses.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/losses/losses.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":"e57f95591345ae49"}},{"code_sha256_prefix":"33ffc6daf73c0d55","entry":"focal_loss_","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/losses/losses.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/losses/losses.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":"33ffc6daf73c0d55"}},{"code_sha256_prefix":"33ffa5657fe69075","entry":"rbbox_transform_inv","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/box_utils/bbox_transform.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/box_utils/bbox_transform.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":"33ffa5657fe69075"}},{"code_sha256_prefix":"cd5c59c480f8b497","entry":"XceptionModel","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/networks/xception.bak.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/networks/xception.bak.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":"cd5c59c480f8b497"}},{"code_sha256_prefix":"a4a6ff951a014092","entry":"norm","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/networks/opts.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/networks/opts.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":"a4a6ff951a014092"}},{"code_sha256_prefix":"1d0c0051ecdfaf14","entry":"reduced_kernel_size_for_small_input","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/networks/xception.bak.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/networks/xception.bak.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":"1d0c0051ecdfaf14"}},{"code_sha256_prefix":"23789094dc8fdfdd","entry":"relu_separable_bn_block","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/networks/xception.bak.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/networks/xception.bak.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":"23789094dc8fdfdd"}},{"code_sha256_prefix":"46be84834b582dd8","entry":"relu_separable_bn_block","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/networks/xception.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/networks/xception.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":"46be84834b582dd8"}},{"code_sha256_prefix":"9ce96a058bfde15b","entry":"smooth_l1_loss_rcnn","repo":"Mrqianduoduo/RSDet-8P-4R","repo_kind":"listed","path":"libs/losses/losses.py","file_url":"https://github.com/Mrqianduoduo/RSDet-8P-4R/blob/HEAD/libs/losses/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":"9ce96a058bfde15b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}