Recognize Barcodes
Recognize barcodes in video
Overview
The Recognize Barcodes node decodes barcodes detected by an AI model, and adds metadata to the frame metadata.
Suggested use : AI Model Node (with Barcode model) -> Track Objects Node -> Recognize Barcodes Node
Inputs & Outputs
- Inputs : 1, Media Format : Raw Video
- Outputs : 1, Media Format: Raw Video
- Output Metadata : Barcode Information
Properties
| Property | Description | Type | Default | Required |
|---|---|---|---|---|
barcode_types | Comma-separated list of barcode types to recognize. Options: aztec, codabar, code128, code39, code93, composite, datamatrix, databar, databar_exp, ean2, ean5, ean8, ean13, i25, isbn10, isbn13, maxicode, partial, pdf417, qrcode, microqrcode, rmqrcode, upca, upce, linearcodes, matrixcodes. Leave empty to detect all types. | enum-multi | null | No |
display_info | Display barcode info on video? | bool | true | No |
preprocess | Apply image preprocessing. Options: upscale (if too small), downscale (if too big), sharpen, rotate (attempt to straighten). | enum-multi | null | No |
process_detected_barcodes_only | Process detected barcodes only? Disable to scan entire image for barcodes and increase processing time. Useful if the model doesn't detect barcodes well. | bool | true | No |
barcode_engine | Select a barcode decoding engine. Options: zxing, zbar. | enum | zxing | Yes |
retention_duration | Duration (seconds) to remember barcodes. After this interval, a barcode that was seen previously will be treated as a new barcode. | float | 60 | No |
Metadata
| Metadata Property | Description |
|---|---|
nodes.<node_id> | Describes Barcode information for any decoded barcodes. Format: as defined in the table below. <node_id> for Recognize Barcode Nodes is of the form annotate_barcodeX (ex. annotate_barcode1) |
Example
"nodes": {
"annotate_barcode1": {
"type": "annotate_barcode",
"barcodes" : [
{
"type": "EAN13",
"data": "124314072131",
"coords": [104,205,100,300],
"id": 1203112309710239
},
{
"type": "CODE128",
"data": "203927812",
"coords": [410,445,120,340],
"id": 102397932481
}
],
"barcode_count": 2,
"barcode_count_delta": 1
}
}Format
| Key | Type | Description |
|---|---|---|
barcodes | Array | True if motion is currently detected, else False |
barcodes[].type | Enum | Type of recognized barcode. One of the supported barcode_types values. |
barcodes[].data | String | Contents of the Barcode |
barcodes[].coords | Array | Where in the image the barcode is detected. Format: [x,y,width,height] |
barcodes[].id | Long Integer | Unique tracking ID for the detected barcode if a tracker is used and process_detected_barcodes_only is set to True. Else -1. |
barcode_count | Integer | Number of barcodes recognized. |
barcode_count_delta | Integer | Number of new barcodes recognized in this frame. |
Objects metadata augmentation
The following information is added to the detected object's "attributes" array:
| "class_id" field | "label" field | "probability" field |
|---|---|---|
11000 | The recognized barcode result (string) | The barcode recognition confidence |
11001 | The recognized barcode type (string) | The barcode recognition confidence |
"objects": [{
"id": 5750484150146564100,
"label": "barcode",
"class_id": 0,
"probability": 0.98,
"rect": {
"width": 47,
"top": 201,
"left": 656,
"height": 25.
},
"attributes": [{
"label": "124314072131",
"class_id": 11000,
"probability": 1.0,
},
{
"label": "EAN13",
"class_id": 11001,
"probability": 1.0,
}]
}]Updated 4 days ago
