OCR
Perform OCR on objects in an ROI, or on a ROI in the frame.
Overview
The OCR node allows for performing OCR (Optical Character Recognition) on objects within a Region of Interest (ROI), or on a ROI within the frame. This functionality is crucial for applications requiring text recognition and extraction from video feeds.
Inputs & Outputs
- Input media: Raw Video.
- Output media: Raw Video.
- Output metadata:
nodes.node_id, +-- recognized_objs, +-- recognized_obj_ids, +-- recognized_obj_count, +-- recognized_obj_delta, +-- value_changed_delta, +-- unrecognized_obj_count, +-- unrecognized_obj_delta.
Properties
| Property | Description | Type | Default | Required |
|---|---|---|---|---|
roi_labels | Regions of interest labels | string | — | No |
rois | Regions of interest. Conditional on roi_labels. Format: comma-separated normalized x,y coordinate pairs; separate multiple polygons with semicolons (for example, 0.1,0.1,0.9,0.1,0.9,0.9). | string | null | No |
processing_mode | Processing mode. Options: ROIs, at an Interval (rois_interval); ROIs, upon a Trigger (rois_trigger); Objects in an ROI (objects). | enum | rois_interval | Yes |
trigger | Queue ROI for OCR when this condition evaluates to true. Conditional on processing_mode being rois_trigger. | trigger-condition | null | Yes |
objects_to_process | ex. car,person,car.red. Conditional on processing_mode being objects. | model-labels | null | No |
tracking_mode | Tracking mode. Options: Centroid (centroid); Top center (top-center); Bottom center (bottom-center); Left center (left-center); Right center (right-center). Conditional on processing_mode being objects. | enum | centroid | No |
min_obj_size_pixels | Min. width and height of an object. Conditional on processing_mode being objects. | number | 64 | No |
obj_lookup_size_change_threshold | Object size ratio change threshold. Conditional on processing_mode being objects. Range: minimum 0.1, maximum 2.0. Step: 0.2. | float | 0.1 | No |
max_lookups_per_obj | Max. OCR attempts per object. Conditional on processing_mode being objects. | number | 5 | No |
group_ocr_results | If enabled, the match pattern is applied to the group of texts instead of individual words. | bool | false | No |
ocr_match_pattern | Only retain OCR results that match this Regular Expression pattern. Leave blank to keep unfiltered results. | string | null | No |
min_confidence | Ignores OCR results if they are below this threshold. Range: minimum 0, maximum 1. Step: 0.05. | float | 0.7 | No |
additional_orientations | Additional orientations to consider for OCR. This is useful for recognizing text that is rotated at 90, 180, or 270 degrees. Options: 90 degrees (90); 180 degrees (180); 270 degrees (270). Format: array of selected option values. | string[] | null | No |
ocr_interval | OCR lookups interval. Unit: seconds. | number | 1 | No |
display_roi | Display ROI on video? | bool | true | No |
display_objinfo | Display OCR info on video? Options: Disabled (disabled); Bottom left (bottom_left); Bottom right (bottom_right); Top left (top_left); Top right (top_right). | enum | bottom_left | No |
debug | Log debugging information? | bool | false | No |
Output Metadata
The fields below are declared by this node's metadata schema; the JSON values are representative examples.
| Path | Type | Description |
|---|---|---|
nodes.<node_id>.rois.<roi_label>.label_changed_delta | boolean | When the OCR caption of an ROI changes |
nodes.<node_id>.rois.<roi_label>.label_available | boolean | When an OCR caption becomes available |
nodes.<node_id>.rois.<roi_label>.label | string | Current model-generated result for this ROI. |
nodes.<node_id>.recognized_obj_count | integer | Number of objects successfully processed in the current frame. |
nodes.<node_id>.recognized_obj_delta | integer | When one or more new objects have an OCR caption assigned |
nodes.<node_id>.label_changed_obj_delta | integer | When the OCR caption of one or more objects changes |
nodes.<node_id>.unrecognized_obj_count | integer | Number of objects that could not be processed in the current frame. |
nodes.<node_id>.unrecognized_obj_delta | integer | When one or more objects fail to be assigned an OCR caption |
nodes.<node_id>.recognized_obj_ids | array | Array of tracking IDs of objects successfully processed by the node. |
nodes.<node_id>.objects_of_interest_keys | array | Array of metadata keys that contain object IDs relevant to downstream integrations. |
nodes.<node_id>.type | string | Identifies the node type that produced this metadata. |
JSON example
{
"nodes": {
"ocr1": {
"label_changed_obj_delta": 0,
"objects_of_interest_keys": ["recognized_obj_ids"],
"recognized_obj_count": 0,
"recognized_obj_delta": 0,
"recognized_obj_ids": [],
"rois": {
"roi1": {
"label": "example",
"label_available": false,
"label_changed_delta": false
}
},
"type": "ocr",
"unrecognized_obj_count": 0,
"unrecognized_obj_delta": 0
}
}
}Additional details
Object labels and attributes
- Object labels/classes added: In ROI mode, the configured ROI label is added as an object with class
10500. - Object attribute labels/classes added: ROI objects receive
ocr_roi(10500); recognized text uses class10502; successful results addocr_results(10501).
Updated 2 days ago
Did this page help you?
