All Projects → shurans → Suncgtoolbox

shurans / Suncgtoolbox

C++ based toolbox for the SUNCG dataset

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Suncgtoolbox

RGBD-semantic-segmentation
A paper list of RGBD semantic segmentation (processing)
Stars: ✭ 264 (+94.12%)
Mutual labels:  rgbd, semantic-segmentation
Intrinsic3d
Intrinsic3D - High-Quality 3D Reconstruction by Joint Appearance and Geometry Optimization with Spatially-Varying Lighting (ICCV 2017)
Stars: ✭ 297 (+118.38%)
Mutual labels:  3d, rgbd
ESANet
ESANet: Efficient RGB-D Semantic Segmentation for Indoor Scene Analysis
Stars: ✭ 154 (+13.24%)
Mutual labels:  rgbd, semantic-segmentation
Spatiotemporalsegmentation
4D Spatio-Temporal Semantic Segmentation on a 3D video (a sequence of 3D scans)
Stars: ✭ 141 (+3.68%)
Mutual labels:  3d, semantic-segmentation
Cilantro
A lean C++ library for working with point cloud data
Stars: ✭ 577 (+324.26%)
Mutual labels:  3d, rgbd
Volumetriccapture
A multi-sensor capture system for free viewpoint video.
Stars: ✭ 243 (+78.68%)
Mutual labels:  3d, rgbd
Open3d Ml
An extension of Open3D to address 3D Machine Learning tasks
Stars: ✭ 284 (+108.82%)
Mutual labels:  semantic-segmentation, rgbd
Arc Robot Vision
MIT-Princeton Vision Toolbox for Robotic Pick-and-Place at the Amazon Robotics Challenge 2017 - Robotic Grasping and One-shot Recognition of Novel Objects with Deep Learning.
Stars: ✭ 224 (+64.71%)
Mutual labels:  3d, rgbd
3dmatch Toolbox
3DMatch - a 3D ConvNet-based local geometric descriptor for aligning 3D meshes and point clouds.
Stars: ✭ 571 (+319.85%)
Mutual labels:  3d, rgbd
Tsdf Fusion Python
Python code to fuse multiple RGB-D images into a TSDF voxel volume.
Stars: ✭ 464 (+241.18%)
Mutual labels:  3d, rgbd
Apc Vision Toolbox
MIT-Princeton Vision Toolbox for the Amazon Picking Challenge 2016 - RGB-D ConvNet-based object segmentation and 6D object pose estimation.
Stars: ✭ 277 (+103.68%)
Mutual labels:  3d, rgbd
Cen
[NeurIPS 2020] Code release for paper "Deep Multimodal Fusion by Channel Exchanging" (In PyTorch)
Stars: ✭ 112 (-17.65%)
Mutual labels:  semantic-segmentation, rgbd
Tsdf Fusion
Fuse multiple depth frames into a TSDF voxel volume.
Stars: ✭ 426 (+213.24%)
Mutual labels:  3d, rgbd
3d Semantic Segmentation For Scene Parsing
A new approach for the real time 3D semantic segmentation based on feature abstract and deep learning method
Stars: ✭ 13 (-90.44%)
Mutual labels:  3d, semantic-segmentation
Sunrgbd Meta Data
train test labels for sunrgbd
Stars: ✭ 127 (-6.62%)
Mutual labels:  semantic-segmentation, rgbd
Segsort
SegSort: Segmentation by Discriminative Sorting of Segments
Stars: ✭ 130 (-4.41%)
Mutual labels:  semantic-segmentation
Model viewer.dart
A Flutter widget for rendering interactive 3D models in the glTF and GLB formats.
Stars: ✭ 134 (-1.47%)
Mutual labels:  3d
Timeline
直观地显示各个历史时间段及历史地图。Visually display various historical time periods and historical maps.
Stars: ✭ 127 (-6.62%)
Mutual labels:  3d
Earthjs
D3 Earth JS
Stars: ✭ 128 (-5.88%)
Mutual labels:  3d
Armorpaint
3D PBR Texture Painting Software
Stars: ✭ 2,065 (+1418.38%)
Mutual labels:  3d

