Skip to content

Dimension Collapse

Class: DimensionCollapseBlockV1

Source: inference.core.workflows.core_steps.fusion.dimension_collapse.v1.DimensionCollapseBlockV1

Flatten nested batch data by reducing dimensionality from level n to level n-1, aggregating nested lists into a single flat list to enable data aggregation, batch flattening, and dimensionality reduction workflows where nested batch outputs (such as classification or OCR results from dynamically cropped images) need to be collapsed into a single-level batch for downstream processing.

How This Block Works

This block collapses the dimensionality of batch data by flattening nested lists one level. The block:

  1. Receives batch data at dimensionality level n (nested batch structure)
  2. Flattens the nested structure:
  3. Takes all elements from the nested batch structure
  4. Concatenates them into a single flat list
  5. Removes one level of nesting from the data structure
  6. Reduces dimensionality:
  7. Input data at level n (e.g., list of lists)
  8. Output data at level n-1 (e.g., single list)
  9. Maintains all data elements, just removes the nested structure
  10. Returns flattened output:
  11. Outputs a single list containing all elements from the nested input
  12. Elements are preserved in order (flattened sequentially)
  13. Output dimensionality is one level lower than input

This block is particularly useful when working with dynamically cropped images or other operations that create nested batch structures. For example, when you crop multiple objects from each image, you get a nested batch (level 2): a list where each element is itself a list of crops. Classification results for those crops also form a nested batch. The Dimension Collapse block flattens this nested structure into a single-level batch (level 1), allowing you to work with all results together.

Common Use Cases

  • Aggregating Classification Results: Aggregate classification results from dynamically cropped images into a single list (e.g., classify crops from images then aggregate all results, collect classification results from multiple crops, flatten nested classification outputs), enabling classification aggregation workflows
  • Aggregating OCR Results: Aggregate OCR results from dynamically cropped text regions into a single list (e.g., OCR crops from images then aggregate all text results, collect OCR results from multiple crops, flatten nested OCR outputs), enabling OCR aggregation workflows
  • Batch Flattening: Flatten nested batch structures for downstream processing (e.g., flatten nested batches for analysis, reduce batch dimensionality for storage, collapse nested structures for filtering), enabling batch flattening workflows
  • Data Aggregation: Aggregate results from nested batch operations into flat lists (e.g., aggregate results from nested operations, collect outputs from nested batches, flatten nested operation results), enabling data aggregation workflows
  • Dimensionality Reduction: Reduce batch dimensionality to match requirements of downstream blocks (e.g., reduce dimensionality for blocks requiring level 1 inputs, flatten nested batches for compatibility, adjust dimensionality for workflow connections), enabling dimensionality adjustment workflows
  • Result Collection: Collect and flatten results from nested processing operations (e.g., collect nested processing results, flatten operation outputs, aggregate nested operation data), enabling result collection workflows

Connecting to Other Blocks

This block receives nested batch data and produces flattened batch data:

  • After blocks that create nested batches (crop blocks, classification on crops, OCR on crops) to flatten nested results (e.g., crop then classify then flatten, OCR crops then flatten, process nested batches then collapse), enabling nested-to-flat workflows
  • Before blocks requiring single-level batches to provide flattened data (e.g., flatten before filtering, collapse before storage, aggregate before analysis), enabling flat-to-processing workflows
  • Before data storage blocks to store aggregated flattened results (e.g., store aggregated classifications, save flattened OCR results, log collapsed batch data), enabling aggregation-to-storage workflows
  • Before analytics blocks to analyze aggregated results (e.g., analyze aggregated classifications, perform analytics on flattened data, process collapsed batches), enabling aggregation-to-analytics workflows
  • Before filtering blocks to filter flattened aggregated data (e.g., filter aggregated results, apply filters to collapsed batches, process flattened data), enabling aggregation-to-filter workflows
  • In workflow outputs to provide aggregated flattened results as final output (e.g., aggregated classification outputs, flattened OCR outputs, collapsed batch outputs), enabling aggregation output workflows

Requirements

This block requires batch data at dimensionality level n (nested batch structure). The block automatically handles batch casting for the input parameter. The block reduces output dimensionality by 1 level (from level n to level n-1). All elements from the nested structure are preserved and flattened into a single list. The block works with any data type - it simply flattens the nested list structure without modifying individual elements. The output is a single-level batch containing all elements from the nested input, ordered sequentially as they appear in the nested structure.

Type identifier

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

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..

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

Available Connections

Compatible Blocks

Check what blocks you can connect to Dimension Collapse in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds Dimension Collapse in version v1 has.

Bindings
  • input

    • data (*): Reference to step outputs at dimensionality level n (nested batch structure) to be flattened and collapsed to level n-1. The input should be a nested batch (e.g., list of lists) where each nested level represents a batch dimension. The block flattens this structure by concatenating all nested elements into a single flat list. Common use cases: classification results from cropped images (level 2 → level 1), OCR results from cropped regions (level 2 → level 1), or any nested batch structure that needs to be flattened..
  • output

Example JSON definition of step Dimension Collapse in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/dimension_collapse@v1",
    "data": "$steps.classification_step.predictions"
}