Skip to content

Size Measurement

Class: SizeMeasurementBlockV1

Source: inference.core.workflows.core_steps.classical_cv.size_measurement.v1.SizeMeasurementBlockV1

The Size Measurement Block calculates the dimensions of objects relative to a reference object. It uses one model to detect the reference object and another to detect the objects to measure. The block outputs the dimensions of the objects in terms of the reference object.

  • Reference Object: This is the known object used as a baseline for measurements. Its dimensions are known and used to scale the measurements of other objects.
  • Object to Measure: This is the object whose dimensions are being calculated. The block measures these dimensions relative to the reference object.

Block Usage

To use the Size Measurement Block, follow these steps:

  1. Select Models: Choose a model to detect the reference object and another model to detect the objects you want to measure.
  2. Configure Inputs: Provide the predictions from both models as inputs to the block.
  3. Set Reference Dimensions: Specify the known dimensions of the reference object in the format 'width,height' or as a tuple (width, height).
  4. Run the Block: Execute the block to calculate the dimensions of the detected objects relative to the reference object.

Example

Imagine you have a scene with a calibration card and several packages. The calibration card has known dimensions of 5.0 inches by 3.0 inches. You want to measure the dimensions of packages in the scene.

  • Reference Object: Calibration card with dimensions 5.0 inches (width) by 3.0 inches (height).
  • Objects to Measure: Packages detected in the scene.

The block will use the known dimensions of the calibration card to calculate the dimensions of each package. For example, if a package is detected with a width of 100 pixels and a height of 60 pixels, and the calibration card is detected with a width of 50 pixels and a height of 30 pixels, the block will calculate the package's dimensions as:

  • Width: (100 pixels / 50 pixels) * 5.0 inches = 10.0 inches
  • Height: (60 pixels / 30 pixels) * 3.0 inches = 6.0 inches

This allows you to obtain the real-world dimensions of the packages based on the reference object's known size.

Watch the video tutorial

Type identifier

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

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
reference_dimensions Union[List[float], Tuple[float, float], str] Dimensions of the reference object (width, height) in desired units (e.g., inches) as a string in the format 'width,height' or as a tuple (width, height).

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 Size Measurement in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds Size Measurement in version v1 has.

Bindings
Example JSON definition of step Size Measurement in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/size_measurement@v1",
    "reference_predictions": "$segmentation.reference_predictions",
    "object_predictions": "$segmentation.object_predictions",
    "reference_dimensions": "5.0,5.0"
}