Skip to content

Image Slicer

Version v1

This block enables Slicing Adaptive Inference (SAHI) technique in Workflows providing implementation for first step of procedure - making slices out of input image.

To use the block effectively, it must be paired with detection model (object-detection or instance segmentation) running against output images from this block. At the end - Detections Stitch block must be applied on top of predictions to merge them as if the prediction was made against input image, not its slices.

We recommend adjusting the size of slices to match the model's input size and the scale of objects in the dataset the model was trained on. Models generally perform best on data that is similar to what they encountered during training. The default size of slices is 640, but this might not be optimal if the model's input size is 320, as each slice would be downsized by a factor of two during inference. Similarly, if the model's input size is 1280, each slice will be artificially up-scaled. The best setup should be determined experimentally based on the specific data and model you are using.

To learn more about SAHI please visit Roboflow blog which describes the technique in details, yet not in context of Roboflow workflows.

Type identifier

Use the following identifier in step "type" field: roboflow_core/image_slicer@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str The unique name of this step..
slice_width int Width of each slice, in pixels.
slice_height int Height of each slice, in pixels.
overlap_ratio_width float Overlap ratio between consecutive slices in the width dimension.
overlap_ratio_height float Overlap ratio between consecutive slices in the height dimension.

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Check what blocks you can connect to Image Slicer in version v1.

The available connections depend on its binding kinds. Check what binding kinds Image Slicer in version v1 has.

Bindings
  • input

    • image (image): The input image for this step..
    • slice_width (integer): Width of each slice, in pixels.
    • slice_height (integer): Height of each slice, in pixels.
    • overlap_ratio_width (float_zero_to_one): Overlap ratio between consecutive slices in the width dimension.
    • overlap_ratio_height (float_zero_to_one): Overlap ratio between consecutive slices in the height dimension.
  • output

    • slices (image): Image in workflows.
Example JSON definition of step Image Slicer in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/image_slicer@v1",
    "image": "$inputs.image",
    "slice_width": 320,
    "slice_height": 320,
    "overlap_ratio_width": 0.2,
    "overlap_ratio_height": 0.2
}