Skip to main content

No project description provided

Project description


GeoSynth: A Photorealistic Synthetic Indoor Dataset for Scene Understanding

pypi paper Documentation Status

Deep learning has revolutionized many scene perception tasks over the past decade. Some of these improvements can be attributed to the development of large labeled datasets. The creation of such datasets can be an expensive, time-consuming, and is an imperfect process. To address these issues, we introduce GeoSynth, a diverse photorealistic synthetic dataset for indoor scene perception tasks. Each GeoSynth exemplar contains rich labels, including segmentation, geometry, camera parameters, surface material, lighting, and more. We demonstrate that supplementing real training data with GeoSynth can significantly improve network performance on perception tasks, like semantic segmentation.

Watch our presentation from IEEE VR 2023.

GeoSynth is used internally at Geomagical Labs to help power the IKEA Kreativ home design experience.

Installation

GeoSynth requires Python >=3.8 and can be installed via:

pip install geosynth

This installs:

  1. The geosynth python library, providing a pythonic interface for reading and processing GeoSynth data.
  2. The geosynth command-line tool, which offers a convenient way of downloading the geosynth dataset.

Some optional visualization tools will require matplotlib.

Dataset Download

Attention! Currently only the demo variant is available, the full dataset and additional datatypes will be released in the near future.

To download just a few scenes of the dataset, download the demo variant. The demo variant is the default --variant option:

geosynth download non-hdr --variant=demo

If you also wish to include HDR data, specify all, instead. The HDR data more than doubles the size of the download, so only download it if you need it. It is recommended to only specify the data types you need.

By default, the contents will be downloaded to ~/data/geosynth/. To specify an alternative download location, specify the --dst argument.

See all download options by running geosynth download --help:

$ geosynth download --help

Usage: geosynth download [OPTIONS] DTYPES...

 Download the GeoSynth data.

╭─ Arguments ──────────────────────────────────────────────────────────────────────────╮
│ *    dtypes      DTYPES...  Assets to download. Either specify "non-hdr", "all", or  │
│                             a subset of: [cube_environment_map, depth, extrinsics,   │
│                             gravity, hdr_cube_environment_map, hdr_reflectance,      │
│                             hdr_residual, hdr_rgb, hdr_shading,                      │
│                             hdr_sphere_environment_map, instance_segmentation,       │
│                             intrinsics, layout_lines_full, layout_lines_occluded,    │
│                             layout_lines_visible, lighting, normals, reflectance,    │
│                             residual, rgb, semantic_segmentation, shading,           │
│                             sphere_environment_map]).                                │
│                             [required]                                               │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────╮
│ --dst                        PATH         GeoSynth download directory.               │
│                                           [default: ~/data/geosynth]                 │
│ --variant                    [demo|full]  Variant of dataset to download.            │
│                                           [default: demo]                            │
│ --force      --no-force                   Force a re-download, despite locally       │
│                                           cached files.                              │
│                                           [default: no-force]                        │
│ --cleanup    --no-cleanup                 Delete zip files after unzipping.          │
│                                           [default: cleanup]                         │
│ --help                                    Show this message and exit.                │
╰──────────────────────────────────────────────────────────────────────────────────────╯

Usage

Once the dataset has been downloaded, data can be accessed in python:

from geosynth import GeoSynth

geosynth = GeoSynth("PATH_TO_DATA")  # or leave empty for default "~/data/geosynth/".

print(f"GeoSynth has {len(geosynth)} scenes.")

scene = geosynth[100]  # Data can be accessed via indexing like a list.

# or iterated over in a for loop:
for scene in dataset:
    # Each Scene object contains attributres for each datatype.
    # Contents can be read from disk via the ``read`` method.
    rgb = scene.rgb.read()  # (H, W, 3) np.ndarray
    depth = scene.depth.read()  # (H, W) np.ndarray
    intrinsics = scene.intrinsics.read()  # (3, 3) camera intrinsics
    instances = scene.instance_segmentation.read()  # dictionary of instance masks.

    # many datatypes have a ``visualize`` method
    depth_viz = scene.depth.visualize(depth)  # Returns a (H,W,3) turbo-colorized image.
    instances_viz = scene.instance_segmentation.visualize(instances, rgb=rgb)

License

The GeoSynth code is released under the Apache-2.0 License.

The GeoSynth data provided at storage.googleapis.com/geomagical-geosynth-public is available under the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geosynth-1.0.1.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

geosynth-1.0.1-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file geosynth-1.0.1.tar.gz.

File metadata

  • Download URL: geosynth-1.0.1.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.4 Darwin/23.1.0

File hashes

Hashes for geosynth-1.0.1.tar.gz
Algorithm Hash digest
SHA256 cde690e97ca569d80202a4d271a8bcbe84b12e693b57f874350d61f5acf36cd2
MD5 a7b5b2b5e8a2721a65af5d3e5f3bb214
BLAKE2b-256 57d9ba95e2537743b03665c3700adcbbb93ce5dccc6f9279e032de3836493da3

See more details on using hashes here.

File details

Details for the file geosynth-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: geosynth-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.4 Darwin/23.1.0

File hashes

Hashes for geosynth-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e39fa154def5955c6ee3fa24704be2b07a552453eb47f21e8bc8072158392b3
MD5 97d8fc4017deb4c481bfca002b305564
BLAKE2b-256 ff0020bd9b0cd7c9c807a0d938ce8f788c561e2b88c271887729c202c1fe3260

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page