SUNCG Data Documentation

We provide a simple C++ based toolbox for the SUNCG dataset.
Please see our webpage and paper for more details about the data.

If you are a researcher and would like to get access to the data, please print and sign this agreement and email it to [email protected].

Bibtex

If you find SUNCG useful in your research, please consider citing:

@article{song2016ssc, 
    title= {Semantic Scene Completion from a Single Depth Image}, 
    author= {Song, Shuran and Yu, Fisher and Zeng, Andy and Chang, Angel X and Savva, Manolis and Funkhouser, Thomas}, 
    journal={Proceedings of 29th IEEE Conference on Computer Vision and Pattern Recognition}, 
    year={2017} 
}

Contents

  1. Data Organization
  2. Data Format
  3. C++ Toolbox
  4. Basic Functionalities
  5. Resources
  6. Simulation evironments

Data Organization

The downloaded and unzipped SUNCG files should be organized as follows:

[!Important!]: If you are running the download script with default arguments, latest release with no room architectures will be downloaded. Run ./download_suncg.py -v v1 -t room to download room architectures.

data_root
    |-- house
        |-- <sceneid>
            |-- house.json
    |-- room
        |-- <sceneid>
            |- fr_0rm_0c.mtl    
            |- fr_0rm_0c.obj
            ...
    |-- object
        |-- <objectid>
            |--objectid.obj
    |-- texture

Data Format

Each 3D scene is saved as "house.json", and structured as follows:

house.json

  • id
  • front
  • up
  • scaleToMeters
  • levels : array of level
    • id
    • bbox: axis aligned bounding box of level
      • “min”
      • “max”
    • nodes: array of nodes
      • "id": string of the form “floorIdx_itemIdx” (floorIdx is the index of floor, itemIdx is the index of node)
      • "type": indicates one of the following four node types: Object, Box, Ground, Room
      • "valid" : boolean (1 or 0) - skip loading for this object if it is false (0)
      • "modelId" : corresponding model name for loading obj file
      • "material": array of materials with the following fields:
        • name
        • texture
        • color
      • "dimensions": dimensions of box in scene space units for Box only
      • "transform": 4x4 column-major transformation matrix from object coordinates to scene coordinates
      • "isMirrored": boolean variable indicating whether we need to reverse normals due to flipping
      • "roomTypes": for room nodes only (array of strings)
      • "hideCeiling": boolean
      • "hideFloor": boolean
      • "hideWalls": boolean
      • "nodeIndices": indicates (itemIdx) which nodes are belong to this room starts with zero
      • "state": different state from base model 0=open, 1=closed

C++ Toolbox

The code is organized as follows:

gaps
    |-- pkgs - source and include files for all packages (software libraries)
    |-- apps - source files for several applications and example programs
    |-- makefiles - unix-style make file definitions
    |-- vc - visual studio solution files
    |-- lib - archive library (.lib) files (created during compilation)
    |-- bin - executable files (created during compilation)
metadata
    |-- ModelCategoryMapping.csv
    |-- suncgModelLights.json

Compilation

Compile with OpenGL, it will use GPU for rendering:

cd gaps
make clean 
make 

Compile with OSMesa, it will use CPU for off-screen rendering:

cd gaps
make clean 
make mesa

Basic Functionalities

Viewing the scene (requires compiling with GPU)

cd data_root/house/<sceneid>/
gaps/bin/x86_64/scnview house.json -v 

Camera Controls

  • Left click: Orbit view
  • Right click: Pan view
  • Mouse wheel: Zoom view
  • Double click on an object to change the viewer's rotation center

Other function keys

  • "b": show back faces
  • "h": show bounding boxes
  • "c": show cameras
  • "e": show edges
  • "a": show axes
  • "Esc": exit program
  • "Space": print out current camera

Convert to OBJ+MTL

cd data_root/house/<sceneid>/
gaps/bin/x86_64/scn2scn house.json house.obj

