Git Product home page Git Product logo

dataset_utilities's Introduction

Nvidia Dataset Utilities (NVDU)

This project is a collection of Python scripts to help work with datasets for deep learning. For example, visualizing annotation data associated with captured sensor images generated by NVIDIA Deep learning Dataset Synthesizer (NDDS) https://github.com/NVIDIA/Dataset_Synthesizer.

This module depends on OpenCV-python which currently doesn't work with Python 3.7; this module requires either Python 3.5 or 3.6.

Example of a dataset frame visualized using NVDU, showing axes and 3D cuboids for annotated objects.

Table of Contents

Install

Install from pip:

pip install nvdu

Install from source code git repo:

Clone the repo

Using ssh path:

git clone ssh://[email protected]:12051/NVIDIA/Dataset_Utilities.git

Using https path:

git clone https://github.com/NVIDIA/Dataset_Utilities.git

Go inside the cloned repo's directory

cd Dataset_Utilities

Install locally

pip install -e .

nvdu_ycb

nvdu_ycb command help download, extract and align the YCB 3d models (which are used in the FAT dataset: http://research.nvidia.com/publication/2018-06_Falling-Things).

Usage

usage: nvdu_ycb [-h] [-s] [-l] [ycb_object_name]

NVDU YCB models Support

positional arguments:
  ycb_object_name  Name of the YCB object to check.

optional arguments:
  -h, --help       show this help message and exit
  -s, --setup      Setup the YCB models for the FAT dataset
  -l, --list       List all the supported YCB objects

NOTE: If you don't run the nvdu_ycb --setup before trying to use nvdu_viz, the visualizer will not be able to find the 3d models of the YCB object to overlay.

nvdu_viz

nvdu_viz command visualizes the annotated datasets using the NDDS format.

Usage

nvdu_viz [-h] [-a DATA_ANNOT_DIR] [-s SIZE SIZE]
                [-o OBJECT_SETTINGS_PATH] [-c CAMERA_SETTINGS_PATH]
                [-m MODEL_DIR] [-n [NAME_FILTERS [NAME_FILTERS ...]]]
                [--fps FPS] [--auto_change] [-e EXPORT_DIR] [--auto_export]
                [--ignore_fixed_transform]
                [dataset_dir]

NVDU Data Visualiser

positional arguments:
  dataset_dir           Dataset directory. This is where all the images
                        (required) and annotation info (optional) are.
                        Defaults to the current directory.

optional arguments:
  -h, --help            show this help message and exit.
  -a DATA_ANNOT_DIR, --data_annot_dir DATA_ANNOT_DIR
                        Directory path - where to find the annotation data.
                        Defaults to be the same directory as the dataset
                        directory.
  -s SIZE SIZE, --size SIZE SIZE
                        Window's size: [width, height]. If not specified then
                        the window is sized to fit the resolution of the camera.
  -o OBJECT_SETTINGS_PATH, --object_settings_path OBJECT_SETTINGS_PATH
                        Object settings file path.
  -c CAMERA_SETTINGS_PATH, --camera_settings_path CAMERA_SETTINGS_PATH
                        Camera settings file path.
  -n [NAME_FILTERS [NAME_FILTERS ...]], --name_filters [NAME_FILTERS [NAME_FILTERS ...]]
                        The name filter of each frame. e.g: *.png.
  --fps FPS             How fast to automatically change frame.
  --auto_change         When using this flag, the visualizer will automatically
                        change the frame.
  -e EXPORT_DIR, --export_dir EXPORT_DIR
                        Directory path - where to store the visualized images.
                        If this is set, the script will automatically export
                        the visualized image to the export directory.
  --auto_export         When using this flag, the visualizer will automatically
                        export the visualized frame to an image file in the
                        `export_dir` directory.
  --ignore_fixed_transform
                        When using this flag, the visualizer will not use the
                        fixed transform matrix for the 3d model.

NOTE: The nvdu_viz script can work from any directory

Examples

Visualize a dataset generated by NDDS:

  1. Visualize the current directory:
nvdu_viz
  1. Visualize a relative path:
nvdu_viz ../a_dataset
  1. Visualize an absolute path:
nvdu_viz ~/data/dataset
  1. Visualize different aspect of a frame using a filter:
nvdu_viz dataset_path --name_filters *.left.png *.right.png

Visualize a set of images using different annotation data:

  1. The camera and object settings files are in the image directory:
nvdu_viz image_directory_here -a annotation_directory_here
  1. The camera and object settings files are NOT in the image directory:
nvdu_viz image_directory_here -a annotation_directory_here -c camera_setting_path_here -o object_setting_path_here

Controls

Visualization options:

F3 - Toggle the 2d cuboid
F4 - Toggle the 3d cuboid
F5 - Toggle the 3d models
F6 - Toggle the axes
F7 - Toggle the overlay frame name
1 - Render the 3d models normally
2 - Render the 3d models using only the edge lines
3 - Render the 3d models as point clouds

Other:

ESC - Quit the visualizer
Right - Go to the next frame
Left - Go to the previous frame
Up - Go to the next 100 frame
Down - Go to the previous 100 frame
Space - Toggle frame auto-changing
F12 - Toggle exporting the visualized frame to file

dataset_utilities's People

Contributors

mintar avatar sserpenthraxus-nv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.