Data Transformation Language

Automate routine tasks of data scientists like dataset combining, class mapping and data augmentation.

[
  {
    "src": [
      "source/*"
    ],
    "dst": "$0",
    "action": "data",
    "settings": {
      "classes_mapping": {
        "person": "person",
        "__other__": "unnec"
      }
    }
  },
  {
    "src": [
      "$0"
    ],
    "dst": "$1",
    "action": "instances_crop",
    "settings": {
      "classes": [
        "person"
      ],
      "class_for_non_target": "unnec",
      "pad": {
        "sides": {
          "left": "10%",
          "top": "10%",
          "right": "10%",
          "bottom": "10%"
        }
      }
    }
  },
  {
    "src": [
      "$1"
    ],
    "dst": "$2",
    "action": "drop_obj_by_class",
    "settings": {
      "classes": [
        "unnec"
      ]
    }
  },
  {
    "src": [
      "$2"
    ],
    "dst": "$3",
    "action": "flip",
    "settings": {
      "axis": "vertical"
    }
  },
  {
    "src": [
      "$2",
      "$3"
    ],
    "dst": "destination",
    "action": "supervisely",
    "settings": {
      "images": true,
      "annotations": true
    }
  }
]

Layers

Combining & filtering

Merge different datasets together, remap object classes & filter out trash

DataDrop Obj by ClassTag

Logic

Divide dataset and send subparts into different channels

IfMultiplyInstances Crop

Augumentations

Extend your training data by applying image transformations

CropResizeFlip
Explore documentation

Example

Generating multiple crops

Config
[
  // First, take each image three times
  {
    "dst": "$data2",
    "src": [
      "$data1"
    ],
    "action": "multiply",
    "settings": {
      "multiply": 3
    }
  },

  // Next, crop random part of image
  {
    "dst": "$data3",
    "src": [
      "$data2"
    ],
    "action": "crop",
    "settings": {
      "random_part": {
        "width": {
          "max_percent": 80,
          "min_percent": 30
        },
        "height": {
          "max_percent": 40,
          "min_percent": 10
        },
        "keep_aspect_ratio": false
      }
    }
  }
]
Results

Features

No coding

Simple and easy-to-use configurations you can setup with UI.

Scalable

Distribute transformation across multiple machines to process large datasets.

Presets

Save and re-use your pipelines later as a configuration presets in Supervisely.

Trusted by Fortune 500. Used by 7,000 companies and researchers worldwide

Let's talk about how Supervisely can help you develop high-quality annotations now.