{"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/nformer-robust-person-re-identification-with","title":"NFormer: Robust Person Re-identification with Neighbor Transformer","arxiv_id":"2204.09331","date":"2022-04-20","proceeding":"CVPR 2022 1","authors":["Haochen Wang","Jiayi Shen","Yongtuo Liu","Yan Gao","Efstratios Gavves"],"abstract":"Person re-identification aims to retrieve persons in highly varying settings across different cameras and scenarios, in which robust and discriminative representation learning is crucial. Most research considers learning representations from single images, ignoring any potential interactions between them. However, due to the high intra-identity variations, ignoring such interactions typically leads to outlier features. To tackle this issue, we propose a Neighbor Transformer Network, or NFormer, which explicitly models interactions across all input images, thus suppressing outlier features and leading to more robust representations overall. As modelling interactions between enormous amount of images is a massive task with lots of distractors, NFormer introduces two novel modules, the Landmark Agent Attention, and the Reciprocal Neighbor Softmax. Specifically, the Landmark Agent Attention efficiently models the relation map between images by a low-rank factorization with a few landmarks in feature space. Moreover, the Reciprocal Neighbor Softmax achieves sparse attention to relevant -- rather than all -- neighbors only, which alleviates interference of irrelevant representations and further relieves the computational burden. In experiments on four large-scale datasets, NFormer achieves a new state-of-the-art. The code is released at \\url{https://github.com/haochenheheda/NFormer}.","url_abs":"https://arxiv.org/abs/2204.09331v1","url_pdf":"https://arxiv.org/pdf/2204.09331v1.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":"nformer-robust-person-re-identification-with","repo_url":"https://github.com/haochenheheda/nformer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"person-re-identification","task_name":"Person Re-Identification"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.09331","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.09331"}},"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/haochenheheda/nformer","reach":null}],"summary":{"ran":5,"unverified":1},"by_repo_kind":{"official":{"samples":6,"ran":5,"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":"23ee5863ec3c9b2d","entry":"Attention","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"23ee5863ec3c9b2d"}},{"code_sha256_prefix":"a041c298d77f9d64","entry":"Block","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a041c298d77f9d64"}},{"code_sha256_prefix":"c420b5743753c861","entry":"Conv1D","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c420b5743753c861"}},{"code_sha256_prefix":"c12561808cafee82","entry":"LayerNorm","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c12561808cafee82"}},{"code_sha256_prefix":"05279fc3d4eaa396","entry":"MLP","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"05279fc3d4eaa396"}},{"code_sha256_prefix":"1491e30346c72d8a","entry":"NFormer","repo":"haochenheheda/nformer","repo_kind":"official","path":"modeling/nformer.py","file_url":"https://github.com/haochenheheda/nformer/blob/HEAD/modeling/nformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1491e30346c72d8a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}