{"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/repose-real-time-iterative-rendering-and","title":"RePOSE: Fast 6D Object Pose Refinement via Deep Texture Rendering","arxiv_id":"2104.00633","date":"2021-04-01","proceeding":"ICCV 2021 10","authors":["Shun Iwase","Xingyu Liu","Rawal Khirodkar","Rio Yokota","Kris M. Kitani"],"abstract":"We present RePOSE, a fast iterative refinement method for 6D object pose estimation. Prior methods perform refinement by feeding zoomed-in input and rendered RGB images into a CNN and directly regressing an update of a refined pose. Their runtime is slow due to the computational cost of CNN, which is especially prominent in multiple-object pose refinement. To overcome this problem, RePOSE leverages image rendering for fast feature extraction using a 3D model with a learnable texture. We call this deep texture rendering, which uses a shallow multi-layer perceptron to directly regress a view-invariant image representation of an object. Furthermore, we utilize differentiable Levenberg-Marquardt (LM) optimization to refine a pose fast and accurately by minimizing the feature-metric error between the input and rendered image representations without the need of zooming in. These image representations are trained such that differentiable LM optimization converges within few iterations. Consequently, RePOSE runs at 92 FPS and achieves state-of-the-art accuracy of 51.6% on the Occlusion LineMOD dataset - a 4.1% absolute improvement over the prior art, and comparable result on the YCB-Video dataset with a much faster runtime. The code is available at https://github.com/sh8/repose.","url_abs":"https://arxiv.org/abs/2104.00633v2","url_pdf":"https://arxiv.org/pdf/2104.00633v2.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":"repose-real-time-iterative-rendering-and","repo_url":"https://github.com/sh8/repose","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"6d-pose-estimation-1","task_name":"6D Pose Estimation"},{"task_slug":"6d-pose-estimation","task_name":"6D Pose Estimation using RGB"},{"task_slug":"object","task_name":"Object"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/6d-pose-estimation-on-linemod","task":"6D Pose Estimation using RGB","dataset":"LineMOD","model":"RePOSE","rank_in_archive_order":5,"of":22,"metrics":{"Accuracy (ADD)":"96.1%","Mean ADD":"96.1"},"uses_additional_data":false},{"leaderboard":"/sota/6d-pose-estimation-using-rgb-on-occlusion","task":"6D Pose Estimation using RGB","dataset":"Occlusion LineMOD","model":"RePOSE","rank_in_archive_order":6,"of":13,"metrics":{"Mean ADD":"51.6"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.00633","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.00633"}},"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":"deterministic:regex_extraction","url":"https://github.com/sh8/repose","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"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":"e2a61f3fba0c0ec3","entry":"make_analyzer","repo":"sh8/repose","repo_kind":"official","path":"lib/analyzers/make_analyzer.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/analyzers/make_analyzer.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":"e2a61f3fba0c0ec3"}},{"code_sha256_prefix":"872ab7704b4526e2","entry":"make_batch_data_sampler","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/make_dataset.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/make_dataset.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":"872ab7704b4526e2"}},{"code_sha256_prefix":"a11a27a9c4153d8d","entry":"make_collator","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/collate_batch.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/collate_batch.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":"a11a27a9c4153d8d"}},{"code_sha256_prefix":"eb9f81ec5588ee75","entry":"make_data_sampler","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/make_dataset.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/make_dataset.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":"eb9f81ec5588ee75"}},{"code_sha256_prefix":"9cc25f2c8373bccc","entry":"make_dataset","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/make_dataset.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/make_dataset.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":"9cc25f2c8373bccc"}},{"code_sha256_prefix":"e941a1cab31db49e","entry":"make_network","repo":"sh8/repose","repo_kind":"official","path":"lib/networks/make_network.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/networks/make_network.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":"e941a1cab31db49e"}},{"code_sha256_prefix":"2d5b772e8d9d2dcf","entry":"make_transforms","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/transforms.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/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":"2d5b772e8d9d2dcf"}},{"code_sha256_prefix":"469f96dc37b6cbbf","entry":"resize_keep_aspect_ratio","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/augmentation.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/augmentation.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":"469f96dc37b6cbbf"}},{"code_sha256_prefix":"317fd27af8e8a5f6","entry":"rotate","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/augmentation.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/augmentation.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":"317fd27af8e8a5f6"}},{"code_sha256_prefix":"8ac07ff4bce4b058","entry":"rotate_instance","repo":"sh8/repose","repo_kind":"official","path":"lib/datasets/augmentation.py","file_url":"https://github.com/sh8/repose/blob/HEAD/lib/datasets/augmentation.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":"8ac07ff4bce4b058"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}