MCPcopy Create free account
hub / github.com/NVIDIA/Dataset_Synthesizer

github.com/NVIDIA/Dataset_Synthesizer @1.2.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.2 ↗ · + Follow
995 symbols 1,489 edges 308 files 72 documented · 7% updated 5y ago1.2.2 · 2020-04-03★ 60060 open issues

Browse by type

Functions 737 Types & classes 258
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

NVIDIA Deep learning Dataset Synthesizer (NDDS)

Overview

NDDS is a UE4 plugin from NVIDIA to empower computer vision researchers to export high-quality synthetic images with metadata. NDDS supports images, segmentation, depth, object pose, bounding box, keypoints, and custom stencils. In addition to the exporter, the plugin includes different components for generating highly randomized images. This randomization includes lighting, objects, camera position, poses, textures, and distractors, as well as camera path following, and so forth. Together, these components allow researchers to easily create randomized scenes for training deep neural networks.

Example of an image generated using NDDS, along with ground truth segmentation, depth, and object poses.

For utilities to help visualize annotation data associated with synthesized images, see the NVIDIA dataset utilities (NVDU) https://github.com/NVIDIA/Dataset_Utilities.

Downloading

This repository uses gitLFS -- DO NOT DOWNLOAD AS .ZIP:

First, install git LFS (large file storage): https://git-lfs.github.com/ , then lfs clone.

For further details, please see https://github.com/NVIDIA/Dataset_Synthesizer/blob/master/Documentation/NDDS.pdf

RELEASE NOTES: 4.22 known issue

If you are using material randomization with more than 10 objects which change materials every frame, you might encounter a hang when stopping the play-in-editor session. The capturing process will still work, but the uniform buffer memory will keep increasing and when user stops the capture session, it takes UE extended time to release the memory. If it takes too long after stopping the play-in-editor session, we recommend to simply shutdown the editor and restart it. The only other workaround is to keep using UE4.21, which requires use of NDDS v1.1.

This problem is specific to UE4 4.22, as it now automatically uses mesh instancing to improve the performance when rendering a large quantity of meshes. Now, every time a new mesh is created or its material is changed, the uniform buffer memory allocation is increased.

This problem affects both DirectX and OpenGL users. Although Vulkan doesn't get affected by this, Vulkan doesn't capture depth and class segmentation.

Motivation

Training and testing deep learning systems is an expensive and involved task due to the need for hand-labeled data. This is problematic when the task demands expert knowledge or not-so-obvious annotations (e.g., 3D bounding box vertices). In order to overcome these limitations we have been exploring the use of simulators for generating labeled data. We have shown in [1,2] that highly randomized synthetic data can be used to train computer vision systems for real-world applications, thus showing successful domain transfer.

Citation

If you use this tool in a research project, please cite as follows:

\@misc{to2018ndds,

author = {Thang To and Jonathan Tremblay and Duncan McKay and Yukie Yamaguchi and Kirby Leung and Adrian Balanon and Jia Cheng and William Hodge and Stan Birchfield},

note= {\url{ https://github.com/NVIDIA/Dataset_Synthesizer }},

title = {{NDDS}: {NVIDIA} Deep Learning Dataset Synthesizer},

Year = 2018

}

References

[1] J. Tremblay, T. To, A. Molchanov, S. Tyree, J. Kautz, S. Birchfield. Synthetically Trained Neural Networks for Learning Human-Readable Plans from Real-World Demonstrations. In International Conference on Robotics and Automation (ICRA), 2018.

[2] J. Tremblay, T. To, S. Birchfield. Falling Things: A Synthetic Dataset for 3D Object Detection and Pose Estimation. CVPR Workshop on Real World Challenges and New Benchmarks for Deep Learning in Robotic Vision, 2018.

Core symbols most depended-on inside this repo

Shape

Method 573
Class 232
Function 164
Enum 26

Languages

C++87%
TypeScript11%
C#2%

Modules by API surface

Documentation/ClassDetails/jquery.js64 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVSceneCapturerUtils.cpp44 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVSceneCapturerActor.cpp35 symbols
Source/Plugins/DomainRandomizationDNN/Source/DomainRandomizationDNN/Public/DRUtils.cpp33 symbols
Documentation/ClassDetails/navtree.js28 symbols
Source/Plugins/NVDataObject/Source/NVDataObjectEditor/Private/NVDataObjectEditorToolkit.cpp25 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVSceneDataHandler.cpp24 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVSceneCapturerViewpointComponent.cpp23 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Public/NVSceneCapturerUtils.h21 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVImageExporter.cpp21 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturerEditor/Private/NVSceneCapturerCustomization.cpp19 symbols
Source/Plugins/NVSceneCapturer/Source/NVSceneCapturer/Private/NVSceneCaptureComponent2D.cpp19 symbols

For agents

$ claude mcp add Dataset_Synthesizer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page