Skip to main content

Voxel fiftyone integration for SOLO

Project description

Fiftyone viewer for SOLO Datasets

PyPI version License


Screenshot of the example solo dataset displayed in Voxel51

Introduction

pysolotools-fiftyone is a python package for viewing and interacting with solo datasets using the Voxel51 viewer.

This package allows the user to create a new Voxel51 viewer in either a web browser or jupyter notebook.

SOLO datasets are generated by Unity's Perception package. Please see here for more information about the SOLO schema.

It supports the displaying of the following annotations:

  • Bounding Boxes
  • 3D Bounding Boxes
  • Keypoints
  • Instance Segmentation
  • Semantic Segmentation
  • Depth
  • Occlusion
  • Normals
  • Pixel Position

Pre-Requisites

Installation

pip install pysolotools-fiftyone

Execution

CLI

The Solo Fiftyone viewer is executed on the command line with the following command line:

pysolotools-fiftyone examples/groceries

This will launch a new fiftyone viewer in your web browser.

Notebooks

SOLO FiftyOne can be executed in Jupyter Notebooks.

To use in a notebook:

from pysolotools_fiftyone.solo_fiftyone import run_in_notebook

path="./groceries"
run_in_notebook(path)

An example notebook has been included in the repository for your convenience.

The fiftyone will create an entry for each frame. Each entry will consist of a group with at least an RGB capture of the Unity game screen. If the dataset was created with Normals or Pixel Position labelers, the image group will also contain a PNG image for each one of them. These 3 types create the background of the frame, and the labels are drawn on to of them. The background image can be changed with the group dropdown located at the upper right of the screen.


Group dropdown

Labels are drawn on top of the background group image. These can be toggled on and off via the Labels selector left of the image.


Label selector

Annotation Types

Bounding Boxes

2D bounding boxes and label type for each visible labeled object in the image. Detailed information includes the amount of visible pixels of the object.


Bounding boxes in Voxel51

Semantic Segmentation

Semantic segmentation labels each pixel of an image with a label type.


Semantic segmentation in Voxel51

Instance Segmentation

Each pixel of the image is labeled with the ID of the object that it represents.


Instance segmentation in Voxel51

Keypoints

Display keypoint (generally, but not limited to, a human skeleton) information.


Keypoints in Voxel51

3D Bounding Boxes

3D volume of object in the scene.


3D Bounding Boxes in Voxel51

Depth

Pixel distance from the camera in the scene displayed in Plotly's virdis scale. The color scale goes from purple to yellow, with purple representing objects closer to the camera.


Depth image in Voxel51, purple pixels are closer to the camera, yellow pixels are farthest away

Occlusion

Object occlusion, or the amount of the object you can see, displayed in Plotly's virdis scale. The scale goes from yellow (fully visible) to purple (fully occluded). Hovering over a pixel will give you the exact occlusion value.


Occlusion in Voxel51, yellow is fully visible, purple is fully occluded

Normals

The normals image displays an object's surface normal in a 3 channel image. The red channel represents the normal's x value, the green channel represents the y channel, and the blue channel represents the normal's z value.


Normals in Voxel51

Pixel Position

The pixel position image displays a pixels cartesian coordinate in the camera's space. The red channel represents the pixel position's x value, the green channel represents the y channel, and the blue channel represents the z value. The image displayed is a 8bit per channel representation of a 32bit per channel file format, so some accuracy is lost in the display.


Pixel Position in Voxel51

Sample SOLO Datasets

Inside the examples directory there are two sample datasets

  • groceries: A dataset of grocery items that have all supported labels except keypoints
  • keypoints: A simple dataset that has keypoint annotations

Community and Feedback

The Unity Computer Vision tools are open-source, and we encourage and welcome contributions. If you wish to contribute, be sure to review our contribution guidelines and code of conduct.

Support

For feature requests, bugs, or other issues, please file a GitHub issue using the provided templates we will investigate as soon as possible.

License

Apache License 2.0

Know Issues

  • When running with a web browser, it will open with a subset of your frames visible. The data is still being imported in the background, and refreshing the browser will update the viewer will the current set of loaded scenes.
  • To properly see some heatmap overlays (for instance depth and occlusion) make sure that you have Voxel51 settings (gear icon at the top of the screen) fields Color by set to label and Label opacity to highest (all of the way to the right)

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

pysolotools-fiftyone-0.3.25.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

pysolotools_fiftyone-0.3.25-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file pysolotools-fiftyone-0.3.25.tar.gz.

File metadata

  • Download URL: pysolotools-fiftyone-0.3.25.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for pysolotools-fiftyone-0.3.25.tar.gz
Algorithm Hash digest
SHA256 6a23e5e4ef7c253759dc47447e57e351e466b86a3c2128bf2b3212e3eef28d0a
MD5 bcfa2a7120c4fc6c599464847f888fa6
BLAKE2b-256 b1314ddc9e6162d7fbd0c56bdfc99314be7f52253bd8590b4dc2633f7dc6e082

See more details on using hashes here.

File details

Details for the file pysolotools_fiftyone-0.3.25-py3-none-any.whl.

File metadata

File hashes

Hashes for pysolotools_fiftyone-0.3.25-py3-none-any.whl
Algorithm Hash digest
SHA256 83b6422fafdf8708e2da848d96a39ac115258803da2a4b7fc007744cded8c4d2
MD5 34e36a398b6c675f948f373dc219fa61
BLAKE2b-256 3d368ccc56db95d8c0d6795ce338ea00e79db75528924fec00c5b6eebad27a3c

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