Home

Awesome

<div align="center">

Omni6D: Large-Vocabulary 3D Object Dataset for Category-Level 6D Object Pose Estimation

<p align="center"> <a href="https://arxiv.org/abs/2409.18261"><img src="https://img.shields.io/badge/ArXiv-Paper-<color>"></a> <a href="https://www.youtube.com/watch?v=BKyw51bUhZs"><img src="https://img.shields.io/static/v1?label=Youtube&message=Video&color=orange"></a> <a href="https://openxlab.org.cn/datasets/kszpxxzmcwww/Omni6D"><img src="https://img.shields.io/static/v1?label=Openxlab&message=Data&color=blue"></a> </a> </p> <div><center> <a href='https://kszpxxzmc.github.io/' target='_blank'>Mengchen Zhang</a>&emsp; <a href='https://wutong16.github.io/' target='_blank'>Tong Wu</a>&emsp; <a href='https://tai-wang.github.io/' target='_blank'>Tai Wang</a>&emsp; <a href='https://tengfei-wang.github.io/' target='_blank'>Tengfei Wang</a>&emsp; <a href='https://liuziwei7.github.io/' target='_blank'>Ziwei Liu</a>&emsp; <a href='http://dahua.me/' target='_blank'>Dahua Lin</a>&emsp;</center> </div> <center><strong>Accepted to <a href='https://eccv2024.ecva.net/' target='_blank'>ECCV 2024</a>  </strong></center> <div><center><strong><br> <a href='https://arxiv.org/abs/2409.18261' target='_blank'>Paper</a>&emsp; <a href='https://www.youtube.com/watch?v=BKyw51bUhZs' target='_blank'>Video</a>&emsp; <a href='https://openxlab.org.cn/datasets/kszpxxzmcwww/Omni6D' target='_blank'>Data</a>&emsp; </strong></center> </div> <br>

Watch the video

</div>

Updates

Usage

Download the dataset

openxlab login                                                  # Login, input AK/SK
openxlab dataset info --dataset-repo kszpxxzmcwww/Omni6D        # View dataset info
openxlab dataset ls --dataset-repo kszpxxzmcwww/Omni6D	        # View a list of dataset files
openxlab dataset get --dataset-repo kszpxxzmcwww/Omni6D         # Download the whole dataset (the compressed files require approximately 388.9GB of storage)

If you are experiencing an error of 401: {"msg":"login required"} with your own AKSK, please use the following AKSK:

AK: bmyqk5wpbaxl6x1vkzq9
SK: nl7kq9palyr6j3pwxolden7ezq4dwjmbgdm81yeo

You can check out the full folder structure on the website above and download a certain portion of the data by specifying the path. For example:

openxlab dataset download --dataset-repo kszpxxzmcwww/Omni6D \
                          --source-path /raw/Omni6D_V1/CAMERA/test \
                          --target-path <your-target-path>

For more information, please refer to the documentation.

Dataset format

Omni6D(-xl) // Omni6D(-xl) Dataset
├── info
│   ├── sym_info.csv 
│   │       // rotational invariance of each mesh
│   ├── <train/val/test/test_unseen>_list.txt
│   │       // valid data list of each split
├── shape_data               
│   ├── camera_<train/val/test/test_unseen>.pkl
│   │       // sampled 1024 points from each mesh, 
│   │       // normalized to NOCS
│   ├── ShapeNetCore_<2048/4096>.h5
│   ├── ShapeNetCore_unseen_<2048/4096>.h5
│   │       // sampled 2048/4096 points from each mesh
│   │       // normalized to NOCS
│   ├── mean_embedding.npy
│   │       // mean embedding of each category
│   ├── mean_points_emb.npy
│   │       // mean shape of each category
├── CAMERA         
│   ├── <train/val/test/test_unseen>
│   │   ├── <scene_id>
│   │   │   ├── <render_id>_color.png
│   │   │   │       // RGB image
│   │   │   ├── <render_id>_depth.png
│   │   │   │       // depth map
│   │   │   ├── <render_id>_coord.png
│   │   │   │       // NOCS mapping
│   │   │   ├── <render_id>_mask.png
│   │   │   │       // instance mask
│   │   │   ├── <render_id>_meta.txt
│   │   │   │       // instance name
│   │   │   ├── <render_id>_label.pkl
│   │   │   │       // ground truth annotations
Omni6D_Real // Omni6D_Real Dataset
│   ├── <scene_id>
│   │   ├── <capture_id>_color.png
│   │   │       // RGB image
│   │   ├── <capture_id>_depth.png
│   │   │       // depth map
│   │   ├── <capture_id>_mask.png
│   │   │       // instance mask
│   │   ├── <capture_id>_mask.png
│   │   │       // instance name
│   │   ├── <capture_id>_label.pkl
│   │   │       // ground truth annotations

Dataset construction

  1. Install a suitable version of BlenderProc
git clone git@github.com:3DTopia/Omni6D.git
cd Omni6D
pip install blenderproc 
  1. In dataset/dataset.py, update the following:
  1. For a single test, run the following command:
blenderproc run dataset/dataset.py
  1. For batch dataset generation, execute the batch script:
bash multi_run.sh

Benchmark

Category-level performance on Omni6D dataset.

MethodsNetwork$IoU_{50}$$IoU_{75}$$5^\circ2cm$$5^\circ5cm$$10^\circ2cm$$10^\circ5cm$$5^\circ$$10^\circ$$2cm$$5cm$
SPDimplicit44.5620.37<u>7.55</u>9.56<u>14.76</u>19.2310.6821.0237.4970.09
SGPAimplicit36.3414.444.786.8410.1315.038.4917.7325.5759.18
DualPoseNethybrid<u>58.84</u>25.498.28<u>9.30</u>17.26<u>19.05</u><u>9.38</u><u>19.18</u><u>73.82</u><u>96.37</u>
RBP-Posehybrid35.924.660.370.600.530.800.750.9639.7383.55
GPV-Poseexplicit15.280.260.100.700.140.962.252.965.3133.70
HS-Poseexplicit62.65<u>23.02</u>4.264.8510.4911.614.9611.7580.9397.78

Category-level performance on Omni6D-xl dataset.

MethodsNetwork$IoU_{50}$$IoU_{75}$$5^\circ2cm$$5^\circ5cm$$10^\circ2cm$$10^\circ5cm$$5^\circ$$10^\circ$$2cm$$5cm$
SPDimplicit42.2816.733.426.476.4512.1610.6217.7121.0554.14
SGPAimplicit37.6212.482.455.565.1210.9810.2517.8816.2147.31
DualPoseNethybrid59.1524.265.927.2410.7413.007.7013.7265.0587.44
RBP-Posehybrid41.216.550.521.630.591.743.023.2023.2057.27
GPV-Poseexplicit17.011.420.511.900.552.075.085.725.1926.32
HS-Poseexplicit62.9226.504.986.268.8110.736.6511.3971.6889.38

License

The OmniObject3D dataset is released under the CC BY 4.0.

Reference

If you find our work helpful for your research, please consider giving a star ⭐ and citation 📝

@misc{zhang2024omni6dlargevocabulary3dobject,
      title={Omni6D: Large-Vocabulary 3D Object Dataset for Category-Level 6D Object Pose Estimation}, 
      author={Mengchen Zhang and Tong Wu and Tai Wang and Tengfei Wang and Ziwei Liu and Dahua Lin},
      year={2024},
      eprint={2409.18261},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2409.18261}, 
}