unstructured/pix3d
Pix3D Pix3D is a large-scale dataset of real images paired with pixel-aligned 3D shapes, released alongside Sun, Wu, Zhang et al., Pix3D: Dataset and Methods for Single-Image 3D Shape Modeling (CVPR 2018). This Hub repo repackages the official release into two Hugging Face datasets configs so both the image annotations and the underlying 3D assets can be loaded directly with load_dataset, with no manual download/unzip step. Project page: http://pix3d.csail.mit.edu Original… See the full description on the dataset page: https://huggingface.co/datasets/unstructured/pix3d.
Pix3D
Pix3D is a large-scale dataset of real images paired with pixel-aligned 3D shapes, released alongside Sun, Wu, Zhang et al., *Pix3D: Dataset and Methods for Single-Image 3D Shape Modeling* (CVPR 2018). This Hub repo repackages the official release into two Hugging Face datasets configs so both the image annotations and the underlying 3D assets can be loaded directly with load_dataset, with no manual download/unzip step.
- Project page: http://pix3d.csail.mit.edu
- Original repository: https://github.com/xingyuansun/pix3d
- License: Creative Commons Attribution 4.0 International (CC BY 4.0)
Dataset structure
The dataset is split into two configs because 10,069 image annotations reference only 735 unique physical 3D objects (many objects were photographed multiple times). Keeping them separate avoids duplicating each mesh/voxel grid across every image that uses it; join the two configs on model_id when you need both.
from datasets import load_dataset
annotations = load_dataset("unstructured/pix3d", "default") # 10,069 rows, one per image
models = load_dataset("unstructured/pix3d", "models") # 735 rows, one per unique 3D objectdefault config — one row per annotated image
models config — one row per unique 3D object
Coordinate conventions (from the original release)
- 2D keypoints / image pixels: origin top-left,
+xright,+ydown. - Mesh (`model`) canonical frame:
+xleft,+yup,+zinward. - Voxel (`voxel_model`) canonical frame:
+xleft,+youtward,+zup. rot_mat/trans_matare defined in camera coordinates and applied to the object for rendering; they are not directly usable to rotate viewer-centered predictions back to canonical view. Usecam_positionandinplane_rotationinstead — both are defined in the object's own coordinate frame and reproduce the original image up to a homography, which is what the original authors used for viewpoint evaluation.
Category / label distribution
License and attribution
The Pix3D dataset is licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). You are free to share and adapt the data for any purpose, including commercially, provided you give appropriate credit to the original authors.
If you use this dataset, please cite the original paper:
@inproceedings{pix3d,
title={Pix3D: Dataset and Methods for Single-Image 3D Shape Modeling},
author={Sun, Xingyuan and Wu, Jiajun and Zhang, Xiuming and Zhang, Zhoutong and Zhang, Chengkai and Xue, Tianfan and Tenenbaum, Joshua B and Freeman, William T},
booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2018}
}For questions about the original dataset, contact Xingyuan Sun (xingyuansun.cs@gmail.com) or Jiajun Wu (jiajunwu@mit.edu). This Hub repackaging was produced by converting the official release's pix3d.json and asset folders (img/, mask/, model/) into the two configs described above; no annotation values were modified, only the file layout and encoding (mesh → glb, voxel .mat → numpy array).
