Platform commands

Platform commands enable you to interact directly with the Deepomatic web platform from your terminal. Here is the list of actions that you can do:

  • add_images: upload images and their metadata directly from your local machine

  • model: use the Deepomatic cloud API to run inferences on your trained models (infer, draw or blur based on the type of output that you require)

  • app: interact with visual automation applications (create or delete applications)

  • app-version: interact application versions (create or delete application versions)

  • service: add services to your visual automation applications

Add images

Project

First, you will need to retrieve project_name from Deepomatic platform. This is the destination project for the upload. Simply go the project and retrieve the URL which will contain the project name: https://studio.deepomatic.com/projects/<org_slug>/<project_name>.

Raw images

To upload all images directly to the specified project , you can specify either:

  • A single image file to be uploaded.

  • A directory, in which case all images directly inside the directory will be uploaded.

  • All images in the directory and subdirectories using the --recursive option

Upload simple images to Deepomatic Platform
# Upload simple image
deepo platform add_images -d myproject -i myimage.jpg
# Upload all images in directory
deepo platform add_images -d myproject -i mydir
# Upload all images in directory and subdirectories
deepo platform add_images -d myproject -i mydir --recursive

Images and metadata

Sometime you will already have information regarding the images that you'd like to upload along the image. That could be information for pretagging the image, preexisting bounding boxes or metadata such as image provenance.

In order to pass it along with the image during upload time, you will need to use the JSON format, more information about the format can be found on the Deepomatic Studio JSON Upload.

You need to use the --json option, this will indicate to the Deepomatic CLI to look for JSON files instead of images.

The method is then the same as with simple images, you can upload:

  • Single JSON.

  • All JSON in a directory.

  • All JSON in directory and subdirectories with the --recursive option.

Upload images and metadata to Deepomatic Platform
# Upload simple json
deepo platform add_images -d myproject -i myimage.json --json
# Upload all images in directory
deepo platform add_images -d myproject -i mydir --json
# Upload all images in directory and subdirectories
deepo platform add_images -d myproject -i mydir --json --recursive

The location key in the JSON must be a local path relative from the JSON location, or an absolute path on your machine.

Model commands

Each model version is deployed as a web API after it has been trained. To run some inferences and evaluate the performances of your trained model version, you can use Deepomatic CLI.

Sample commands

Drawing a prediction with Deepomatic API
deepo platform model infer -i img.jpg -o pred.json -r 12345

Run model actions

There are three different model actions that you can use:

  • infer: Compute predictions only.

  • draw: Display the prediction result, whether tags or the bounding boxes.

  • blur: Blur the bounding boxes.

They follow the same recipe:

  1. Retrieve one or several inputs.

  2. Compute predictions using the trained neural network

  3. Output the result in different formats: image, video, JSON, stream, etc.

Generic command
deepo platform model infer -i myinput -o myoutput1 myoutput2 ...

Input

Input types

The Deepomatic CLI supports different types of input:

  • Image: Supported formats include bmp, jpeg, jpg , jpe,png, tif and tiff.

  • Video: Supported formats include avi, mp4, webm and mjpg.

  • Studio JSON: Deepomatic Studio JSON format, used to specify several images or videos stored locally.

Sample input JSON format
{
"images": [
{
"location": "/path/to/img.jpg"
},
{
"location": "/path/to/video.mp4"
},
]
}
  • Directory: Analyse all images and videos found in the directory.

  • Digit: Retrieve the stream from the corresponding device. For instance, 0 for the installed webcam.

  • Network stream: Supported network streams include rtsp, http and https.

Specify input

Inputs are specified using the -i for input option. Below an example with each type of inputs.

Sample input commands
deepo platform model infer -i /path/to/my_img.bmp ... # Image
deepo platform model infer -i /path/to/my_vid.mp4 ... # Video
deepo platform model infer -i /path/to/my_studio.json ... # Studio JSON
deepo platform model infer -i /path/to/my_dir ... # Directory
deepo platform model infer -i 0 ... # Device number
deepo platform model infer -i rtsp://ip:port/channel ... # RTSP stream

Output

Output types

