Skip to content

Object Detection vTool#

The Object Detection vTool detects and classifies objects in your images based on the model you have selected.

The Object Detection vTool can classify objects in images it receives via the Image input pin. It outputs the results via the InferenceImage, BBoxes_px, Classes, and Scores output pins. A bounding box is drawn around each object detected.

If you use the ROI Creator vTool to specify a region of interest before detection, the Object Detection vTool accepts the ROI data via its Roi input pin. In that case, detection is only performed on the region of interest. As a side effect, this results in faster processing.

Object Detection vTool

How It Works#

Assume you want to detect and identify specific objects in an image, such as people or other elements in the scene.

This is your input image showing six children with ski equipment:

Input Image Showing Six Children with Skis

You configure the vTool by loading a model that has been trained to detect various objects, including people and ski equipment.

Bundle for Object Detection Selected

Next, you can select the classes you want to detect and segment. Some models may be tailored exactly for your use case. In that case, all desired classes are already selected.

Select Classes Dialog

After configuring the vTool, you run the recipe that initiates the inference process. The vTool utilizes the model to analyze the image and identify and locate the objects present. When the analysis has finished, the segmentation result is returned. It includes bounding boxes, class labels, and confidence scores for each distinct object instance detected in the image.

This is the resulting image in the pin data view:

Object Detection with Results Highlighted

Six people have been detected as persons within purple bounding boxes labeled person. Similarly, 5 skis have been detected within bounding boxes labeled skis.

Detailed Output

  • Bounding Box: The bounding box is a rectangle drawn around the object detected. For each bounding box, the center pixel, width, height, and rotation are output.
  • Class: person, skis
    The class labels show that the model identified the objects in the bounding boxes as persons or skis.
  • Score: The score values, e.g., 0.890817, indicate how confident the model is in its detection, e.g., 89.08 %. Higher scores, closer to 1.0, suggest a higher level of confidence.

Configuring the vTool#

To configure the Object Detection vTool:

Object Detection vTool Settings

  1. In the Recipe Management pane in the vTool Settings area, click Open Settings or double-click the vTool.
    The Object Detection dialog opens.
  2. In the Server Selection area, select the server you want to connect to.
    The server must be running to be able to connect to it.
    • Option 1: Enter the IP address and port of your Triton Inference Server manually.
    • Option 2: Select the IP address / host name and port of your server in the drop-down list.
  3. Click Connect to establish a connection.
    The vTool then loads the available models.
  4. In the Model Selection area, select the bundle that contains the desired model in the drop-down list.
    After you have selected a bundle, the information below the drop-down list is populated with the bundle details allowing you to check that you have selected the correct bundle.
    Model Selection Area
  5. If the desired bundle isn't listed, click Deploy New Model in the drop-down list.
    This opens the pylon AI Agent that allows you to deploy more models.
    Deploy New Model
    After you have deployed a new model, you have to click the Refresh button.
  6. In the Detection Settings area, click Select Classes to select the classes you want to classify.
    A dialog with the available classes opens. By default, all classes are selected. You can select as many classes as you like.

    Info

    The parameters available in this area depend on the model selected. Some parameters are only available after selecting a certain model (e.g., IOU Threshold). Default values are provided by the model.

  7. Specify the other options in the detection settings:

    1. Number of objects: You can specify a maximum number of objects to detect or select Unlimited.
      The limit applies to each class individually. If more objects are present in the image than specified here, the matches with the highest score will be detected.
    2. Maximum/Minimum height: Specify appropriate values if you want to filter bounding boxes by height. Because the height of the bounding box corresponds to the height of the object, this allows you to only detect objects of the desired size.
    3. Maximum/Minimum width: Specify appropriate values if you want to filter bounding boxes by width. Because the height of the bounding box corresponds to the width of the object, this allows you to only detect objects of the desired size.
    4. Confidence threshold: Confidence is a coefficient for neural networks which indicates how representative objects in the images are for the classes selected. Higher values mean higher confidence and a reduction of false positives.
    5. Edges: You can expand the bounding boxes around detected objects by moving the respective edges of the boxes by a specified number of pixels. This ensures that the object is completely within the box.
    6. IOU Threshold: Some bounding boxes may overlap. With this parameter you can control whether you want to merge the bounding boxes or not. Lower values mean less tolerance, and most bounding boxes will be merged.
  8. Click OK.

You can view the result of the object detection in a pin data view. Here, you can select which outputs to display.

Inputs#

Image#

Accepts images directly from a Camera vTool or from a vTool that outputs images, e.g., the Image Format Converter vTool.

  • Data type: Image
  • Image format: 8-bit to 16-bit color images

Roi#

Accepts a region of interest from the ROI Creator vTool or any other vTool that outputs rectangles. If multiple rectangles are input, the first one is used as a single region of interest.

  • Data type: RectangleF, RectangleF Array

Outputs#

To use the vTool with Starter vTools, the data types of the output pins can be switched from multiple-value data to single-value data. To do this, use the Data Type Selector parameter in the Features - All pane.

InferenceImage#

Returns an image with bounding boxes drawn around the objects detected for every input image to visualize the results.

  • Data type: Image

BBoxes_px#

Returns a bounding box for every object detected. Each bounding box is defined by the coordinates of its center pixel, its width, and its height (x_center, y_center, width, height). The bounding box output can be used as input for the Roi input pin of other vTools.

  • Data type: RectangleF Array

Classes#

Returns an n-by-1 vector of predicted class labels. n is the number of classes detected in the image.

  • Data type: String Array

Scores#

Returns the confidence scores for each predicted class.

  • Data type: Float Array

Payload#

Returns additional information regarding the performance of the Inference Server for evaluation. This output pin only becomes available if you enable it in the Features - All pane in the Debug Settings parameter group.

  • Data type: String

Typical Predecessors#

Typical Successors#