Skip to main content

Tools for development with the Rendered.AI Ana Platform.

Project description

AnaTools

Project Description

Anatools is a python package with modules for developing with the Ana Platform from Rendered.AI. With AnaTools you can generate and access synthetic datasets, and much more!

>>> import anatools
>>> ana = anatools.AnaClient()
'Enter your credentials for Ana.'
'email:' example@rendered.ai
'password:' ***************
'Signed into Ana with example@rendered.ai, using workspace 123456789.'
>>> ana.get_channels()
['mychannel1', 'mychannel2']
>>> graphs = ana.get_graphs()
>>> datasets = ana.get_datasets()



Install the AnaTools Package

(Optional) Create a new Conda Environment

  1. Install conda for your operating system: https://www.anaconda.com/products/individual.
  2. Create a new conda environment and activate it.
  3. Install anatools from the Python Package Index.
$ conda create -n renderedai python=3.7
$ conda activate renderedai

Install AnaTools to the Python Environment

  1. Install AnaTools from the Python Package Index.
$ pip install anatools

Dependencies

The anatools package requires python 3.6 or higher and has dependencies on the following packages:

Package Description
pyrebase A python wrapper for Google Firebase API.
keyring A python library for storing and accessing passwords securely.

If you have any questions or comments, contact Rendered.AI at info@rendered.ai.



Quickstart Guide

What is Ana?

Ana is a synthetic dataset generation tool where graphs describe what and how synthetic datasets are generated.

Terms Definitions
workspace A workspace is a collection of data used for a particular use-case, for example workspaces can be used to organize data for different projects.
dataset A dataset is a collection of data, for many use-cases these are images with text-based annotation files.
graph A graph is defined by nodes and links, it describes the what and the how a dataset is generated.
node A node can be described as an executable block of code, it has inputs and runs some algorithm to generate outputs.
link A link is used to transfer data from the output of one node, to the input of other nodes.
channel A channel is a collection of nodes, it is used to limit the scope of what is possible to generate in a dataset (like content from a tv channel).

How do you use Ana?

Ana creates synthetic datasets by processing a graph, so we will need to create our Ana client, create a graph, then create a dataset.

  1. Create a client and login to Ana. In this example we are instantiating a client with no workspace or environment variables, so it is setting our default workspace. To access the tool, you will need to use your email and password for https://deckard.rendered.ai.
>>> from anatools import AnaClient
>>> ana = anatools.AnaClient()
'Enter your credentials for Ana.'
'email:' example@rendered.ai
'password:' ***************
'Signed into Ana with example@rendered.ai, using workspace 123456789.'
  1. Define a graph. We are defining a simplistic graph for this example with a camera and sphere. Graphs are usually stored in json or yaml format, but read into a python dictionary to be passed to the API.
nodes:

  Sphere:
    class: Sphere
    inputs:
      Size: 1

  SphereLocation:
    class: SetObjectLocation
    inputs:
      Object: {$link: [Sphere, Object]}
      Location: [0,0,0]

  Camera:
    class: Camera
    inputs:
      Resolution: [1920,1080]
      FOV: 29.0

  CameraLocation:
    class: SetObjectLocation
    inputs:
      Object: {$link: [Camera, Object]}
      Location: [0,0,0]

  Render:
    class: Render
    inputs:
      Camera: {$link: [CameraLocation, Object]}
      Scene: {$link: [SphereLocation, Object]}
  1. Create a graph using the client. To creat new graph, we load the graph defined above into a python dictionary using the yaml python package. Then we create a graph using the client, this graph is being name 'testgraph' and is using the 'channelA' channel. The client will return a graphid so we can reference this graph later.
>>> import yaml
>>> with open('graph.yml') as graphfile:
>>>     graph = yaml.load(graphfile)
>>> graphid = ana.create_graph(name='testgraph',channel='channelA',graph=graph)
>>> graphid
'e175a44e-23a5-11eb-adc1-0242ac120002'
  1. Create a dataset using the client. Using the graphid, we can create a new job to generate a dataset.

The client will return a datasetid that can be used for reference later.

>>> datasetid = ana.create_dataset(name='testdataset',interpretations=10,description='A simple dataset with a sphere.')
>>> datasetid
'ce66e81c-23a6-11eb-adc1-0242ac120002 '



Data Structure

graph TD
  id1[(Workspace)] --> id3[(Graphs)];
  id1[(Workspace)] --> id4[(Datasets)];

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

anatools-1.0.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

anatools-1.0.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: anatools-1.0.1.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for anatools-1.0.1.tar.gz
Algorithm Hash digest
SHA256 35c0314524f126b424f00fdaa111d4d66aa03e470ef6a52a9346f98016d2453e
MD5 e4d5cceefbcc037408bc8565aec445fc
BLAKE2b-256 50f2aaf784930bb4afaec0af9129b17ddd39344a017d7ae6ddb2a675d3513c73

See more details on using hashes here.

File details

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

File metadata

  • Download URL: anatools-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for anatools-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c6da16528f8eb6a4eb82c55f813e0fc04513a0c4d05602d1ec03531c1d05e33c
MD5 c9a8c44aa6c03024f8148c940a415b18
BLAKE2b-256 afb065e106014a62132af8a9477b07cc696664759f49c75a06661f2a8058dd5e

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