Visualizers
May 22, 2026 ยท View on GitHub
Note
Important: In all visualizations, the left side always displays the Ground Truth (GT) and the right side shows the Prediction.
Note
๐ Looking for expected predictions and targets shapes for each task?
Refer to the Prediction Shapes Overview for the expected prediction formats, and see LuxonisLoaderTorch for details on the target formats.
Visualizers are used to render the output of a node. They are used in the visualizers field of the Node configuration.
Table Of Contents
BBoxVisualizerClassificationVisualizerKeypointVisualizerSegmentationVisualizerEmbeddingsVisualizerOCRVisualizerInstanceSegmentationVisualizerInstanceSegKeypointVisualizerFOMOVisualizer
BBoxVisualizer
Visualizer for bounding box detection task.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
labels | dict[int, str] | list[str] | None | None | Either a dictionary mapping class indices to names, or a list of names. If list is provided, the label mapping is done by index. By default, no labels are drawn |
draw_labels | bool | True | Whether to draw class labels for predictions and targets |
draw_scores | bool | False | Whether to append prediction confidence scores to the rendered labels. If draw_labels=False, only the score is drawn |
colors | dict[str, tuple[int, int, int] | str] | list[tuple[int, int, int] | str] | None | None | Colors to use for the bounding boxes. Either a dictionary mapping class names to colors, or a list of colors. Color can be either a tuple of RGB values or a hex string |
fill | bool | False | Whether to fill the bounding boxes |
width | int | 1 | The width of the bounding box lines |
font | str | None | None | A filename containing a TrueType font |
font_size | int | None | None | Font size used for the labels |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:

KeypointVisualizer
Visualizer for instance keypoint detection task.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
visibility_threshold | float | 0.5 | Threshold for visibility of keypoints. If the visibility of a keypoint is below this threshold, it is considered as not visible |
connectivity | list[tuple[int, int]] | None | None | List of tuples of keypoint indices that define the connections in the skeleton |
visible_color | str | tuple[int, int, int] | "red" | Color of visible keypoints |
nonvisible_color | str | tuple[int, int, int ] | None | None | Color of non-visible keypoints. If None, non-visible keypoints are not drawn |
radius | int | None | None | Radius of drawn keypoint dots. If None, dynamically determine this based on image dimensions |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
draw_indices | bool | False | Draw keypoint indices next to the keypoints |
This visualizer also supports inherited BBoxVisualizer options for the
bounding box overlay, including draw_labels and draw_scores.
Example:

SegmentationVisualizer
Visualizer for segmentation tasks.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
color | str | tuple[int, int, int] | "#5050FF" | Color of the segmentation masks |
alpha | float | 0.6 | Alpha value of the segmentation masks |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:

ClassificationVisualizer
Visualizer for classification tasks.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
include_plot | bool | True | Whether to include a plot of the class probabilities in the visualization |
color | tuple[int, int, int] | (255, 0, 0) | Color of the text |
font_scale | float | 1.0 | Scale of the font |
thickness | int | 1 | Line thickness of the font |
multi_label | bool | False | Set to True for multi-label classification, otherwise False for single-label |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:

EmbeddingsVisualizer
Visualizer for embedding tasks.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
z_score_threshold | float | 3.0 | Threshold for z-score filtering. Embeddings with z-score higher than this value are considered as outliers and are not drawn. |
Example:

OCRVisualizer
Visualizer for OCR tasks.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
font_scale | float | 0.5 | Font scale of the text. Defaults to 0.5. |
color | tuple[int, int, int] | (0, 0, 0) | Color of the text. Defaults to (0, 0, 0). |
thickness | int | 1 | Thickness of the text. Defaults to 1. |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:

InstanceSegmentationVisualizer
Visualizer for instance segmentation tasks.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
labels | dict[int, str] | list[str] | None | None | Either a dictionary mapping class indices to names, or a list of names. If list is provided, the label mapping is done by index. By default, no labels are drawn |
draw_labels | bool | True | Whether to draw class labels for predictions and targets |
draw_scores | bool | False | Whether to append prediction confidence scores to the rendered labels. If draw_labels=False, only the score is drawn |
colors | dict[str, tuple[int, int, int] | str] | list[tuple[int, int, int] | str] | None | None | Colors to use for the bounding boxes. Either a dictionary mapping class names to colors, or a list of colors. Color can be either a tuple of RGB values or a hex string |
fill | bool | False | Whether to fill the bounding boxes |
width | int | 1 | The width of the bounding box lines |
font | str | None | None | A filename containing a TrueType font |
font_size | int | None | None | Font size used for the labels |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:

InstanceSegKeypointVisualizer
Visualizer for joint instance segmentation and keypoint tasks.
This visualizer overlays:
- bounding boxes
- instance segmentation masks
- keypoints
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
labels | dict[int, str] | list[str] | None | None | Either a dictionary mapping class indices to names, or a list of names. If list is provided, the label mapping is done by index |
draw_labels | bool | True | Whether to draw class labels. Defaults to True |
draw_scores | bool | False | Whether to append prediction confidence scores to the rendered labels. If draw_labels=False, only the score is drawn |
colors | dict[str, tuple[int, int, int] | str] | list[tuple[int, int, int] | str] | None | None | Colors to use for the bounding boxes and masks. Either a dictionary mapping class names to colors, or a list of colors. Color can be either a tuple of RGB values or a hex string |
fill | bool | False | Whether to fill the bounding boxes |
width | int | None | None | The width of the bounding box lines |
font | str | None | None | A filename containing a TrueType font |
font_size | int | None | None | Font size used for the labels |
alpha | float | 0.6 | Alpha value of the segmentation masks |
visibility_threshold | float | 0.5 | Threshold for visibility of keypoints. If the visibility of a keypoint is below this threshold, it is considered as not visible |
connectivity | list[tuple[int, int]] | None | None | List of tuples of keypoint indices that define the connections in the skeleton |
visible_color | str | tuple[int, int, int] | "red" | Color of visible keypoints |
nonvisible_color | str | tuple[int, int, int] | None | None | Color of non-visible keypoints. If None, non-visible keypoints are not drawn |
radius | int | None | None | Radius of drawn keypoint dots. If None, dynamically determine this based on image dimensions |
draw_indices | bool | False | Draw keypoint indices next to the keypoints |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example

FOMOVisualizer
Visualizer for FOMO object detection.
Parameters:
| Key | Type | Default value | Description |
|---|---|---|---|
colors | dict[str, tuple[int, int, int] | str] | list[tuple[int, int, int] | str] | None | None | Colors to use for the different point classes. Either a dictionary mapping class names to colors, or a list of colors. Color can be either a tuple of RGB values or a hex string |
visibility_threshold | float | 0.5 | Threshold for visibility of detected points. If the visibility of a point is below this threshold, it will not be shown |
radius | int | 5 | Radius to draw the points |
scale | float | 1.0 | Scales the canvas and the annotations by a given factor |
Example:
