{"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/equalization-loss-for-long-tailed-object","title":"Equalization Loss for Long-Tailed Object Recognition","arxiv_id":"2003.05176","date":"2020-03-11","proceeding":"CVPR 2020 6","authors":["Jingru Tan","Changbao Wang","Buyu Li","Quanquan Li","Wanli Ouyang","Changqing Yin","Junjie Yan"],"abstract":"Object recognition techniques using convolutional neural networks (CNN) have achieved great success. However, state-of-the-art object detection methods still perform poorly on large vocabulary and long-tailed datasets, e.g. LVIS. In this work, we analyze this problem from a novel perspective: each positive sample of one category can be seen as a negative sample for other categories, making the tail categories receive more discouraging gradients. Based on it, we propose a simple but effective loss, named equalization loss, to tackle the problem of long-tailed rare categories by simply ignoring those gradients for rare categories. The equalization loss protects the learning of rare categories from being at a disadvantage during the network parameter updating. Thus the model is capable of learning better discriminative features for objects of rare classes. Without any bells and whistles, our method achieves AP gains of 4.1% and 4.8% for the rare and common categories on the challenging LVIS benchmark, compared to the Mask R-CNN baseline. With the utilization of the effective equalization loss, we finally won the 1st place in the LVIS Challenge 2019. Code has been made available at: https: //github.com/tztztztztz/eql.detectron2","url_abs":"https://arxiv.org/abs/2003.05176v2","url_pdf":"https://arxiv.org/pdf/2003.05176v2.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":"equalization-loss-for-long-tailed-object","repo_url":"https://github.com/tztztztztz/eql.detectron2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"long-tail-learning","task_name":"Long-tail Learning"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-recognition","task_name":"Object Recognition"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"mask-r-cnn","method_name":"Mask R-CNN"},{"method_slug":"rpn","method_name":"RPN"},{"method_slug":"roi-align","method_name":"RoIAlign"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/long-tail-learning-on-cifar-10-lt-r-10","task":"Long-tail Learning","dataset":"CIFAR-10-LT (ρ=10)","model":"Equalization Loss","rank_in_archive_order":17,"of":50,"metrics":{"Error Rate":"9.8"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.05176","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.05176"}},"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/tztztztztz/eql.detectron2","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":6,"ran_fixture":1,"unverified":5},"by_repo_kind":{"official":{"samples":12,"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":12,"samples":[{"code_sha256_prefix":"0df9d3b583fbc6cb","entry":"batched_nms","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/nms.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":false,"mcp_get_code":{"code_sha256":"0df9d3b583fbc6cb"}},{"code_sha256_prefix":"6cbf46794989b731","entry":"cat","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/wrappers.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/wrappers.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6cbf46794989b731"}},{"code_sha256_prefix":"e8526a516b4f9206","entry":"convert_basic_c2_names","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/checkpoint/c2_model_loading.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/checkpoint/c2_model_loading.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":false,"mcp_get_code":{"code_sha256":"e8526a516b4f9206"}},{"code_sha256_prefix":"52810b504f0d1066","entry":"convert_c2_detectron_names","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/checkpoint/c2_model_loading.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/checkpoint/c2_model_loading.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":false,"mcp_get_code":{"code_sha256":"52810b504f0d1066"}},{"code_sha256_prefix":"406f84cf799ed34d","entry":"pad_masks","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/mask_ops.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"406f84cf799ed34d"}},{"code_sha256_prefix":"d03592674030077f","entry":"paste_mask_in_image_old","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/mask_ops.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":false,"mcp_get_code":{"code_sha256":"d03592674030077f"}},{"code_sha256_prefix":"fc1b0400223ff90e","entry":"paste_masks_in_image","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/mask_ops.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":false,"mcp_get_code":{"code_sha256":"fc1b0400223ff90e"}},{"code_sha256_prefix":"4845964b76bba6c5","entry":"batched_nms_rotated","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/nms.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":false,"mcp_get_code":{"code_sha256":"4845964b76bba6c5"}},{"code_sha256_prefix":"22f71a6d1391bbe3","entry":"get_checkpoint_url","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/model_zoo/model_zoo.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/model_zoo/model_zoo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"22f71a6d1391bbe3"}},{"code_sha256_prefix":"10d4b4b249a78f42","entry":"get_config_file","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/model_zoo/model_zoo.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/model_zoo/model_zoo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"10d4b4b249a78f42"}},{"code_sha256_prefix":"e3055ddd5ac36b0b","entry":"interpolate","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/wrappers.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/wrappers.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":false,"mcp_get_code":{"code_sha256":"e3055ddd5ac36b0b"}},{"code_sha256_prefix":"d3fa37a000ad294d","entry":"nms_rotated","repo":"tztztztztz/eql.detectron2","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/tztztztztz/eql.detectron2/blob/HEAD/detectron2/layers/nms.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":false,"mcp_get_code":{"code_sha256":"d3fa37a000ad294d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}