Google Gemini Lookup
Perform a lookup with Gemini on objects in an ROI, or on a ROI in the frame.
Overview
The Google Gemini Lookup node is designed to perform lookups using the powerful Gemini model on objects within a Region of Interest (ROI), or on a ROI within the frame. This functionality is useful for applications requiring advanced recognition and understanding of objects or areas within a video feed.
Inputs & Outputs
- Inputs: 1, Media Format: Raw Video
- Outputs: 1, Media Format: 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 Interval (rois_interval); ROIs, upon Trigger (rois_trigger); Objects in an ROI (objects). | enum | rois_interval | Yes |
interval | Collect objects or ROIs for lookup atleast this many seconds apart. Unit: seconds. | float | 1 | No |
trigger | Queue ROI for lookup when this condition evaluates to true. Conditional on processing_mode being rois_trigger. | trigger-condition | null | No |
batch_mode | ROI batch mode. Options: Single (single): Lookup current ROI image only; Batch (batch): Lookup last n images of the ROI; Compare with reference (reference): Lookup current ROI image and reference image. | enum | single | No |
batch_size | Number of images to process in each request. Set to more than 1 to use prompts that reference multiple images. Conditional on batch_mode being batch. Unit: images. | number | 1 | No |
enable_prebuffer | If true, samples ROI at Lookup interval to fill batch, and performs lookup when trigger is met. Else performs lookup when batch is full. Conditional on processing_mode being rois_trigger. | bool | false | No |
objects_to_process | ex. car,person,car.red. Conditional on processing_mode being objects. | model-labels | null | No |
obj_lookup_mode | Object lookup mode. Options: Until result (until_result): Lookup on interval or size change, until a result is obtained or max attempts are exhausted; Continuously (continuous): Periodically, at an interval. Conditional on processing_mode being objects. | enum | until_result | 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 | If the size of an object changes by more than this threshold, perform a lookup. Conditional on processing_mode being objects. Range: minimum 0.01, maximum 2.0. Step: 0.2. | float | 0.1 | No |
max_lookups_per_obj | Maximum number of attempts to perform a lookup for an object in the Until result lookup mode. Conditional on processing_mode being objects. | number | 5 | No |
gemini_api_key | Google Gemini API Key | string | null | Yes |
prompt | Provide a prompt, additional instructions or context for the model. Required if no attributes are provided. | string | null | Yes |
attributes | If provided, model will look for these attributes and add resulting values as object/ROI attributes. Leave empty to output results as text. If present, description is a special attribute which will be added to scene description for search and summarization. | json | {"description": "Describe the image briefly.", "vehicle_numbers": "Any number written on the vehicle", "vehicle_type": "Vehicle type: car|bus|van"} | No |
detail_level | Image Detail Level. Options: Low (low); High (high). | enum | low | No |
max_tokens | Maximum number of tokens to return for each request. Unit: tokens. | number | 500 | No |
model | If left empty, the default Gemini model will be used. | string | null | No |
display_roi | Display ROI on video? | bool | true | No |
display_objinfo | Display results 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 |
Prompt Examples
Generate scene description.
Analyze the scene and provide a concise description of any unique, interesting, or noteworthy elements that would be suitable for a push notification alert. Focus on key details that capture the essence of what's happening or what's important in the image.
Attribute Examples
Providing explicit attributes lets the model return structured output that will be added as ROI or object attributes.
Each attribute is a key-value pair. Key is the attribute name, and value is the instruction for the model to extract the attribute.
The model will return the extracted attribute value as a string, which will be added as an attribute to the object/ROI.
Describe the image
{"description": "Describe the image briefly."}
Describe the image and add attributes for vehicle type and numbers
{"description": "Describe the image briefly. Return null if no vehicle is present.", "vehicle_type": "Comma separated list of vehicle types: car\|bus\|van", "vehicle_numbers": "Comma separated list of vehicle numbers"}
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 Gemini caption or resulting class of an ROI changes |
nodes.<node_id>.rois.<roi_label>.label_available | boolean | Boolean indicating whether the node has a current result for this ROI. |
nodes.<node_id>.rois.<roi_label>.label | string | Current model-generated result for this ROI. |
nodes.<node_id>.rois.<roi_label>.attributes.<attribute_name> | string, number, boolean, or null | String, number, boolean, or null produced for the configured model attribute. |
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 a Gemini caption or resulting class assigned |
nodes.<node_id>.label_changed_obj_delta | integer | When the Gemini caption or resulting class 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 a Gemini caption or class |
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": {
"gemini1": {
"label_changed_obj_delta": 0,
"objects_of_interest_keys": [],
"recognized_obj_count": 0,
"recognized_obj_delta": 0,
"recognized_obj_ids": [],
"rois": {
"roi1": {
"attributes": {
"door_status": "unblocked"
},
"label": "example",
"label_available": false,
"label_changed_delta": false
}
},
"type": "gemini",
"unrecognized_obj_count": 0,
"unrecognized_obj_delta": 0
}
}
}Object labels and attributes
- Object labels/classes added: In ROI mode, the configured ROI label is added as an object with class
10600. - Object attribute labels/classes added: ROI objects receive
lvm_roi(10600); configured response values use class10602; successful results addlvm_results(10601).
{
"objects": [{
"id": 2775161862,
"source_node_id": null,
"model_id": null,
"label": "roi2",
"class_id": 10600,
"rect": {
"left": 128,
"top": 72,
"width": 512,
"height": 575
},
"probability": 1.0,
"attributes": [{
"label": "unblocked",
"class_id": 10602,
"probability": 1.0
}, {
"label": "lvm_results",
"class_id": 10601,
"probability": 1.0
}, {
"label": "lvm_roi",
"class_id": 10600,
"probability": 1.0
}],
"corr_id": "75f5141e-020a-4f27-af26-cf17b32c2544"
}]
}Updated 3 days ago