It will write out "house.obj" and "house.mtl" in the current folder.

Generating Cameras

cd data_root/house/<sceneid>/
gaps/bin/x86_64/scn2cam house.json outputcamerasfile  -categories ModelCategoryMapping.csv  -v

Input options -width: Output image width -height: Output image height -xfov: Camera FOV -eye_height: Camera height

Use the following command to check the generated camera file. Press key "c" to show the camera. Press key "v" to go though each view point.

gaps/bin/x86_64/scnview house.json -cameras outputcamerasfile

Render Images and Ground Truth

cd data_root/house/<sceneid>/
gaps/bin/x86_64/scn2img house.json inputcamerasfile outputimagedirectory -categories ModelCategoryMapping.csv  -v

The program will generate the following files, you can use the corresponding flags to choose which files to generate:

  • capture_color_images: OpenGL rendering of RGB image saved as JPEG.
  • capture_depth_images: Depth image saved as uint16 PNG
  • capture_kinect_images: Depth image with simulated Kinect noise saved as uint16 PNG.
  • capture_normal_images: Normal map saved as 3 uint16 PNG image for x y z.
  • capture_albedo_images: Albedo image saved as JPEG.
  • capture_brdf_images: Brdf image saved as JPEG.
  • capture_material_images: Material index map saved as PNG.
  • capture_node_images: Node index map (instance segmentation).
  • capture_category_images: Object category map saved as PNG (need input "-categories ModelCategoryMapping.csv" to map from modelId to index).
  • capture_boundary_images: Combine boundary map with node boundaries (first bit), silhouette boundaries (second bit), where depth difference is > 10% of depth (third bit), crease boundaries (fourth bit).

Resources

Room category: living room, kitchen, bedroom, child room, dining room, bathroom, toilet, hall, hallway, office, guest room, wardrobe, room, lobby, storage, boiler room, balcony, loggia, terrace, entryway, passenger elevator, freight elevator, aeration, garage and gym.

Object category mapping between SUNCG to NYU depth V2 40 object class can be found in $data_root/metadata/ModelClassMapping.csv.

Simulation evironments support SUNCG

House3D: A Rich and Realistic 3D Environment Yi Wu, Yuxin Wu, Georgia Gkioxari and Yuandong Tian

MINOS: Multimodal Indoor Simulator for Navigation in Complex Environments Manolis Savva, Angel X. Chang, Alexey Dosovitskiy, Thomas Funkhouser and Vladlen Koltun

HoME: a Household Multimodal Environment Simon Brodeur, Ethan Perez, Ankesh Anand, Florian Golemo, Luca Celotti, Florian Strub, Jean Rouat, Hugo Larochelle, Aaron Courville

GAPS README

This toolbox is adapted from GAPS written by Thomas Funkhouser. Here is the orignal GAPS README:

GAPS Users -

This directory contains all code for the GAPS software library. There are several subdirectories:

pkgs - source and include files for all packages (software libraries).
apps - source files for several application and example programs. 
makefiles - unix-style make file definitions
vc - visual studio solution files
lib - archive library (.lib) files (created during compilation).
bin - executable files (created during compilation).

If you are using linux or cygwin and have gcc and OpenGL development libraries installed, or if you are using MAC OS X with the xcode development environment, you should be able to compile all the code by typing "make clean; make" in this directory. If you are using Windows Visual Studio 10 or later, then you should be able to open the solution file vc.sln in the vc subdirectory and then "Rebuild Solution." For other development platforms, you should edit the shared compilation settings in the makefiles/Makefiles.std to meet your needs.

To write a program that uses the GAPS pkgs, then you should include "-I XXX/gaps/pkgs" in your compile flags (CFLAGS) and "-L XXX/gaps/lib" in your link flags (LDFLAGS), where XXX is the directory where you installed the gaps software.

The software is distributed under the MIT license (see LICENSE.txt) and thus can be used for any purpose without warranty, any liability, or any suport of any kind.

  • Tom Funkhouser
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].