{"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/harmonious-attention-network-for-person-re","title":"Harmonious Attention Network for Person Re-Identification","arxiv_id":"1802.08122","date":"2018-02-22","proceeding":"CVPR 2018 6","authors":["Wei Li","Xiatian Zhu","Shaogang Gong"],"abstract":"Existing person re-identification (re-id) methods either assume the\navailability of well-aligned person bounding box images as model input or rely\non constrained attention selection mechanisms to calibrate misaligned images.\nThey are therefore sub-optimal for re-id matching in arbitrarily aligned person\nimages potentially with large human pose variations and unconstrained\nauto-detection errors. In this work, we show the advantages of jointly learning\nattention selection and feature representation in a Convolutional Neural\nNetwork (CNN) by maximising the complementary information of different levels\nof visual attention subject to re-id discriminative learning constraints.\nSpecifically, we formulate a novel Harmonious Attention CNN (HA-CNN) model for\njoint learning of soft pixel attention and hard regional attention along with\nsimultaneous optimisation of feature representations, dedicated to optimise\nperson re-id in uncontrolled (misaligned) images. Extensive comparative\nevaluations validate the superiority of this new HA-CNN model for person re-id\nover a wide variety of state-of-the-art methods on three large-scale benchmarks\nincluding CUHK03, Market-1501, and DukeMTMC-ReID.","url_abs":"http://arxiv.org/abs/1802.08122v1","url_pdf":"http://arxiv.org/pdf/1802.08122v1.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":"harmonious-attention-network-for-person-re","repo_url":"https://github.com/milkplz/keras-frcnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"person-re-identification","task_name":"Person Re-Identification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/person-re-identification-on-cuhk03","task":"Person Re-Identification","dataset":"CUHK03","model":"HA-CNN","rank_in_archive_order":15,"of":19,"metrics":{"MAP":"38.6","Rank-1":"41.7"},"uses_additional_data":false},{"leaderboard":"/sota/person-re-identification-on-cuhk03-detected","task":"Person Re-Identification","dataset":"CUHK03 detected","model":"HA-CNN (CVPR'18)","rank_in_archive_order":13,"of":19,"metrics":{"MAP":"38.6","Rank-1":"41.7"},"uses_additional_data":false},{"leaderboard":"/sota/person-re-identification-on-cuhk03-labeled","task":"Person Re-Identification","dataset":"CUHK03 labeled","model":"HA-CNN (CVPR'18)","rank_in_archive_order":16,"of":21,"metrics":{"MAP":"41.0","Rank-1":"44.4"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1802.08122","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1802.08122"}},"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/milkplz/keras-frcnn","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":15},"by_repo_kind":{"listed":{"samples":15,"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":"ec8be8008c975765","entry":"apply_regr","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/roi_helpers.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/roi_helpers.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":"ec8be8008c975765"}},{"code_sha256_prefix":"12ba3e9b0c04e9e4","entry":"apply_regr_np","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/roi_helpers.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/roi_helpers.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":"12ba3e9b0c04e9e4"}},{"code_sha256_prefix":"73efd07b31c131cd","entry":"augment","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/data_augment.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/data_augment.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":"73efd07b31c131cd"}},{"code_sha256_prefix":"a4a32a93a4b2a1ba","entry":"calc_iou","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/roi_helpers.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/roi_helpers.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":"a4a32a93a4b2a1ba"}},{"code_sha256_prefix":"b6396e65cc2d636e","entry":"class_loss_regr","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/losses.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/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":"b6396e65cc2d636e"}},{"code_sha256_prefix":"260ceac63872066b","entry":"get_data","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/pascal_voc_parser.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/pascal_voc_parser.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":"260ceac63872066b"}},{"code_sha256_prefix":"435a2a871a9eb7c3","entry":"get_data","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/simple_parser.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/simple_parser.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":"435a2a871a9eb7c3"}},{"code_sha256_prefix":"b5afb710b31b739c","entry":"get_img_output_length","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/resnet.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/resnet.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":"b5afb710b31b739c"}},{"code_sha256_prefix":"6e6137b5ba0e8c93","entry":"intersection","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/data_generators.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/data_generators.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":"6e6137b5ba0e8c93"}},{"code_sha256_prefix":"3347c438ffd1288b","entry":"iou","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/data_generators.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/data_generators.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":"3347c438ffd1288b"}},{"code_sha256_prefix":"dcc94e6b36d98c9b","entry":"nn_base","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/vgg.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/vgg.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":"dcc94e6b36d98c9b"}},{"code_sha256_prefix":"d00e643cbaa5b847","entry":"rpn","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/vgg.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/vgg.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":"d00e643cbaa5b847"}},{"code_sha256_prefix":"7fa7565671a5e2b3","entry":"rpn_loss_cls","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/losses.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/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":"7fa7565671a5e2b3"}},{"code_sha256_prefix":"c0ceb156b9cb836c","entry":"rpn_loss_regr","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/losses.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/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":"c0ceb156b9cb836c"}},{"code_sha256_prefix":"7855b626f923050b","entry":"union","repo":"milkplz/keras-frcnn","repo_kind":"listed","path":"keras_frcnn/data_generators.py","file_url":"https://github.com/milkplz/keras-frcnn/blob/HEAD/keras_frcnn/data_generators.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":"7855b626f923050b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}