├── 6D Pose Estiamtion.pdf ├── A review on instance-level 6D object pose estimation.pptx ├── A_review_on_instance_level_6D_object_pose_estimation.pdf ├── DL-based-algorithm.png ├── LinemMod_Experiments.xlsx ├── README.md ├── add_paper_script.py ├── figures ├── Comparisons_RGB_D.png ├── Comparisons_RGB_D_each.png ├── Comparisons_RGB_D_plot.png └── Readme └── libs.py /6D Pose Estiamtion.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/6D Pose Estiamtion.pdf -------------------------------------------------------------------------------- /A review on instance-level 6D object pose estimation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/A review on instance-level 6D object pose estimation.pptx -------------------------------------------------------------------------------- /A_review_on_instance_level_6D_object_pose_estimation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/A_review_on_instance_level_6D_object_pose_estimation.pdf -------------------------------------------------------------------------------- /DL-based-algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/DL-based-algorithm.png -------------------------------------------------------------------------------- /LinemMod_Experiments.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/LinemMod_Experiments.xlsx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A review on instance-level 6D object pose estimation 2 | ## Abstract 3 | 6D object pose estimation of rigid objects has received increasing attention in computer vision communities, which brings broad applications in robotics, augmented reality, autonomous driving, etc. Existing 6D object pose estimation methods can be divided into two categories by their semantic level: instance-level or category-level. In particular, instance-level 6D pose estimation goes further beyond object category semantics and focuses per-object perception. It opens up a wide applications in robotic manipulation and grasping. This paper mainly review, analyze and summarize the prior-art methods on instance-level 6D object pose estimation based on deep neural networks. First, we introduce a taxonomy of 6D object pose estimation methods based on input types and network characteristics. Secondly, we implement these methods by training on the unified benchmarks, e.g., LIMEMOD, and analyze the quantitative and qualitative results, with a summary of the major advantages and disadvantages of exiting backbones, modules and designs. Finally, we will examine potential avenues for future research, which we hope can be used as a guidance for practitioners working on 6D object pose estimation. 4 | 5 | - [[TUM Semester Thesis](./A_review_on_instance_level_6D_object_pose_estimation.pdf)] A review on instance-level 6D object pose estimation (Note: 1.3/1.0) 6 | 7 | - Future research direction: End-to-end Deep Learning-based Method with Refinement 8 | ![plot](./DL-based-algorithm.png) 9 | ![plot](./figures/Comparisons_RGB_D_each.png) 10 | ![plot](./figures/Comparisons_RGB_D.png) 11 | ![plot](./figures/Comparisons_RGB_D_plot.png) 12 | 13 | # Pose-Estimation-Paper-List 14 | -A list of papers, libraries and datasets 15 | -Code Provided by this [[git](https://github.com/yinyunie/3D-Shape-Analysis-Paper-List)] 16 | 17 | --- 18 | - [Pose Estimation](#Pose-Estimation) 19 | - [Others](#Ohters) 20 | --- 21 | 22 | 23 | 24 | Statistics: :fire: code is available & stars >= 100  |  :star: citation >= 50 25 | 26 | 27 | 28 | ## Pose Estimation 29 | 30 | #### Before 2022 31 | - [[CVPR 2022](https://arxiv.org/pdf/2203.13254.pdf)] EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation 32 | - [[CVPR 2022](https://arxiv.org/pdf/2205.12257)] OnePose: One-Shot Object Pose Estimation without CAD Models [[GitHub](https://github.com/zju3dv/OnePose)] [[Project](https://zju3dv.github.io/onepose/)]:fire: 33 | - [[CVPR 2022](https://arxiv.org/pdf/2203.05334v1)] ICG: Fusing Region and Depth for Highly Efficient 3D Tracking of Textureless Objects [[GitHub](https://github.com/DLR-RM/3DObjectTracking)] :fire: 34 | - [[CVPR 2022](https://arxiv.org/pdf/2203.17234.pdf)] Templates for 3D Object Pose Estimation Revisited: Generalization to New Objects and Robustness to Occlusions 35 | - [[CVPR 2022](https://arxiv.org/pdf/2203.12870.pdf)] RNNPose: Recurrent 6-DoF Object Pose Refinement with Robust Correspondence Field Estimation and Pose Optimization 36 | - [[CVPR 2022](https://arxiv.org/pdf/2203.01072.pdf)] OVE6D: Object Viewpoint Encoding for Depth-based 6D Object Pose Estimation 37 | - [[CVPR 2022](https://arxiv.org/pdf/2205.12257.pdf)] OnePose: One-Shot Object Pose Estimation without CAD Models 38 | - [[CVPR 2022](https://arxiv.org/pdf/2110.11636.pdf)] Occlusion-Robust Object Pose Estimation with Holistic Representation 39 | - [[CVPR 2022](https://arxiv.org/pdf/2204.09429.pdf)] HRPose: Real-Time High-Resolution 6D Pose Estimation Network Using Knowledge Distillation 40 | - [[CVPR 2022](https://arxiv.org/pdf/2204.10776.pdf)] Gen6D: Generalizable Model-Free 6-DoF Object Pose Estimation from RGB Images 41 | - [[ECCV 2022](https://arxiv.org/pdf/2104.02527.pdf)] RCVPose: Vote from the Center: 6 DoF Pose Estimation in RGB-D Images by Radial Keypoint Voting 42 | - [[arxiv 2022](https://arxiv.org/abs/2203.07918)] GPV-Pose: Category-level Object Pose Estimation via Geometry-guided Point-wise Voting [[GitHub](https://github.com/lolrudy/GPV_Pose)] 43 | - [[ICRA 2022](https://arxiv.org/pdf/2203.01929)] CenterSnap: Single-Shot Multi-Object 3D Shape Reconstruction and Categorical 6D Pose and Size Estimation [[GitHub](https://github.com/zubair-irshad/CenterSnap)] :fire: 44 | - [[IEEE 2022](https://ieeexplore.ieee.org/document/9682507)] VisuoTactile 6D Pose Estimation of an In-Hand Object Using Vision and Tactile Sensor Data 45 | - [[ICRA 2022](https://arxiv.org/pdf/2109.06161.pdf)] Single-Stage Keypoint-Based Category-Level Object Pose Estimation from an RGB Image 46 | - 47 | #### Before 2021 48 | - [[ICCV 2021](https://arxiv.org/abs/2109.10115v2)] StereOBJ-1M: Large-scale Stereo Image Dataset for 6D Object Pose Estimation 49 | - [[Arxiv 2021](https://arxiv.org/abs/2111.00190)] Leveraging SE(3) Equivariance for Self-Supervised Category-Level Object Pose Estimation [[Project](https://dragonlong.github.io/equi-pose)] 50 | - [[CVPR 2021](https://arxiv.org/pdf/2102.12145)] GDR-Net: Geometry-Guided Direct Regression Network for Monocular 6D Object Pose Estimation [[GitHub](https://github.com/THU-DA-6D-Pose-Group/GDR-Net)] :fire: :star: 51 | - [[CVPR2021](https://arxiv.org/pdf/2103.02242)] FFB6D: A Full Flow Bidirectional Fusion Network for 6D Pose Estimation [[GitHub](https://github.com/ethnhe/FFB6D)] :fire: 52 | - [[CVPR 2021](https://arxiv.org/pdf/2110.04411.pdf)] Unsupervised Pose-Aware Part Decomposition for 3D Articulated Objects 53 | - [[CVPR 2021](https://arxiv.org/pdf/2102.09334.pdf)] StablePose: Learning 6D Object Poses from Geometrically Stable Patches 54 | - [[ICCV 2021](https://arxiv.org/pdf/2108.08367.pdf)] SO-Pose: Exploiting Self-Occlusion for Direct 6D Pose Estimation 55 | - [[ICCV 2021](https://arxiv.org/pdf/2104.00633.pdfQD)] RePOSE: Fast 6D Object Pose Refinement via Deep Texture Rendering 56 | - [[IEEE 2021](https://arxiv.org/pdf/2010.12807.pdf)] REDE: End-to-end Object 6D Pose Robust Estimation Using Differentiable Outliers Elimination 57 | - [[IEEE 2021](https://ieeexplore.ieee.org/document/9361135)] Optimizing RGB-D Fusion for Accurate 6DoF Pose Estimation 58 | - [[ICLR 2021](https://arxiv.org/pdf/2101.12378.pdf)] NeMo: Neural Mesh Models of Contrastive Features for Robust 3D Pose Estimation 59 | - [[IEEE 2021](https://arxiv.org/pdf/2002.00911.pdf)] L6DNet: Light 6 DoF Network for Robust and Precise Object Pose Estimation with Small Datasets 60 | - [[IROS 2021](https://arxiv.org/pdf/2109.10127.pdf)] KDFNet: Learning Keypoint Distance Field for 6D Object Pose Estimation 61 | - [[IEEE 2021](https://arxiv.org/pdf/2104.07528.pdf)] Investigations on Output Parameterizations of Neural Networks for Single Shot 6D Object Pose Estimation 62 | - [[CVPR 2021](https://arxiv.org/pdf/2103.07054.pdf)] FS-Net: Fast Shape-based Network for Category-Level 6D Object Pose Estimation with Decoupled Rotation Mechanism 63 | - [[ECCV 2021](https://arxiv.org/pdf/2107.12549.pdf)] DISP6D: Disentangled Implicit Shape and Pose Learning for Scalable 6D Pose Estimation 64 | - [[IROS2 2021](https://arxiv.org/pdf/2108.08755.pdf)] Category-Level 6D Object Pose Estimation via Cascaded Relation and Recurrent Reconstruction Networks 65 | - [[CVPR 2021](https://arxiv.org/pdf/2108.00516.pdf)] BundleTrack: 6D Pose Tracking for Novel Objects without Instance or Category-Level 3D Models 66 | - [[arXiv 2021](https://arxiv.org/pdf/1905.06658.pdf)] Vision-based Robotic Grasping From Object Localization, Object Pose Estimation to Grasp Estimation for Parallel Grippers 67 | - [[IEEE 2021](https://ieeexplore.ieee.org/document/9561404)] 6D Object Pose Estimation with Pairwise Compatible Geometric Features 68 | 69 | #### Before 2020 70 | - [[CVPR 2020](https://arxiv.org/abs/1809.1079)] PVN3D: A Deep Point-wise 3D Keypoints Voting Network for 6DoF Pose Estimation [[GitHub](https://github.com/ethnhe/PVN3D)] :fire: :star: 71 | - [[CVPR 2020](https://openaccess.thecvf.com/content_CVPR_2020/papers/Song_HybridPose_6D_Object_Pose_Estimation_Under_Hybrid_Representations_CVPR_2020_paper.pdf)] HybridPose: 6D Object Pose Estimation under Hybrid Representations [[GitHub](https://github.com/chensong1995/HybridPose)] :fire: :star: 72 | - [[IEEE 2020](https://arxiv.org/abs/1910.10750)] 6-PACK: Category-level 6D Pose Tracker with Anchor-Based Keypoints [[GitHub](https://github.com/j96w/6-PACK)] [[Project](https://sites.google.com/view/6packtracking)] :fire: :star: 73 | - [[IEEE 2020](https://arxiv.org/pdf/1902.02394.pdf)] Real-time 3D Traffic Cone Detection for Autonomous Driving 74 | - [[arXiv 2020](https://arxiv.org/pdf/1812.11788.pdf)] PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation 75 | 76 | 77 | #### Before 2019 78 | - [[CVPR 2019](https://arxiv.org/abs/1901.04780)] DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion [[GitHub](https://github.com/j96w/DenseFusion)] [[Project](https://sites.google.com/view/densefusion/)] :fire: :star: 79 | - [[CoRL 2018](https://arxiv.org/abs/1809.10790)] Deep Object Pose Estimation for Semantic Robotic Grasping of Household Objects[[GitHub](https://github.com/NVlabs/Deep_Object_Pose)] :fire: :star: 80 | - [[ECCV 2018](https://arxiv.org/pdf/1804.00175v4.pdf)] DeepIM: Deep Iterative Matching for 6D Pose Estimation [[GitHub](https://github.com/NVlabs/DeepIM-PyTorch)] [[Project](https://rse-lab.cs.washington.edu/projects/deepim/)] :fire: :star: 81 | - [[Arxiv 2017](https://arxiv.org/abs/1711.00199)] PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes [[GitHub](https://github.com/NVlabs/PoseCNN-PyTorch)] [[Project](https://rse-lab.cs.washington.edu/projects/posecnn/)] :fire: :star: 82 | - [[CVPR 2022](https://ieeexplore.ieee.org/document/9009519)] CDPN: Coordinates-Based Disentangled Pose Network for Real-Time RGB-Based 6-DoF Object Pose Estimation 83 | 84 | #### Survey-Review 85 | - [[Survey 2022](https://tuprints.ulb.tu-darmstadt.de/21027/)] A Survey of 6D Object Detection Based on 3D Models for Industrial Applications 86 | - [[IEEE 2022](https://ieeexplore.ieee.org/document/9836663)] A Review of 6D Object Pose Estimation 87 | 88 | - [[Springer 2021](https://journalofbigdata.springeropen.com/articles/10.1186/s40537-021-00444-8)] Review of deep learning: concepts, CNN architectures, challenges, applications, future directions 89 | - [[ArXiv 2020](https://arxiv.org/abs/1905.06658)] Vision-based Robotic Grasping From Object Localization, Object Pose Estimation to Grasp Estimation for Parallel Grippers: A Review 90 | - [[ArXiv 2020](https://arxiv.org/abs/2009.07378)] BOP Challenge 2020 on 6D Object Localization 91 | - [[ArXiv 2020](https://arxiv.org/pdf/2001.10609.pdf)] A Review on Object Pose Recovery: from 3D Bounding Box Detectors to Full 6D Pose Estimators 92 | - [[ArXiv 2019](https://www.researchgate.net/publication/344765943_Survey_on_6D_Pose_Estimation_of_Rigid_Object)] Survey on 6D Pose Estimation of Rigid Object 93 | - [[ArXiv 2019](https://arxiv.org/abs/1903.04229)] Instance- and Category-level 6D Object Pose Estimation 94 | - [[IEEE 2019](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9543652)] A Comprehensive Review on 3D Object Detection 95 | and 6D Pose Estimation With Deep Learning 96 | - [[Springer 2019](https://link.springer.com/book/10.1007/978-3-030-30754-7)] New Trends in Image Analysis and Processing – ICIAP 2019 97 | - [[Springer 2017](https://jwcn-eurasipjournals.springeropen.com/articles/10.1186/s13638-017-0993-1)] Text feature extraction based on deep learning: a review 98 | - [[Springer 2016](https://link.springer.com/chapter/10.1007/978-3-319-49409-8_52)] On Evaluation of 6D Object Pose Estimation 99 | - [[IEEE 2016](https://ieeexplore.ieee.org/document/7368948)] Pose Estimation for Augmented Reality: A Hands-On Survey 100 | --- 101 | 102 | ## Ohters(Datasets) 103 | 104 | #### Before 2022 105 | 106 | #### Before 2021 107 | - [[TOG 2019](https://arxiv.org/pdf/1801.07829.pdf)] Dynamic Graph CNN for Learning on Point Clouds [[Project](https://liuziwei7.github.io/projects/DGCNN)] :fire: :star: 108 | 109 | --- 110 | 111 | 112 | -------------------------------------------------------------------------------- /add_paper_script.py: -------------------------------------------------------------------------------- 1 | # Added a new paper to the list. 2 | # Author: Yinyu Nie 3 | # Updated data: 23 June, 2021 4 | 5 | # Usage: 6 | # python add_paper_script.py 7 | # follow the instructions to add details for each paper. 8 | 9 | import sys 10 | from libs import existing_topics 11 | import urllib.request 12 | import re 13 | 14 | 15 | if __name__ == '__main__': 16 | '''Decide topic name''' 17 | print('''Topic name list: 18 | [0] Pose Estimation; 19 | [1] Others; 20 | [2] Survey, Resources and Tools. 21 | ''') 22 | topic_id = input('Please input the topic ID. ([q]/[quit] to exit.):\n') 23 | if topic_id == 'q' or topic_id == 'quit': 24 | sys.exit(0) 25 | topic_name = existing_topics[int(topic_id)] 26 | 27 | '''Decide publication name''' 28 | pub_name = input('Please input publication. Default for Arxiv. ([q]/[quit] to exit.):\n') 29 | if not pub_name: 30 | pub_name = 'Arxiv' 31 | elif pub_name == 'q' or pub_name == 'quit': 32 | sys.exit(0) 33 | 34 | '''Decide website link''' 35 | link_addr = input('Please input paper link. ([q]/[quit] to exit.):\n') 36 | if link_addr == 'q' or link_addr == 'quit': 37 | sys.exit(0) 38 | 39 | if 'arxiv.org' in link_addr: 40 | if link_addr.endswith('.pdf'): 41 | arxiv_id = '.'.join(link_addr.split('/')[-1].split('.')[:-1]) 42 | link_addr = 'https://arxiv.org/abs/' + str(arxiv_id) 43 | else: 44 | arxiv_id = link_addr.split('/')[-1] 45 | html_text = urllib.request.urlopen(link_addr).read() 46 | html_text = html_text.decode("utf8") 47 | pattern = re.compile(r'Title:.*?(.+?)') 48 | re_result = re.search(pattern, html_text) 49 | paper_title = re_result.group(1) 50 | pub_date = int(arxiv_id.split('.')[0]) 51 | else: 52 | paper_title = input('Please paper title. ([q]/[quit] to exit.):\n') 53 | if paper_title == 'q' or paper_title == 'quit': 54 | sys.exit(0) 55 | pub_date = None 56 | 57 | other_info = {} 58 | while True: 59 | info_item = input( 60 | 'Please give optional info, e.g., Project=https://yinyunie.github.io/Total3D/. ([q]/[quit] to exit. [Enter] to pass):\n') 61 | if info_item == 'q' or info_item == 'quit': 62 | sys.exit(0) 63 | if info_item: 64 | items = info_item.split('=') 65 | value = '='.join(items[1:]) 66 | other_info[items[0].strip()] = value.strip() 67 | else: 68 | break 69 | 70 | markdown_line = '- [[%s](%s)] %s' % (pub_name, link_addr, paper_title) 71 | for key, item in other_info.items(): 72 | markdown_line += ' [[%s](%s)]' % (key, item) 73 | markdown_line += '\n' 74 | 75 | '''Insert to README.md''' 76 | with open('./README.md', 'r') as file: 77 | paper_list = file.read() 78 | 79 | # check if already existed 80 | if paper_title.strip() in paper_list: 81 | print('This paper is already in library.') 82 | sys.exit(0) 83 | 84 | # insert to paper list 85 | topic_search = re.search('## ' + topic_name + '.*?\n', paper_list) 86 | insert_point = topic_search.end(0) 87 | if pub_date is not None: 88 | if pub_date <= 2100: 89 | date_search = re.search('#### Before 2021.*?\n', paper_list[topic_search.end(0):]) 90 | insert_point = topic_search.end(0) + date_search.end(0) 91 | 92 | new_paper_list = paper_list[:insert_point] + markdown_line + paper_list[insert_point:] 93 | 94 | with open('./README.md', 'w') as file: 95 | file.write(new_paper_list) 96 | -------------------------------------------------------------------------------- /figures/Comparisons_RGB_D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/figures/Comparisons_RGB_D.png -------------------------------------------------------------------------------- /figures/Comparisons_RGB_D_each.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/figures/Comparisons_RGB_D_each.png -------------------------------------------------------------------------------- /figures/Comparisons_RGB_D_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZhouTao415/A-review-on-instance-level-6D-object-pose-estimation/cd2cb490c36b185a5104c1a65f761a5b0b310abd/figures/Comparisons_RGB_D_plot.png -------------------------------------------------------------------------------- /figures/Readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs.py: -------------------------------------------------------------------------------- 1 | # Added a new paper to the list. 2 | # Author: Yinyu Nie 3 | # Updated data: 23 June, 2021 4 | import argparse 5 | 6 | existing_topics = ['Pose Estimation', 7 | 'Others', 8 | 'Survey, Resources and Tools'] 9 | 10 | 11 | class ParseKwargs(argparse.Action): 12 | def __call__(self, parser, namespace, values, option_string=None): 13 | setattr(namespace, self.dest, dict()) 14 | for value in values: 15 | key, value = value.split('=') 16 | getattr(namespace, self.dest)[key] = value 17 | --------------------------------------------------------------------------------