The Deepomatic CLI supports different types of output:

  • Image: Supported formats include bmp, jpeg, jpg , jpe,png, tif and tiff.

  • Video: Supported formats include avi and mp4.

  • Run JSON: Deepomatic Run JSON format for raw predictions.

  • Studio JSON: Deepomatic Studio JSON format for Studio-like prediction scores. This is specified using the -s or --studio_format option.

  • Integer wildcard JSON: A standard Run/Studio JSON, except that the name contains the frame number. For instance -o frame %03d.json will output frame001.json, frame002.json, ...

  • String wildcard JSON: Same as the integer wildcard except this time the frame name is used. For instance -o pred_%s.jpg will output pred_img1_123.json, pred_img2_123.json, ...

  • Standard output: On rare occasions you might want to output the model results directly to the process standard output using the stdout option. For instance this allows you to stream directly to vlc.

  • Display output: Opens a window and displays the result. Quit with q.

Specify output

Output are specified using the -o for output option. Below an example with each type of inputs.

Please note that in order to avoid duplicate computations, it is possible to specify several outputs at the same time, for instance to blur an image and store the predictions.

Sample output commands
deepo platform model draw -i img.jpg -o img_drawn.jpg ... # Image
deepo platform model draw -i vid.mp4 -o img_drawn_%04d.jpg ... # Wildcard images
deepo platform model draw -i vid.mp4 -o vid_drawn.mp4 ... # Video
deepo platform model draw -i img.jpg -o pred.json ... # Run JSON
deepo platform model draw -i img.jpg -o pred.json -s ... # Studio JSON
deepo platform model draw -i vid.mp4 -o pred_%s.json ... # String wildcard JSON
deepo platform model draw -i vid.mp4 -o pred_%04d.json ... # Integer wildcard JSON
deepo platform model draw -i vid.mp4 -o stdout ... # Standard output
deepo platform model draw -i vid.mp4 -o window ... # Display output
deepo platform model draw -i vid.mp4 -o vid_drawn.mp4 pred_%04d.json ... # Multiple outputs

Options

Commands have additional options that you can use with a flag. There is a short flag -f and a long flag --flag. Note that one use a simple - while the other uses two --. Also some options need an additional argument. Find below the option table. When indicated, all means that all three commands infer, draw and blur are concerned.

Short

Long

Commands

Description

i

input

all

Input consumed.

input_fps

all

Input FPS used for video extraction.

skip_frame

all

Number of frames to skip in-between two frames.

R

recursive

all

Recursive directory search.

o

output

all

Outputs produced.

output_fps

all

Output FPS used for video reconstruction.

s

studio_format

infer draw blur

Convert from Run to Studio format.

F

fullscren

draw blur noop

Fullscreen if window output.

from_file

draw blur

Use prediction from precomputed JSON.

r

recognition_id

infer draw blur

Model version ID.

t

threshold

infer draw blur

Threshold for predictions.

S

draw_score

draw

Overlay prediction score.

no_draw_scores

draw

Do not overlay prediction score.

L

draw_labels

draw

Overlay the prediction label.

no_draw_labels

draw

Do not overlay the prediction label.

M

blur_method

blur

Blur method,pixel, gaussian or black.

B

blur_strengh

blur

Blur strength.

verbose

all

Increase output verbosity.

App commands

To create an application using the Deepomatic CLI, you need to provide a name, a workflow.yaml file and optionally a custom_nodes.py file.

Create an application
deepo platform app create -n my-first-workflow-app -w workflow.yaml [-c custom_nodes.py]
Delete an application
deepo platform app delete -a app_id

Application version commands

To create an application version using the Deepomatic CLI, you need to specify the application for which you want to create a version, a name and the list of model version ids that should be used within your application version.

Create an application version
deepo platform app-version create -a app_id -n v1 -r 63555 63556

The model version ids must be added in the same order as the models are listed in the workflow file.

Delete an application version
deepo platform app delete -a app_version_id

The update command updates the app_version of a site in the api.

Update an application version of a site
deepo site update -s site_id -a app_version_id

Service commands

To add services to your application after you have created it, you need to use the service commands.

Add a service to your application
deepo platform service create -a app_id -n service_name

Here is the list of the services you can add to your application:

  • workflow-server: this is one of the key component of the Deepomatic software infrastructure. It is in charge of orchestrating all workflow operations.

  • worker-nn: this is also one of the key component of the Deepomatic software infrastructure. It is in charge of handling all neural network inferences.

  • customer-api: this is an optional component that you need to add when you want to create a web API on top of your workflow.

  • camera-server: this is an optional component that you need to add when you want to connect cameras to workflow.