---
license: mit
---
<p align="center">
<h1>G-buffer Objaverse</h1>
<p>
G-buffer Objaverse: High-Quality Rendering Dataset of Objaverse.
[Chao Xu](mailto:eric.xc@alibaba-inc.com),
[Yuan Dong](mailto:yuandong15@fudan.edu.cn),
[Qi Zuo](mailto:muyuan.zq@alibaba-inc.com),
[Junfei Zhang](mailto:miracle.zjf@alibaba-inc.com),
[Xiaodan Ye](mailto:doris.yxd@alibaba-inc.com),
[Wenbo Geng](mailto:rengui.gwb@alibaba-inc.com),
[Yuxiang Zhang](mailto:yuxiangzhang.zyx@alibaba-inc.com),
[Xiaodong Gu](https://scholar.google.com.hk/citations?user=aJPO514AAAAJ&hl=zh-CN&oi=ao),
[Lingteng Qiu](https://lingtengqiu.github.io/),
[Zhengyi Zhao](mailto:bushe.zzy@alibaba-inc.com),
[Qing Ran](mailto:ranqing.rq@alibaba-inc.com),
[Jiayi Jiang](mailto:jiayi.jjy@alibaba-inc.com),
[Zilong Dong](https://scholar.google.com/citations?user=GHOQKCwAAAAJ&hl=zh-CN&oi=ao),
[Liefeng Bo](https://scholar.google.com/citations?user=FJwtMf0AAAAJ&hl=zh-CN)
## [Project page](https://aigc3d.github.io/gobjaverse/)
## [Github](https://github.com/modelscope/richdreamer/tree/main/dataset/gobjaverse)
## [YouTube](https://www.youtube.com/watch?v=PWweS-EPbJo)
## [RichDreamer](https://aigc3d.github.io/richdreamer/)
## [ND-Diffusion Model](https://github.com/modelscope/normal-depth-diffusion)
## TODO
- [ ] Release objaverse-xl alignment rendering data
## News
- We have released a compressed version of the datasets, check the downloading tips! (01.14, 2024 UTC)
- Thanks for [JunzheJosephZhu](https://github.com/JunzheJosephZhu) for improving the robustness of the downloading scripts. Now you could restart the download script from the break point. (01.12, 2024 UTC)
- Release 10 Category Annotation of the Objaverse Subset (01.06, 2024 UTC)
- Release G-buffer Objaverse Rendering Dataset (01.06, 2024 UTC)
## Download
- Download gobjaverse ***(6.5T)*** rendering dataset using following scripts.
```bash
# download_gobjaverse_280k index file
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k.json
# Example: python ./scripts/data/download_gobjaverse_280k.py ./gobjaverse_280k ./gobjaverse_280k.json 10
python ./download_gobjaverse_280k.py /path/to/savedata /path/to/gobjaverse_280k.json nthreads(eg. 10)
# Or if the network is not so good, we have provided a compressed verison with each object as a tar file
# To download the compressed version(only 260k tar files)
python ./download_objaverse_280k_tar.py /path/to/savedata /path/to/gobjaverse_280k.json nthreads(eg. 10)
# download gobjaverse_280k/gobjaverse index to objaverse
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k_index_to_objaverse.json
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_index_to_objaverse.json
# download Cap3D text-caption file
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/text_captions_cap3d.json
```
- The 10 general categories including Human-Shape (41,557), Animals (28,882), Daily-Used (220,222), Furnitures (19,284), Buildings&&Outdoor (116,545), Transportations (20,075), Plants (7,195), Food (5,314), Electronics (13,252) and Poor-quality (107,001).
- Download the category annotation using following scripts.
```bash
# download category annotation
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/category_annotation.json
# If you want to download a specific category in gobjaverse280k:
# Step1: download the index file of the specified category.
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k_split/gobjaverse_280k_{category_name}.json # category_name: Human-Shape, ...
# Step2: download using script.
# Example: python ./scripts/data/download_gobjaverse_280k.py ./gobjaverse_280k_Human-Shape ./gobjaverse_280k_Human-Shape.json 10
python ./download_gobjaverse_280k.py /path/to/savedata /path/to/gobjaverse_280k_{category_name}.json nthreads(eg. 10)
```
## Folder Structure
- The structure of gobjaverse rendering dataset:
```
|-- ROOT
|-- dictionary_id
|-- instance_id
|-- campos_512_v4
|-- 00000
|-- 00000.json # Camera Information
|-- 00000.png # RGB
|-- 00000_albedo.png # Albedo
|-- 00000_hdr.exr # HDR
|-- 00000_mr.png # Metalness and Roughness
|-- 00000_nd.exr # Normal and Depth
|-- ...
```
### Coordinate System
#### Normal Coordinate System
The 3D coordinate system definition is very complex. it is difficult for us to say what the camera system used. Fortunately, the target we want to get is mapping the world normal of rendering system to Normal-Bae system, as the following figure illustrates:

where the U-axis and V-axis denote the width-axis and height-axis in image space, respectively, the xyz is the Normal-Bae camera view coordinate system.
Note that public rendering system for Objaverse is blender-based system:

However, our rendering system is defined at **Unity-based system**, seeing:

*A question is how do we plug in blender's coordinate system directly without introducing a new coordinate system?*
A possible solution is that we maintain world to camera transfer matrix as blender setting, *transferring Unity-based system to blender-based system*
We provide example codes to visualize the coordinate mapping.
```bash
# example of coordinate experiments
## download datasets
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/Lingtengqiu/render_data_examples.zip
unzip render_data_examples.zip
## visualizing blender-based system, and warping world-space normal to normal-bae system.
python ./process_blender_dataset.py
## visualizing our system, and warping world-space normal to normal-bae system.
python ./process_unity_dataset.py
```
#### Depth-Warpping
We write an example to demonstrate that how to obtain intrinsic matrix K, and warp ref image to target image based on ref depth map.
```bash
# build quick-zbuff code
mkdir -p ./lib/build
g++ -shared -fpic -o ./lib/build/zbuff.so ./lib/zbuff.cpp
# an demo for depth-based Warpping
# python ./depth_warp_example.py $REFVIEW $TARGETVIEW
python3 ./depth_warp_example.py 0 3
```
## Citation
```
@article{qiu2023richdreamer,
title={RichDreamer: A Generalizable Normal-Depth Diffusion Model for Detail Richness in Text-to-3D},
author={Lingteng Qiu and Guanying Chen and Xiaodong Gu and Qi zuo and Mutian Xu and Yushuang Wu and Weihao Yuan and Zilong Dong and Liefeng Bo and Xiaoguang Han},
year={2023},
journal = {arXiv preprint arXiv:2311.16918}
}
```
```
@article{objaverse,
title={Objaverse: A Universe of Annotated 3D Objects},
author={Matt Deitke and Dustin Schwenk and Jordi Salvador and Luca Weihs and
Oscar Michel and Eli VanderBilt and Ludwig Schmidt and
Kiana Ehsani and Aniruddha Kembhavi and Ali Farhadi},
journal={arXiv preprint arXiv:2212.08051},
year={2022}
}
```
---
许可证:MIT
---
<p align="center">
<h1>G缓冲(G-buffer)Objaverse</h1>
</p>
G缓冲(G-buffer)Objaverse:Objaverse高质量渲染数据集。
徐超(Chao Xu)<eric.xc@alibaba-inc.com>、董源(Yuan Dong)<yuandong15@fudan.edu.cn>、左琪(Qi Zuo)<muyuan.zq@alibaba-inc.com>、张俊飞(Junfei Zhang)<miracle.zjf@alibaba-inc.com>、叶晓丹(Xiaodan Ye)<doris.yxd@alibaba-inc.com>、耿文博(Wenbo Geng)<rengui.gwb@alibaba-inc.com>、张宇翔(Yuxiang Zhang)<yuxiangzhang.zyx@alibaba-inc.com>、顾晓东(Xiaodong Gu)[谷歌学术主页](https://scholar.google.com.hk/citations?user=aJPO514AAAAJ&hl=zh-CN&oi=ao)、邱灵腾(Lingteng Qiu)[个人主页](https://lingtengqiu.github.io/)、赵正一(Zhengyi Zhao)<bushe.zzy@alibaba-inc.com>、冉晴(Qing Ran)<ranqing.rq@alibaba-inc.com>、姜佳毅(Jiayi Jiang)<jiayi.jjy@alibaba-inc.com>、董子龙(Zilong Dong)[谷歌学术主页](https://scholar.google.com/citations?user=GHOQKCwAAAAJ&hl=zh-CN&oi=ao)、薄立峰(Liefeng Bo)[谷歌学术主页](https://scholar.google.com/citations?user=FJwtMf0AAAAJ&hl=zh-CN)
## [项目主页](https://aigc3d.github.io/gobjaverse/)
## [GitHub 仓库](https://github.com/modelscope/richdreamer/tree/main/dataset/gobjaverse)
## [YouTube 演示视频](https://www.youtube.com/watch?v=PWweS-EPbJo)
## [RichDreamer 项目](https://aigc3d.github.io/richdreamer/)
## [ND-Diffusion 模型(ND-Diffusion Model)](https://github.com/modelscope/normal-depth-diffusion)
## 待办事项
- [ ] 发布Objaverse-XL对齐渲染数据集
## 最新动态
- 我们已发布数据集的压缩版本,详见下载指南!(2024年1月14日,协调世界时)
- 感谢朱俊哲(JunzheJosephZhu)优化下载脚本的鲁棒性,如今您可从断点处重新启动下载流程。(2024年1月12日,协调世界时)
- 发布Objaverse子集的10个类别标注(2024年1月6日,协调世界时)
- 发布G缓冲(G-buffer)Objaverse渲染数据集(2024年1月6日,协调世界时)
## 下载方式
请使用以下脚本下载gobjaverse ***(6.5TB)*** 渲染数据集:
bash
# 下载gobjaverse_280k索引文件
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k.json
# 示例:python ./scripts/data/download_gobjaverse_280k.py ./gobjaverse_280k ./gobjaverse_280k.json 10
python ./download_gobjaverse_280k.py /path/to/savedata /path/to/gobjaverse_280k.json nthreads(eg. 10)
# 若网络状况不佳,我们提供了压缩版本,每个物体为一个tar文件
# 下载压缩版本(仅含26万个tar文件)
python ./download_objaverse_280k_tar.py /path/to/savedata /path/to/gobjaverse_280k.json nthreads(eg. 10)
# 下载gobjaverse_280k/gobjaverse到Objaverse的索引文件
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k_index_to_objaverse.json
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_index_to_objaverse.json
# 下载Cap3D文本标注文件
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/text_captions_cap3d.json
本数据集共包含10个通用类别:人形(41,557个)、动物(28,882个)、日常用品(220,222个)、家具(19,284个)、建筑与户外场景(116,545个)、交通工具(20,075个)、植物(7,195个)、食品(5,314个)、电子产品(13,252个)以及低质量模型(107,001个)。
请使用以下脚本下载类别标注文件:
bash
# 下载类别标注文件
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/category_annotation.json
# 若需下载gobjaverse_280k中的特定类别数据:
# 步骤1:下载指定类别的索引文件
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/gobjaverse_280k_split/gobjaverse_280k_{category_name}.json # 类别名称:Human-Shape 等
# 步骤2:使用脚本下载数据
# 示例:python ./scripts/data/download_gobjaverse_280k.py ./gobjaverse_280k_Human-Shape ./gobjaverse_280k_Human-Shape.json 10
python ./download_gobjaverse_280k.py /path/to/savedata /path/to/gobjaverse_280k_{category_name}.json nthreads(eg. 10)
## 目录结构
gobjaverse渲染数据集的目录结构如下:
|-- ROOT
|-- dictionary_id
|-- instance_id
|-- campos_512_v4
|-- 00000
|-- 00000.json # 相机参数信息
|-- 00000.png # RGB图像
|-- 00000_albedo.png # 反照率图
|-- 00000_hdr.exr # HDR环境贴图
|-- 00000_mr.png # 金属度与粗糙度图
|-- 00000_nd.exr # 法向量与深度图
|-- ...
## 坐标系说明
### 法向量坐标系
三维坐标系的定义较为复杂,我们难以直接说明所采用的相机坐标系。所幸我们的目标是将渲染系统的世界空间法向量映射至Normal-Bae坐标系,如下图所示:

其中U轴与V轴分别代表图像空间的宽轴与高轴,xyz轴为Normal-Bae相机视图坐标系。
请注意,Objaverse公开的渲染系统基于Blender引擎:

但本数据集的渲染系统基于**Unity引擎**,详见下图:

> 核心问题在于:如何在不引入新坐标系的前提下,直接兼容Blender的坐标系?
>
> 一种可行的解决方案是保留Blender的世界空间到相机空间的转换矩阵,将Unity引擎坐标系转换至Blender坐标系。
我们提供了用于可视化坐标映射的示例代码:
bash
# 坐标实验示例
## 下载示例数据集
wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/Lingtengqiu/render_data_examples.zip
unzip render_data_examples.zip
## 可视化Blender坐标系,并将世界空间法向量转换至Normal-Bae坐标系。
python ./process_blender_dataset.py
## 可视化本数据集采用的坐标系,并将世界空间法向量转换至Normal-Bae坐标系。
python ./process_unity_dataset.py
### 深度变形(Depth-Warpping)
我们提供了示例代码,用于演示如何获取内参矩阵K,并基于参考深度图将参考图像变形至目标视图。
bash
# 编译快速深度缓冲代码
mkdir -p ./lib/build
g++ -shared -fpic -o ./lib/build/zbuff.so ./lib/zbuff.cpp
# 基于深度的变形演示脚本
# python ./depth_warp_example.py $REFVIEW $TARGETVIEW
python3 ./depth_warp_example.py 0 3
## 引用格式
@article{qiu2023richdreamer,
title={RichDreamer: A Generalizable Normal-Depth Diffusion Model for Detail Richness in Text-to-3D},
author={Lingteng Qiu and Guanying Chen and Xiaodong Gu and Qi zuo and Mutian Xu and Yushuang Wu and Weihao Yuan and Zilong Dong and Liefeng Bo and Xiaoguang Han},
year={2023},
journal = {arXiv preprint arXiv:2311.16918}
}
@article{objaverse,
title={Objaverse: A Universe of Annotated 3D Objects},
author={Matt Deitke and Dustin Schwenk and Jordi Salvador and Luca Weihs and
Oscar Michel and Eli VanderBilt and Ludwig Schmidt and
Kiana Ehsani and Aniruddha Kembhavi and Ali Farhadi},
journal={arXiv preprint arXiv:2212.08051},
year={2022}
}