Skip to content

Commit

Permalink
🎨
Browse files Browse the repository at this point in the history
  • Loading branch information
bertjiazheng committed Aug 18, 2020
1 parent d9a7f61 commit 899ff7a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
19 changes: 12 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,24 @@ Structured3D is a large-scale photo-realistic dataset containing 3.5K house desi

European Conference on Computer Vision (ECCV), 2020

[[Paper](https://arxiv.org/abs/1908.00222)] [[Supplementary Material](https://drive.google.com/file/d/17F_jIfY_QKFNmsOSvzUFZwWKrr6YUMnQ)] [[Benchmark](https://competitions.codalab.org/competitions/24183)]
[[Paper](https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123540494.pdf)]
[[Supplementary Material](https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123540494-supp.pdf)]
[[Benchmark](https://competitions.codalab.org/competitions/24183)]

(\* Equal contribution)

## Data

The dataset consists of rendering images and corresponding ground truth annotations (*e.g.*, semantic, albedo, depth, surface normal, layout) under different lighting and furniture configurations. Please refer to [data organization](data_organization.md) for more details.
The dataset consists of rendering images and corresponding ground truth annotations (_e.g._, semantic, albedo, depth, surface normal, layout) under different lighting and furniture configurations. Please refer to [data organization](data_organization.md) for more details.

To download the dataset, please fill the [agreement form](https://forms.gle/LXg4bcjC2aEjrL9o8) that indicates you agree to the [Structured3D Terms of Use](https://drive.google.com/open?id=13ZwWpU_557ZQccwOUJ8H5lvXD7MeZFMa). After we receive your agreement form, we will provide download access to the dataset.

For fair comparison, we define standard training, validation, and testing splits as follows: *scene_00000* to *scene_02999* for training, *scene_03000* to *scene_03249* for validation, and *scene_03250* to *scene_03499* for testing.
For fair comparison, we define standard training, validation, and testing splits as follows: _scene_00000_ to _scene_02999_ for training, _scene_03000_ to _scene_03249_ for validation, and _scene_03250_ to _scene_03499_ for testing.

## Errata

* 2020-04-06: We provide a list of invalid cases [here](metadata/errata.txt). You can ignore these cases when using our data.
* 2020-03-26: Fix issue [#10](https://github.com/bertjiazheng/Structured3D/issues/10) about the basis of the bounding box annotations. Please re-download the annotations if you use them.
- 2020-04-06: We provide a list of invalid cases [here](metadata/errata.txt). You can ignore these cases when using our data.
- 2020-03-26: Fix issue [#10](https://github.com/bertjiazheng/Structured3D/issues/10) about the basis of the bounding box annotations. Please re-download the annotations if you use them.

## Tools

Expand All @@ -41,11 +43,13 @@ We provide the basic code for viewing the structure annotations of our dataset.
### Installation

Clone repository:

```bash
git clone [email protected]:bertjiazheng/Structured3D.git
```

Please use Python 3, then follow [installation](https://pymesh.readthedocs.io/en/latest/installation.html) to install [PyMesh](https://github.com/PyMesh/PyMesh) (only for plane visualization) and the other dependencies:

```bash
conda install -y open3d -c open3d-admin
conda install -y opencv -c conda-forge
Expand All @@ -61,8 +65,8 @@ We use [open3D](https://github.com/intel-isl/Open3D) for wireframe and plane vis
python visualize_3d.py --path /path/to/dataset --scene scene_id --type wireframe/plane/floorplan
```

| Wireframe | Plane | Floorplan |
| --- | --- | --- |
| Wireframe | Plane | Floorplan |
| ------------------------------------- | ----------------------------- | ------------------------------------- |
| ![Wireframe](assets/3d/wireframe.png) | ![plane](assets/3d/plane.png) | ![floorplan](assets/3d/floorplan.png) |

### Visualize 3D Textured Mesh
Expand Down Expand Up @@ -114,6 +118,7 @@ python visualize_bbox.py --path /path/to/dataset --scene scene_id
## Citation

Please cite `Structured3D` in your publications if it helps your research:

```bibtex
@inproceedings{Structured3D,
title = {Structured3D: A Large Photo-realistic Dataset for Structured 3D Modeling},
Expand Down
12 changes: 9 additions & 3 deletions data_organization.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Data Organization

There is a separate subdirectory for every scene (*i.e.*, house design), which is named by a unique ID. Within each scene directory, there are separate directories for different types of data as follows:
There is a separate subdirectory for every scene (_i.e._, house design), which is named by a unique ID. Within each scene directory, there are separate directories for different types of data as follows:

```
scene_<sceneID>
├── 2D_rendering
Expand Down Expand Up @@ -35,6 +36,7 @@ scene_<sceneID>
We provide the primitive and relationship based structure annotation for each scene, and oriented bounding box for each object instance.

**Structure annotation (`annotation_3d.json`)**: see all the room types [here](metadata/room_types.txt).

```
{
// PRIMITVIES
Expand Down Expand Up @@ -86,6 +88,7 @@ We provide the primitive and relationship based structure annotation for each sc
```

**Bounding box (`bbox_3d.json`)**: the oriented bounding box annotation in world coordinate, same as the [SUN RGB-D Dataset](http://rgbd.cs.princeton.edu).

```
[
{
Expand All @@ -101,11 +104,11 @@ For each image, we provide semantic, instance, albedo, depth, normal, layout ann

**Semantic annotation (`semantic.png`)**: unsigned 8-bit integers within a PNG. We use [NYUv2](https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2) 40-label set, see all the label ids [here](metadata/labelids.txt).

**Instance annotation (`instance.png`)**: unsigned 16-bit integers within a PNG. We only provide instance annotation for full configuration. The maximum value (65535) denotes *background*.
**Instance annotation (`instance.png`)**: unsigned 16-bit integers within a PNG. We only provide instance annotation for full configuration. The maximum value (65535) denotes _background_.

**Albedo data (`albedo.png`)**: unsigned 8-bit integers within a PNG.

**Depth data (`depth.png`)**: unsigned 16-bit integers within a PNG. The units are millimeters, a value of 1000 is a meter. A zero value denotes *no reading*.
**Depth data (`depth.png`)**: unsigned 16-bit integers within a PNG. The units are millimeters, a value of 1000 is a meter. A zero value denotes _no reading_.

**Normal data (`normal.png`)**: unsigned 8-bit integers within a PNG (x, y, z), where the integer values in the file are 128 \* (1 + n), where n is a normal coordinate in range [-1, 1].

Expand All @@ -116,6 +119,7 @@ For each image, we provide semantic, instance, albedo, depth, normal, layout ann
</p>

**Layout annotation for perspecitve (`layout.json`)**: We also include the junctions that formed by line segments intersecting with each other or image boundary. We consider the visible and invisible part caused by the room structure instead of furniture.

```
{
"junctions":[
Expand All @@ -141,7 +145,9 @@ For each image, we provide semantic, instance, albedo, depth, normal, layout ann
**Camera location for panorama (`camera_xyz.txt`)**: For each panoramic image, we only store the camera location in global coordinates. The direction of the camera is always along the negative y-axis. Global coordinate system is arbitrary, but the z-axis generally points upward.

**Camera location for perspective (`camera_pose.txt`)**: For each perspective image, we store the camera location and pose in global coordinates.

```
vx vy vz tx ty tz ux uy uz xfov yfov 1
```

where `(vx, vy, vz)` is the eye viewpoint of the camera, `(tx, ty, tz)` is the view direction, `(ux, uy, uz)` is the up direction, and `xfov` and `yfov` are the half-angles of the horizontal and vertical fields of view of the camera in radians (the angle from the central ray to the leftmost/bottommost ray in the field of view), same as the [Matterport3D Dataset](https://github.com/niessner/Matterport).

0 comments on commit 899ff7a

Please sign in to comment.