From 899ff7a55535fe3210aa462fcb2ad4fd9b7b6b4a Mon Sep 17 00:00:00 2001 From: bertjiazheng Date: Tue, 18 Aug 2020 20:24:53 +0800 Subject: [PATCH] :art: --- README.md | 19 ++++++++++++------- data_organization.md | 12 +++++++++--- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ba8bf22..5c1f437 100644 --- a/README.md +++ b/README.md @@ -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 @@ -41,11 +43,13 @@ We provide the basic code for viewing the structure annotations of our dataset. ### Installation Clone repository: + ```bash git clone git@github.com: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 @@ -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 @@ -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}, diff --git a/data_organization.md b/data_organization.md index dbb7129..9aed480 100644 --- a/data_organization.md +++ b/data_organization.md @@ -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_ ├── 2D_rendering @@ -35,6 +36,7 @@ scene_ 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 @@ -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). + ``` [ { @@ -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]. @@ -116,6 +119,7 @@ For each image, we provide semantic, instance, albedo, depth, normal, layout ann

**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":[ @@ -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).