This repository is a fork of the original BlenderProc and has been adapted to render a new synthetic dataset that includes Objaverse objects. The dataset is intended for training models in 6D Object Pose Estimation tasks. It supports rendering scenes with 40 objects and generating eight views per object.
This repository is part of the Master's Thesis, "6D Object Pose Estimation Using Diffusion Models" by Simon Schläpfer at the Autonomous Systems Lab, ETH Zurich, in collaboration with Google Research, autumn 2024.
- Script to sample and download Objaverse objects.
- Script to render scenes with Objaverse objects. Object sampling is randomized, including variations in lighting, camera poses, background textures, and object materials.
- Script to render eight views per object (four side views, three top views, and one bottom view).
The launch scripts are optimized for parallel execution on CPU nodes (ETH Euler Cluster).
git clone https://github.com/simonschlaepfer/BlenderProcObjaverse.git
cd BlenderProcObjaverse
pip install -e .python main_objaverse_download.py./launch_rendering_jobs.shYou can adjust the number of rendering jobs by modifying the for-loop interval. Each submitted job creates 25 scenes, with each scene containing 25 camera poses and 40 objects. If all scenes are rendered, use the BOP toolkit to convert the data from scene-wise format to webdataset format.
./launch_rendering_views_jobs.shBefore running this, ensure that the NOM maps are already rendered. The relevant script is available in the NOM-Diffusion repository.
