Skip to content

Example Workflows - Workflows enhanced by Roboflow Platform

Below you can find example workflows you can use as inspiration to build your apps.

Data Collection for Active Learning

This example showcases how to stack models on top of each other - in this particular case, we detect objects using object detection models, requesting only "dogs" bounding boxes in the output of prediction. Additionally, we register cropped images in Roboflow dataset.

Thanks to this setup, we are able to collect production data and continuously train better models over time.

Workflow definition
{
    "version": "1.0",
    "inputs": [
        {
            "type": "WorkflowImage",
            "name": "image"
        },
        {
            "type": "WorkflowParameter",
            "name": "data_percentage",
            "default_value": 50.0
        },
        {
            "type": "WorkflowParameter",
            "name": "persist_predictions",
            "default_value": true
        },
        {
            "type": "WorkflowParameter",
            "name": "tag",
            "default_value": "my_tag"
        },
        {
            "type": "WorkflowParameter",
            "name": "disable_sink",
            "default_value": false
        },
        {
            "type": "WorkflowParameter",
            "name": "fire_and_forget",
            "default_value": true
        },
        {
            "type": "WorkflowParameter",
            "name": "labeling_batch_prefix",
            "default_value": "some"
        }
    ],
    "steps": [
        {
            "type": "roboflow_core/roboflow_object_detection_model@v1",
            "name": "general_detection",
            "image": "$inputs.image",
            "model_id": "yolov8n-640",
            "class_filter": [
                "dog"
            ]
        },
        {
            "type": "roboflow_core/dynamic_crop@v1",
            "name": "cropping",
            "image": "$inputs.image",
            "predictions": "$steps.general_detection.predictions"
        },
        {
            "type": "roboflow_core/roboflow_classification_model@v1",
            "name": "breds_classification",
            "image": "$steps.cropping.crops",
            "model_id": "dog-breed-xpaq6/1"
        },
        {
            "type": "roboflow_core/roboflow_dataset_upload@v2",
            "name": "data_collection",
            "images": "$steps.cropping.crops",
            "predictions": "$steps.breds_classification.predictions",
            "target_project": "my_project",
            "usage_quota_name": "my_quota",
            "data_percentage": "$inputs.data_percentage",
            "persist_predictions": "$inputs.persist_predictions",
            "minutely_usage_limit": 10,
            "hourly_usage_limit": 100,
            "daily_usage_limit": 1000,
            "max_image_size": [
                100,
                200
            ],
            "compression_level": 85,
            "registration_tags": [
                "a",
                "b",
                "$inputs.tag"
            ],
            "disable_sink": "$inputs.disable_sink",
            "fire_and_forget": "$inputs.fire_and_forget",
            "labeling_batch_prefix": "$inputs.labeling_batch_prefix",
            "labeling_batches_recreation_frequency": "never"
        }
    ],
    "outputs": [
        {
            "type": "JsonField",
            "name": "predictions",
            "selector": "$steps.breds_classification.predictions"
        },
        {
            "type": "JsonField",
            "name": "registration_message",
            "selector": "$steps.data_collection.message"
        }
    ]
}