{"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/end-to-end-trainable-multi-instance-pose","title":"End-to-End Trainable Multi-Instance Pose Estimation with Transformers","arxiv_id":"2103.12115","date":"2021-03-22","proceeding":null,"authors":["Lucas Stoffl","Maxime Vidal","Alexander Mathis"],"abstract":"We propose a new end-to-end trainable approach for multi-instance pose estimation by combining a convolutional neural network with a transformer. We cast multi-instance pose estimation from images as a direct set prediction problem. Inspired by recent work on end-to-end trainable object detection with transformers, we use a transformer encoder-decoder architecture together with a bipartite matching scheme to directly regress the pose of all individuals in a given image. Our model, called POse Estimation Transformer (POET), is trained using a novel set-based global loss that consists of a keypoint loss, a keypoint visibility loss, a center loss and a class loss. POET reasons about the relations between detected humans and the full image context to directly predict the poses in parallel. We show that POET can achieve high accuracy on the challenging COCO keypoint detection task. To the best of our knowledge, this model is the first end-to-end trainable multi-instance human pose estimation method.","url_abs":"https://arxiv.org/abs/2103.12115v1","url_pdf":"https://arxiv.org/pdf/2103.12115v1.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":"end-to-end-trainable-multi-instance-pose","repo_url":"https://github.com/amathislab/poet","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"end-to-end-trainable-multi-instance-pose","repo_url":"https://github.com/pranoyr/pose-estimation-with-transformers","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"keypoint-detection","task_name":"Keypoint Detection"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"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=2103.12115","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.12115"}},"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/pranoyr/pose-estimation-with-transformers","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/amathislab/poet","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":4,"ran":1,"ran_violates":1,"ran_draft_wrong":2,"unverified":10},"by_repo_kind":{"official":{"samples":12,"ran":5,"repositories":1},"listed":{"samples":6,"ran":3,"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":6,"samples":[{"code_sha256_prefix":"e0a06ded5d4f6c3c","entry":"box_cxcywh_to_xyxy","repo":"amathislab/poet","repo_kind":"official","path":"util/box_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/box_ops.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e0a06ded5d4f6c3c"}},{"code_sha256_prefix":"ef1a3e10a9dbf4a9","entry":"box_cxcywh_to_xyxy","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"inference.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/inference.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":"ef1a3e10a9dbf4a9"}},{"code_sha256_prefix":"ce749f837424dd8c","entry":"box_iou","repo":"amathislab/poet","repo_kind":"official","path":"util/box_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/box_ops.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ce749f837424dd8c"}},{"code_sha256_prefix":"031b02fb990284ba","entry":"box_xyxy_to_cxcywh","repo":"amathislab/poet","repo_kind":"official","path":"util/box_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/box_ops.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"031b02fb990284ba"}},{"code_sha256_prefix":"f31a58bf6457ced5","entry":"convert_to_xywh","repo":"amathislab/poet","repo_kind":"official","path":"datasets/coco_eval.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/datasets/coco_eval.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f31a58bf6457ced5"}},{"code_sha256_prefix":"ac8fe530cdad4d8c","entry":"dice_loss","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"models/segmentation.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/models/segmentation.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ac8fe530cdad4d8c"}},{"code_sha256_prefix":"fe0ddcc2d420c9a0","entry":"evaluate","repo":"amathislab/poet","repo_kind":"official","path":"datasets/coco_eval.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/datasets/coco_eval.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fe0ddcc2d420c9a0"}},{"code_sha256_prefix":"5c0711aada67957e","entry":"sigmoid_focal_loss","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"models/segmentation.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/models/segmentation.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5c0711aada67957e"}},{"code_sha256_prefix":"0561e24134a71f2d","entry":"build_JointDist","repo":"amathislab/poet","repo_kind":"official","path":"util/kpts_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/kpts_ops.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":true,"mcp_get_code":{"code_sha256":"0561e24134a71f2d"}},{"code_sha256_prefix":"83c26ff1ecd129cb","entry":"build_SPR","repo":"amathislab/poet","repo_kind":"official","path":"util/kpts_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/kpts_ops.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":true,"mcp_get_code":{"code_sha256":"83c26ff1ecd129cb"}},{"code_sha256_prefix":"e4d1a30dbec2707d","entry":"build_matcher","repo":"amathislab/poet","repo_kind":"official","path":"models/matcher.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/models/matcher.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":true,"mcp_get_code":{"code_sha256":"e4d1a30dbec2707d"}},{"code_sha256_prefix":"35da0de247efc158","entry":"build_matcher","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"models/matcher.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/models/matcher.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":"35da0de247efc158"}},{"code_sha256_prefix":"302ec916d91b12a8","entry":"build_transformer","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"models/transformer.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/models/transformer.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":"302ec916d91b12a8"}},{"code_sha256_prefix":"de542ddb0a808b05","entry":"build_transformer","repo":"amathislab/poet","repo_kind":"official","path":"models/transformer.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/models/transformer.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":true,"mcp_get_code":{"code_sha256":"de542ddb0a808b05"}},{"code_sha256_prefix":"57de633f747522fc","entry":"crop","repo":"amathislab/poet","repo_kind":"official","path":"datasets/transforms.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/datasets/transforms.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":true,"mcp_get_code":{"code_sha256":"57de633f747522fc"}},{"code_sha256_prefix":"c7aac0bc5d5e58fb","entry":"hflip","repo":"amathislab/poet","repo_kind":"official","path":"datasets/transforms.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/datasets/transforms.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":true,"mcp_get_code":{"code_sha256":"c7aac0bc5d5e58fb"}},{"code_sha256_prefix":"b6951516c57c12ab","entry":"kpts_xyxy_to_cxcydxdy","repo":"amathislab/poet","repo_kind":"official","path":"util/kpts_ops.py","file_url":"https://github.com/amathislab/poet/blob/HEAD/util/kpts_ops.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":true,"mcp_get_code":{"code_sha256":"b6951516c57c12ab"}},{"code_sha256_prefix":"3e6fd166df697bf7","entry":"rescale_bboxes","repo":"pranoyr/pose-estimation-with-transformers","repo_kind":"listed","path":"inference.py","file_url":"https://github.com/pranoyr/pose-estimation-with-transformers/blob/HEAD/inference.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":"3e6fd166df697bf7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}